From 5d8c756581dda9109313335b1646e3c6f20e3afa Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Mon, 30 Apr 2018 15:14:41 +0100 Subject: [PATCH 01/37] update travis --- .travis.yml | 17 +++++++---------- tierpsy/gui/MWTrackerViewer.py | 1 + 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index c33cc4e2..07f4d8cc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,6 @@ language: python python: # We don't actually use the Travis Python, but this keeps it organized. -- "3.5" - "3.6" notifications: @@ -10,13 +9,13 @@ notifications: matrix: include: - os: linux - sudo: required + #sudo: required - os: osx -install: +before_install: # install anaconda - - sudo apt-get update - - wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh; + #- sudo apt-get update + - curl https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -o miniconda.sh; - bash miniconda.sh -b -p $HOME/miniconda - export PATH="$HOME/miniconda/bin:$PATH" - hash -r @@ -25,17 +24,15 @@ install: # Useful for debugging any issues with conda - conda info -a +install: # create testing enviroment - conda config --add channels conda-forge - conda create -q -n test-environment python=$TRAVIS_PYTHON_VERSION - numpy matplotlib pytables pandas gitpython pyqt=5 - h5py scipy scikit-learn scikit-image seaborn xlrd - cython statsmodels keras opencv + - conda install -q numpy matplotlib pytables pandas gitpython pyqt=5 h5py scipy scikit-learn scikit-image seaborn xlrd cython statsmodels numba keras opencv tensorflow - source activate test-environment - - pip install tensorflow # install tierpsy - - bash installation/installation_script.sh --setup_modules + - bash installation/installation_script.sh before_script: #download examples diff --git a/tierpsy/gui/MWTrackerViewer.py b/tierpsy/gui/MWTrackerViewer.py index d9ffbc7f..a9dc7b4b 100755 --- a/tierpsy/gui/MWTrackerViewer.py +++ b/tierpsy/gui/MWTrackerViewer.py @@ -288,6 +288,7 @@ def draw_boxes(self, painter, row_data): else: skel_id = row_data['skeleton_id'] label_color = self._h_assign_feat_color(skel_id) + pen = QPen() pen.setColor(label_color) From 91dec4ac706d8137e5a4317aaa1e4cd5dbd31fe0 Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Mon, 30 Apr 2018 15:18:25 +0100 Subject: [PATCH 02/37] bug i forgot to remove this line during debugging --- tierpsy/analysis/ske_orient/checkHeadOrientation.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/tierpsy/analysis/ske_orient/checkHeadOrientation.py b/tierpsy/analysis/ske_orient/checkHeadOrientation.py index 6c1386af..ead9551e 100755 --- a/tierpsy/analysis/ske_orient/checkHeadOrientation.py +++ b/tierpsy/analysis/ske_orient/checkHeadOrientation.py @@ -190,8 +190,6 @@ def correctHeadTail(skeletons_file, **params): is_switched_skel, roll_std = isWormHTSwitched(worm_data.skeleton, segment4angle=segment4angle, max_gap_allowed=max_gap_allowed, window_std=window_std, min_block_size=min_block_size) - roll_std.plot() - worm_data.switchHeadTail(is_switched_skel) worm_data.writeData() From 6f39a0cbcb537b287d90eee43a4ffba8e7e37c7a Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Mon, 30 Apr 2018 16:13:09 +0100 Subject: [PATCH 03/37] make sure keras load tensorflow as backend --- tierpsy/__init__.py | 3 ++- tierpsy/analysis/ske_init/filterTrajectModel.py | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tierpsy/__init__.py b/tierpsy/__init__.py index e3628a39..bbd8f890 100755 --- a/tierpsy/__init__.py +++ b/tierpsy/__init__.py @@ -9,7 +9,8 @@ from .version import __version__ -#print(os.environ['PATH']) +#I want to be sure tierpsy loads tensorflow flow backend +os.environ['KERAS_BACKEND']='tensorflow' try: # PyInstaller creates a temp folder and stores path in _MEIPASS diff --git a/tierpsy/analysis/ske_init/filterTrajectModel.py b/tierpsy/analysis/ske_init/filterTrajectModel.py index 0def7751..c0e03811 100644 --- a/tierpsy/analysis/ske_init/filterTrajectModel.py +++ b/tierpsy/analysis/ske_init/filterTrajectModel.py @@ -53,7 +53,6 @@ def indentifyValidWorms(masked_file, frame_subsamplig - number of frames skipped. We do not need to calculate in every frame. A value of near the number of fps is sensible. ''' - from keras.models import load_model # I do a hidden import because the loading of keras is slow, and it will do everytime tierpsy is initialized model = load_model(model_path) From 58fa22b981d8c1c592fb93adb73c820ebd7147cc Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Tue, 1 May 2018 07:04:29 +0100 Subject: [PATCH 04/37] fix travis --- .travis.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 07f4d8cc..197c46f1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,7 @@ language: python python: # We don't actually use the Travis Python, but this keeps it organized. +- "3.5" - "3.6" notifications: @@ -9,12 +10,12 @@ notifications: matrix: include: - os: linux - #sudo: required - - os: osx + sudo: required + # - os: osx before_install: # install anaconda - #- sudo apt-get update + - sudo apt-get update - curl https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -o miniconda.sh; - bash miniconda.sh -b -p $HOME/miniconda - export PATH="$HOME/miniconda/bin:$PATH" @@ -27,8 +28,7 @@ before_install: install: # create testing enviroment - conda config --add channels conda-forge - - conda create -q -n test-environment python=$TRAVIS_PYTHON_VERSION - - conda install -q numpy matplotlib pytables pandas gitpython pyqt=5 h5py scipy scikit-learn scikit-image seaborn xlrd cython statsmodels numba keras opencv tensorflow + - conda create -q -n test-environment python=$TRAVIS_PYTHON_VERSION numpy matplotlib pytables pandas gitpython pyqt=5 h5py scipy scikit-learn scikit-image seaborn xlrd cython statsmodels numba keras opencv tensorflow - source activate test-environment # install tierpsy From 88a039bf3dc994fb165251b56e9e1ded843d9c84 Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Tue, 1 May 2018 07:21:48 +0100 Subject: [PATCH 05/37] more fixes for travis --- .travis.yml | 13 +++++++++---- installation/installation_script.sh | 12 +++++------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index 197c46f1..1bdce844 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,12 +11,17 @@ matrix: include: - os: linux sudo: required - # - os: osx + - os: osx before_install: - # install anaconda - - sudo apt-get update - - curl https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -o miniconda.sh; + - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then + MINICONDA_OS=Linux ; + else + MINICONDA_OS=MacOSX ; + fi ; + echo "Fetching miniconda for $MINICONDA_OS" ; + curl https://repo.continuum.io/miniconda/Miniconda3-latest-$MINICONDA_OS-x86_64.sh -o miniconda.sh + - bash miniconda.sh -b -p $HOME/miniconda - export PATH="$HOME/miniconda/bin:$PATH" - hash -r diff --git a/installation/installation_script.sh b/installation/installation_script.sh index c2bb8d44..ec4b8562 100755 --- a/installation/installation_script.sh +++ b/installation/installation_script.sh @@ -46,18 +46,16 @@ function download_examples { } function link_desktop { - DESKTOLINK="$HOME/Desktop/TierpsyTracker.command" if [[ "${OS}" -eq "Darwin" ]] then + DESKTOLINK="$HOME/Desktop/TierpsyTracker.command" + EXIT_CMD="osascript -e 'tell application "Terminal" to close first window' & exit" - else - EXIT_CMD="exit" - fi + echo "python3 $MW_MAIN_DIR/cmd_scripts/TierpsyTrackerConsole.py; $EXIT_CMD" > $DESKTOLINK + chmod 744 $DESKTOLINK - echo "python3 $MW_MAIN_DIR/cmd_scripts/TierpsyTrackerConsole.py; $EXIT_CMD" > $DESKTOLINK - - chmod 744 $DESKTOLINK + fi } From 5cc3f579c284e82bf46a7ef9fdbdf4448d90befb Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Tue, 1 May 2018 07:37:48 +0100 Subject: [PATCH 06/37] travis fix --- .travis.yml | 1 - installation/installation_script.sh | 8 +++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1bdce844..a80227a8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,6 @@ language: python python: # We don't actually use the Travis Python, but this keeps it organized. -- "3.5" - "3.6" notifications: diff --git a/installation/installation_script.sh b/installation/installation_script.sh index ec4b8562..7ef8ca43 100755 --- a/installation/installation_script.sh +++ b/installation/installation_script.sh @@ -1,6 +1,8 @@ #!/bin/bash set -e +OS=$(uname -s) + MW_MAIN_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"/.. OPENWORM_DIR=$MW_MAIN_DIR/../open-worm-analysis-toolbox TIERPSYFEATURES_DIR=$MW_MAIN_DIR/../tierpsy-features @@ -46,15 +48,15 @@ function download_examples { } function link_desktop { - - if [[ "${OS}" -eq "Darwin" ]] + if [[ "${OS}" -eq "Darwin" ]]; then + echo "Creating Desktop Link..." DESKTOLINK="$HOME/Desktop/TierpsyTracker.command" EXIT_CMD="osascript -e 'tell application "Terminal" to close first window' & exit" echo "python3 $MW_MAIN_DIR/cmd_scripts/TierpsyTrackerConsole.py; $EXIT_CMD" > $DESKTOLINK chmod 744 $DESKTOLINK - + #I haven't implemented a similar short cut for linux fi } From 63de0711bd41406ec4ac0d684deb675d16097027 Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Tue, 1 May 2018 08:03:02 +0100 Subject: [PATCH 07/37] fix travis --- .travis.yml | 14 ++++++-------- installation/installation_script.sh | 5 +++-- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index a80227a8..a6952a29 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,16 +1,14 @@ language: python -python: -# We don't actually use the Travis Python, but this keeps it organized. -- "3.6" notifications: email: false -matrix: - include: - - os: linux - sudo: required - - os: osx +env : + - TRAVIS_PYTHON_VERSION=3.6 + +os: + - linux + - osx before_install: - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then diff --git a/installation/installation_script.sh b/installation/installation_script.sh index 7ef8ca43..0ecbcefa 100755 --- a/installation/installation_script.sh +++ b/installation/installation_script.sh @@ -48,14 +48,15 @@ function download_examples { } function link_desktop { - if [[ "${OS}" -eq "Darwin" ]]; + if [[ $OS == "Darwin" ]]; then - echo "Creating Desktop Link..." + echo $OS" Creating Desktop Link... " DESKTOLINK="$HOME/Desktop/TierpsyTracker.command" EXIT_CMD="osascript -e 'tell application "Terminal" to close first window' & exit" echo "python3 $MW_MAIN_DIR/cmd_scripts/TierpsyTrackerConsole.py; $EXIT_CMD" > $DESKTOLINK chmod 744 $DESKTOLINK + echo "Done" #I haven't implemented a similar short cut for linux fi } From 3e918d60301b266c9f8d3e5c1ff3ab649ef74a7d Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Tue, 1 May 2018 08:18:55 +0100 Subject: [PATCH 08/37] ... --- .travis.yml | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index a6952a29..e17d6687 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,7 @@ -language: python +# Note from : https://travis-ci.org/Anaconda-Platform/anaconda-project/ +# language: python sets up virtualenv and pip that we don't need. +# omitting language gives us ruby stuff. c seems likely to be a minimal setup. +language: c notifications: email: false @@ -10,7 +13,7 @@ os: - linux - osx -before_install: +install: - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then MINICONDA_OS=Linux ; else @@ -20,19 +23,23 @@ before_install: curl https://repo.continuum.io/miniconda/Miniconda3-latest-$MINICONDA_OS-x86_64.sh -o miniconda.sh - bash miniconda.sh -b -p $HOME/miniconda - - export PATH="$HOME/miniconda/bin:$PATH" - - hash -r - - conda config --set always_yes yes --set changeps1 no + - source "$HOME"/miniconda/bin/activate root + - printenv | sort + - conda config --set always_yes yes --set changeps1 no --set auto_update_conda false - conda update -q conda # Useful for debugging any issues with conda - conda info -a -install: # create testing enviroment - conda config --add channels conda-forge - conda create -q -n test-environment python=$TRAVIS_PYTHON_VERSION numpy matplotlib pytables pandas gitpython pyqt=5 h5py scipy scikit-learn scikit-image seaborn xlrd cython statsmodels numba keras opencv tensorflow - source activate test-environment + - printenv | sort + + - export PATH=`echo "$PATH" | sed -e s@"$HOME"/miniconda/bin:@@g` + - printenv | sort + # install tierpsy - bash installation/installation_script.sh From 4d41e0f339965a0a9a47831fa381d7cb2f5286c3 Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Wed, 30 May 2018 23:23:21 +0100 Subject: [PATCH 09/37] viewer support for OW features --- tierpsy/gui/MWTrackerViewer.py | 26 +++++--- tierpsy/gui/TrackerViewerAux.py | 113 ++++++++++++++++++++++++-------- 2 files changed, 102 insertions(+), 37 deletions(-) diff --git a/tierpsy/gui/MWTrackerViewer.py b/tierpsy/gui/MWTrackerViewer.py index a9dc7b4b..1e345d0e 100755 --- a/tierpsy/gui/MWTrackerViewer.py +++ b/tierpsy/gui/MWTrackerViewer.py @@ -45,6 +45,7 @@ def __init__(self, ui): self.ui.checkBox_showFood.setChecked(True) def updateSkelFile(self, skeletons_file): + super().updateSkelFile(skeletons_file) if not self.skeletons_file or self.trajectories_data is None: self.food_coordinates = None @@ -119,18 +120,24 @@ def __init__(self, ui): def updateSkelFile(self, skeletons_file): super().updateSkelFile(skeletons_file) + self.ui.feature_column.clear() self.traj_worm_index_grouped = None try: self.traj_colors = {} with pd.HDFStore(self.skeletons_file, 'r') as ske_file_id: - self.timeseries_data = ske_file_id['/timeseries_data'] - + for field in ['/timeseries_data', '/features_timeseries']: + if field in ske_file_id: + self.timeseries_data = ske_file_id[field] + break + else: + raise KeyError + if not 'skeleton_id' in self.trajectories_data: raise KeyError self.enable_color_feats(True) - index_cols = ['worm_index', 'timestamp'] + index_cols = ['worm_index', 'timestamp', 'motion_modes', 'skeleton_id'] columns = [x for x in self.timeseries_data.columns if x not in index_cols] self.ui.feature_column.addItems(columns) @@ -173,8 +180,9 @@ def _h_assign_feat_color(self, skel_id): return Qt.black skel_id = int(skel_id) + feat_val = self.timeseries_data.loc[skel_id, self.feat_column] - + if (feat_val != feat_val): return Qt.black @@ -241,10 +249,12 @@ def _h_get_trajectory(self, worm_index, current_frame): def draw_trajectories(self, painter, row_data): - + if self.traj_worm_index_grouped is None: + return worm_index = int(row_data[self.worm_index_type]) current_frame = row_data['frame_number'] traj_data = self._h_get_trajectory(worm_index, current_frame) + traj_data = traj_data.dropna(subset=['coord_x', 'coord_y']) x_v = traj_data['coord_x'].round() y_v = traj_data['coord_y'].round() @@ -541,7 +551,7 @@ def updateROIcanvas( comboBox_ROI, isDrawSkel): - if self.frame_data is None: + if self.frame_data is None or not self.worm_index_type: # no trajectories data presented, nothing to do here wormCanvas.clear() return @@ -550,7 +560,7 @@ def updateROIcanvas( comboBox_ROI.clear() comboBox_ROI.addItem(str(worm_index_roi)) - for ind in self.frame_data[self.worm_index_type].data: + for ind in self.frame_data[self.worm_index_type]: comboBox_ROI.addItem(str(ind)) # extract individual worm ROI @@ -713,7 +723,7 @@ def updateSkelFile(self, skeletons_file): self.trajectories_data = self.trajectories_data.rename( columns={'worm_index_N': 'worm_index_manual'}) - if not 'worm_index_manual' in self.trajectories_data: + if not 'worm_index_manual' in self.trajectories_data and not self.is_estimated_trajectories_data: self.trajectories_data['worm_label'] = self.wlab['U'] self.trajectories_data['worm_index_manual'] = self.trajectories_data['worm_index_joined'] diff --git a/tierpsy/gui/TrackerViewerAux.py b/tierpsy/gui/TrackerViewerAux.py index 0305a642..38e87570 100755 --- a/tierpsy/gui/TrackerViewerAux.py +++ b/tierpsy/gui/TrackerViewerAux.py @@ -27,6 +27,46 @@ contour_side2 = (231, 41, 138) ) +#%% +def _estimate_trajectories_data(ow_feat_file, timestamp, microns_per_pixel): + ''' + I want to estimate the trajectorires_data table from the features_timeseries in the old features + so I can used them with the viewer. + ''' + + stamp2frame = {f:i for i, f in list(enumerate(timestamp))[::-1]} + + with pd.HDFStore(ow_feat_file, 'r') as fid: + features_timeseries = fid['features_timeseries'] + + features_timeseries['frame_number'] = features_timeseries['timestamp'].map(stamp2frame) + features_timeseries = features_timeseries.dropna(subset=['frame_number']) + + + + df = [] + with tables.File(ow_feat_file, 'r') as fid: + skels = fid.get_node('/coordinates/skeletons') + mid_ind = skels.shape[1]//2 + for w_ind, w_data in features_timeseries.groupby('worm_index'): + midbody_coords = skels[w_data.index, mid_ind, :] + + new_data = pd.DataFrame(midbody_coords, columns=['coord_x', 'coord_y'], index=w_data.index)/microns_per_pixel + new_data['worm_index_joined'] = w_ind + new_data['frame_number'] = features_timeseries['frame_number'] + new_data['roi_size'] = w_data['length'].max()/microns_per_pixel + new_data['threshold'] = 255 + new_data['area'] = w_data['area']/microns_per_pixel**2 + new_data['was_skeletonized'] = True + new_data['skeleton_id'] = w_data.index + + new_data = new_data.drop_duplicates('frame_number') + + df.append(new_data) + trajectories_data = pd.concat(df) + + return trajectories_data +#%% class TrackerViewerAuxGUI(HDF5VideoPlayerGUI): @@ -39,6 +79,8 @@ def __init__(self, ui=''): self.results_dir = '' self.skeletons_file = '' self.trajectories_data = None + self.is_estimated_trajectories_data = False + self.traj_time_grouped = None self.frame_save_interval = 1 @@ -63,33 +105,15 @@ def getSkelFile(self): self.updateSkelFile(selected_file) def updateSkelFile(self, selected_file, dflt_skel_size = 5): + self.trajectories_data = None + self.traj_time_grouped = None + self.traj_worm_index_grouped = None + self.skel_dat = {} + self.skeletons_file = selected_file self.ui.lineEdit_skel.setText(self.skeletons_file) try: - with pd.HDFStore(self.skeletons_file, 'r') as ske_file_id: - self.trajectories_data = ske_file_id['/trajectories_data'] - self.traj_time_grouped = self.trajectories_data.groupby('frame_number') - # read the size of the structural element used in to calculate - # the mask - if '/provenance_tracking/int_ske_orient' in ske_file_id: - prov_str = ske_file_id.get_node( - '/provenance_tracking/ske_create').read() - func_arg_str = json.loads( - prov_str.decode("utf-8"))['func_arguments'] - strel_size = json.loads(func_arg_str)['strel_size'] - if isinstance(strel_size, (list, tuple)): - strel_size = strel_size[0] - - self.strel_size = strel_size - else: - # use default - self.strel_size = dflt_skel_size - except (IOError, KeyError, tables.exceptions.HDF5ExtError): - self.trajectories_data = None - self.traj_time_grouped = None - - try: - #If i am using the smoothed skeletons (_featuresN.hdf5) we have to use a different field and divided by the microns per pixels scale + #find were to read the skeletons and pixel2microns transforming factor self.stage_position_pix = None with tables.File(self.skeletons_file, 'r') as skel_file_id: if '/coordinates' in skel_file_id: @@ -112,16 +136,47 @@ def updateSkelFile(self, selected_file, dflt_skel_size = 5): 'skeleton':'skeleton', 'contour_side2':'contour_side2' } + + #read trajectories data, and other useful factors + with pd.HDFStore(self.skeletons_file, 'r') as ske_file_id: + if 'trajectories_data' in ske_file_id: + self.trajectories_data = ske_file_id['/trajectories_data'] + self.is_estimated_trajectories_data = False + else: + if '/timestamp/raw' in self.fid: + timestamp = self.fid.get_node('/timestamp/raw')[:] + else: + tot = self.fid.get_node('/mask').shape[0] + timestamp = np.arange(tot) + self.trajectories_data = _estimate_trajectories_data(self.skeletons_file, timestamp, self.skel_microns_per_pixel) + self.is_estimated_trajectories_data = True + + self.traj_time_grouped = self.trajectories_data.groupby('frame_number') + # read the size of the structural element used in to calculate + # the mask + if '/provenance_tracking/int_ske_orient' in ske_file_id: + prov_str = ske_file_id.get_node( + '/provenance_tracking/ske_create').read() + func_arg_str = json.loads( + prov_str.decode("utf-8"))['func_arguments'] + strel_size = json.loads(func_arg_str)['strel_size'] + if isinstance(strel_size, (list, tuple)): + strel_size = strel_size[0] + + self.strel_size = strel_size + else: + # use default + self.strel_size = dflt_skel_size + + except (IOError, KeyError, tables.exceptions.HDF5ExtError): self.trajectories_data = None self.traj_time_grouped = None self.skel_dat = {} - if self.frame_number == 0: - self.updateImage() - else: - self.ui.spinBox_frame.setValue(0) + #here i am updating the image + self.ui.spinBox_frame.setValue(0) def updateImGroup(self, h5path): super().updateImGroup(h5path) @@ -130,7 +185,7 @@ def updateImGroup(self, h5path): except: self.frame_save_interval = 1 - def updateVideoFile(self, vfilename, possible_ext = ['_featuresN.hdf5', '_skeletons.hdf5']): + def updateVideoFile(self, vfilename, possible_ext = ['_featuresN.hdf5', '_features.hdf5', '_skeletons.hdf5']): super().updateVideoFile(vfilename) if self.image_group is None: return From 458377b705bbeeb2c81055a5af5b980698ab0775 Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Tue, 5 Jun 2018 16:16:50 +0100 Subject: [PATCH 10/37] plots + summary - add app to plot features from MWViewer - add support for color features using the openworm features (_features.hdf5 and _feat_manual.hdf5) - add an app to create summaries from a collection of features files. - remove SWViewer --- .../analysis/feat_create/obtainFeatures.py | 2 + .../feat_create/obtainFeaturesHelper.py | 2 + tierpsy/gui/AnalysisProgress_ui.py | 2 +- tierpsy/gui/BatchProcessing.py | 1 - tierpsy/gui/BatchProcessing_ui.py | 2 +- tierpsy/gui/GetAllParameters.py | 9 +- tierpsy/gui/GetMaskParams.py | 4 +- tierpsy/gui/GetMaskParams_ui.py | 2 +- tierpsy/gui/HDF5VideoPlayer.py | 1 - tierpsy/gui/HDF5VideoPlayer_ui.py | 2 +- tierpsy/gui/MWTrackerViewer.py | 1009 +++++++++-------- tierpsy/gui/MWTrackerViewer_ui.py | 18 +- tierpsy/gui/PlotFeatures.py | 257 +++++ tierpsy/gui/ProgressDialog_ui.py | 7 - .../gui/QtDesignerFiles/MWTrackerViewer.ui | 19 +- tierpsy/gui/QtDesignerFiles/Makefile | 3 +- tierpsy/gui/QtDesignerFiles/Summarizer.ui | 171 +++ tierpsy/gui/SWTrackerViewer.py | 2 - tierpsy/gui/SWTrackerViewer_ui.py | 2 +- tierpsy/gui/SelectApp.py | 4 +- tierpsy/gui/SelectApp_ui.py | 8 - tierpsy/gui/Summarizer.py | 67 ++ tierpsy/gui/Summarizer_ui.py | 123 ++ tierpsy/gui/TrackerViewerAux.py | 44 +- tierpsy/gui/TrackerViewerAux_ui.py | 2 +- .../helper/params/docs_summarizer_param.py | 51 + tierpsy/summary/collect.py | 122 ++ tierpsy/summary/helper.py | 76 ++ tierpsy/summary/process_ow.py | 154 +++ tierpsy/summary/process_tierpsy.py | 107 ++ 30 files changed, 1745 insertions(+), 528 deletions(-) create mode 100644 tierpsy/gui/PlotFeatures.py delete mode 100644 tierpsy/gui/ProgressDialog_ui.py create mode 100644 tierpsy/gui/QtDesignerFiles/Summarizer.ui delete mode 100644 tierpsy/gui/SelectApp_ui.py create mode 100644 tierpsy/gui/Summarizer.py create mode 100644 tierpsy/gui/Summarizer_ui.py create mode 100644 tierpsy/helper/params/docs_summarizer_param.py create mode 100644 tierpsy/summary/collect.py create mode 100644 tierpsy/summary/helper.py create mode 100644 tierpsy/summary/process_ow.py create mode 100644 tierpsy/summary/process_tierpsy.py diff --git a/tierpsy/analysis/feat_create/obtainFeatures.py b/tierpsy/analysis/feat_create/obtainFeatures.py index ce48b594..066f3acf 100755 --- a/tierpsy/analysis/feat_create/obtainFeatures.py +++ b/tierpsy/analysis/feat_create/obtainFeatures.py @@ -11,10 +11,12 @@ import pandas as pd import tables +#openworm has a lot of warnings. I do not want to correct them... warnings.filterwarnings('ignore', '.*empty slice*',) warnings.filterwarnings('ignore', ".*Falling back to 'gelss' driver.",) warnings.filterwarnings('ignore', category=np.VisibleDeprecationWarning) warnings.simplefilter(action="ignore", category=RuntimeWarning) +warnings.simplefilter(action="ignore", category=UserWarning) # (http://www.pytables.org/usersguide/parameter_files.html) tables.parameters.MAX_COLUMNS = 1024 diff --git a/tierpsy/analysis/feat_create/obtainFeaturesHelper.py b/tierpsy/analysis/feat_create/obtainFeaturesHelper.py index 1084d1d3..c1ede531 100755 --- a/tierpsy/analysis/feat_create/obtainFeaturesHelper.py +++ b/tierpsy/analysis/feat_create/obtainFeaturesHelper.py @@ -17,6 +17,8 @@ from tierpsy.analysis.stage_aligment.alignStageMotion import isGoodStageAligment, _h_get_stage_inv from tierpsy.helper.params import read_fps, read_microns_per_pixel, read_ventral_side from tierpsy import AUX_FILES_DIR + + import open_worm_analysis_toolbox as mv # (http://www.pytables.org/usersguide/parameter_files.html) diff --git a/tierpsy/gui/AnalysisProgress_ui.py b/tierpsy/gui/AnalysisProgress_ui.py index 19bb18e4..1a528d4c 100644 --- a/tierpsy/gui/AnalysisProgress_ui.py +++ b/tierpsy/gui/AnalysisProgress_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'AnalysisProgress.ui' # -# Created by: PyQt5 UI code generator 5.6 +# Created by: PyQt5 UI code generator 5.9.2 # # WARNING! All changes made in this file will be lost! diff --git a/tierpsy/gui/BatchProcessing.py b/tierpsy/gui/BatchProcessing.py index fd0c1449..d198bede 100644 --- a/tierpsy/gui/BatchProcessing.py +++ b/tierpsy/gui/BatchProcessing.py @@ -2,7 +2,6 @@ import json from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog, QMessageBox -from PyQt5.QtCore import Qt from tierpsy.processing.processMultipleFilesFun import processMultipleFilesFun from tierpsy.processing.helper import remove_border_checkpoints, get_results_dir, get_masks_dir diff --git a/tierpsy/gui/BatchProcessing_ui.py b/tierpsy/gui/BatchProcessing_ui.py index c3ee1d2f..e73f1c8b 100644 --- a/tierpsy/gui/BatchProcessing_ui.py +++ b/tierpsy/gui/BatchProcessing_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'BatchProcessing.ui' # -# Created by: PyQt5 UI code generator 5.6 +# Created by: PyQt5 UI code generator 5.9.2 # # WARNING! All changes made in this file will be lost! diff --git a/tierpsy/gui/GetAllParameters.py b/tierpsy/gui/GetAllParameters.py index be085257..626b3611 100644 --- a/tierpsy/gui/GetAllParameters.py +++ b/tierpsy/gui/GetAllParameters.py @@ -1,16 +1,13 @@ import sys -import os import json -from collections import OrderedDict from PyQt5.QtWidgets import QDialog, QApplication, QGridLayout, QLabel, \ QSpinBox, QDoubleSpinBox, QCheckBox, QPushButton, QLineEdit, QSizePolicy, \ - QMessageBox, QSpacerItem, QFileDialog, QComboBox, QHBoxLayout, QVBoxLayout -from PyQt5.QtCore import Qt, pyqtSignal, pyqtSlot + QMessageBox, QSpacerItem, QComboBox, QHBoxLayout, QVBoxLayout +from PyQt5.QtCore import Qt, pyqtSignal -from tierpsy.helper.params.tracker_param import TrackerParams, info_param, default_param, valid_options -from tierpsy.gui.HDF5VideoPlayer import LineEditDragDrop +from tierpsy.helper.params.tracker_param import info_param, default_param, valid_options from tierpsy import DFLT_FILTER_FILES # i cannot really add this since i do not have a good way to get the data diff --git a/tierpsy/gui/GetMaskParams.py b/tierpsy/gui/GetMaskParams.py index 26590f7a..e84e69ed 100755 --- a/tierpsy/gui/GetMaskParams.py +++ b/tierpsy/gui/GetMaskParams.py @@ -8,15 +8,13 @@ from PyQt5.QtCore import Qt, QTimer from PyQt5.QtGui import QImage from PyQt5.QtWidgets import QApplication, QMainWindow, \ -QFileDialog, QMessageBox, QCheckBox, QButtonGroup, QLabel +QFileDialog, QMessageBox -from tierpsy.gui.AnalysisProgress import WorkerFunQt, AnalysisProgress from tierpsy.gui.GetAllParameters import GetAllParameters, ParamWidgetMapper, save_params_json from tierpsy.gui.GetMaskParams_ui import Ui_GetMaskParams from tierpsy.gui.HDF5VideoPlayer import LineEditDragDrop, ViewsWithZoom, setChildrenFocusPolicy from tierpsy.analysis.compress.BackgroundSubtractor import BackgroundSubtractor -from tierpsy.processing.ProcessWorker import ProcessWorker from tierpsy.helper.params.tracker_param import TrackerParams, default_param diff --git a/tierpsy/gui/GetMaskParams_ui.py b/tierpsy/gui/GetMaskParams_ui.py index 177442d6..71563d97 100644 --- a/tierpsy/gui/GetMaskParams_ui.py +++ b/tierpsy/gui/GetMaskParams_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'GetMaskParams.ui' # -# Created by: PyQt5 UI code generator 5.10 +# Created by: PyQt5 UI code generator 5.9.2 # # WARNING! All changes made in this file will be lost! diff --git a/tierpsy/gui/HDF5VideoPlayer.py b/tierpsy/gui/HDF5VideoPlayer.py index 338715bc..435ad527 100644 --- a/tierpsy/gui/HDF5VideoPlayer.py +++ b/tierpsy/gui/HDF5VideoPlayer.py @@ -4,7 +4,6 @@ import tables import os import numpy as np -import copy from functools import partial from PyQt5 import QtWidgets, QtCore, QtGui diff --git a/tierpsy/gui/HDF5VideoPlayer_ui.py b/tierpsy/gui/HDF5VideoPlayer_ui.py index a1c7272c..c4e0a9ba 100755 --- a/tierpsy/gui/HDF5VideoPlayer_ui.py +++ b/tierpsy/gui/HDF5VideoPlayer_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'HDF5VideoPlayer.ui' # -# Created by: PyQt5 UI code generator 5.10 +# Created by: PyQt5 UI code generator 5.9.2 # # WARNING! All changes made in this file will be lost! diff --git a/tierpsy/gui/MWTrackerViewer.py b/tierpsy/gui/MWTrackerViewer.py index 1e345d0e..42d4ccf7 100755 --- a/tierpsy/gui/MWTrackerViewer.py +++ b/tierpsy/gui/MWTrackerViewer.py @@ -1,29 +1,22 @@ -import json import os from functools import partial import numpy as np import pandas as pd import tables - import matplotlib -from PyQt5.QtCore import Qt, QPointF, pyqtSignal -from PyQt5.QtGui import QPixmap, QPainter, QFont, QPen, QPolygonF, QColor, QKeySequence -from PyQt5.QtWidgets import QApplication, QMessageBox, QShortcut +from PyQt5.QtCore import Qt, QPointF +from PyQt5.QtGui import QPixmap, QPainter, QFont, QPen, QPolygonF, QColor, QKeySequence, QBrush +from PyQt5.QtWidgets import QApplication, QMessageBox -from tierpsy.analysis.feat_create.obtainFeatures import getWormFeaturesFilt from tierpsy.analysis.ske_create.helperIterROI import getWormROI -from tierpsy.analysis.ske_filt.getFilteredSkels import getValidIndexes -from tierpsy.analysis.ske_filt import get_feat_filt_param -from tierpsy.gui.AnalysisProgress import WorkerFunQt, AnalysisProgress from tierpsy.gui.MWTrackerViewer_ui import Ui_MWTrackerViewer from tierpsy.gui.TrackerViewerAux import TrackerViewerAuxGUI +from tierpsy.gui.PlotFeatures import PlotFeatures from tierpsy.helper.misc import WLAB, save_modified_table -from tierpsy.helper.params import TrackerParams, read_fps -from tierpsy.processing.trackProvenance import getGitCommitHash, execThisPoint class ContourDrawer(TrackerViewerAuxGUI): ''' @@ -58,8 +51,7 @@ def updateSkelFile(self, skeletons_file): else: #change from microns to pixels self.food_coordinates = fid.get_node('/food_cnt_coord')[:] - if self.skel_microns_per_pixel is not None: - self.food_coordinates /= self.skel_microns_per_pixel + self.food_coordinates /= self.microns_per_pixel self.ui.checkBox_showFood.setEnabled(True) @@ -84,234 +76,48 @@ def draw_food_contour(self, image): painter.drawPolyline(p) painter.end() -class MarkersDrawer(TrackerViewerAuxGUI): +class IntensityLabeler(TrackerViewerAuxGUI): def __init__(self, ui): super().__init__(ui) - - - self.timeseries_data = None - self.feat_column = '' - - self.traj_colors = {} - self.n_points_traj = 250 - self.n_colors = 256 - cmap = matplotlib.cm.get_cmap("bwr") - palette = [cmap(x) for x in np.linspace(0, 1, self.n_colors)] - #palette = sns.color_palette("RdBu_r", self.n_colors) - palette = np.round(np.array(palette)*255).astype(np.int) - self.palette = [QColor(*x) for x in palette] - - - self.drawT = {x: self.ui.comboBox_drawType.findText(x , flags=Qt.MatchContains) - for x in ['boxes', 'traj']} - - self.showT = {x: self.ui.comboBox_showLabels.findText(x , flags=Qt.MatchContains) - for x in ['hide', 'all', 'filter']} - - self.ui.comboBox_showLabels.setCurrentIndex(self.showT['all']) - - self.ui.feature_column.currentIndexChanged.connect(self.change_feature) - self.ui.comboBox_drawType.currentIndexChanged.connect(self.updateImage) - self.ui.feat_max_value.valueChanged.connect(self.updateImage) - self.ui.feat_min_value.valueChanged.connect(self.updateImage) - self.ui.is_color_features.stateChanged.connect(self.updateImage) - - self.enable_color_feats(False) - - def updateSkelFile(self, skeletons_file): - super().updateSkelFile(skeletons_file) - - self.ui.feature_column.clear() - self.traj_worm_index_grouped = None - try: - self.traj_colors = {} - with pd.HDFStore(self.skeletons_file, 'r') as ske_file_id: - for field in ['/timeseries_data', '/features_timeseries']: - if field in ske_file_id: - self.timeseries_data = ske_file_id[field] - break - else: - raise KeyError - - if not 'skeleton_id' in self.trajectories_data: - raise KeyError - - self.enable_color_feats(True) - index_cols = ['worm_index', 'timestamp', 'motion_modes', 'skeleton_id'] - columns = [x for x in self.timeseries_data.columns if x not in index_cols] - self.ui.feature_column.addItems(columns) - - except (AttributeError, IOError, KeyError, tables.exceptions.HDF5ExtError): - self.timeseries_data = None - self.enable_color_feats(False) - - self.ui.is_color_features.setChecked(False) - - self._h_find_feat_limits() - - def change_feature(self): - self._h_find_feat_limits() - self.updateImage() - - def _h_find_feat_limits(self): - self.feat_column = str(self.ui.feature_column.currentText()) - - if self.feat_column and self.timeseries_data is not None: - f_max = self.timeseries_data[self.feat_column].max() - f_min = self.timeseries_data[self.feat_column].min() - q1, q2 = self.timeseries_data[self.feat_column].quantile([0.02, 0.98]) - - else: - f_min, f_max, q1, q2 = 0,0,0,0 - - self.ui.feat_max_value.setRange(f_min, f_max) - self.ui.feat_min_value.setRange(f_min, f_max) - self.ui.feat_min_value.setValue(q1) - self.ui.feat_max_value.setValue(q2) - - def enable_color_feats(self, value): - self.ui.feature_column.setEnabled(value) - self.ui.feat_min_value.setEnabled(value) - self.ui.feat_max_value.setEnabled(value) - self.ui.is_color_features.setEnabled(value) - - def _h_assign_feat_color(self, skel_id): - if (skel_id < 0) or (skel_id != skel_id): - return Qt.black - - skel_id = int(skel_id) - - feat_val = self.timeseries_data.loc[skel_id, self.feat_column] - - if (feat_val != feat_val): - return Qt.black - - #this function can and should be optimized - f_min = self.ui.feat_min_value.value() - f_max = self.ui.feat_max_value.value() - - if f_min == f_max: #dummy range in case all the values are the same - f_min, f_max = -1, 1 - elif f_min > f_max: - return Qt.black - - nn = np.clip((feat_val - f_min)/(f_max - f_min), 0, 1) - ind = int(np.round(nn*(self.n_colors-1))) - - col = self.palette[ind] - return col - - - def draw_worm_markers(self, image): - ''' - Draw traj worm trajectory. - ''' - if not self.worm_index_type in self.frame_data or \ - self.ui.comboBox_showLabels.currentIndex() == self.showT['hide']: - return - - painter = QPainter() - painter.begin(image) - - self.fontsize = max(1, max(image.height(), image.width()) // 120) - - penwidth = max(1, max(image.height(), image.width()) // 800) - self.penwidth = penwidth if penwidth % 2 == 1 else penwidth + 1 - - if not self.label_type in self.frame_data: - self.frame_data[self.label_type] = self.wlab['U'] - - for row_id, row_data in self.frame_data.iterrows(): - # check if the coordinates are nan - if np.isnan(row_data['coord_x']) or np.isnan(row_data['coord_y']): - continue - - #if select between showing filtered index or not - if self.ui.comboBox_showLabels.currentIndex() == self.showT['filter'] and not row_data['is_valid_index']: - continue - - cb_ind = self.ui.comboBox_drawType.currentIndex() - if cb_ind == self.drawT['boxes']: - self.draw_boxes(painter, row_data) - elif cb_ind == self.drawT['traj']: - self.draw_trajectories(painter, row_data) - painter.end() - - def _h_get_trajectory(self, worm_index, current_frame): - worm_data = self.traj_worm_index_grouped.get_group(worm_index) - valid_index = worm_data.index[worm_data['frame_number']<= current_frame] - - ini = max(0, valid_index.size - self.frame_step*self.n_points_traj) - traj_ind = valid_index.values[ini::self.frame_step] - traj_data = worm_data.loc[traj_ind] - return traj_data - - - def draw_trajectories(self, painter, row_data): - if self.traj_worm_index_grouped is None: - return - worm_index = int(row_data[self.worm_index_type]) - current_frame = row_data['frame_number'] - traj_data = self._h_get_trajectory(worm_index, current_frame) - traj_data = traj_data.dropna(subset=['coord_x', 'coord_y']) - - x_v = traj_data['coord_x'].round() - y_v = traj_data['coord_y'].round() - points = [QPointF(*map(int, c)) for c in zip(x_v, y_v)] + self.mean_intensity = None + self.ui.intensity_label.setStyleSheet('') #avoid displaying color at the start of the programı - if self.ui.is_color_features.isChecked(): - vec_color = [self._h_assign_feat_color(x) for x in traj_data['skeleton_id'].values] - - pen = QPen() - pen.setWidth(self.penwidth) - for p1, p2, c in zip(points[1:], points[:-1], vec_color): - pen.setColor(c) - painter.setPen(pen) - painter.drawLine(p1, p2) - else: - pol = QPolygonF() - for p in points: - pol.append(p) + def updateVideoFile(self, vfilename): + super().updateVideoFile(vfilename) + if self.fid is not None: + #get mean intensity information. + #Useful for the optogenetic experiments. + try: + mean_int = self.fid.get_node('/mean_intensity')[:] + + #calculate the intensity range and normalize the data. + #I am ignoring any value less than 1. The viewer only works with uint8 data. + + dd = mean_int[mean_int>=1] + if dd.size == 0: + raise ValueError - if not worm_index in self.traj_colors: - self.traj_colors[worm_index] = QColor(*np.random.randint(50, 230, 3)) - col = self.traj_colors[worm_index] - - pen = QPen() - pen.setWidth(self.penwidth) - pen.setColor(col) - painter.setPen(pen) - painter.drawPolyline(pol) + bot = np.min(dd) + top = np.max(dd) + rr = top-bot - def draw_boxes(self, painter, row_data): - ''' - Draw traj worm trajectory. - ''' - worm_index = int(row_data[self.worm_index_type]) - x = int(round(row_data['coord_x'])) - y = int(round(row_data['coord_y'])) - - label_color = self.wlabC[int(row_data[self.label_type])] - if not self.ui.is_color_features.isChecked(): - label_color = self.wlabC[int(row_data[self.label_type])] - else: - skel_id = row_data['skeleton_id'] - label_color = self._h_assign_feat_color(skel_id) - + # if the mean value change is less than 1 (likely continous image do nothing) + if rr <= 1: + raise ValueError - pen = QPen() - pen.setColor(label_color) - pen.setWidth(self.penwidth) - painter.setPen(pen) - painter.setFont(QFont('Decorative', self.fontsize)) + self.mean_intensity = (mean_int-bot)/(rr) - painter.drawText(x, y, str(worm_index)) + except (tables.exceptions.NoSuchNodeError, ValueError): + self.mean_intensity = None + self.ui.intensity_label.setStyleSheet('') - bb = row_data['roi_size'] - painter.drawRect(x - bb / 2, y - bb / 2, bb, bb) + def display_intensity(self): + if self.mean_intensity is not None and self.frame_number < self.mean_intensity.size: + d = int(self.mean_intensity[self.frame_number]*255) + self.ui.intensity_label.setStyleSheet('QLabel {background-color: rgb(%i, %i, %i);}' % (0, 0, d)) -class BlobLabeler(): +class BlobLabeler(TrackerViewerAuxGUI): def __init__(self, ui): super().__init__(ui) self.wlab = WLAB @@ -342,10 +148,8 @@ def enable_label_buttons(self, value): def _h_tag_worm(self, label_ind): if not self.worm_index_type == 'worm_index_manual': return - if self.ui.radioButton_ROI1.isChecked(): - worm_ind = self.worm_index_roi1 - elif self.ui.radioButton_ROI2.isChecked(): - worm_ind = self.worm_index_roi2 + + worm_ind = self.current_worm_index if self.frame_data is None: return @@ -362,7 +166,180 @@ def _h_tag_worm(self, label_ind): self.trajectories_data.loc[good, 'worm_label'] = label_ind self.updateImage() -class TrajectoryEditor(TrackerViewerAuxGUI): + +class ROIWorm(): + def __init__(self, wormCanvas, comboBox_ROI, checkBox_ROI): + self.worm_index = None + self.wormCanvas = wormCanvas + self.comboBox_ROI = comboBox_ROI + self.checkBox_ROI = checkBox_ROI + + self.comboBox_ROI.activated.connect(self.selectROI) + + def selectROI(self, index): + try: + self.worm_index = int(self.comboBox_ROI.itemText(index)) + except ValueError: + self.worm_index = None + + @property + def isDrawSkel(self): + return self.checkBox_ROI.isChecked() + + +class ROIManager(TrackerViewerAuxGUI): + def __init__(self, ui): + + super().__init__(ui) + self.rois = [ + ROIWorm( + self.ui.wormCanvas1, + self.ui.comboBox_ROI1, + self.ui.checkBox_ROI1 + ), + ROIWorm( + self.ui.wormCanvas2, + self.ui.comboBox_ROI2, + self.ui.checkBox_ROI2 + ) + ] + + + self.ui.radioButton_ROI1.setShortcut(QKeySequence(Qt.Key_Up)) + self.ui.radioButton_ROI2.setShortcut(QKeySequence(Qt.Key_Down)) + + + self.ui.checkBox_ROI1.stateChanged.connect(partial(self._updateROI, self.rois[0])) + self.ui.checkBox_ROI2.stateChanged.connect(partial(self._updateROI, self.rois[1])) + + self.ui.comboBox_ROI1.activated.connect(partial(self._updateROI, self.rois[0])) + self.ui.comboBox_ROI2.activated.connect(partial(self._updateROI, self.rois[1])) + + # flags for RW and FF + self.RW, self.FF = 1, 2 + self.ui.pushButton_ROI1_RW.clicked.connect(partial(self.roiRWFF, self.RW, self.rois[0])) + self.ui.pushButton_ROI1_FF.clicked.connect(partial(self.roiRWFF, self.FF, self.rois[0])) + self.ui.pushButton_ROI2_RW.clicked.connect(partial(self.roiRWFF, self.RW, self.rois[1])) + self.ui.pushButton_ROI2_FF.clicked.connect(partial(self.roiRWFF, self.FF, self.rois[1])) + + @property + def current_roi(self): + if self.ui.radioButton_ROI1.isChecked(): + return self.rois[0] + elif self.ui.radioButton_ROI2.isChecked(): + return self.rois[1] + else: + raise ValueError("I shouldn't be here") + + @property + def current_worm_index(self): + return self.current_roi.worm_index + + def updateSkelFile(self, skeletons_file): + for roi in self.rois: + roi.worm_index = None + super().updateSkelFile(skeletons_file) + + def keyPressEvent(self, event): + #MORE SHORTCUTS + # go the the start of end of a trajectory + if event.key() == Qt.Key_BracketLeft: + + self.roiRWFF(self.RW, self.current_roi) + + elif event.key() == Qt.Key_BracketRight: + + self.roiRWFF(self.FF, self.current_roi) + + super().keyPressEvent(event) + + + def updateROIcomboBox(self, roi): + # update valid index for the comboBox + roi.comboBox_ROI.clear() + + if roi.worm_index is not None: + roi.comboBox_ROI.addItem(str(int(roi.worm_index))) + + + for ind in self.frame_data[self.worm_index_type]: + roi.comboBox_ROI.addItem(str(int(ind))) + + if roi.worm_index is None: + w_ind = float(roi.comboBox_ROI.itemText(0)) + roi.worm_index = int(w_ind) + + # function that generalized the updating of the ROI + def _updateROI(self, roi): + + if self.frame_data is None or not self.worm_index_type: + # no trajectories data presented, nothing to do here + roi.wormCanvas.clear() + return + + self.updateROIcomboBox(roi) + + # extract individual worm ROI + good = self.frame_data[self.worm_index_type] == roi.worm_index + row_data = self.frame_data.loc[good].squeeze() + + if row_data.size == 0 or \ + np.isnan(row_data['coord_x']) or \ + np.isnan(row_data['coord_y']): + # invalid data nothing to do here + roi.wormCanvas.clear() + return + + worm_img, roi_corner = getWormROI(self.frame_img, + row_data['coord_x'], + row_data['coord_y'], + row_data['roi_size'] + ) + + roi_ori_size = worm_img.shape + worm_img = np.ascontiguousarray(worm_img) + worm_qimg = self._convert2Qimg(worm_img) + + canvas_size = min(roi.wormCanvas.height(), roi.wormCanvas.width()) + worm_qimg = worm_qimg.scaled( + canvas_size, canvas_size, Qt.KeepAspectRatio) + + worm_qimg = self.drawSkelResult(worm_img, worm_qimg, row_data, roi.isDrawSkel, roi_corner, read_center=False) + + pixmap = QPixmap.fromImage(worm_qimg) + roi.wormCanvas.setPixmap(pixmap) + + def updateROIs(self): + for roi in self.rois: + self._updateROI(roi) + + def clearROIs(self): + for roi in self.rois: + roi.wormCanvas.clear() + + # move to the first or the last frames of a trajectory + def roiRWFF(self, rwff, roi): + + if self.frame_data is None: + return + + # use 1 for rewind RW or 2 of fast forward + good = self.trajectories_data[self.worm_index_type] == roi.worm_index + frames = self.trajectories_data.loc[good, 'frame_number'] + + if frames.size == 0: + return + + if rwff == self.RW: + self.frame_number = frames.min() + elif rwff == self.FF: + self.frame_number = frames.max() + else: + raise ValueError('Invalid rwff value : {} '.format(rwff)) + + self.ui.spinBox_frame.setValue(self.frame_number) + +class TrajectoryEditor(ROIManager): def __init__(self, ui): super().__init__(ui) self.ui.pushButton_join.clicked.connect(self.joinTraj) @@ -381,8 +358,8 @@ def joinTraj(self): or self.frame_data is None: return - worm_ind1 = self.worm_index_roi1 - worm_ind2 = self.worm_index_roi2 + worm_ind1 = self.rois[0].worm_index + worm_ind2 = self.rois[1].worm_index if worm_ind1 == worm_ind2: QMessageBox.critical( @@ -431,19 +408,21 @@ def joinTraj(self): index2, 'worm_label'] = first_row1['worm_label'] self.trajectories_data.loc[index2, 'worm_index_manual'] = worm_ind1 - self.worm_index_roi1 = worm_ind1 - self.worm_index_roi2 = worm_ind1 + self.rois[0].worm_index = worm_ind1 + self.rois[1].worm_index = worm_ind1 + + #this might be too slow. I might need to change it + self.traj_worm_index_grouped = self.trajectories_data.groupby(self.worm_index_type) + self.updateImage() + def splitTraj(self): if self.worm_index_type != 'worm_index_manual' \ or self.frame_data is None: return - if self.ui.radioButton_ROI1.isChecked(): - worm_ind = self.worm_index_roi1 - elif self.ui.radioButton_ROI2.isChecked(): - worm_ind = self.worm_index_roi2 + worm_ind = self.current_worm_index if not worm_ind in self.frame_data['worm_index_manual'].data: QMessageBox.critical( @@ -453,219 +432,332 @@ def splitTraj(self): QMessageBox.Ok) return - last_index = self.trajectories_data['worm_index_manual'].max() + last_index = self.trajectories_data['worm_index_manual'].max() + + new_ind1 = last_index + 1 + new_ind2 = last_index + 2 + + good = self.trajectories_data['worm_index_manual'] == worm_ind + frames = self.trajectories_data.loc[good, 'frame_number'] + frames = frames.sort_values(inplace=False) + + good = frames < self.frame_number + index1 = frames[good].index + index2 = frames[~good].index + self.trajectories_data.ix[index1, 'worm_index_manual'] = new_ind1 + self.trajectories_data.ix[index2, 'worm_index_manual'] = new_ind2 + + self.rois[0].index = new_ind1 + self.rois[1].index = new_ind2 + + #this might be too slow. I might need to change it + self.traj_worm_index_grouped = self.trajectories_data.groupby(self.worm_index_type) + + self.updateImage() + +class FeatureReaderBase(TrackerViewerAuxGUI): + index_cols = ['worm_index', 'timestamp', 'motion_modes', 'skeleton_id'] + valid_fields = ['/timeseries_data', '/features_timeseries'] + + def __init__(self, ui): + self.timeseries_data = None + self.feat_column = '' + + super().__init__(ui) + + def updateSkelFile(self, skeletons_file): + super().updateSkelFile(skeletons_file) + try: + self.traj_colors = {} + with pd.HDFStore(self.skeletons_file, 'r') as ske_file_id: + for field in self.valid_fields: + if field in ske_file_id: + self.timeseries_data = ske_file_id[field] + + if field == '/timeseries_data': + blob_features = ske_file_id['/blob_features'] + blob_features.columns = ['blob_' + x for x in blob_features.columns] + self.timeseries_data = pd.concat((self.timeseries_data, blob_features), axis=1) + break + else: + raise KeyError + + if not len(self.timeseries_data) != len(self.trajectories_data): + ValueError('timeseries_data and trajectories_data does not match. You might be using an old version of featuresN.hdf5') + + + self.valid_features = [x for x in self.timeseries_data.columns if x not in self.index_cols] + + + except (TypeError, AttributeError, IOError, KeyError, tables.exceptions.HDF5ExtError): + self.valid_features = None + self.timeseries_data = None + +class MarkersDrawer(FeatureReaderBase): + def __init__(self, ui): + super().__init__(ui) + + self.traj_colors = {} + self.n_points_traj = 250 + self.n_colors = 256 + cmap = matplotlib.cm.get_cmap("bwr") + palette = [cmap(x) for x in np.linspace(0, 1, self.n_colors)] + #palette = sns.color_palette("RdBu_r", self.n_colors) + palette = np.round(np.array(palette)*255).astype(np.int) + self.palette = [QColor(*x) for x in palette] + + + self.drawT = {x: self.ui.comboBox_drawType.findText(x , flags=Qt.MatchContains) + for x in ['boxes', 'traj']} + + self.showT = {x: self.ui.comboBox_showLabels.findText(x , flags=Qt.MatchContains) + for x in ['hide', 'all', 'filter']} + + self.ui.comboBox_showLabels.setCurrentIndex(self.showT['all']) + + self.ui.comboBox_showLabels.currentIndexChanged.connect(self.updateImage) + self.ui.comboBox_drawType.currentIndexChanged.connect(self.updateImage) + + self.ui.feature_column.currentIndexChanged.connect(self.change_feature) + + + self.ui.feat_max_value.valueChanged.connect(self.updateImage) + self.ui.feat_min_value.valueChanged.connect(self.updateImage) + self.ui.is_color_features.stateChanged.connect(self.updateImage) + + self.enable_color_feats(False) + + + self.ui.spinBox_step.valueChanged.connect(self.updateImage) + + def updateSkelFile(self, skeletons_file): + self.ui.is_color_features.setChecked(False) + + super().updateSkelFile(skeletons_file) + + self.ui.feature_column.clear() + if self.timeseries_data is None: + #no feature data + self.enable_color_feats(False) + else: + self.enable_color_feats(True) + self.ui.feature_column.addItems(self.valid_features) + self._h_find_feat_limits() + + def change_feature(self): + self._h_find_feat_limits() + self.updateImage() - new_ind1 = last_index + 1 - new_ind2 = last_index + 2 + def _h_find_feat_limits(self): + self.feat_column = str(self.ui.feature_column.currentText()) + + if self.feat_column and self.timeseries_data is not None: + f_max = self.timeseries_data[self.feat_column].max() + f_min = self.timeseries_data[self.feat_column].min() + q1, q2 = self.timeseries_data[self.feat_column].quantile([0.02, 0.98]) + + else: + f_min, f_max, q1, q2 = 0,0,0,0 - good = self.trajectories_data['worm_index_manual'] == worm_ind - frames = self.trajectories_data.loc[good, 'frame_number'] - frames = frames.sort_values(inplace=False) + self.ui.feat_max_value.setRange(f_min, f_max) + self.ui.feat_min_value.setRange(f_min, f_max) + self.ui.feat_min_value.setValue(q1) + self.ui.feat_max_value.setValue(q2) - good = frames < self.frame_number - index1 = frames[good].index - index2 = frames[~good].index - self.trajectories_data.ix[index1, 'worm_index_manual'] = new_ind1 - self.trajectories_data.ix[index2, 'worm_index_manual'] = new_ind2 + + def enable_color_feats(self, value): + self.ui.feature_column.setEnabled(value) + self.ui.feat_min_value.setEnabled(value) + self.ui.feat_max_value.setEnabled(value) + self.ui.is_color_features.setEnabled(value) - self.worm_index_roi1 = new_ind1 - self.worm_index_roi2 = new_ind2 - self.updateImage() -class ROIManager(TrackerViewerAuxGUI): - def __init__(self, ui): - super().__init__(ui) + def _h_assign_feat_color(self, irow): - self.worm_index_roi1 = 1 - self.worm_index_roi2 = 1 + feat_val = self.timeseries_data.loc[irow, self.feat_column] - self.ui.comboBox_ROI1.activated.connect(self.selectROI1) - self.ui.comboBox_ROI2.activated.connect(self.selectROI2) - self.ui.checkBox_ROI1.stateChanged.connect( - partial(self.updateROIcanvasN, 1)) - self.ui.checkBox_ROI2.stateChanged.connect( - partial(self.updateROIcanvasN, 2)) + if (feat_val != feat_val): + return Qt.black + + #this function can and should be optimized + f_min = self.ui.feat_min_value.value() + f_max = self.ui.feat_max_value.value() + + if f_min == f_max: #dummy range in case all the values are the same + f_min, f_max = -1, 1 + elif f_min > f_max: + return Qt.black - # flags for RW and FF - self.RW, self.FF = 1, 2 - self.ui.pushButton_ROI1_RW.clicked.connect( - partial(self.roiRWFF, self.RW, 1)) - self.ui.pushButton_ROI1_FF.clicked.connect( - partial(self.roiRWFF, self.FF, 1)) - self.ui.pushButton_ROI2_RW.clicked.connect( - partial(self.roiRWFF, self.RW, 2)) - self.ui.pushButton_ROI2_FF.clicked.connect( - partial(self.roiRWFF, self.FF, 2)) + nn = np.clip((feat_val - f_min)/(f_max - f_min), 0, 1) + ind = int(np.round(nn*(self.n_colors-1))) + + col = self.palette[ind] + return col - self.ui.radioButton_ROI1.setShortcut(QKeySequence(Qt.Key_Up)) - self.ui.radioButton_ROI2.setShortcut(QKeySequence(Qt.Key_Down)) - def keyPressEvent(self, event): - #MORE SHORTCUTS - # go the the start of end of a trajectory - if event.key() == Qt.Key_BracketLeft: - current_roi = 1 if self.ui.radioButton_ROI1.isChecked() else 2 - self.roiRWFF(current_roi, self.RW) - #[ << - elif event.key() == Qt.Key_BracketRight: - current_roi = 1 if self.ui.radioButton_ROI1.isChecked() else 2 - self.roiRWFF(current_roi, self.FF) + def draw_worm_markers(self, image): + ''' + Draw traj worm trajectory. + ''' + if not self.worm_index_type in self.frame_data or \ + self.ui.comboBox_showLabels.currentIndex() == self.showT['hide']: + return - super().keyPressEvent(event) - - # update zoomed ROI - def selectROI1(self, index): - try: - self.worm_index_roi1 = int(self.ui.comboBox_ROI1.itemText(index)) - except ValueError: - self.worm_index_roi1 = -1 + if hasattr(self, 'current_worm_index'): + current_index = self.current_worm_index + else: + current_index = -1 + + painter = QPainter() + painter.begin(image) - self.updateROIcanvasN(1) + self.fontsize = max(1, max(image.height(), image.width()) // 120) + + penwidth = max(1, max(image.height(), image.width()) // 800) + self.penwidth = penwidth if penwidth % 2 == 1 else penwidth + 1 - def selectROI2(self, index): - try: - self.worm_index_roi2 = int(self.ui.comboBox_ROI2.itemText(index)) - except ValueError: - self.worm_index_roi2 = -1 - self.updateROIcanvasN(2) + if not self.label_type in self.frame_data: + self.frame_data[self.label_type] = self.wlab['U'] - def updateROIcanvasN(self, n_canvas): - if n_canvas == 1: - self.updateROIcanvas( - self.ui.wormCanvas1, - self.worm_index_roi1, - self.ui.comboBox_ROI1, - self.ui.checkBox_ROI1.isChecked()) - elif n_canvas == 2: - self.updateROIcanvas( - self.ui.wormCanvas2, - self.worm_index_roi2, - self.ui.comboBox_ROI2, - self.ui.checkBox_ROI2.isChecked()) + for row_id, row_data in self.frame_data.iterrows(): + # check if the coordinates are nan + if np.isnan(row_data['coord_x']) or np.isnan(row_data['coord_y']): + continue - # function that generalized the updating of the ROI - def updateROIcanvas( - self, - wormCanvas, - worm_index_roi, - comboBox_ROI, - isDrawSkel): + #if select between showing filtered index or not + if self.ui.comboBox_showLabels.currentIndex() == self.showT['filter']: + continue - if self.frame_data is None or not self.worm_index_type: - # no trajectories data presented, nothing to do here - wormCanvas.clear() - return + is_current_index = current_index == int(row_data[self.worm_index_type]) - # update valid index for the comboBox - comboBox_ROI.clear() - comboBox_ROI.addItem(str(worm_index_roi)) - - for ind in self.frame_data[self.worm_index_type]: - comboBox_ROI.addItem(str(ind)) + cb_ind = self.ui.comboBox_drawType.currentIndex() + if cb_ind == self.drawT['boxes']: + self.draw_boxes(painter, row_id, row_data, is_current_index) + elif cb_ind == self.drawT['traj']: + self.draw_trajectories(painter, row_data, is_current_index) - # extract individual worm ROI - good = self.frame_data[self.worm_index_type] == worm_index_roi - row_data = self.frame_data.loc[good].squeeze() + + painter.end() + + def _h_get_trajectory(self, worm_index, current_frame): + worm_data = self.traj_worm_index_grouped.get_group(worm_index) + valid_index = worm_data.index[worm_data['frame_number']<= current_frame] - if row_data.size == 0 or \ - np.isnan(row_data['coord_x']) or \ - np.isnan(row_data['coord_y']): - # invalid data nothing to do here - wormCanvas.clear() + ini = max(0, valid_index.size - self.frame_step*self.n_points_traj) + traj_ind = valid_index.values[ini::self.frame_step] + traj_data = worm_data.loc[traj_ind] + return traj_data + + + def draw_trajectories(self, painter, row_data, is_current_index): + if self.traj_worm_index_grouped is None: return + worm_index = int(row_data[self.worm_index_type]) + current_frame = row_data['frame_number'] + traj_data = self._h_get_trajectory(worm_index, current_frame) + traj_data = traj_data.dropna(subset=['coord_x', 'coord_y']) - worm_img, roi_corner = getWormROI(self.frame_img, - row_data['coord_x'], - row_data['coord_y'], - row_data['roi_size'] - ) - - roi_ori_size = worm_img.shape - worm_img = np.ascontiguousarray(worm_img) - worm_qimg = self._convert2Qimg(worm_img) + x_v = traj_data['coord_x'].round() + y_v = traj_data['coord_y'].round() + points = [QPointF(*map(int, c)) for c in zip(x_v, y_v)] - canvas_size = min(wormCanvas.height(), wormCanvas.width()) - worm_qimg = worm_qimg.scaled( - canvas_size, canvas_size, Qt.KeepAspectRatio) + if self.ui.is_color_features.isChecked(): - worm_qimg = self.drawSkelResult(worm_img, worm_qimg, row_data, - isDrawSkel, roi_corner, read_center=False) - - pixmap = QPixmap.fromImage(worm_qimg) - wormCanvas.setPixmap(pixmap) + vec_color = [self._h_assign_feat_color(x) for x in traj_data.index] + + pen = QPen() + pen.setWidth(self.penwidth) + for p1, p2, c in zip(points[1:], points[:-1], vec_color): + pen.setColor(c) + painter.setPen(pen) + painter.drawLine(p1, p2) + else: + pol = QPolygonF() + for p in points: + pol.append(p) - # move to the first or the last frames of a trajectory - def roiRWFF(self, rwff, n_roi=None): + if not worm_index in self.traj_colors: + self.traj_colors[worm_index] = QColor(*np.random.randint(50, 230, 3)) + col = self.traj_colors[worm_index] + + pen = QPen() + pen.setWidth(self.penwidth) + pen.setColor(col) + painter.setPen(pen) + painter.drawPolyline(pol) - if self.frame_data is None: - return - if n_roi is None: - n_roi = 1 if self.ui.radioButton_ROI1.isChecked() else 2 - if n_roi == 1: - worm_ind = self.worm_index_roi1 - elif n_roi == 2: - worm_ind = self.worm_index_roi2 + def draw_boxes(self, painter, row_id, row_data, is_current_index): + ''' + Draw traj worm trajectory. + ''' + worm_index = int(row_data[self.worm_index_type]) + x = int(round(row_data['coord_x'])) + y = int(round(row_data['coord_y'])) + + label_color = self.wlabC[int(row_data[self.label_type])] + if not self.ui.is_color_features.isChecked(): + label_color = self.wlabC[int(row_data[self.label_type])] else: - raise ValueError('Invalid n_roi value : {} '.format(n_roi)) + label_color = self._h_assign_feat_color(row_id) + - # use 1 for rewind RW or 2 of fast forward - good = self.trajectories_data[self.worm_index_type] == worm_ind - frames = self.trajectories_data.loc[good, 'frame_number'] + pen = QPen() + pen.setColor(label_color) + pen.setWidth(self.penwidth) + painter.setPen(pen) + painter.setFont(QFont('Decorative', self.fontsize)) - if frames.size == 0: - return + painter.drawText(x, y, str(worm_index)) - if rwff == self.RW: - self.frame_number = frames.min() - elif rwff == self.FF: - self.frame_number = frames.max() - else: - raise ValueError('Invalid rwff value : {} '.format(rwff)) + bb = row_data['roi_size'] + painter.drawRect(x - bb / 2, y - bb / 2, bb, bb) - self.ui.spinBox_frame.setValue(self.frame_number) + if is_current_index: + + b_size = bb//5 + offset = bb/2 - b_size + painter.fillRect(x + offset, y + offset, b_size, b_size, QBrush(label_color)) -class IntensityLabeler(TrackerViewerAuxGUI): - def __init__(self, ui): - super().__init__(ui) - self.mean_intensity = None - self.ui.intensity_label.setStyleSheet('') #avoid displaying color at the start of the programı +class PlotComunicator(FeatureReaderBase, ROIManager): + def __init__(self, ui=''): + super().__init__(ui) + self.ui.pushButton_plot.clicked.connect(self.show_plot) + self.plotter = None - def updateVideoFile(self, vfilename): - super().updateVideoFile(vfilename) - if self.fid is not None: - #get mean intensity information. - #Useful for the optogenetic experiments. - try: - mean_int = self.fid.get_node('/mean_intensity')[:] - - #calculate the intensity range and normalize the data. - #I am ignoring any value less than 1. The viewer only works with uint8 data. - - dd = mean_int[mean_int>=1] - if dd.size == 0: - raise ValueError + def closePrev(self): + if self.plotter is not None: + self.plotter.close() + self.plotter = None - bot = np.min(dd) - top = np.max(dd) - rr = top-bot + def updateSkelFile(self, skeletons_file): + super().updateSkelFile(skeletons_file) + self.closePrev() + if self.timeseries_data is None: + self.ui.pushButton_plot.setEnabled(False) + else: + self.ui.pushButton_plot.setEnabled(True) - # if the mean value change is less than 1 (likely continous image do nothing) - if rr <= 1: - raise ValueError + def show_plot(self): + self.closePrev() - self.mean_intensity = (mean_int-bot)/(rr) + self.plotter = PlotFeatures(self.skeletons_file, + self.timeseries_data, + self.traj_worm_index_grouped, + self.time_units, + self.xy_units, + self.fps, + parent = self) - except (tables.exceptions.NoSuchNodeError, ValueError): - self.mean_intensity = None - self.ui.intensity_label.setStyleSheet('') + self.plotter.show() + self.update_plot() - def display_intensity(self): - if self.mean_intensity is not None and self.frame_number < self.mean_intensity.size: - d = int(self.mean_intensity[self.frame_number]*255) - self.ui.intensity_label.setStyleSheet('QLabel {background-color: rgb(%i, %i, %i);}' % (0, 0, d)) + def update_plot(self): + if self.plotter: + self.plotter.plot(self.current_worm_index, self.feat_column) -class MWTrackerViewer_GUI(MarkersDrawer, ContourDrawer, BlobLabeler, IntensityLabeler, ROIManager, TrajectoryEditor): +class MWTrackerViewer_GUI( MarkersDrawer, PlotComunicator, + ContourDrawer, BlobLabeler, IntensityLabeler, TrajectoryEditor): def __init__(self, ui='', argv=''): if not ui: @@ -683,14 +775,16 @@ def __init__(self, ui='', argv=''): self.frame_data = None - self.ui.comboBox_labelType.currentIndexChanged.connect( - self.selectWormIndexType) + self.ui.comboBox_labelType.currentIndexChanged.connect(self.selectWormIndexType) self.ui.pushButton_save.clicked.connect(self.saveData) # select worm ROI when doubleclick a worm self.mainImage._canvas.mouseDoubleClickEvent = self.selectWorm + self.ui.comboBox_ROI1.activated.connect(self.update_plot) + self.ui.comboBox_ROI2.activated.connect(self.update_plot) + def saveData(self): '''save data from manual labelling. pytables saving format is more convenient than pandas''' @@ -718,49 +812,25 @@ def updateSkelFile(self, skeletons_file): self.updateImage() return - #correct the index in case it was given before as worm_index_N + #correct the `worm_index_N` to the actual name `worm_index_manual` if 'worm_index_N' in self.trajectories_data: self.trajectories_data = self.trajectories_data.rename( columns={'worm_index_N': 'worm_index_manual'}) + #if this is really a trajectories_data not (_features.hdf5) add `worm_index_manual` if it does not exists if not 'worm_index_manual' in self.trajectories_data and not self.is_estimated_trajectories_data: self.trajectories_data['worm_label'] = self.wlab['U'] self.trajectories_data['worm_index_manual'] = self.trajectories_data['worm_index_joined'] - + + #deactiate the save option if we are dealing with estimated data... + self.ui.pushButton_save.setEnabled(not self.is_estimated_trajectories_data) + + #add this column if it does not exist if not 'has_skeleton' in self.trajectories_data: self.trajectories_data['has_skeleton'] = self.trajectories_data['skeleton_id'] >= 0 self.updateWormIndexTypeMenu() - - #read filter skeletons parameters - with tables.File(self.skeletons_file, 'r') as skel_fid: - - # if any of this fields is missing load the default parameters - self.param_default = TrackerParams() - try: - ss = skel_fid.get_node('/provenance_tracking/ske_filt').read() - ss = json.loads(ss.decode("utf-8")) - saved_func_args = json.loads(ss['func_arguments']) - - self.feat_filt_param = { - x: saved_func_args[x] for x in [ - 'min_num_skel', - 'bad_seg_thresh', - 'min_displacement']} - except (KeyError, tables.exceptions.NoSuchNodeError): - self.feat_filt_param = get_feat_filt_param(self.param_default.p_dict) - - self.expected_fps = read_fps(self.vfilename) - - #TODO: THIS IS NOT REALLY THE INDEX I USE IN THE FEATURES FILES. I NEED A MORE CLEVER WAY TO SEE WHAT I AM REALLY FILTERING. - dd = {x:self.feat_filt_param[x] for x in ['min_num_skel', 'bad_seg_thresh', 'min_displacement']} - good_traj_index, _ = getValidIndexes(self.trajectories_data, **dd, worm_index_type=self.worm_index_type) - self.trajectories_data['is_valid_index'] = self.trajectories_data[self.worm_index_type].isin(good_traj_index) - - self.traj_time_grouped = self.trajectories_data.groupby('frame_number') - self.traj_worm_index_grouped = self.trajectories_data.groupby(self.worm_index_type) - self.updateImage() def updateWormIndexTypeMenu(self): @@ -819,12 +889,10 @@ def updateImage(self): self.draw_worm_markers(self.frame_qimg) self.draw_food_contour(self.frame_qimg) - self.updateROIcanvasN(1) - self.updateROIcanvasN(2) + self.updateROIs() else: - self.ui.wormCanvas1.clear() - self.ui.wormCanvas2.clear() + self.clearROIs() # create the pixmap for the label self.mainImage.setPixmap(self.frame_qimg) @@ -846,22 +914,33 @@ def selectWorm(self, event): good_row = self.frame_data.loc[ind] if np.sqrt(R.loc[ind]) < good_row['roi_size']: - worm_ind = int(good_row[self.worm_index_type]) - - if self.ui.radioButton_ROI1.isChecked(): - self.worm_index_roi1 = worm_ind - self.updateROIcanvasN(1) + self.current_roi.worm_index = int(good_row[self.worm_index_type]) + self.update_plot() - elif self.ui.radioButton_ROI2.isChecked(): - self.worm_index_roi2 = worm_ind - self.updateROIcanvasN(2) + self.updateImage() + def joinTraj(self): + super().joinTraj() + self.update_plot() + + def splitTraj(self): + super().splitTraj() + self.update_plot() + + def change_feature(self): + super().change_feature() + self.update_plot() if __name__ == '__main__': import sys app = QApplication(sys.argv) - ui = MWTrackerViewer_GUI(argv=sys.argv) - ui.show() + main = MWTrackerViewer_GUI(argv=sys.argv) + + mask_file = '/Users/avelinojaver/OneDrive - Imperial College London/tierpsy_examples/mutliworm_example/BRC20067_worms10_food1-10_Set2_Pos5_Ch2_02062017_121709.hdf5' + #mask_file = '/Volumes/rescomp1/data/WormData/screenings/Pratheeban/First_Set/MaskedVideos/Old_Adult/16_07_22/W3_ELA_1.0_Ch1_22072016_131149.hdf5' + main.updateVideoFile(mask_file) + + main.show() sys.exit(app.exec_()) diff --git a/tierpsy/gui/MWTrackerViewer_ui.py b/tierpsy/gui/MWTrackerViewer_ui.py index ce051959..669f040e 100755 --- a/tierpsy/gui/MWTrackerViewer_ui.py +++ b/tierpsy/gui/MWTrackerViewer_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'MWTrackerViewer.ui' # -# Created by: PyQt5 UI code generator 5.10 +# Created by: PyQt5 UI code generator 5.9.2 # # WARNING! All changes made in this file will be lost! @@ -11,7 +11,7 @@ class Ui_MWTrackerViewer(object): def setupUi(self, MWTrackerViewer): MWTrackerViewer.setObjectName("MWTrackerViewer") - MWTrackerViewer.resize(1170, 855) + MWTrackerViewer.resize(1081, 845) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -177,9 +177,9 @@ def setupUi(self, MWTrackerViewer): self.pushButton_B = QtWidgets.QPushButton(self.centralWidget) self.pushButton_B.setObjectName("pushButton_B") self.gridLayout.addWidget(self.pushButton_B, 3, 10, 1, 1) - self.checkBox_showFood = QtWidgets.QCheckBox(self.centralWidget) - self.checkBox_showFood.setObjectName("checkBox_showFood") - self.gridLayout.addWidget(self.checkBox_showFood, 2, 8, 1, 1) + self.pushButton_plot = QtWidgets.QPushButton(self.centralWidget) + self.pushButton_plot.setObjectName("pushButton_plot") + self.gridLayout.addWidget(self.pushButton_plot, 2, 7, 1, 1) self.gridLayout_4.addLayout(self.gridLayout, 1, 0, 1, 1) self.gridLayout_3 = QtWidgets.QGridLayout() self.gridLayout_3.setSizeConstraint(QtWidgets.QLayout.SetMinimumSize) @@ -318,10 +318,13 @@ def setupUi(self, MWTrackerViewer): self.pushButton_split.setSizePolicy(sizePolicy) self.pushButton_split.setObjectName("pushButton_split") self.gridLayout_3.addWidget(self.pushButton_split, 4, 15, 1, 2) + self.checkBox_showFood = QtWidgets.QCheckBox(self.centralWidget) + self.checkBox_showFood.setObjectName("checkBox_showFood") + self.gridLayout_3.addWidget(self.checkBox_showFood, 4, 6, 1, 1) self.gridLayout_4.addLayout(self.gridLayout_3, 0, 0, 1, 1) MWTrackerViewer.setCentralWidget(self.centralWidget) self.menuBar = QtWidgets.QMenuBar(MWTrackerViewer) - self.menuBar.setGeometry(QtCore.QRect(0, 0, 1170, 22)) + self.menuBar.setGeometry(QtCore.QRect(0, 0, 1081, 22)) self.menuBar.setObjectName("menuBar") MWTrackerViewer.setMenuBar(self.menuBar) self.mainToolBar = QtWidgets.QToolBar(MWTrackerViewer) @@ -352,7 +355,7 @@ def retranslateUi(self, MWTrackerViewer): self.pushButton_U.setText(_translate("MWTrackerViewer", "Undefined")) self.pushButton_W.setText(_translate("MWTrackerViewer", "Single Worms")) self.pushButton_B.setText(_translate("MWTrackerViewer", "Bad")) - self.checkBox_showFood.setText(_translate("MWTrackerViewer", "Show Food Contour")) + self.pushButton_plot.setText(_translate("MWTrackerViewer", "PLOT")) self.pushButton_ROI2_RW.setText(_translate("MWTrackerViewer", "<<")) self.pushButton_ROI2_FF.setText(_translate("MWTrackerViewer", ">>")) self.comboBox_showLabels.setItemText(0, _translate("MWTrackerViewer", "hide labels")) @@ -368,5 +371,6 @@ def retranslateUi(self, MWTrackerViewer): self.checkBox_ROI1.setText(_translate("MWTrackerViewer", "Skeleton")) self.checkBox_ROI2.setText(_translate("MWTrackerViewer", "Skeleton")) self.pushButton_split.setText(_translate("MWTrackerViewer", "Split Trajectory")) + self.checkBox_showFood.setText(_translate("MWTrackerViewer", "Show Food Contour")) self.toolBar.setWindowTitle(_translate("MWTrackerViewer", "toolBar")) diff --git a/tierpsy/gui/PlotFeatures.py b/tierpsy/gui/PlotFeatures.py new file mode 100644 index 00000000..8ca36bf8 --- /dev/null +++ b/tierpsy/gui/PlotFeatures.py @@ -0,0 +1,257 @@ +from tierpsy.gui.TrackerViewerAux import TrackerViewerAuxGUI +from tierpsy.helper.misc import remove_ext + +from collections import OrderedDict +import tables +import pandas as pd + +from PyQt5.QtWidgets import QDialog, QApplication, QPushButton, QComboBox, QVBoxLayout, QHBoxLayout, QFileDialog + +from matplotlib.backends.backend_qt5agg import FigureCanvas +from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar +from matplotlib.figure import Figure +import matplotlib.pyplot as plt + +#plt.style.use(['default', 'fast']) +#plt.style.use(['ggplot', 'fast']) +#plt.style.use(['fivethirtyeight', 'fast']) +plt.style.use(['seaborn', 'fast']) + +class PlotFeatures(QDialog): + def __init__(self, + features_file = '', + timeseries_data = None, + traj_worm_index_grouped = None, + time_units = None, + xy_units = None, + fps = None, + parent = None): + + super().__init__(parent) + #self.setWindowFlags(Qt.WindowStaysOnTopHint) + self.plot_funcs = OrderedDict ([ + ('Single Trajectory, Time Series', self._plot_single_timeseries), + ('All Trajectories, Time Series', self._plot_all_timeseries), + ('Single Trajectory, Histogram', self._plot_single_histogram), + ('All Trajectories, Histogram', self._plot_all_histogram) + ]) + + self.worm_index = None + self.feature = None + self.ts_bin = 5 + + self.timeseries_data = timeseries_data + self.traj_worm_index_grouped = traj_worm_index_grouped + self.time_units = time_units + self.xy_units = xy_units + self.fps = fps + self.root_file = remove_ext(features_file) + + self.df2save = pd.DataFrame([]) + self.save_postfix = '' + + self.button_save_csv = QPushButton('Write to csv') + self.button_save_fig = QPushButton('Save Figure') + self.combobox_plot_types = QComboBox() + self.combobox_plot_types.addItems(self.plot_funcs.keys()) + self.combobox_plot_types.currentIndexChanged.connect(lambda x : self.plot()) + + + self.button_save_csv.clicked.connect(self.save_csv) + self.button_save_fig.clicked.connect(self.save_fig) + + # a figure instance to plot on + self.figure = Figure(figsize=(8, 4)) + + # this is the Canvas Widget that displays the `figure` + # it takes the `figure` instance as a parameter to __init__ + self.canvas = FigureCanvas(self.figure) + self._ax = self.canvas.figure.subplots() + + # this is the Navigation widget + # it takes the Canvas widget and a parent + self.toolbar = NavigationToolbar(self.canvas, self) + + # set the layout + layout = QVBoxLayout() + layout.addWidget(self.toolbar) + layout.addWidget(self.canvas) + + layout.addWidget(self.combobox_plot_types) + + layout_menu = QHBoxLayout() + layout_menu.addWidget(self.button_save_csv) + layout_menu.addWidget(self.button_save_fig) + + layout.addLayout(layout_menu) + + self.setLayout(layout) + + def _get_save_name(self, ext): + fullname = '{}_{}{}'.format(self.root_file, self.save_postfix ,ext) + + dialog = QFileDialog() + + dialog.selectFile(fullname) + dialog.setOptions(QFileDialog.DontUseNativeDialog) + dialog.setFileMode(QFileDialog.AnyFile) + dialog.setAcceptMode(QFileDialog.AcceptSave) + dialog.setNameFilters(['*' + ext]) + ret = dialog.exec(); + if (ret == QDialog.Accepted): + fullname = dialog.selectedFiles()[0] + return fullname + + def save_csv(self): + fullname = self._get_save_name('.csv') + self.df2save.to_csv(fullname, index=False) + + def save_fig(self): + fullname = self._get_save_name('.pdf') + self.figure.savefig(fullname) + + def plot(self, worm_index = None, feature = None): + + if worm_index is None: + worm_index = self.worm_index + else: + self.worm_index = worm_index + + if feature is None: + feature = self.feature + else: + self.feature = feature + + key = self.combobox_plot_types.currentText() + func = self.plot_funcs[key] + + if 'All' in key: + func(feature) + else: + func(worm_index, feature) + + + def feature_label(self, feature): + lab = feature.replace('_' , ' ').title() + return lab + + def _plot_single_timeseries(self, worm_index, feature): + worm_data = self.traj_worm_index_grouped.get_group(worm_index) + + #valid_index = worm_data['skeleton_id'] + #valid_index = valid_index[valid_index>=0] + feat_val = self.timeseries_data.loc[worm_data.index] + + self._ax.clear() + + self._ax.set_xlabel('Time [{}]'.format(self.time_units)) + self._ax.set_ylabel(self.feature_label(feature)) + self._ax.set_title('W: {}'.format(worm_index)) + + tt = feat_val['timestamp']/self.fps + self._ax.plot(tt, feat_val[feature]) + + + self.figure.tight_layout() + + self._ax.figure.canvas.draw() + + + self.df2save = pd.DataFrame({'time':tt, feature:feat_val[feature]}) + self.save_postfix = 'TS_W{}_{}'.format(worm_index, feature) + + def _plot_all_timeseries(self, feature): + self._ax.clear() + + self._ax.set_xlabel('Time [{}]'.format(self.time_units)) + self._ax.set_ylabel(self.feature_label(feature)) + self._ax.set_title('All Trajectories') + + + self.timeseries_data['timestamp_s'] = self.timeseries_data['timestamp']/self.fps + #self._ax.plot(feat_val['timestamp'], feat_val[feature]) + for _, worm_data in self.traj_worm_index_grouped: + valid_index = worm_data['skeleton_id'] + valid_index = valid_index[valid_index>=0] + feat_val = self.timeseries_data.loc[valid_index] + + self._ax.plot(feat_val['timestamp_s'], feat_val[feature], alpha=0.4) + + self.timeseries_data['timestamp_binned'] = round(self.timeseries_data['timestamp_s']/self.ts_bin) + + agg_data = self.timeseries_data[['timestamp_binned', feature]].groupby('timestamp_binned').agg('median')[feature] + xx = agg_data.index*self.ts_bin + yy = agg_data.values + + self._ax.plot(xx, yy, '-', lw=2, color='black') + + self.figure.tight_layout() + + self._ax.figure.canvas.draw() + + self.df2save = pd.DataFrame({'time_bin':xx, 'median_' + feature : yy }) + self.save_postfix = 'TS_ALL_{}'.format(feature) + + def _plot_single_histogram(self, worm_index, feature): + worm_data = self.traj_worm_index_grouped.get_group(worm_index) + valid_index = worm_data['skeleton_id'] + valid_index = valid_index[valid_index>=0] + + feat_val = self.timeseries_data.loc[valid_index].dropna() + + self._ax.clear() + + + self._ax.set_xlabel(self.feature_label(feature)) + self._ax.set_ylabel('Counts') + self._ax.set_title('W: {}'.format(worm_index)) + + counts, edges, _ = self._ax.hist(feat_val[feature]) + bins = edges[:-1] + (edges[1] - edges[0])/2 + + self.figure.tight_layout() + + self._ax.figure.canvas.draw() + + self.df2save = pd.DataFrame({feature + '_bin': bins, 'counts': counts }) + self.save_postfix = 'HIST_W{}_{}'.format(worm_index, feature) + + def _plot_all_histogram(self, feature): + self._ax.clear() + + self._ax.set_xlabel(self.feature_label(feature)) + self._ax.set_ylabel('Counts') + self._ax.set_title('All Trajectories') + + counts, edges, _ = self._ax.hist(self.timeseries_data[feature].dropna(), 100) + bins = edges[:-1] + (edges[1] - edges[0])/2 + + self.figure.tight_layout() + + self._ax.figure.canvas.draw() + + self.df2save = pd.DataFrame({feature + '_bin': bins, 'counts': counts }) + self.save_postfix = 'HIST_ALL_{}'.format(feature) + + + +if __name__ == '__main__': + import sys + app = QApplication(sys.argv) + main = FeatureReaderBase(ui='') + + #skel_file = '/Users/avelinojaver/OneDrive - Imperial College London/tierpsy_examples/mutliworm_example/BRC20067_worms10_food1-10_Set2_Pos5_Ch2_02062017_121709_featuresN.hdf5' + mask_file = '/Users/avelinojaver/OneDrive - Imperial College London/tierpsy_examples/mutliworm_example/BRC20067_worms10_food1-10_Set2_Pos5_Ch2_02062017_121709.hdf5' + main.updateVideoFile(mask_file) + + plotter = PlotFeatures(main.skeletons_file, + main.timeseries_data, + main.traj_worm_index_grouped, + main.time_units, + main.xy_units, + main.fps) + plotter.show() + plotter.plot(1, 'length') + + + sys.exit(plotter.exec_()) \ No newline at end of file diff --git a/tierpsy/gui/ProgressDialog_ui.py b/tierpsy/gui/ProgressDialog_ui.py deleted file mode 100644 index 439102b1..00000000 --- a/tierpsy/gui/ProgressDialog_ui.py +++ /dev/null @@ -1,7 +0,0 @@ -# -*- coding: utf-8 -*- - -# Form implementation generated from reading ui file 'ProgressDialog.ui' -# -# Created by: PyQt5 UI code generator 5.6 -# -# WARNING! All changes made in this file will be lost! diff --git a/tierpsy/gui/QtDesignerFiles/MWTrackerViewer.ui b/tierpsy/gui/QtDesignerFiles/MWTrackerViewer.ui index 7749f94d..15021632 100755 --- a/tierpsy/gui/QtDesignerFiles/MWTrackerViewer.ui +++ b/tierpsy/gui/QtDesignerFiles/MWTrackerViewer.ui @@ -6,8 +6,8 @@ 0 0 - 1170 - 855 + 1081 + 845 @@ -298,10 +298,10 @@ - - + + - Show Food Contour + PLOT @@ -583,6 +583,13 @@ + + + + Show Food Contour + + + @@ -594,7 +601,7 @@ 0 0 - 1170 + 1081 22 diff --git a/tierpsy/gui/QtDesignerFiles/Makefile b/tierpsy/gui/QtDesignerFiles/Makefile index cc631771..7f563e77 100755 --- a/tierpsy/gui/QtDesignerFiles/Makefile +++ b/tierpsy/gui/QtDesignerFiles/Makefile @@ -5,4 +5,5 @@ all: pyuic5 SWTrackerViewer.ui -o ../SWTrackerViewer_ui.py pyuic5 GetMaskParams.ui -o ../GetMaskParams_ui.py pyuic5 AnalysisProgress.ui -o ../AnalysisProgress_ui.py - pyuic5 BatchProcessing.ui -o ../BatchProcessing_ui.py \ No newline at end of file + pyuic5 BatchProcessing.ui -o ../BatchProcessing_ui.py + pyuic5 Summarizer.ui -o ../Summarizer_ui.py diff --git a/tierpsy/gui/QtDesignerFiles/Summarizer.ui b/tierpsy/gui/QtDesignerFiles/Summarizer.ui new file mode 100644 index 00000000..bc76edb1 --- /dev/null +++ b/tierpsy/gui/QtDesignerFiles/Summarizer.ui @@ -0,0 +1,171 @@ + + + Summarizer + + + + 0 + 0 + 692 + 323 + + + + MainWindow + + + + + + + + + + 0 + 0 + + + + Root Directory + + + + + + + + + + + + + Features Type + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Use manually +edited trajectories? + + + + + + + Summary Type + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + + + 1.000000000000000 + + + 0.010000000000000 + + + + + + + + + + + 0 + 0 + + + + Fraction of trajectories + to sample + + + Qt::AlignBottom|Qt::AlignHCenter + + + + + + + + 0 + 0 + + + + Number of Folds + + + Qt::AlignBottom|Qt::AlignHCenter + + + + + + + + 0 + 0 + + + + Time (seconds) + to sample + + + Qt::AlignBottom|Qt::AlignHCenter + + + + + + + 100000000000.000000000000000 + + + + + + + + + + START + + + + + + + + + 0 + 0 + 692 + 22 + + + + + + + + diff --git a/tierpsy/gui/SWTrackerViewer.py b/tierpsy/gui/SWTrackerViewer.py index d681491c..dbbbcdfc 100755 --- a/tierpsy/gui/SWTrackerViewer.py +++ b/tierpsy/gui/SWTrackerViewer.py @@ -4,7 +4,6 @@ import tables import os import pandas as pd -from functools import partial from PyQt5.QtCore import Qt from PyQt5.QtGui import QPainter, QPen @@ -12,7 +11,6 @@ from tierpsy.gui.SWTrackerViewer_ui import Ui_SWTrackerViewer from tierpsy.gui.TrackerViewerAux import TrackerViewerAuxGUI from tierpsy.analysis.int_ske_orient.correctHeadTailIntensity import createBlocks, _fuseOverlapingGroups -from tierpsy.helper.params import read_microns_per_pixel class EggWriter(): def __init__(self): diff --git a/tierpsy/gui/SWTrackerViewer_ui.py b/tierpsy/gui/SWTrackerViewer_ui.py index da599fcd..b9012166 100755 --- a/tierpsy/gui/SWTrackerViewer_ui.py +++ b/tierpsy/gui/SWTrackerViewer_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'SWTrackerViewer.ui' # -# Created by: PyQt5 UI code generator 5.10 +# Created by: PyQt5 UI code generator 5.9.2 # # WARNING! All changes made in this file will be lost! diff --git a/tierpsy/gui/SelectApp.py b/tierpsy/gui/SelectApp.py index 90a09afc..df2fdc44 100644 --- a/tierpsy/gui/SelectApp.py +++ b/tierpsy/gui/SelectApp.py @@ -8,14 +8,14 @@ import tierpsy from tierpsy.gui.GetMaskParams import GetMaskParams_GUI from tierpsy.gui.MWTrackerViewer import MWTrackerViewer_GUI -from tierpsy.gui.SWTrackerViewer import SWTrackerViewer_GUI +from tierpsy.gui.Summarizer import Summarizer_GUI from tierpsy.gui.BatchProcessing import BatchProcessing_GUI dd = [('get_params', (GetMaskParams_GUI,"Set Parameters")), ('batch_processing', (BatchProcessing_GUI,"Batch Processing Multiple Files")), ('mwtracker', (MWTrackerViewer_GUI, "Tierpsy Tracker Viewer")), - ('swtracker', (SWTrackerViewer_GUI, "Worm Tracker 2.0 Viewer")) + ('summarizer', (Summarizer_GUI, "Get Features Summary")) ] widget_lists = OrderedDict(dd) diff --git a/tierpsy/gui/SelectApp_ui.py b/tierpsy/gui/SelectApp_ui.py deleted file mode 100644 index edc95a10..00000000 --- a/tierpsy/gui/SelectApp_ui.py +++ /dev/null @@ -1,8 +0,0 @@ -# -*- coding: utf-8 -*- - -# Form implementation generated from reading ui file 'SelectApp.ui' -# -# Created by: PyQt5 UI code generator 5.6 -# -# WARNING! All changes made in this file will be lost! - diff --git a/tierpsy/gui/Summarizer.py b/tierpsy/gui/Summarizer.py new file mode 100644 index 00000000..6c50756a --- /dev/null +++ b/tierpsy/gui/Summarizer.py @@ -0,0 +1,67 @@ + + +from tierpsy.helper.params.docs_summarizer_param import summarizer_args_dflt, summarizer_args_info, summarizer_valid_options + +from tierpsy.gui.AnalysisProgress import AnalysisProgress, WorkerFunQt +from tierpsy.gui.GetAllParameters import ParamWidgetMapper +from tierpsy.gui.HDF5VideoPlayer import LineEditDragDrop +from tierpsy.gui.Summarizer_ui import Ui_Summarizer + +from tierpsy.summary.collect import calculate_summaries + +import os +from PyQt5 import QtWidgets + + +class Summarizer_GUI(QtWidgets.QMainWindow): + def __init__(self): + super().__init__() + self.ui = Ui_Summarizer() + self.ui.setupUi(self) + self.mapper = ParamWidgetMapper(self.ui, + default_param=summarizer_args_dflt, + info_param=summarizer_args_info, + valid_options=summarizer_valid_options + ) + + + self.ui.pushButton_start.clicked.connect(self.startAnalysis) + self.ui.pushButton_rootdir.clicked.connect(self.getRootDir) + self.ui.p_summary_type.currentIndexChanged.connect(self.viewFoldArgs) + + LineEditDragDrop(self.ui.p_root_dir, self.updateRootDir, os.path.isdir) + + self.viewFoldArgs() + + def getRootDir(self): + root_dir = QtWidgets.QFileDialog.getExistingDirectory( + self, + "Selects the root directory where the features files are located.", + self.mapper['root_dir']) + if root_dir: + self.updateRootDir(root_dir) + + def updateRootDir(self, x): + self.mapper['root_dir'] = x + + def viewFoldArgs(self): + if self.mapper['summary_type'] == 'plate_augmented': + self.ui.FoldArgs.show() + else: + self.ui.FoldArgs.hide() + + def startAnalysis(self): + process_args = {k:self.mapper[k] for k in self.mapper} + analysis_worker = WorkerFunQt(calculate_summaries, process_args) + progress = AnalysisProgress(analysis_worker) + progress.exec_() + + + +if __name__ == '__main__': + import sys + + app = QtWidgets.QApplication(sys.argv) + ui = Summarizer_GUI() + ui.show() + sys.exit(app.exec_()) diff --git a/tierpsy/gui/Summarizer_ui.py b/tierpsy/gui/Summarizer_ui.py new file mode 100644 index 00000000..1a3d6cb1 --- /dev/null +++ b/tierpsy/gui/Summarizer_ui.py @@ -0,0 +1,123 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'Summarizer.ui' +# +# Created by: PyQt5 UI code generator 5.9.2 +# +# WARNING! All changes made in this file will be lost! + +from PyQt5 import QtCore, QtGui, QtWidgets + +class Ui_Summarizer(object): + def setupUi(self, Summarizer): + Summarizer.setObjectName("Summarizer") + Summarizer.resize(692, 323) + self.centralwidget = QtWidgets.QWidget(Summarizer) + self.centralwidget.setObjectName("centralwidget") + self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.centralwidget) + self.verticalLayout_3.setObjectName("verticalLayout_3") + self.gridLayout_2 = QtWidgets.QGridLayout() + self.gridLayout_2.setObjectName("gridLayout_2") + self.pushButton_rootdir = QtWidgets.QPushButton(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_rootdir.sizePolicy().hasHeightForWidth()) + self.pushButton_rootdir.setSizePolicy(sizePolicy) + self.pushButton_rootdir.setObjectName("pushButton_rootdir") + self.gridLayout_2.addWidget(self.pushButton_rootdir, 0, 0, 1, 1) + self.p_root_dir = QtWidgets.QLineEdit(self.centralwidget) + self.p_root_dir.setObjectName("p_root_dir") + self.gridLayout_2.addWidget(self.p_root_dir, 0, 1, 1, 2) + self.p_feature_type = QtWidgets.QComboBox(self.centralwidget) + self.p_feature_type.setObjectName("p_feature_type") + self.gridLayout_2.addWidget(self.p_feature_type, 1, 1, 1, 1) + self.label_4 = QtWidgets.QLabel(self.centralwidget) + self.label_4.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_4.setObjectName("label_4") + self.gridLayout_2.addWidget(self.label_4, 1, 0, 1, 1) + self.p_is_manual_index = QtWidgets.QCheckBox(self.centralwidget) + self.p_is_manual_index.setObjectName("p_is_manual_index") + self.gridLayout_2.addWidget(self.p_is_manual_index, 1, 2, 1, 1) + self.label_5 = QtWidgets.QLabel(self.centralwidget) + self.label_5.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_5.setObjectName("label_5") + self.gridLayout_2.addWidget(self.label_5, 2, 0, 1, 1) + self.p_summary_type = QtWidgets.QComboBox(self.centralwidget) + self.p_summary_type.setObjectName("p_summary_type") + self.gridLayout_2.addWidget(self.p_summary_type, 2, 1, 1, 1) + self.verticalLayout_3.addLayout(self.gridLayout_2) + self.FoldArgs = QtWidgets.QWidget(self.centralwidget) + self.FoldArgs.setObjectName("FoldArgs") + self.gridLayout = QtWidgets.QGridLayout(self.FoldArgs) + self.gridLayout.setObjectName("gridLayout") + self.p_frac_worms_to_keep = QtWidgets.QDoubleSpinBox(self.FoldArgs) + self.p_frac_worms_to_keep.setMaximum(1.0) + self.p_frac_worms_to_keep.setSingleStep(0.01) + self.p_frac_worms_to_keep.setObjectName("p_frac_worms_to_keep") + self.gridLayout.addWidget(self.p_frac_worms_to_keep, 0, 1, 1, 1) + self.p_n_folds = QtWidgets.QSpinBox(self.FoldArgs) + self.p_n_folds.setObjectName("p_n_folds") + self.gridLayout.addWidget(self.p_n_folds, 0, 0, 1, 1) + self.label_2 = QtWidgets.QLabel(self.FoldArgs) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth()) + self.label_2.setSizePolicy(sizePolicy) + self.label_2.setAlignment(QtCore.Qt.AlignBottom|QtCore.Qt.AlignHCenter) + self.label_2.setObjectName("label_2") + self.gridLayout.addWidget(self.label_2, 1, 1, 1, 1) + self.label = QtWidgets.QLabel(self.FoldArgs) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth()) + self.label.setSizePolicy(sizePolicy) + self.label.setAlignment(QtCore.Qt.AlignBottom|QtCore.Qt.AlignHCenter) + self.label.setObjectName("label") + self.gridLayout.addWidget(self.label, 1, 0, 1, 1) + self.label_3 = QtWidgets.QLabel(self.FoldArgs) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_3.sizePolicy().hasHeightForWidth()) + self.label_3.setSizePolicy(sizePolicy) + self.label_3.setAlignment(QtCore.Qt.AlignBottom|QtCore.Qt.AlignHCenter) + self.label_3.setObjectName("label_3") + self.gridLayout.addWidget(self.label_3, 1, 2, 1, 1) + self.p_time_sample_seconds = QtWidgets.QDoubleSpinBox(self.FoldArgs) + self.p_time_sample_seconds.setMaximum(100000000000.0) + self.p_time_sample_seconds.setObjectName("p_time_sample_seconds") + self.gridLayout.addWidget(self.p_time_sample_seconds, 0, 2, 1, 1) + self.verticalLayout_3.addWidget(self.FoldArgs) + self.pushButton_start = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_start.setObjectName("pushButton_start") + self.verticalLayout_3.addWidget(self.pushButton_start) + Summarizer.setCentralWidget(self.centralwidget) + self.menubar = QtWidgets.QMenuBar(Summarizer) + self.menubar.setGeometry(QtCore.QRect(0, 0, 692, 22)) + self.menubar.setObjectName("menubar") + Summarizer.setMenuBar(self.menubar) + self.statusbar = QtWidgets.QStatusBar(Summarizer) + self.statusbar.setObjectName("statusbar") + Summarizer.setStatusBar(self.statusbar) + + self.retranslateUi(Summarizer) + QtCore.QMetaObject.connectSlotsByName(Summarizer) + + def retranslateUi(self, Summarizer): + _translate = QtCore.QCoreApplication.translate + Summarizer.setWindowTitle(_translate("Summarizer", "MainWindow")) + self.pushButton_rootdir.setText(_translate("Summarizer", "Root Directory")) + self.label_4.setText(_translate("Summarizer", "Features Type")) + self.p_is_manual_index.setText(_translate("Summarizer", "Use manually \n" +"edited trajectories?")) + self.label_5.setText(_translate("Summarizer", "Summary Type")) + self.label_2.setText(_translate("Summarizer", "Fraction of trajectories\n" +" to sample")) + self.label.setText(_translate("Summarizer", "Number of Folds")) + self.label_3.setText(_translate("Summarizer", "Time (seconds)\n" +" to sample")) + self.pushButton_start.setText(_translate("Summarizer", "START")) + diff --git a/tierpsy/gui/TrackerViewerAux.py b/tierpsy/gui/TrackerViewerAux.py index 38e87570..4ab3f53e 100755 --- a/tierpsy/gui/TrackerViewerAux.py +++ b/tierpsy/gui/TrackerViewerAux.py @@ -13,8 +13,8 @@ from tierpsy.gui.TrackerViewerAux_ui import Ui_TrackerViewerAux from tierpsy.analysis.ske_create.getSkeletonsTables import getWormMask from tierpsy.analysis.ske_create.segWormPython.mainSegworm import getSkeleton -from tierpsy.helper.params import read_microns_per_pixel - +from tierpsy.helper.params import read_unit_conversions +from tierpsy.helper.misc import WLAB BAD_SKEL_COLOURS = dict( skeleton = (102, 0, 0), @@ -79,12 +79,19 @@ def __init__(self, ui=''): self.results_dir = '' self.skeletons_file = '' self.trajectories_data = None - self.is_estimated_trajectories_data = False - self.traj_time_grouped = None + self.traj_worm_index_grouped = None + + self.skel_dat = {} + + self.is_estimated_trajectories_data = False self.frame_save_interval = 1 - self.skel_microns_per_pixel = None + self.microns_per_pixel = 1. + self.fps = 1. + self.time_units = '' + self.xy_units = '' + self.stage_position_pix = None self.coordinates_group = '/' self.coordinates_fields = None @@ -115,9 +122,17 @@ def updateSkelFile(self, selected_file, dflt_skel_size = 5): try: #find were to read the skeletons and pixel2microns transforming factor self.stage_position_pix = None + + #read units data + fps_out, microns_per_pixel_out, _ = read_unit_conversions(self.skeletons_file) + self.fps, _, self.time_units = fps_out + self.microns_per_pixel, self.xy_units = microns_per_pixel_out + + with tables.File(self.skeletons_file, 'r') as skel_file_id: + if '/coordinates' in skel_file_id: - self.skel_microns_per_pixel = read_microns_per_pixel(self.skeletons_file) + self.coordinates_group = '/coordinates/' self.coordinates_fields = { 'dorsal_contours':'contour_side2', @@ -128,7 +143,7 @@ def updateSkelFile(self, selected_file, dflt_skel_size = 5): self.stage_position_pix = self.fid.get_node('/stage_position_pix')[:] else: - self.skel_microns_per_pixel = None + self.microns_per_pixel = 1. self.coordinates_group = '/' self.coordinates_fields = { @@ -148,10 +163,14 @@ def updateSkelFile(self, selected_file, dflt_skel_size = 5): else: tot = self.fid.get_node('/mask').shape[0] timestamp = np.arange(tot) - self.trajectories_data = _estimate_trajectories_data(self.skeletons_file, timestamp, self.skel_microns_per_pixel) + + self.trajectories_data = _estimate_trajectories_data(self.skeletons_file, timestamp, self.microns_per_pixel) self.is_estimated_trajectories_data = True - + + #group data self.traj_time_grouped = self.trajectories_data.groupby('frame_number') + self.traj_worm_index_grouped = self.trajectories_data.groupby('worm_index_joined') + # read the size of the structural element used in to calculate # the mask if '/provenance_tracking/int_ske_orient' in ske_file_id: @@ -170,7 +189,7 @@ def updateSkelFile(self, selected_file, dflt_skel_size = 5): - except (IOError, KeyError, tables.exceptions.HDF5ExtError): + except (IOError, KeyError, tables.exceptions.HDF5ExtError, tables.exceptions.NoSuchNodeError): self.trajectories_data = None self.traj_time_grouped = None self.skel_dat = {} @@ -272,9 +291,7 @@ def drawSkel(self, worm_img, worm_qimg, row_data, roi_corner=(0, 0)): field = self.coordinates_group + ff if field in ske_file_id: dat = ske_file_id.get_node(field)[skel_id] - if self.skel_microns_per_pixel is not None: - #change from microns to pixels - dat /= self.skel_microns_per_pixel + dat /= self.microns_per_pixel if self.stage_position_pix is not None: #subtract stage motion if necessary @@ -376,6 +393,7 @@ def drawThreshMask(self, worm_img, worm_qimg, row_data, read_center=True): p.end() + if __name__ == '__main__': app = QApplication(sys.argv) diff --git a/tierpsy/gui/TrackerViewerAux_ui.py b/tierpsy/gui/TrackerViewerAux_ui.py index 4875ebdc..8a779667 100755 --- a/tierpsy/gui/TrackerViewerAux_ui.py +++ b/tierpsy/gui/TrackerViewerAux_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'TrackerViewerAux.ui' # -# Created by: PyQt5 UI code generator 5.10 +# Created by: PyQt5 UI code generator 5.9.2 # # WARNING! All changes made in this file will be lost! diff --git a/tierpsy/helper/params/docs_summarizer_param.py b/tierpsy/helper/params/docs_summarizer_param.py new file mode 100644 index 00000000..b7d5a044 --- /dev/null +++ b/tierpsy/helper/params/docs_summarizer_param.py @@ -0,0 +1,51 @@ +''' +List of default values and description of the tierpsy.gui.Summarizer +''' + +from .helper import repack_dflt_list + +summarizer_valid_options = { + 'feature_type':['openworm','tierpsy'], + 'summary_type' : ['plate', 'trajectory', 'plate_augmented'] +} + +dflt_args_list = [ + ('root_dir', + '', + 'Root directory where the features files are located and the results are going to be saved.' + ), + ('feature_type', + 'tierpsy', + ''' + Type of feature file to be used. Either the original OpenWorm features or the new Tierpsy Features. + ''' + ), + ('summary_type', + 'plate', + ''' + Indicates if the summary is going to be done over each individual plate, each individual trajectory or + is going to be a data augmentation by randomingly sampling over a subset of the plate trajectories. + ''' + ), + ('is_manual_index', + False, + 'Set to true to calculate data using manually edited trajectories used Tierpsy Viewer.' + ), + ('n_folds', + 5, + ''' + Number of times each subsampling is going to be repeated (only for plate_augmentation). + ''' + ), + + ('frac_worms_to_keep', + 0.8, + 'Fraction of the total number trajectories that is going to be keep for each subsampling.' + ), + ('time_sample_seconds', + 600, + 'Total time in seconds that is going to be keep for each subsampling.' + ) + ] + +summarizer_args_dflt, summarizer_args_info = repack_dflt_list(dflt_args_list, valid_options=summarizer_valid_options) diff --git a/tierpsy/summary/collect.py b/tierpsy/summary/collect.py new file mode 100644 index 00000000..da27a9bc --- /dev/null +++ b/tierpsy/summary/collect.py @@ -0,0 +1,122 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +@author: avelinojaver +""" +from functools import partial +import os +import glob +import datetime +import pandas as pd + +from tierpsy.helper.misc import TimeCounter, print_flush +from tierpsy.summary.process_ow import ow_plate_summary, ow_trajectories_summary, ow_plate_summary_augmented +from tierpsy.summary.process_tierpsy import tierpsy_plate_summary, tierpsy_trajectories_summary, tierpsy_plate_summary_augmented + +feature_files_ext = {'openworm' : ('_features.hdf5', '_feat_manual.hdf5'), + 'tierpsy' : ('_featuresN.hdf5', '_featuresN.hdf5') + } +valid_feature_types = list(feature_files_ext.keys()) +valid_summary_types = ['plate', 'trajectory', 'plate_augmented'] + +def check_in_list(x, list_of_x, x_name): + if not x in list_of_x: + raise ValueError('{} invalid {}. Valid options {}.'.format(x, x_name, list_of_x)) + + +def get_summary_func(feature_type, summary_type, is_manual_index, **fold_args): + if feature_type == 'tierpsy': + if summary_type == 'plate': + func = partial(tierpsy_plate_summary, is_manual_index=is_manual_index) + elif summary_type == 'trajectory': + func = partial(tierpsy_trajectories_summary, is_manual_index=is_manual_index) + elif summary_type == 'plate_augmented': + func = partial(tierpsy_plate_summary_augmented, is_manual_index=is_manual_index, **fold_args) + + elif feature_type == 'openworm': + if summary_type == 'plate': + func = ow_plate_summary + elif summary_type == 'trajectory': + func = ow_trajectories_summary + elif summary_type == 'plate_augmented': + func = partial(ow_plate_summary_augmented, **fold_args) + return func + + +def calculate_summaries(root_dir, feature_type, summary_type, is_manual_index, _is_debug = False, **fold_args): + save_base_name = 'summary_{}_{}'.format(feature_type, summary_type) + if is_manual_index: + save_base_name += '_manual' + save_base_name += '_' + datetime.datetime.now().strftime('%Y%m%d_%H%M%S') + + + #check the options are valid + check_in_list(feature_type, valid_feature_types, 'feature_type') + check_in_list(summary_type, valid_summary_types, 'summary_type') + + summary_func = get_summary_func(feature_type, summary_type, is_manual_index, **fold_args) + + possible_ext = feature_files_ext[feature_type] + ext = possible_ext[1] if is_manual_index else possible_ext[0] + + fnames = glob.glob(os.path.join(root_dir, '**', '*' + ext), recursive=True) + if not fnames: + print_flush('Not valid files found. Nothing to do here.') + return + + dd = tuple(zip(*enumerate(sorted(fnames)))) + df_files = pd.DataFrame({'file_id' : dd[0], 'file_name' : dd[1]}) + df_files['is_good'] = False + + progress_timer = TimeCounter('') + def _displayProgress(n): + args = (n + 1, len(df_files), progress_timer.get_time_str()) + dd = "Extracting features summary. File {} of {} done. Total time: {}".format(*args) + print_flush(dd) + + _displayProgress(-1) + all_summaries = [] + for ifile, row in df_files.iterrows(): + fname = row['file_name'] + try: + df = summary_func(fname) + df.insert(0, 'file_id', ifile) + all_summaries.append(df) + except: + continue + + df_files.loc[ifile, 'is_good'] = True + _displayProgress(ifile) + + all_summaries = pd.concat(all_summaries, ignore_index=True) + + + f1 = os.path.join(root_dir, 'filenames_{}.csv'.format(save_base_name)) + df_files.to_csv(f1, index=False) + + f2 = os.path.join(root_dir,'features_{}.csv'.format(save_base_name)) + all_summaries.to_csv(f2, index=False) + + out = '****************************' + out += '\nFINISHED. Created Files:\n-> {}\n-> {}'.format(f1,f2) + + print_flush(out) + + + return df_files, all_summaries + +if __name__ == '__main__': + root_dir = '/Users/avelinojaver/OneDrive - Imperial College London/tierpsy_examples' + is_manual_index = False + #feature_type = 'tierpsy' + feature_type = 'openworm' + summary_type = 'plate_augmented' + + fold_args = dict( + n_folds = 2, + frac_worms_to_keep = 0.8, + time_sample_seconds = 10*60 + ) + + df_files, all_summaries = calculate_summaries(root_dir, feature_type, summary_type, is_manual_index, **fold_args) + \ No newline at end of file diff --git a/tierpsy/summary/helper.py b/tierpsy/summary/helper.py new file mode 100644 index 00000000..0e9f1460 --- /dev/null +++ b/tierpsy/summary/helper.py @@ -0,0 +1,76 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Mon Jun 4 10:45:29 2018 + +@author: avelinojaver +""" +from tierpsy_features.summary_stats import get_n_worms_estimate +import random +import math + +fold_args_dflt = {'n_folds' : 5, + 'frac_worms_to_keep' : 0.8, + 'time_sample_seconds' : 10*60 + } + +def add_trajectory_info(df_stats, worm_index, timeseries_data, fps): + df_stats['worm_index'] = worm_index + df_stats['ini_time'] = timeseries_data['timestamp'].min()/fps + df_stats['tot_time'] = timeseries_data['timestamp'].size/fps + df_stats['frac_valid_skels'] = (~timeseries_data['length'].isnull()).mean() + + cols = df_stats.columns.tolist() + cols = cols[-4:] + cols[:-4] + + #import pdb + #pdb.set_trace() + df_stats = df_stats[cols] + + + return df_stats + + +def augment_data(df, + n_folds = 10, + frac_worms_to_keep = 0.8, + time_sample_seconds = 600, + fps = 25 + ): + + timestamp = df['timestamp'] + worm_index = df['worm_index'] + + #fraction of trajectories to keep. I want to be proportional to the number of worms present. + n_worms_estimate = get_n_worms_estimate(timestamp) + frac_worms_to_keep_r = min(frac_worms_to_keep, (1-1/n_worms_estimate)) + if frac_worms_to_keep_r <= 0: + #if this fraction is really zero, just keep everything + frac_worms_to_keep_r = 1 + + time_sample_frames = time_sample_seconds*fps + + ini_ts = timestamp.min() + last_ts = timestamp.max() + + ini_sample_last = max(ini_ts, last_ts - time_sample_frames) + + fold_masks = [] + for i_fold in range(n_folds): + ini = random.randint(ini_ts, ini_sample_last) + fin = ini + time_sample_frames + + good = (timestamp >= ini) & (timestamp<= fin) + + #select only a small fraction of the total number of trajectories present + ts_sampled_worm_idxs = worm_index[good] + available_worm_idxs = ts_sampled_worm_idxs.unique() + random.shuffle(available_worm_idxs) + n2select = math.ceil(len(available_worm_idxs)*frac_worms_to_keep_r) + idx2select = available_worm_idxs[:n2select] + + good = good & ts_sampled_worm_idxs.isin(idx2select) + + fold_masks.append(good) + + return fold_masks diff --git a/tierpsy/summary/process_ow.py b/tierpsy/summary/process_ow.py new file mode 100644 index 00000000..bd7607f7 --- /dev/null +++ b/tierpsy/summary/process_ow.py @@ -0,0 +1,154 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Mon Jun 4 10:30:17 2018 + +@author: avelinojaver +""" +from tierpsy.summary.helper import augment_data, add_trajectory_info +from tierpsy.analysis.feat_create.obtainFeaturesHelper import WormStats +from tierpsy.helper.params import read_fps +import pandas as pd +import tables +import numpy as np +#%% +def read_feat_events(fname, traj2read = None): + + def _feat_correct(x): + x = x.replace('_motion', '') + dat2rep = [('_upsilon', '_upsilon_turns'), + ('upsilon_turn', 'upsilon_turns'), + ('_omega', '_omega_turns'), + ('omega_turn', '_omega_turns'), + ('coil_', 'coils_'), + ] + for p_old, p_new in dat2rep: + if not (p_new in x) and (p_old in x): + x = x.replace(p_old, p_new) + return x + + + with tables.File(fname, 'r') as fid: + features_events = {} + node = fid.get_node('/features_events') + + if traj2read is None: + traj2read = node._v_children.keys() + + + + for worn_n in traj2read: + worm_node = fid.get_node('/features_events/' + worn_n) + + for feat in worm_node._v_children.keys(): + + dat = fid.get_node(worm_node._v_pathname, feat)[:] + + + feat_c = _feat_correct(feat) + + if not feat_c in features_events: + features_events[feat_c] = [] + features_events[feat_c].append(dat) + + features_events = {feat:np.concatenate(val) for feat, val in features_events.items()} + + return features_events +#%% +def ow_plate_summary(fname): + all_feats = read_feat_events(fname) + + with pd.HDFStore(fname, 'r') as fid: + features_timeseries = fid['/features_timeseries'] + for cc in features_timeseries: + all_feats[cc] = features_timeseries[cc].values + + wStats = WormStats() + exp_feats = wStats.getWormStats(all_feats, np.nanmean) + + + exp_feats = pd.DataFrame(exp_feats) + + valid_order = [x for x in exp_feats.columns if x not in wStats.extra_fields] + exp_feats = exp_feats.loc[:, valid_order] + + return exp_feats +#%% +def ow_trajectories_summary(fname): + + fps = read_fps(fname) + with pd.HDFStore(fname, 'r') as fid: + features_timeseries = fid['/features_timeseries'] + + all_summary = [] + + valid_order = None + wStats = WormStats() + for w_ind, w_ts_data in features_timeseries.groupby('worm_index'): + + ll = ['worm_{}'.format(int(w_ind))] + all_feats = read_feat_events(fname, ll) + for cc in w_ts_data: + all_feats[cc] = w_ts_data[cc].values + + + exp_feats = wStats.getWormStats(all_feats, np.nanmean) + exp_feats = pd.DataFrame(exp_feats) + + if valid_order is None: + #only calculate this the first time... + valid_order = [x for x in exp_feats.columns if x not in wStats.extra_fields] + + #remove uncalculated indexes from wStats + exp_feats = exp_feats.loc[:, valid_order] + assert not 'worm_index' in exp_feats + + exp_feats = add_trajectory_info(exp_feats, w_ind, w_ts_data, fps) + + + all_summary.append(exp_feats) + all_summary = pd.concat(all_summary, ignore_index=True) + + return all_summary +#%% +def ow_plate_summary_augmented(fname, **fold_args): + #NOTE: I will only augment the timeseries features. + #It is not trivial to include the event features sampling over time. + + fps = read_fps(fname) + with pd.HDFStore(fname, 'r') as fid: + features_timeseries = fid['/features_timeseries'] + + fold_index = augment_data(features_timeseries, fps=fps, **fold_args) + + valid_order = None + wStats = WormStats() + + all_summary = [] + for i_fold, ind_fold in enumerate(fold_index): + timeseries_data_r = features_timeseries[ind_fold].reset_index(drop=True) + + + all_feats = {} + for cc in timeseries_data_r: + all_feats[cc] = timeseries_data_r[cc].values + exp_feats = wStats.getWormStats(all_feats, np.nanmean) + exp_feats = pd.DataFrame(exp_feats) + + if valid_order is None: + #only calculate this the first time... + valid_order = [x for x in exp_feats.columns if x not in wStats.extra_fields] + exp_feats = exp_feats.loc[:, valid_order] + + exp_feats.insert(0, 'i_fold', i_fold) + + + all_summary.append(exp_feats) + + all_summary = pd.concat(all_summary, ignore_index=True) + + return all_summary + +#%% + + diff --git a/tierpsy/summary/process_tierpsy.py b/tierpsy/summary/process_tierpsy.py new file mode 100644 index 00000000..8e3df234 --- /dev/null +++ b/tierpsy/summary/process_tierpsy.py @@ -0,0 +1,107 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Mon Jun 4 10:30:17 2018 + +@author: avelinojaver +""" +from tierpsy.summary.helper import augment_data, add_trajectory_info +from tierpsy.helper.params import read_fps +from tierpsy_features.summary_stats import get_summary_stats +from tierpsy.helper.misc import WLAB + +import pandas as pd + + +#%% +def read_data(fname, is_manual_index): + with pd.HDFStore(fname, 'r') as fid: + timeseries_data = fid['/timeseries_data'] + blob_features = fid['/blob_features'] + + if is_manual_index: + #keep only data labeled as worm or worm clusters + valid_labels = [WLAB[x] for x in ['WORM', 'WORMS']] + trajectories_data = fid['/trajectories_data'] + if not 'worm_index_manual' in trajectories_data: + #no manual index, nothing to do here + return + + good = trajectories_data['worm_label'].isin(valid_labels) + good = good & (trajectories_data['skeleton_id'] >= 0) + skel_id = trajectories_data['skeleton_id'][good] + + + timeseries_data = timeseries_data.loc[skel_id] + timeseries_data['worm_index'] = trajectories_data['worm_index_manual'][good].values + timeseries_data = timeseries_data.reset_index(drop=True) + + blob_features = blob_features.loc[skel_id].reset_index(drop=True) + + return timeseries_data, blob_features +#%% +def tierpsy_plate_summary(fname, is_manual_index = False, delta_time = 1/3): + + fps = read_fps(fname) + data_in = read_data(fname, is_manual_index) + if data_in is None: + return + timeseries_data, blob_features = data_in + + plate_feats = get_summary_stats(timeseries_data, fps, blob_features, delta_time) + plate_feats = pd.DataFrame(plate_feats).T + + return plate_feats + +def tierpsy_trajectories_summary(fname, is_manual_index = False, delta_time = 1/3): + fps = read_fps(fname) + data_in = read_data(fname, is_manual_index) + if data_in is None: + return + timeseries_data, blob_features = data_in + + all_summary = [] + for w_ind, w_ts_data in timeseries_data.groupby('worm_index'): + w_blobs = blob_features.loc[w_ts_data.index] + + w_ts_data = w_ts_data.reset_index(drop=True) + w_blobs = w_blobs.reset_index(drop=True) + + + + worm_feats = get_summary_stats(w_ts_data, fps, w_blobs, delta_time) + worm_feats = pd.DataFrame(worm_feats).T + worm_feats = add_trajectory_info(worm_feats, w_ind, w_ts_data, fps) + + + all_summary.append(worm_feats) + all_summary = pd.concat(all_summary, ignore_index=True) + return all_summary + +#%% + +def tierpsy_plate_summary_augmented(fname, is_manual_index = False, delta_time = 1/3, **fold_args): + fps = read_fps(fname) + data_in = read_data(fname, is_manual_index) + if data_in is None: + return + timeseries_data, blob_features = data_in + + fold_index = augment_data(timeseries_data, fps=fps, **fold_args) + all_summary = [] + for i_fold, ind_fold in enumerate(fold_index): + + + timeseries_data_r = timeseries_data[ind_fold].reset_index(drop=True) + blob_features_r = blob_features[ind_fold].reset_index(drop=True) + + + plate_feats = get_summary_stats(timeseries_data_r, fps, blob_features_r, delta_time) + plate_feats = pd.DataFrame(plate_feats).T + plate_feats.insert(0, 'i_fold', i_fold) + + all_summary.append(plate_feats) + + all_summary = pd.concat(all_summary, ignore_index=True) + + return all_summary From 1bc7fe04f99073f26c87a9a3a7e1c5bcdfbe8923 Mon Sep 17 00:00:00 2001 From: ver228 Date: Wed, 6 Jun 2018 10:48:41 +0100 Subject: [PATCH 11/37] change installation dependencies --- docs/INSTALLATION.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/docs/INSTALLATION.md b/docs/INSTALLATION.md index 5d47096e..7db9b925 100644 --- a/docs/INSTALLATION.md +++ b/docs/INSTALLATION.md @@ -11,12 +11,7 @@ 1. Install the conda dependencies from the conda-forge channel: ```bash -conda config --add channels conda-forge - -conda install -y numpy matplotlib pytables pandas gitpython pyqt=5 \ -h5py scipy scikit-learn scikit-image seaborn xlrd cython statsmodels numba - -conda install -y -c conda-forge keras opencv tensorflow +conda install numpy matplotlib pytables pandas gitpython pyqt h5py scipy scikit-learn scikit-image seaborn xlrd cython statsmodels numba keras opencv tensorflow --channel anaconda ``` 2. Clone this repository either using the [Github Desktop](https://desktop.github.com/) or from the command line as: From 2fa02b4600b9a00cfb6e42add9967870e0577602 Mon Sep 17 00:00:00 2001 From: ver228 Date: Wed, 6 Jun 2018 11:24:47 +0100 Subject: [PATCH 12/37] fix --- docs/INSTALLATION.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/INSTALLATION.md b/docs/INSTALLATION.md index 7db9b925..1f3aaeaa 100644 --- a/docs/INSTALLATION.md +++ b/docs/INSTALLATION.md @@ -11,7 +11,8 @@ 1. Install the conda dependencies from the conda-forge channel: ```bash -conda install numpy matplotlib pytables pandas gitpython pyqt h5py scipy scikit-learn scikit-image seaborn xlrd cython statsmodels numba keras opencv tensorflow --channel anaconda +conda install --channel anaconda numpy matplotlib pytables pandas gitpython pyqt h5py \ +scipy scikit-learn scikit-image seaborn xlrd cython statsmodels numba keras opencv tensorflow ``` 2. Clone this repository either using the [Github Desktop](https://desktop.github.com/) or from the command line as: From 0338c48a189624d4eb81d7ffbb64a9e564942ecc Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Wed, 6 Jun 2018 19:05:29 +0100 Subject: [PATCH 13/37] small updates --- create_binaries/TierpsyTracker.spec | 16 +- tierpsy/__init__.py | 16 +- .../analysis/feat_create/obtainFeatures.py | 14 +- .../feat_create/obtainFeaturesHelper.py | 11 +- .../cython_files/cleanWorm_cython.c | 2337 ++++----- .../cleanWorm_cython.cpython-35m-darwin.so | Bin 99984 -> 105420 bytes .../cython_files/linearSkeleton_cython.c | 4179 +++++++++-------- ...inearSkeleton_cython.cpython-35m-darwin.so | Bin 213980 -> 212508 bytes .../cython_files/segWorm_cython.c | 1953 ++++---- .../segWorm_cython.cpython-35m-darwin.so | Bin 68744 -> 77004 bytes .../stage_aligment/get_mask_diff_var.c | 2555 ++++++---- tierpsy/gui/MWTrackerViewer.py | 7 +- tierpsy/gui/PlotFeatures.py | 14 +- tierpsy/summary/collect.py | 8 +- 14 files changed, 6271 insertions(+), 4839 deletions(-) diff --git a/create_binaries/TierpsyTracker.spec b/create_binaries/TierpsyTracker.spec index dc467903..7991a779 100644 --- a/create_binaries/TierpsyTracker.spec +++ b/create_binaries/TierpsyTracker.spec @@ -1,5 +1,8 @@ # -*- mode: python -*- -#hidden imports needed for tierpsy, maybe there is a better way to call this... +DEBUG = False + +#hidden imports needed for tierpsy. Each step is loaded dyniamically so I need to give the hint to pyinstaller + import tierpsy.analysis base_name = os.path.dirname(tierpsy.analysis.__file__) analysis_steps = [x for x in os.listdir(base_name) if os.path.exists(os.path.join(base_name, x, '__init__.py'))] @@ -10,6 +13,7 @@ import os import sys from PyInstaller.compat import is_win, is_darwin, is_linux + import tierpsy import open_worm_analysis_toolbox from tierpsy.helper.misc import FFMPEG_CMD, FFPROBE_CMD @@ -21,9 +25,8 @@ SRC_SCRIPT_PATH = SelectApp.__file__ DST_BUILD=os.path.abspath('.') CREATE_CONSOLE= is_win #make a separated console only in windows. I have to do this due to a problem with pyinstaller -DEBUG = False -#get additional files +#get additional files for openworm #openworm additional files open_worm_path = os.path.dirname(open_worm_analysis_toolbox.__file__) @@ -94,6 +97,9 @@ a = Analysis([SRC_SCRIPT_PATH], binaries=None, datas = None, hiddenimports=['h5py.defs', 'h5py.utils', 'h5py.h5ac', 'h5py._proxy', + 'scipy._lib.messagestream', 'cytoolz.utils', + 'pandas._libs.tslibs.np_datetime', 'pandas._libs.tslibs.nattype', + 'pandas._libs.skiplist', 'cython', 'sklearn', 'sklearn.neighbors.typedefs', 'pywt._extensions._cwt'] + hidden_tierspy, hookspath=[], runtime_hooks=[], @@ -147,7 +153,7 @@ else: name='TierpsyTracker', debug=False, strip=False, - upx=True, + upx=False, console=True ) coll = COLLECT(exe, @@ -155,5 +161,5 @@ else: a.zipfiles, a.datas, strip=False, - upx=True, + upx=False, name='TierpsyTracker') diff --git a/tierpsy/__init__.py b/tierpsy/__init__.py index bbd8f890..bc45fab2 100755 --- a/tierpsy/__init__.py +++ b/tierpsy/__init__.py @@ -26,15 +26,17 @@ #this will be true if it is a pyinstaller "frozen" binary IS_FROZEN = getattr(sys, 'frozen', False) +if IS_FROZEN: + os.environ['QT_PLUGIN_PATH']="" #https://stackoverflow.com/questions/25188153/this-application-failed-to-start-because-it-could-not-find-or-load-the-qt-platfo -if IS_FROZEN: - # force qt5 to be the backend of matplotlib. - # otherwise the pyinstaller packages might have some problems in the - # binaries. - import matplotlib - matplotlib.use('Qt5Agg') + # force qt5 to be the backend of matplotlib. + import matplotlib + matplotlib.use('Qt5Agg') - if os.name == 'nt': + + +#if IS_FROZEN: +if os.name == 'nt': # load dll for numpy in windows import ctypes diff --git a/tierpsy/analysis/feat_create/obtainFeatures.py b/tierpsy/analysis/feat_create/obtainFeatures.py index 066f3acf..6e6ecf7d 100755 --- a/tierpsy/analysis/feat_create/obtainFeatures.py +++ b/tierpsy/analysis/feat_create/obtainFeatures.py @@ -4,6 +4,14 @@ @author: ajaver """ +from tierpsy.helper.misc import TimeCounter, print_flush, WLAB, TABLE_FILTERS, get_base_name +from tierpsy.analysis.ske_filt.getFilteredSkels import getValidIndexes +from tierpsy.analysis.feat_create.obtainFeaturesHelper import WormStats, WormFromTable +from tierpsy.helper.params import copy_unit_conversions, read_fps, min_num_skel_defaults + +import open_worm_analysis_toolbox as mv + + import os import warnings from functools import partial @@ -21,12 +29,6 @@ # (http://www.pytables.org/usersguide/parameter_files.html) tables.parameters.MAX_COLUMNS = 1024 -from tierpsy.helper.misc import TimeCounter, print_flush, WLAB, TABLE_FILTERS, get_base_name -from tierpsy.analysis.ske_filt.getFilteredSkels import getValidIndexes -from tierpsy.analysis.feat_create.obtainFeaturesHelper import WormStats, WormFromTable -from tierpsy.helper.params import copy_unit_conversions, read_fps, min_num_skel_defaults - -import open_worm_analysis_toolbox as mv #%%%%%%% def _n_percentile(n, q): diff --git a/tierpsy/analysis/feat_create/obtainFeaturesHelper.py b/tierpsy/analysis/feat_create/obtainFeaturesHelper.py index c1ede531..08be85c9 100755 --- a/tierpsy/analysis/feat_create/obtainFeaturesHelper.py +++ b/tierpsy/analysis/feat_create/obtainFeaturesHelper.py @@ -5,6 +5,12 @@ @author: ajaver """ +from tierpsy.analysis.stage_aligment.alignStageMotion import isGoodStageAligment, _h_get_stage_inv +from tierpsy.helper.params import read_fps, read_microns_per_pixel, read_ventral_side +from tierpsy import AUX_FILES_DIR +import open_worm_analysis_toolbox as mv + + import copy import numpy as np import pandas as pd @@ -14,13 +20,8 @@ from collections import OrderedDict from scipy.signal import savgol_filter -from tierpsy.analysis.stage_aligment.alignStageMotion import isGoodStageAligment, _h_get_stage_inv -from tierpsy.helper.params import read_fps, read_microns_per_pixel, read_ventral_side -from tierpsy import AUX_FILES_DIR -import open_worm_analysis_toolbox as mv - # (http://www.pytables.org/usersguide/parameter_files.html) tables.parameters.MAX_COLUMNS = 1024 diff --git a/tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.c b/tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.c index 33bcb403..54654ed0 100644 --- a/tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.c +++ b/tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.c @@ -1,4 +1,4 @@ -/* Generated by Cython 0.27.3 */ +/* Generated by Cython 0.28.3 */ /* BEGIN: Cython Metadata { @@ -20,7 +20,7 @@ END: Cython Metadata */ #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_27_3" +#define CYTHON_ABI "0_28_3" #define CYTHON_FUTURE_DIVISION 0 #include #ifndef offsetof @@ -196,6 +196,103 @@ END: Cython Metadata */ #undef BASE #undef MASK #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 @@ -224,12 +321,12 @@ END: Cython Metadata */ #ifndef Py_TPFLAGS_HAVE_FINALIZE #define Py_TPFLAGS_HAVE_FINALIZE 0 #endif -#if PY_VERSION_HEX < 0x030700A0 || !defined(METH_FASTCALL) +#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) #ifndef METH_FASTCALL #define METH_FASTCALL 0x80 #endif - typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject **args, Py_ssize_t nargs); - typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject **args, + 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 @@ -241,6 +338,18 @@ END: Cython Metadata */ #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_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 @@ -250,6 +359,36 @@ END: Cython Metadata */ #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; // PyThread_create_key reports success always +} +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 // TSS (Thread Specific Storage) API #if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) #define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) #else @@ -262,6 +401,11 @@ END: Cython Metadata */ #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)) ?\ @@ -306,18 +450,6 @@ END: Cython Metadata */ #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) #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_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 #define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) #define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) #if PY_MAJOR_VERSION >= 3 @@ -334,6 +466,7 @@ END: Cython Metadata */ #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) @@ -345,7 +478,11 @@ END: Cython Metadata */ #ifndef PySet_CheckExact #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) #endif -#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) +#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 @@ -380,16 +517,10 @@ END: Cython Metadata */ #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) : PyInstanceMethod_New(func)) + #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 -#ifndef __has_attribute - #define __has_attribute(x) 0 -#endif -#ifndef __has_cpp_attribute - #define __has_cpp_attribute(x) 0 -#endif #if CYTHON_USE_ASYNC_SLOTS #if PY_VERSION_HEX >= 0x030500B1 #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods @@ -407,96 +538,6 @@ END: Cython Metadata */ unaryfunc am_anext; } __Pyx_PyAsyncMethodsStruct; #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 defined(WIN32) || defined(MS_WINDOWS) #define _USE_MATH_DEFINES @@ -533,6 +574,7 @@ static CYTHON_INLINE float __PYX_NAN() { #define __PYX_HAVE__tierpsy__analysis__ske_create__segWormPython__cython_files__cleanWorm_cython #define __PYX_HAVE_API__tierpsy__analysis__ske_create__segWormPython__cython_files__cleanWorm_cython +/* Early includes */ #include #include #include "numpy/arrayobject.h" @@ -622,7 +664,7 @@ static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { #define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) -#define __Pyx_PyBool_FromLong(b) ((b) ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False)) +static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); #define __Pyx_PySequence_Tuple(obj)\ @@ -730,7 +772,7 @@ 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; +static PyObject *__pyx_cython_runtime = NULL; static PyObject *__pyx_empty_tuple; static PyObject *__pyx_empty_bytes; static PyObject *__pyx_empty_unicode; @@ -804,7 +846,7 @@ typedef struct { } __Pyx_BufFmt_Context; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":743 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":730 * # in Cython to enable them only on the right systems. * * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<< @@ -813,7 +855,7 @@ typedef struct { */ typedef npy_int8 __pyx_t_5numpy_int8_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":744 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":731 * * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< @@ -822,7 +864,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; */ typedef npy_int16 __pyx_t_5numpy_int16_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":745 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":732 * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<< @@ -831,7 +873,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; */ typedef npy_int32 __pyx_t_5numpy_int32_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":746 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":733 * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<< @@ -840,7 +882,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; */ typedef npy_int64 __pyx_t_5numpy_int64_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":750 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":737 * #ctypedef npy_int128 int128_t * * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< @@ -849,7 +891,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; */ typedef npy_uint8 __pyx_t_5numpy_uint8_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":751 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":738 * * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< @@ -858,7 +900,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; */ typedef npy_uint16 __pyx_t_5numpy_uint16_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":752 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":739 * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<< @@ -867,7 +909,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; */ typedef npy_uint32 __pyx_t_5numpy_uint32_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":753 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":740 * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<< @@ -876,7 +918,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; */ typedef npy_uint64 __pyx_t_5numpy_uint64_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":757 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":744 * #ctypedef npy_uint128 uint128_t * * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< @@ -885,7 +927,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; */ typedef npy_float32 __pyx_t_5numpy_float32_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":758 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":745 * * ctypedef npy_float32 float32_t * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< @@ -894,7 +936,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; */ typedef npy_float64 __pyx_t_5numpy_float64_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":767 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":754 * # The int types are mapped a bit surprising -- * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t # <<<<<<<<<<<<<< @@ -903,7 +945,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; */ typedef npy_long __pyx_t_5numpy_int_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":768 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":755 * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t * ctypedef npy_longlong long_t # <<<<<<<<<<<<<< @@ -912,7 +954,7 @@ typedef npy_long __pyx_t_5numpy_int_t; */ typedef npy_longlong __pyx_t_5numpy_long_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":769 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":756 * ctypedef npy_long int_t * ctypedef npy_longlong long_t * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<< @@ -921,7 +963,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; */ typedef npy_longlong __pyx_t_5numpy_longlong_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":771 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":758 * ctypedef npy_longlong longlong_t * * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< @@ -930,7 +972,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; */ typedef npy_ulong __pyx_t_5numpy_uint_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":772 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":759 * * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< @@ -939,7 +981,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; */ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":773 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":760 * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<< @@ -948,7 +990,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; */ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":775 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":762 * ctypedef npy_ulonglong ulonglong_t * * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< @@ -957,7 +999,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; */ typedef npy_intp __pyx_t_5numpy_intp_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":776 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":763 * * ctypedef npy_intp intp_t * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< @@ -966,7 +1008,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; */ typedef npy_uintp __pyx_t_5numpy_uintp_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":778 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":765 * ctypedef npy_uintp uintp_t * * ctypedef npy_double float_t # <<<<<<<<<<<<<< @@ -975,7 +1017,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; */ typedef npy_double __pyx_t_5numpy_float_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":779 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":766 * * ctypedef npy_double float_t * ctypedef npy_double double_t # <<<<<<<<<<<<<< @@ -984,7 +1026,7 @@ typedef npy_double __pyx_t_5numpy_float_t; */ typedef npy_double __pyx_t_5numpy_double_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":780 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":767 * ctypedef npy_double float_t * ctypedef npy_double double_t * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<< @@ -1019,7 +1061,7 @@ static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(do /*--- Type declarations ---*/ -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":782 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":769 * ctypedef npy_longdouble longdouble_t * * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< @@ -1028,7 +1070,7 @@ static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(do */ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":783 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":770 * * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< @@ -1037,7 +1079,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; */ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":784 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":771 * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<< @@ -1046,7 +1088,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; */ typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":786 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":773 * ctypedef npy_clongdouble clongdouble_t * * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< @@ -1121,16 +1163,7 @@ typedef npy_cdouble __pyx_t_5numpy_complex_t; /* PyObjectGetAttrStr.proto */ #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); -} +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) #endif @@ -1138,6 +1171,42 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject /* GetBuiltinName.proto */ static PyObject *__Pyx_GetBuiltinName(PyObject *name); +/* 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 + /* Profile.proto */ #ifndef CYTHON_PROFILE #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON @@ -1233,7 +1302,7 @@ static PyObject *__Pyx_GetBuiltinName(PyObject *name); } static void __Pyx_call_return_trace_func(PyThreadState *tstate, PyFrameObject *frame, PyObject *result) { PyObject *type, *value, *traceback; - PyErr_Fetch(&type, &value, &traceback); + __Pyx_ErrFetchInState(tstate, &type, &value, &traceback); tstate->tracing++; tstate->use_tracing = 0; if (CYTHON_TRACE && tstate->c_tracefunc) @@ -1243,7 +1312,7 @@ static PyObject *__Pyx_GetBuiltinName(PyObject *name); CYTHON_FRAME_DEL(frame); tstate->use_tracing = 1; tstate->tracing--; - PyErr_Restore(type, value, traceback); + __Pyx_ErrRestoreInState(tstate, type, value, traceback); } #ifdef WITH_THREAD #define __Pyx_TraceReturn(result, nogil)\ @@ -1287,7 +1356,7 @@ static PyObject *__Pyx_GetBuiltinName(PyObject *name); static int __Pyx_call_line_trace_func(PyThreadState *tstate, PyFrameObject *frame, int lineno) { int ret; PyObject *type, *value, *traceback; - PyErr_Fetch(&type, &value, &traceback); + __Pyx_ErrFetchInState(tstate, &type, &value, &traceback); __Pyx_PyFrame_SetLineNumber(frame, lineno); tstate->tracing++; tstate->use_tracing = 0; @@ -1295,7 +1364,7 @@ static PyObject *__Pyx_GetBuiltinName(PyObject *name); tstate->use_tracing = 1; tstate->tracing--; if (likely(!ret)) { - PyErr_Restore(type, value, traceback); + __Pyx_ErrRestoreInState(tstate, type, value, traceback); } else { Py_XDECREF(type); Py_XDECREF(value); @@ -1340,42 +1409,6 @@ static PyObject *__Pyx_GetBuiltinName(PyObject *name); #define __Pyx_TraceLine(lineno, nogil, goto_error) if ((1)); else goto_error; #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 - /* WriteUnraisableException.proto */ static void __Pyx_WriteUnraisable(const char *name, int clineno, int lineno, const char *filename, @@ -1460,6 +1493,35 @@ static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, long int (inplace ? PyNumber_InPlaceSubtract(op1, op2) : PyNumber_Subtract(op1, op2)) #endif +/* 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 + /* PyCFunctionFastCall.proto */ #if CYTHON_FAST_PYCCALL static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); @@ -1500,23 +1562,13 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject /* DictGetItem.proto */ #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()) { - PyObject* args = PyTuple_Pack(1, key); - if (likely(args)) - PyErr_SetObject(PyExc_KeyError, args); - Py_XDECREF(args); - } - return NULL; - } - Py_INCREF(value); - return value; -} +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_PyDict_GetItem(d, key) PyObject_GetItem(d, key) +#define __Pyx_PyObject_Dict_GetItem(obj, name) PyObject_GetItem(obj, name) #endif /* RaiseTooManyValuesToUnpack.proto */ @@ -1744,6 +1796,7 @@ static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObj #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) /* CheckBinaryVersion.proto */ static int __Pyx_check_binary_version(void); @@ -1980,6 +2033,7 @@ static PyObject *__pyx_tuple__23; static PyObject *__pyx_codeobj__2; static PyObject *__pyx_codeobj__3; static PyObject *__pyx_codeobj__5; +/* Late includes */ /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":17 * @@ -2120,24 +2174,24 @@ static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_extrema_type)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_extrema_type)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("extremaPeaksCircDist", 0, 3, 4, 1); __PYX_ERR(0, 26, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_dist)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dist)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("extremaPeaksCircDist", 0, 3, 4, 2); __PYX_ERR(0, 26, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_chainCodeLengths); + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_chainCodeLengths); if (value) { values[3] = value; kw_args--; } } } @@ -2381,7 +2435,7 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth __pyx_t_4 = __Pyx_PyInt_SubtractObjC(__pyx_t_2, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyObject_GetItem(((PyObject *)__pyx_v_chainCodeLengths), __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 39, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_chainCodeLengths), __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyFloat_FromDouble(__pyx_v_winSize); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 39, __pyx_L1_error) @@ -3549,7 +3603,7 @@ static PyObject *__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cytho __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = PyObject_GetItem(((PyObject *)__pyx_v_peaks), __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 155, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_peaks), __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_copy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 155, __pyx_L1_error) @@ -3611,7 +3665,7 @@ static PyObject *__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cytho __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = PyObject_GetItem(((PyObject *)__pyx_v_indices), __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 156, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_indices), __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 156, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_copy); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 156, __pyx_L1_error) @@ -4394,7 +4448,7 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth __Pyx_GIVEREF(__pyx_slice__4); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_slice__4); __pyx_t_5 = 0; - __pyx_t_5 = PyObject_GetItem(((PyObject *)__pyx_v_contour), __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 243, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_contour), __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 243, __pyx_L1_error) @@ -4530,8 +4584,8 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyObject *__pyx_t_4 = NULL; PyArrayObject *__pyx_t_5 = NULL; long __pyx_t_6; - int __pyx_t_7; - Py_ssize_t __pyx_t_8; + long __pyx_t_7; + int __pyx_t_8; Py_ssize_t __pyx_t_9; Py_ssize_t __pyx_t_10; Py_ssize_t __pyx_t_11; @@ -4539,18 +4593,18 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth Py_ssize_t __pyx_t_13; Py_ssize_t __pyx_t_14; Py_ssize_t __pyx_t_15; - int __pyx_t_16; + Py_ssize_t __pyx_t_16; int __pyx_t_17; - double __pyx_t_18; + int __pyx_t_18; double __pyx_t_19; double __pyx_t_20; - PyObject *__pyx_t_21 = NULL; + double __pyx_t_21; PyObject *__pyx_t_22 = NULL; PyObject *__pyx_t_23 = NULL; PyObject *__pyx_t_24 = NULL; - int __pyx_t_25; - PyObject *__pyx_t_26 = NULL; - Py_ssize_t __pyx_t_27; + PyObject *__pyx_t_25 = NULL; + int __pyx_t_26; + PyObject *__pyx_t_27 = NULL; Py_ssize_t __pyx_t_28; Py_ssize_t __pyx_t_29; Py_ssize_t __pyx_t_30; @@ -4558,9 +4612,10 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth Py_ssize_t __pyx_t_32; Py_ssize_t __pyx_t_33; Py_ssize_t __pyx_t_34; - PyObject *__pyx_t_35 = NULL; + Py_ssize_t __pyx_t_35; PyObject *__pyx_t_36 = NULL; PyObject *__pyx_t_37 = NULL; + PyObject *__pyx_t_38 = NULL; __Pyx_TraceFrameInit(__pyx_codeobj__5) __Pyx_RefNannySetupContext("cleanContour", 0); __Pyx_TraceCall("cleanContour", __pyx_f[0], 250, 0, __PYX_ERR(0, 250, __pyx_L1_error)); @@ -4673,8 +4728,9 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * y2 = contour[i + 1,0] */ __pyx_t_6 = ((__pyx_v_contour->dimensions[0]) - 1); - for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) { - __pyx_v_i = __pyx_t_7; + __pyx_t_7 = __pyx_t_6; + for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) { + __pyx_v_i = __pyx_t_8; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":275 * @@ -4683,9 +4739,9 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * y2 = contour[i + 1,0] * x1 = contour[i,1] */ - __pyx_t_8 = __pyx_v_i; - __pyx_t_9 = 0; - __pyx_v_y1 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_9, __pyx_pybuffernd_contour.diminfo[1].strides)); + __pyx_t_9 = __pyx_v_i; + __pyx_t_10 = 0; + __pyx_v_y1 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_9, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_10, __pyx_pybuffernd_contour.diminfo[1].strides)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":276 * for i in range(contour.shape[0]-1): @@ -4694,9 +4750,9 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * x1 = contour[i,1] * x2 = contour[i + 1,1] */ - __pyx_t_10 = (__pyx_v_i + 1); - __pyx_t_11 = 0; - __pyx_v_y2 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_11, __pyx_pybuffernd_contour.diminfo[1].strides)); + __pyx_t_11 = (__pyx_v_i + 1); + __pyx_t_12 = 0; + __pyx_v_y2 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_12, __pyx_pybuffernd_contour.diminfo[1].strides)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":277 * y1 = contour[i,0] @@ -4705,9 +4761,9 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * x2 = contour[i + 1,1] * #% Initialize the point differences. */ - __pyx_t_12 = __pyx_v_i; - __pyx_t_13 = 1; - __pyx_v_x1 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_12, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_13, __pyx_pybuffernd_contour.diminfo[1].strides)); + __pyx_t_13 = __pyx_v_i; + __pyx_t_14 = 1; + __pyx_v_x1 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_14, __pyx_pybuffernd_contour.diminfo[1].strides)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":278 * y2 = contour[i + 1,0] @@ -4716,9 +4772,9 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * #% Initialize the point differences. * y = absDiff(y1,y2); */ - __pyx_t_14 = (__pyx_v_i + 1); - __pyx_t_15 = 1; - __pyx_v_x2 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_15, __pyx_pybuffernd_contour.diminfo[1].strides)); + __pyx_t_15 = (__pyx_v_i + 1); + __pyx_t_16 = 1; + __pyx_v_x2 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_16, __pyx_pybuffernd_contour.diminfo[1].strides)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":280 * x2 = contour[i + 1,1] @@ -4745,16 +4801,16 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * continue; * */ - __pyx_t_17 = ((__pyx_v_y == 0.0) != 0); - if (__pyx_t_17) { + __pyx_t_18 = ((__pyx_v_y == 0.0) != 0); + if (__pyx_t_18) { } else { - __pyx_t_16 = __pyx_t_17; + __pyx_t_17 = __pyx_t_18; goto __pyx_L6_bool_binop_done; } - __pyx_t_17 = ((__pyx_v_x == 0.0) != 0); - __pyx_t_16 = __pyx_t_17; + __pyx_t_18 = ((__pyx_v_x == 0.0) != 0); + __pyx_t_17 = __pyx_t_18; __pyx_L6_bool_binop_done:; - if (__pyx_t_16) { + if (__pyx_t_17) { /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":285 * #% Ignore duplicates. @@ -4781,28 +4837,28 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * cContour[j,:] = contour[i,:]; * j = j + 1; */ - __pyx_t_17 = ((__pyx_v_y == 0.0) != 0); - if (!__pyx_t_17) { + __pyx_t_18 = ((__pyx_v_y == 0.0) != 0); + if (!__pyx_t_18) { } else { goto __pyx_L10_next_and; } - __pyx_t_17 = ((__pyx_v_y == 1.0) != 0); - if (__pyx_t_17) { + __pyx_t_18 = ((__pyx_v_y == 1.0) != 0); + if (__pyx_t_18) { } else { - __pyx_t_16 = __pyx_t_17; + __pyx_t_17 = __pyx_t_18; goto __pyx_L9_bool_binop_done; } __pyx_L10_next_and:; - __pyx_t_17 = ((__pyx_v_x == 0.0) != 0); - if (!__pyx_t_17) { + __pyx_t_18 = ((__pyx_v_x == 0.0) != 0); + if (!__pyx_t_18) { } else { - __pyx_t_16 = __pyx_t_17; + __pyx_t_17 = __pyx_t_18; goto __pyx_L9_bool_binop_done; } - __pyx_t_17 = ((__pyx_v_x == 1.0) != 0); - __pyx_t_16 = __pyx_t_17; + __pyx_t_18 = ((__pyx_v_x == 1.0) != 0); + __pyx_t_17 = __pyx_t_18; __pyx_L9_bool_binop_done:; - if (__pyx_t_16) { + if (__pyx_t_17) { /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":289 * #% Add the point. @@ -4821,7 +4877,7 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth __Pyx_GIVEREF(__pyx_slice__6); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_slice__6); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_GetItem(((PyObject *)__pyx_v_contour), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 289, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_contour), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_j); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 289, __pyx_L1_error) @@ -4865,14 +4921,14 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * cContour[j:(j + points),1] = np.round(np.linspace(x1, x2, points + 1)); */ /*else*/ { - __pyx_t_18 = __pyx_v_x; - __pyx_t_19 = __pyx_v_y; - if (((__pyx_t_18 > __pyx_t_19) != 0)) { - __pyx_t_20 = __pyx_t_18; + __pyx_t_19 = __pyx_v_x; + __pyx_t_20 = __pyx_v_y; + if (((__pyx_t_19 > __pyx_t_20) != 0)) { + __pyx_t_21 = __pyx_t_19; } else { - __pyx_t_20 = __pyx_t_19; + __pyx_t_21 = __pyx_t_20; } - __pyx_t_1 = __Pyx_PyInt_From_int(((int)__pyx_t_20)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 294, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_int(((int)__pyx_t_21)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_points, __pyx_t_1); __pyx_t_1 = 0; @@ -4891,134 +4947,134 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_linspace); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_21); + __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_linspace); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_22 = PyFloat_FromDouble(__pyx_v_y2); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_22); - __pyx_t_23 = __Pyx_PyInt_AddObjC(__pyx_v_points, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 295, __pyx_L1_error) + __pyx_t_23 = PyFloat_FromDouble(__pyx_v_y2); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_23); - __pyx_t_24 = NULL; - __pyx_t_25 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) { - __pyx_t_24 = PyMethod_GET_SELF(__pyx_t_21); - if (likely(__pyx_t_24)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); - __Pyx_INCREF(__pyx_t_24); + __pyx_t_24 = __Pyx_PyInt_AddObjC(__pyx_v_points, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_24); + __pyx_t_25 = NULL; + __pyx_t_26 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_22))) { + __pyx_t_25 = PyMethod_GET_SELF(__pyx_t_22); + if (likely(__pyx_t_25)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); + __Pyx_INCREF(__pyx_t_25); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_21, function); - __pyx_t_25 = 1; + __Pyx_DECREF_SET(__pyx_t_22, function); + __pyx_t_26 = 1; } } #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_21)) { - PyObject *__pyx_temp[4] = {__pyx_t_24, __pyx_t_2, __pyx_t_22, __pyx_t_23}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_25, 3+__pyx_t_25); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; + if (PyFunction_Check(__pyx_t_22)) { + PyObject *__pyx_temp[4] = {__pyx_t_25, __pyx_t_2, __pyx_t_23, __pyx_t_24}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_26, 3+__pyx_t_26); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 295, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; + __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; } else #endif #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) { - PyObject *__pyx_temp[4] = {__pyx_t_24, __pyx_t_2, __pyx_t_22, __pyx_t_23}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_25, 3+__pyx_t_25); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; + if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) { + PyObject *__pyx_temp[4] = {__pyx_t_25, __pyx_t_2, __pyx_t_23, __pyx_t_24}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_26, 3+__pyx_t_26); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 295, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; + __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; } else #endif { - __pyx_t_26 = PyTuple_New(3+__pyx_t_25); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_26); - if (__pyx_t_24) { - __Pyx_GIVEREF(__pyx_t_24); PyTuple_SET_ITEM(__pyx_t_26, 0, __pyx_t_24); __pyx_t_24 = NULL; + __pyx_t_27 = PyTuple_New(3+__pyx_t_26); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_27); + if (__pyx_t_25) { + __Pyx_GIVEREF(__pyx_t_25); PyTuple_SET_ITEM(__pyx_t_27, 0, __pyx_t_25); __pyx_t_25 = NULL; } __Pyx_GIVEREF(__pyx_t_2); - PyTuple_SET_ITEM(__pyx_t_26, 0+__pyx_t_25, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_22); - PyTuple_SET_ITEM(__pyx_t_26, 1+__pyx_t_25, __pyx_t_22); + PyTuple_SET_ITEM(__pyx_t_27, 0+__pyx_t_26, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_23); - PyTuple_SET_ITEM(__pyx_t_26, 2+__pyx_t_25, __pyx_t_23); + PyTuple_SET_ITEM(__pyx_t_27, 1+__pyx_t_26, __pyx_t_23); + __Pyx_GIVEREF(__pyx_t_24); + PyTuple_SET_ITEM(__pyx_t_27, 2+__pyx_t_26, __pyx_t_24); __pyx_t_2 = 0; - __pyx_t_22 = 0; __pyx_t_23 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_26, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 295, __pyx_L1_error) + __pyx_t_24 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_27, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; + __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; } - __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; - __pyx_t_21 = NULL; + __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; + __pyx_t_22 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_21)) { + __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_22)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_21); + __Pyx_INCREF(__pyx_t_22); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } - if (!__pyx_t_21) { + if (!__pyx_t_22) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[2] = {__pyx_t_21, __pyx_t_4}; + PyObject *__pyx_temp[2] = {__pyx_t_22, __pyx_t_4}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; + __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 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[2] = {__pyx_t_21, __pyx_t_4}; + PyObject *__pyx_temp[2] = {__pyx_t_22, __pyx_t_4}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; + __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { - __pyx_t_26 = PyTuple_New(1+1); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_26); - __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_26, 0, __pyx_t_21); __pyx_t_21 = NULL; + __pyx_t_27 = PyTuple_New(1+1); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_27); + __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_27, 0, __pyx_t_22); __pyx_t_22 = NULL; __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_26, 0+1, __pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_27, 0+1, __pyx_t_4); __pyx_t_4 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_26, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_27, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; + __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; } } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_j); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_26 = __Pyx_PyInt_From_int(__pyx_v_j); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_26); - __pyx_t_4 = PyNumber_Add(__pyx_t_26, __pyx_v_points); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 295, __pyx_L1_error) + __pyx_t_27 = __Pyx_PyInt_From_int(__pyx_v_j); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_27); + __pyx_t_4 = PyNumber_Add(__pyx_t_27, __pyx_v_points); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; - __pyx_t_26 = PySlice_New(__pyx_t_3, __pyx_t_4, Py_None); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_26); + __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; + __pyx_t_27 = PySlice_New(__pyx_t_3, __pyx_t_4, Py_None); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_26); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_26); + __Pyx_GIVEREF(__pyx_t_27); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_27); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_0); - __pyx_t_26 = 0; + __pyx_t_27 = 0; if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_cContour), __pyx_t_4, __pyx_t_1) < 0)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -5032,139 +5088,139 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth */ __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_round); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_26); + __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_round); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_linspace); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_21); + __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_linspace); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyFloat_FromDouble(__pyx_v_x1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_23 = PyFloat_FromDouble(__pyx_v_x2); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 296, __pyx_L1_error) + __pyx_t_24 = PyFloat_FromDouble(__pyx_v_x2); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_24); + __pyx_t_23 = __Pyx_PyInt_AddObjC(__pyx_v_points, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_23); - __pyx_t_22 = __Pyx_PyInt_AddObjC(__pyx_v_points, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_22); __pyx_t_2 = NULL; - __pyx_t_25 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_21); + __pyx_t_26 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_22))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_22); if (likely(__pyx_t_2)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_21, function); - __pyx_t_25 = 1; + __Pyx_DECREF_SET(__pyx_t_22, function); + __pyx_t_26 = 1; } } #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_21)) { - PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_t_3, __pyx_t_23, __pyx_t_22}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_25, 3+__pyx_t_25); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 296, __pyx_L1_error) + if (PyFunction_Check(__pyx_t_22)) { + PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_t_3, __pyx_t_24, __pyx_t_23}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_26, 3+__pyx_t_26); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; - __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } else #endif #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) { - PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_t_3, __pyx_t_23, __pyx_t_22}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_25, 3+__pyx_t_25); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 296, __pyx_L1_error) + if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) { + PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_t_3, __pyx_t_24, __pyx_t_23}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_26, 3+__pyx_t_26); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; - __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } else #endif { - __pyx_t_24 = PyTuple_New(3+__pyx_t_25); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_24); + __pyx_t_25 = PyTuple_New(3+__pyx_t_26); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_25); if (__pyx_t_2) { - __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_24, 0, __pyx_t_2); __pyx_t_2 = NULL; + __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_25, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_24, 0+__pyx_t_25, __pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_25, 0+__pyx_t_26, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_24); + PyTuple_SET_ITEM(__pyx_t_25, 1+__pyx_t_26, __pyx_t_24); __Pyx_GIVEREF(__pyx_t_23); - PyTuple_SET_ITEM(__pyx_t_24, 1+__pyx_t_25, __pyx_t_23); - __Pyx_GIVEREF(__pyx_t_22); - PyTuple_SET_ITEM(__pyx_t_24, 2+__pyx_t_25, __pyx_t_22); + PyTuple_SET_ITEM(__pyx_t_25, 2+__pyx_t_26, __pyx_t_23); __pyx_t_3 = 0; + __pyx_t_24 = 0; __pyx_t_23 = 0; - __pyx_t_22 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_24, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 296, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_25, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; + __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; } - __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; - __pyx_t_21 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_26))) { - __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_26); - if (likely(__pyx_t_21)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_26); - __Pyx_INCREF(__pyx_t_21); + __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; + __pyx_t_22 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_27))) { + __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_27); + if (likely(__pyx_t_22)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_27); + __Pyx_INCREF(__pyx_t_22); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_26, function); + __Pyx_DECREF_SET(__pyx_t_27, function); } } - if (!__pyx_t_21) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_26, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error) + if (!__pyx_t_22) { + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_27, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); } else { #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_26)) { - PyObject *__pyx_temp[2] = {__pyx_t_21, __pyx_t_4}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_26, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; + if (PyFunction_Check(__pyx_t_27)) { + PyObject *__pyx_temp[2] = {__pyx_t_22, __pyx_t_4}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_27, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 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_26)) { - PyObject *__pyx_temp[2] = {__pyx_t_21, __pyx_t_4}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_26, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; + if (__Pyx_PyFastCFunction_Check(__pyx_t_27)) { + PyObject *__pyx_temp[2] = {__pyx_t_22, __pyx_t_4}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_27, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { - __pyx_t_24 = PyTuple_New(1+1); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_24); - __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_24, 0, __pyx_t_21); __pyx_t_21 = NULL; + __pyx_t_25 = PyTuple_New(1+1); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_25); + __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_25, 0, __pyx_t_22); __pyx_t_22 = NULL; __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_24, 0+1, __pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_25, 0+1, __pyx_t_4); __pyx_t_4 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_26, __pyx_t_24, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_27, __pyx_t_25, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; + __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; } } - __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; - __pyx_t_26 = __Pyx_PyInt_From_int(__pyx_v_j); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_26); - __pyx_t_24 = __Pyx_PyInt_From_int(__pyx_v_j); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_24); - __pyx_t_4 = PyNumber_Add(__pyx_t_24, __pyx_v_points); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 296, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; + __pyx_t_27 = __Pyx_PyInt_From_int(__pyx_v_j); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_27); + __pyx_t_25 = __Pyx_PyInt_From_int(__pyx_v_j); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_25); + __pyx_t_4 = PyNumber_Add(__pyx_t_25, __pyx_v_points); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; - __pyx_t_24 = PySlice_New(__pyx_t_26, __pyx_t_4, Py_None); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_24); - __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; + __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; + __pyx_t_25 = PySlice_New(__pyx_t_27, __pyx_t_4, Py_None); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_25); + __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_24); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_24); + __Pyx_GIVEREF(__pyx_t_25); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_25); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_1); - __pyx_t_24 = 0; + __pyx_t_25 = 0; if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_cContour), __pyx_t_4, __pyx_t_1) < 0)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -5181,9 +5237,9 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth __pyx_t_4 = PyNumber_Add(__pyx_t_1, __pyx_v_points); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_25 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_25 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 297, __pyx_L1_error) + __pyx_t_26 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_26 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 297, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_j = __pyx_t_25; + __pyx_v_j = __pyx_t_26; } __pyx_L8:; __pyx_L3_continue:; @@ -5196,14 +5252,14 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * (cContour[1,0] != contour[last_index_contour,1]): * cContour[j,:] = contour[last_index_contour,:] */ - __pyx_t_27 = 0; __pyx_t_28 = 0; - __pyx_t_29 = __pyx_v_last_index_contour; - __pyx_t_30 = 0; - __pyx_t_17 = (((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cContour.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_cContour.diminfo[0].strides, __pyx_t_28, __pyx_pybuffernd_cContour.diminfo[1].strides)) != (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_30, __pyx_pybuffernd_contour.diminfo[1].strides))) != 0); - if (!__pyx_t_17) { + __pyx_t_29 = 0; + __pyx_t_30 = __pyx_v_last_index_contour; + __pyx_t_31 = 0; + __pyx_t_18 = (((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cContour.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_cContour.diminfo[0].strides, __pyx_t_29, __pyx_pybuffernd_cContour.diminfo[1].strides)) != (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_31, __pyx_pybuffernd_contour.diminfo[1].strides))) != 0); + if (!__pyx_t_18) { } else { - __pyx_t_16 = __pyx_t_17; + __pyx_t_17 = __pyx_t_18; goto __pyx_L14_bool_binop_done; } @@ -5214,12 +5270,12 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * cContour[j,:] = contour[last_index_contour,:] * j = j + 1; */ - __pyx_t_31 = 1; - __pyx_t_32 = 0; - __pyx_t_33 = __pyx_v_last_index_contour; - __pyx_t_34 = 1; - __pyx_t_17 = (((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cContour.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_cContour.diminfo[0].strides, __pyx_t_32, __pyx_pybuffernd_cContour.diminfo[1].strides)) != (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_34, __pyx_pybuffernd_contour.diminfo[1].strides))) != 0); - __pyx_t_16 = __pyx_t_17; + __pyx_t_32 = 1; + __pyx_t_33 = 0; + __pyx_t_34 = __pyx_v_last_index_contour; + __pyx_t_35 = 1; + __pyx_t_18 = (((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cContour.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_cContour.diminfo[0].strides, __pyx_t_33, __pyx_pybuffernd_cContour.diminfo[1].strides)) != (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_35, __pyx_pybuffernd_contour.diminfo[1].strides))) != 0); + __pyx_t_17 = __pyx_t_18; __pyx_L14_bool_binop_done:; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":300 @@ -5229,7 +5285,7 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * (cContour[1,0] != contour[last_index_contour,1]): * cContour[j,:] = contour[last_index_contour,:] */ - if (__pyx_t_16) { + if (__pyx_t_17) { /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":302 * if (cContour[0,0] != contour[last_index_contour,0]) or \ @@ -5248,21 +5304,21 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_slice__8); __pyx_t_4 = 0; - __pyx_t_4 = PyObject_GetItem(((PyObject *)__pyx_v_contour), __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 302, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_contour), __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_j); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_24 = PyTuple_New(2); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 302, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_24); + __pyx_t_25 = PyTuple_New(2); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_25); __Pyx_GIVEREF(__pyx_t_1); - PyTuple_SET_ITEM(__pyx_t_24, 0, __pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_25, 0, __pyx_t_1); __Pyx_INCREF(__pyx_slice__9); __Pyx_GIVEREF(__pyx_slice__9); - PyTuple_SET_ITEM(__pyx_t_24, 1, __pyx_slice__9); + PyTuple_SET_ITEM(__pyx_t_25, 1, __pyx_slice__9); __pyx_t_1 = 0; - if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_cContour), __pyx_t_24, __pyx_t_4) < 0)) __PYX_ERR(0, 302, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; + if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_cContour), __pyx_t_25, __pyx_t_4) < 0)) __PYX_ERR(0, 302, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":303 @@ -5292,42 +5348,42 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth */ __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_j); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_24 = PySlice_New(Py_None, __pyx_t_4, Py_None); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 305, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_24); + __pyx_t_25 = PySlice_New(Py_None, __pyx_t_4, Py_None); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 305, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_24); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_24); + __Pyx_GIVEREF(__pyx_t_25); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_25); __Pyx_INCREF(__pyx_slice__10); __Pyx_GIVEREF(__pyx_slice__10); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_slice__10); - __pyx_t_24 = 0; - __pyx_t_24 = PyObject_GetItem(((PyObject *)__pyx_v_cContour), __pyx_t_4); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 305, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_24); + __pyx_t_25 = 0; + __pyx_t_25 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_cContour), __pyx_t_4); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 305, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!(likely(((__pyx_t_24) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_24, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 305, __pyx_L1_error) - __pyx_t_5 = ((PyArrayObject *)__pyx_t_24); + if (!(likely(((__pyx_t_25) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_25, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 305, __pyx_L1_error) + __pyx_t_5 = ((PyArrayObject *)__pyx_t_25); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cContour.rcbuffer->pybuffer); - __pyx_t_7 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cContour.rcbuffer->pybuffer, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); - if (unlikely(__pyx_t_7 < 0)) { - PyErr_Fetch(&__pyx_t_35, &__pyx_t_36, &__pyx_t_37); + __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cContour.rcbuffer->pybuffer, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); + if (unlikely(__pyx_t_8 < 0)) { + PyErr_Fetch(&__pyx_t_36, &__pyx_t_37, &__pyx_t_38); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cContour.rcbuffer->pybuffer, (PyObject*)__pyx_v_cContour, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_35); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_37); + Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_37); Py_XDECREF(__pyx_t_38); __Pyx_RaiseBufferFallbackError(); } else { - PyErr_Restore(__pyx_t_35, __pyx_t_36, __pyx_t_37); + PyErr_Restore(__pyx_t_36, __pyx_t_37, __pyx_t_38); } - __pyx_t_35 = __pyx_t_36 = __pyx_t_37 = 0; + __pyx_t_36 = __pyx_t_37 = __pyx_t_38 = 0; } __pyx_pybuffernd_cContour.diminfo[0].strides = __pyx_pybuffernd_cContour.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cContour.diminfo[0].shape = __pyx_pybuffernd_cContour.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_cContour.diminfo[1].strides = __pyx_pybuffernd_cContour.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_cContour.diminfo[1].shape = __pyx_pybuffernd_cContour.rcbuffer->pybuffer.shape[1]; - if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 305, __pyx_L1_error) + if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 305, __pyx_L1_error) } __pyx_t_5 = 0; - __Pyx_DECREF_SET(__pyx_v_cContour, ((PyArrayObject *)__pyx_t_24)); - __pyx_t_24 = 0; + __Pyx_DECREF_SET(__pyx_v_cContour, ((PyArrayObject *)__pyx_t_25)); + __pyx_t_25 = 0; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":307 * cContour = cContour[:j,:] @@ -5354,11 +5410,11 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_21); __Pyx_XDECREF(__pyx_t_22); __Pyx_XDECREF(__pyx_t_23); __Pyx_XDECREF(__pyx_t_24); - __Pyx_XDECREF(__pyx_t_26); + __Pyx_XDECREF(__pyx_t_25); + __Pyx_XDECREF(__pyx_t_27); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign @@ -5381,12 +5437,12 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":214 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 * # 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 fullfill the PEP. + * # requirements, and does not yet fulfill the PEP. */ /* Python wrapper */ @@ -5403,7 +5459,6 @@ static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx } static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { - int __pyx_v_copy_shape; int __pyx_v_i; int __pyx_v_ndim; int __pyx_v_endian_detector; @@ -5412,7 +5467,6 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P char *__pyx_v_f; PyArray_Descr *__pyx_v_descr = 0; int __pyx_v_offset; - int __pyx_v_hasfields; int __pyx_r; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations @@ -5421,39 +5475,29 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_t_5; - PyObject *__pyx_t_6 = NULL; - char *__pyx_t_7; - __Pyx_RefNannySetupContext("__getbuffer__", 0); - if (__pyx_v_info != NULL) { - __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(__pyx_v_info->obj); - } - __Pyx_TraceCall("__getbuffer__", __pyx_f[1], 214, 0, __PYX_ERR(1, 214, __pyx_L1_error)); - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":220 - * # of flags - * - * if info == NULL: return # <<<<<<<<<<<<<< - * - * cdef int copy_shape, i, ndim - */ - __pyx_t_1 = ((__pyx_v_info == NULL) != 0); - if (__pyx_t_1) { - __pyx_r = 0; - goto __pyx_L0; + int __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + char *__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); + __Pyx_TraceCall("__getbuffer__", __pyx_f[1], 215, 0, __PYX_ERR(1, 215, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":223 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":222 * - * cdef int copy_shape, i, ndim + * cdef int i, ndim * cdef int endian_detector = 1 # <<<<<<<<<<<<<< * cdef bint little_endian = ((&endian_detector)[0] != 0) * */ __pyx_v_endian_detector = 1; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":224 - * cdef int copy_shape, i, ndim + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":223 + * cdef int i, ndim * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< * @@ -5461,59 +5505,18 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":226 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":225 * cdef bint little_endian = ((&endian_detector)[0] != 0) * * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): + * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) */ __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":228 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 * ndim = PyArray_NDIM(self) * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< - * copy_shape = 1 - * else: - */ - __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); - if (__pyx_t_1) { - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":229 - * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): - * copy_shape = 1 # <<<<<<<<<<<<<< - * else: - * copy_shape = 0 - */ - __pyx_v_copy_shape = 1; - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":228 - * ndim = PyArray_NDIM(self) - * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< - * copy_shape = 1 - * else: - */ - goto __pyx_L4; - } - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":231 - * copy_shape = 1 - * else: - * copy_shape = 0 # <<<<<<<<<<<<<< - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - */ - /*else*/ { - __pyx_v_copy_shape = 0; - } - __pyx_L4:; - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":233 - * copy_shape = 0 - * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") @@ -5522,10 +5525,10 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; - goto __pyx_L6_bool_binop_done; + goto __pyx_L4_bool_binop_done; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":234 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":228 * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< @@ -5534,32 +5537,32 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_C_CONTIGUOUS) != 0)) != 0); __pyx_t_1 = __pyx_t_2; - __pyx_L6_bool_binop_done:; + __pyx_L4_bool_binop_done:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":233 - * copy_shape = 0 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 + * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") */ - if (__pyx_t_1) { + if (unlikely(__pyx_t_1)) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":235 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_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__11, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 235, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 229, __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, 235, __pyx_L1_error) + __PYX_ERR(1, 229, __pyx_L1_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":233 - * copy_shape = 0 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 + * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): @@ -5567,7 +5570,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":237 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -5578,10 +5581,10 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; - goto __pyx_L9_bool_binop_done; + goto __pyx_L7_bool_binop_done; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":238 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":232 * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< @@ -5590,31 +5593,31 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_F_CONTIGUOUS) != 0)) != 0); __pyx_t_1 = __pyx_t_2; - __pyx_L9_bool_binop_done:; + __pyx_L7_bool_binop_done:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":237 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") */ - if (__pyx_t_1) { + if (unlikely(__pyx_t_1)) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":239 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_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__12, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 239, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 233, __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, 239, __pyx_L1_error) + __PYX_ERR(1, 233, __pyx_L1_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":237 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -5623,35 +5626,35 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":241 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":235 * raise ValueError(u"ndarray is not Fortran contiguous") * * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< * info.ndim = ndim - * if copy_shape: + * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":242 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":236 * * info.buf = PyArray_DATA(self) * info.ndim = ndim # <<<<<<<<<<<<<< - * if copy_shape: + * if sizeof(npy_intp) != sizeof(Py_ssize_t): * # Allocate new buffer for strides and shape info. */ __pyx_v_info->ndim = __pyx_v_ndim; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":243 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 * info.buf = PyArray_DATA(self) * info.ndim = ndim - * if copy_shape: # <<<<<<<<<<<<<< + * 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 = (__pyx_v_copy_shape != 0); + __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":246 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":240 * # 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) # <<<<<<<<<<<<<< @@ -5660,7 +5663,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->strides = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * 2) * ((size_t)__pyx_v_ndim)))); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":247 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":241 * # This is allocated as one block, strides first. * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim # <<<<<<<<<<<<<< @@ -5669,7 +5672,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":248 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":242 * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim * for i in range(ndim): # <<<<<<<<<<<<<< @@ -5677,10 +5680,11 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P * info.shape[i] = PyArray_DIMS(self)[i] */ __pyx_t_4 = __pyx_v_ndim; - for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { - __pyx_v_i = __pyx_t_5; + __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":249 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":243 * info.shape = info.strides + ndim * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] # <<<<<<<<<<<<<< @@ -5689,7 +5693,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(__pyx_v_self)[__pyx_v_i]); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":250 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":244 * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] * info.shape[i] = PyArray_DIMS(self)[i] # <<<<<<<<<<<<<< @@ -5699,17 +5703,17 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":243 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 * info.buf = PyArray_DATA(self) * info.ndim = ndim - * if copy_shape: # <<<<<<<<<<<<<< + * 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_L11; + goto __pyx_L9; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":252 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":246 * info.shape[i] = PyArray_DIMS(self)[i] * else: * info.strides = PyArray_STRIDES(self) # <<<<<<<<<<<<<< @@ -5719,7 +5723,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P /*else*/ { __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":253 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":247 * else: * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) # <<<<<<<<<<<<<< @@ -5728,9 +5732,9 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self)); } - __pyx_L11:; + __pyx_L9:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":254 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":248 * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL # <<<<<<<<<<<<<< @@ -5739,7 +5743,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->suboffsets = NULL; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":255 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":249 * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) # <<<<<<<<<<<<<< @@ -5748,7 +5752,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":256 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":250 * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< @@ -5757,106 +5761,53 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":259 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":253 * * cdef int t * cdef char* f = NULL # <<<<<<<<<<<<<< * cdef dtype descr = self.descr * cdef int offset */ - __pyx_v_f = NULL; - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":260 - * cdef int t - * cdef char* f = NULL - * cdef dtype descr = self.descr # <<<<<<<<<<<<<< - * cdef int offset - * - */ - __pyx_t_3 = ((PyObject *)__pyx_v_self->descr); - __Pyx_INCREF(__pyx_t_3); - __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); - __pyx_t_3 = 0; - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":263 - * cdef int offset - * - * cdef bint hasfields = PyDataType_HASFIELDS(descr) # <<<<<<<<<<<<<< - * - * if not hasfields and not copy_shape: - */ - __pyx_v_hasfields = PyDataType_HASFIELDS(__pyx_v_descr); - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":265 - * cdef bint hasfields = PyDataType_HASFIELDS(descr) - * - * if not hasfields and not copy_shape: # <<<<<<<<<<<<<< - * # do not call releasebuffer - * info.obj = None - */ - __pyx_t_2 = ((!(__pyx_v_hasfields != 0)) != 0); - if (__pyx_t_2) { - } else { - __pyx_t_1 = __pyx_t_2; - goto __pyx_L15_bool_binop_done; - } - __pyx_t_2 = ((!(__pyx_v_copy_shape != 0)) != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L15_bool_binop_done:; - if (__pyx_t_1) { - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":267 - * if not hasfields and not copy_shape: - * # do not call releasebuffer - * info.obj = None # <<<<<<<<<<<<<< - * else: - * # need to call releasebuffer - */ - __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(Py_None); - __Pyx_GOTREF(__pyx_v_info->obj); - __Pyx_DECREF(__pyx_v_info->obj); - __pyx_v_info->obj = Py_None; + __pyx_v_f = NULL; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":265 - * cdef bint hasfields = PyDataType_HASFIELDS(descr) + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":254 + * cdef int t + * cdef char* f = NULL + * cdef dtype descr = self.descr # <<<<<<<<<<<<<< + * cdef int offset * - * if not hasfields and not copy_shape: # <<<<<<<<<<<<<< - * # do not call releasebuffer - * info.obj = None */ - goto __pyx_L14; - } + __pyx_t_3 = ((PyObject *)__pyx_v_self->descr); + __Pyx_INCREF(__pyx_t_3); + __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); + __pyx_t_3 = 0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":270 - * else: - * # need to call releasebuffer - * info.obj = self # <<<<<<<<<<<<<< + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":257 + * cdef int offset + * + * info.obj = self # <<<<<<<<<<<<<< * - * if not hasfields: + * if not PyDataType_HASFIELDS(descr): */ - /*else*/ { - __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); - } - __pyx_L14:; + __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":272 - * info.obj = self + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 + * info.obj = self * - * if not hasfields: # <<<<<<<<<<<<<< + * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or */ - __pyx_t_1 = ((!(__pyx_v_hasfields != 0)) != 0); + __pyx_t_1 = ((!(PyDataType_HASFIELDS(__pyx_v_descr) != 0)) != 0); if (__pyx_t_1) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":273 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":260 * - * if not hasfields: + * if not PyDataType_HASFIELDS(descr): * t = descr.type_num # <<<<<<<<<<<<<< * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): @@ -5864,8 +5815,8 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_4 = __pyx_v_descr->type_num; __pyx_v_t = __pyx_t_4; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":274 - * if not hasfields: + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): @@ -5873,18 +5824,18 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_t_2 = ((__pyx_v_descr->byteorder == '>') != 0); if (!__pyx_t_2) { - goto __pyx_L20_next_or; + 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_L19_bool_binop_done; + goto __pyx_L14_bool_binop_done; } - __pyx_L20_next_or:; + __pyx_L15_next_or:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":275 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":262 * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< @@ -5895,36 +5846,36 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; - goto __pyx_L19_bool_binop_done; + goto __pyx_L14_bool_binop_done; } __pyx_t_2 = ((!(__pyx_v_little_endian != 0)) != 0); __pyx_t_1 = __pyx_t_2; - __pyx_L19_bool_binop_done:; + __pyx_L14_bool_binop_done:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":274 - * if not hasfields: + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + * 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 (__pyx_t_1) { + if (unlikely(__pyx_t_1)) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":276 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 * 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__13, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 276, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 263, __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) + __PYX_ERR(1, 263, __pyx_L1_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":274 - * if not hasfields: + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): @@ -5932,7 +5883,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":277 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":264 * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" # <<<<<<<<<<<<<< @@ -5944,7 +5895,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"b"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":278 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":265 * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" # <<<<<<<<<<<<<< @@ -5955,7 +5906,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"B"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":279 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":266 * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" # <<<<<<<<<<<<<< @@ -5966,7 +5917,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"h"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":280 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":267 * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" # <<<<<<<<<<<<<< @@ -5977,7 +5928,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"H"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":281 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":268 * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" # <<<<<<<<<<<<<< @@ -5988,7 +5939,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"i"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":282 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":269 * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" # <<<<<<<<<<<<<< @@ -5999,7 +5950,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"I"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":283 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":270 * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" # <<<<<<<<<<<<<< @@ -6010,7 +5961,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"l"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":284 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":271 * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" # <<<<<<<<<<<<<< @@ -6021,7 +5972,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"L"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":285 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":272 * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" # <<<<<<<<<<<<<< @@ -6032,7 +5983,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"q"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":286 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":273 * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" # <<<<<<<<<<<<<< @@ -6043,7 +5994,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Q"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":287 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":274 * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" # <<<<<<<<<<<<<< @@ -6054,7 +6005,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"f"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":288 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":275 * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" # <<<<<<<<<<<<<< @@ -6065,7 +6016,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"d"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":289 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":276 * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" # <<<<<<<<<<<<<< @@ -6076,7 +6027,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"g"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":290 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":277 * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" # <<<<<<<<<<<<<< @@ -6087,7 +6038,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zf"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":291 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":278 * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" # <<<<<<<<<<<<<< @@ -6098,7 +6049,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zd"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":292 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":279 * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" # <<<<<<<<<<<<<< @@ -6109,7 +6060,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zg"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":293 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":280 * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" * elif t == NPY_OBJECT: f = "O" # <<<<<<<<<<<<<< @@ -6121,33 +6072,28 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P break; default: - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":295 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":282 * 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, 295, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 295, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_6); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_Raise(__pyx_t_6, 0, 0, 0); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __PYX_ERR(1, 295, __pyx_L1_error) + __PYX_ERR(1, 282, __pyx_L1_error) break; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":296 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":283 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f # <<<<<<<<<<<<<< @@ -6156,7 +6102,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->format = __pyx_v_f; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":297 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":284 * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f * return # <<<<<<<<<<<<<< @@ -6166,16 +6112,16 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_r = 0; goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":272 - * info.obj = self + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 + * info.obj = self * - * if not hasfields: # <<<<<<<<<<<<<< + * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":299 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":286 * return * else: * info.format = PyObject_Malloc(_buffer_format_string_len) # <<<<<<<<<<<<<< @@ -6185,7 +6131,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P /*else*/ { __pyx_v_info->format = ((char *)PyObject_Malloc(0xFF)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":300 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":287 * else: * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment # <<<<<<<<<<<<<< @@ -6194,7 +6140,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ (__pyx_v_info->format[0]) = '^'; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":301 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":288 * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 # <<<<<<<<<<<<<< @@ -6203,17 +6149,17 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_offset = 0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":302 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":289 * 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_7 = __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_7 == ((char *)NULL))) __PYX_ERR(1, 302, __pyx_L1_error) - __pyx_v_f = __pyx_t_7; + __pyx_t_8 = __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_8 == ((char *)NULL))) __PYX_ERR(1, 289, __pyx_L1_error) + __pyx_v_f = __pyx_t_8; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":305 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":292 * info.format + _buffer_format_string_len, * &offset) * f[0] = c'\0' # Terminate format string # <<<<<<<<<<<<<< @@ -6223,12 +6169,12 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P (__pyx_v_f[0]) = '\x00'; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":214 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 * # 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 fullfill the PEP. + * # requirements, and does not yet fulfill the PEP. */ /* function exit code */ @@ -6236,18 +6182,18 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("numpy.ndarray.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; - if (__pyx_v_info != NULL && __pyx_v_info->obj != NULL) { + if (__pyx_v_info->obj != NULL) { __Pyx_GOTREF(__pyx_v_info->obj); - __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = NULL; + __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } goto __pyx_L2; __pyx_L0:; - if (__pyx_v_info != NULL && __pyx_v_info->obj == Py_None) { - __Pyx_GOTREF(Py_None); - __Pyx_DECREF(Py_None); __pyx_v_info->obj = NULL; + 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); @@ -6256,7 +6202,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":307 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< @@ -6280,9 +6226,9 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("__releasebuffer__", 0); - __Pyx_TraceCall("__releasebuffer__", __pyx_f[1], 307, 0, __PYX_ERR(1, 307, __pyx_L1_error)); + __Pyx_TraceCall("__releasebuffer__", __pyx_f[1], 294, 0, __PYX_ERR(1, 294, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":308 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< @@ -6292,7 +6238,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __pyx_t_1 = (PyArray_HASFIELDS(__pyx_v_self) != 0); if (__pyx_t_1) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":309 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":296 * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) # <<<<<<<<<<<<<< @@ -6301,7 +6247,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ PyObject_Free(__pyx_v_info->format); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":308 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< @@ -6310,7 +6256,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":310 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -6320,7 +6266,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":311 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":298 * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): * PyObject_Free(info.strides) # <<<<<<<<<<<<<< @@ -6329,7 +6275,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ PyObject_Free(__pyx_v_info->strides); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":310 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -6338,7 +6284,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":307 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< @@ -6355,7 +6301,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __Pyx_RefNannyFinishContext(); } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":788 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< @@ -6369,9 +6315,9 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); - __Pyx_TraceCall("PyArray_MultiIterNew1", __pyx_f[1], 788, 0, __PYX_ERR(1, 788, __pyx_L1_error)); + __Pyx_TraceCall("PyArray_MultiIterNew1", __pyx_f[1], 775, 0, __PYX_ERR(1, 775, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":789 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":776 * * cdef inline object PyArray_MultiIterNew1(a): * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< @@ -6379,13 +6325,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ * 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, 789, __pyx_L1_error) + __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":788 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< @@ -6405,7 +6351,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":791 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< @@ -6419,9 +6365,9 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); - __Pyx_TraceCall("PyArray_MultiIterNew2", __pyx_f[1], 791, 0, __PYX_ERR(1, 791, __pyx_L1_error)); + __Pyx_TraceCall("PyArray_MultiIterNew2", __pyx_f[1], 778, 0, __PYX_ERR(1, 778, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":792 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":779 * * cdef inline object PyArray_MultiIterNew2(a, b): * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< @@ -6429,13 +6375,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ * 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, 792, __pyx_L1_error) + __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":791 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< @@ -6455,7 +6401,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":794 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< @@ -6469,9 +6415,9 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); - __Pyx_TraceCall("PyArray_MultiIterNew3", __pyx_f[1], 794, 0, __PYX_ERR(1, 794, __pyx_L1_error)); + __Pyx_TraceCall("PyArray_MultiIterNew3", __pyx_f[1], 781, 0, __PYX_ERR(1, 781, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":795 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":782 * * cdef inline object PyArray_MultiIterNew3(a, b, c): * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< @@ -6479,13 +6425,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ * 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, 795, __pyx_L1_error) + __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, 782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":794 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< @@ -6505,7 +6451,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":797 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< @@ -6519,9 +6465,9 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); - __Pyx_TraceCall("PyArray_MultiIterNew4", __pyx_f[1], 797, 0, __PYX_ERR(1, 797, __pyx_L1_error)); + __Pyx_TraceCall("PyArray_MultiIterNew4", __pyx_f[1], 784, 0, __PYX_ERR(1, 784, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":798 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":785 * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< @@ -6529,13 +6475,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ * 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, 798, __pyx_L1_error) + __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, 785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":797 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< @@ -6555,7 +6501,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":800 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< @@ -6569,9 +6515,9 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); - __Pyx_TraceCall("PyArray_MultiIterNew5", __pyx_f[1], 800, 0, __PYX_ERR(1, 800, __pyx_L1_error)); + __Pyx_TraceCall("PyArray_MultiIterNew5", __pyx_f[1], 787, 0, __PYX_ERR(1, 787, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":801 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":788 * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<< @@ -6579,13 +6525,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ * 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, 801, __pyx_L1_error) + __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, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":800 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< @@ -6605,7 +6551,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":803 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< @@ -6619,9 +6565,9 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); - __Pyx_TraceCall("PyDataType_SHAPE", __pyx_f[1], 803, 0, __PYX_ERR(1, 803, __pyx_L1_error)); + __Pyx_TraceCall("PyDataType_SHAPE", __pyx_f[1], 790, 0, __PYX_ERR(1, 790, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":804 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< @@ -6631,7 +6577,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); if (__pyx_t_1) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":805 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":792 * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): * return d.subarray.shape # <<<<<<<<<<<<<< @@ -6643,7 +6589,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":804 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< @@ -6652,7 +6598,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":807 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":794 * return d.subarray.shape * else: * return () # <<<<<<<<<<<<<< @@ -6666,7 +6612,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ goto __pyx_L0; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":803 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< @@ -6685,7 +6631,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":809 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< @@ -6714,9 +6660,9 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx long __pyx_t_8; char *__pyx_t_9; __Pyx_RefNannySetupContext("_util_dtypestring", 0); - __Pyx_TraceCall("_util_dtypestring", __pyx_f[1], 809, 0, __PYX_ERR(1, 809, __pyx_L1_error)); + __Pyx_TraceCall("_util_dtypestring", __pyx_f[1], 796, 0, __PYX_ERR(1, 796, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":814 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":801 * * cdef dtype child * cdef int endian_detector = 1 # <<<<<<<<<<<<<< @@ -6725,7 +6671,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_endian_detector = 1; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":815 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":802 * cdef dtype child * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< @@ -6734,7 +6680,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":818 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< @@ -6743,21 +6689,21 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ if (unlikely(__pyx_v_descr->names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(1, 818, __pyx_L1_error) + __PYX_ERR(1, 805, __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, 818, __pyx_L1_error) + __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, 805, __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, 818, __pyx_L1_error) + __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); __pyx_t_3 = 0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":819 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":806 * * for childname in descr.names: * fields = descr.fields[childname] # <<<<<<<<<<<<<< @@ -6766,15 +6712,15 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ if (unlikely(__pyx_v_descr->fields == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 819, __pyx_L1_error) + __PYX_ERR(1, 806, __pyx_L1_error) } - __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 819, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 806, __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, 819, __pyx_L1_error) + 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, 806, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":820 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":807 * for childname in descr.names: * fields = descr.fields[childname] * child, new_offset = fields # <<<<<<<<<<<<<< @@ -6783,15 +6729,11 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ if (likely(__pyx_v_fields != Py_None)) { PyObject* sequence = __pyx_v_fields; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + 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, 820, __pyx_L1_error) + __PYX_ERR(1, 807, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); @@ -6799,51 +6741,51 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __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, 820, __pyx_L1_error) + __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 820, __pyx_L1_error) + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { - __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 820, __pyx_L1_error) + __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 807, __pyx_L1_error) } - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(1, 820, __pyx_L1_error) + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(1, 807, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":822 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 * 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, 822, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 809, __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, 822, __pyx_L1_error) + __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 809, __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, 822, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 809, __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 (__pyx_t_6) { + if (unlikely(__pyx_t_6)) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":823 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 * * 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__14, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 823, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 810, __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, 823, __pyx_L1_error) + __PYX_ERR(1, 810, __pyx_L1_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":822 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< @@ -6852,7 +6794,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":825 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -6872,7 +6814,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __pyx_L8_next_or:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":826 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":813 * * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< @@ -6889,29 +6831,29 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = __pyx_t_7; __pyx_L7_bool_binop_done:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":825 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * 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 (__pyx_t_6) { + if (unlikely(__pyx_t_6)) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":827 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 * 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, 827, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 814, __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, 827, __pyx_L1_error) + __PYX_ERR(1, 814, __pyx_L1_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":825 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -6920,7 +6862,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":837 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":824 * * # Output padding bytes * while offset[0] < new_offset: # <<<<<<<<<<<<<< @@ -6928,15 +6870,15 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx * f += 1 */ while (1) { - __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 837, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 824, __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, 837, __pyx_L1_error) + __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, 824, __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, 837, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 824, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_6) break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":838 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":825 * # Output padding bytes * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< @@ -6945,7 +6887,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ (__pyx_v_f[0]) = 0x78; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":839 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":826 * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte * f += 1 # <<<<<<<<<<<<<< @@ -6954,7 +6896,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_f = (__pyx_v_f + 1); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":840 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":827 * f[0] = 120 # "x"; pad byte * f += 1 * offset[0] += 1 # <<<<<<<<<<<<<< @@ -6965,7 +6907,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":842 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":829 * offset[0] += 1 * * offset[0] += child.itemsize # <<<<<<<<<<<<<< @@ -6975,7 +6917,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_8 = 0; (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":844 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< @@ -6985,19 +6927,19 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); if (__pyx_t_6) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":845 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":832 * * 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, 845, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 832, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); __pyx_t_4 = 0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":846 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< @@ -7005,22 +6947,22 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx * */ __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); - if (__pyx_t_6) { + if (unlikely(__pyx_t_6)) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":847 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 * 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__16, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 847, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 834, __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, 847, __pyx_L1_error) + __PYX_ERR(1, 834, __pyx_L1_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":846 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< @@ -7029,252 +6971,252 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":850 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":837 * * # 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, 850, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 837, __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, 850, __pyx_L1_error) + __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, 837, __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, 850, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 837, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":851 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":838 * # 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, 851, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 838, __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, 851, __pyx_L1_error) + __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, 838, __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, 851, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 838, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":852 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":839 * 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, 852, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 839, __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, 852, __pyx_L1_error) + __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, 839, __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, 852, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 839, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":853 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":840 * 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, 853, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 840, __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, 853, __pyx_L1_error) + __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, 840, __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, 853, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 840, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":854 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":841 * 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, 854, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 841, __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, 854, __pyx_L1_error) + __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, 841, __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, 854, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 841, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":855 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":842 * 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, 855, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 842, __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, 855, __pyx_L1_error) + __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, 842, __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, 855, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 842, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":856 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":843 * 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, 856, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 843, __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, 856, __pyx_L1_error) + __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, 843, __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, 856, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 843, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":857 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":844 * 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, 857, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 844, __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, 857, __pyx_L1_error) + __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, 844, __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, 857, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 844, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":858 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":845 * 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, 858, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 845, __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, 858, __pyx_L1_error) + __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, 845, __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, 858, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 845, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":859 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":846 * 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, 859, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 846, __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, 859, __pyx_L1_error) + __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, 846, __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, 859, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 846, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":860 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":847 * 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, 860, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 847, __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, 860, __pyx_L1_error) + __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, 847, __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, 860, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 847, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":861 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":848 * 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, 861, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 848, __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, 861, __pyx_L1_error) + __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, 848, __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, 861, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 848, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":862 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":849 * 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, 862, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 849, __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, 862, __pyx_L1_error) + __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, 849, __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, 862, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 849, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":863 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":850 * 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, 863, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 850, __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, 863, __pyx_L1_error) + __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, 850, __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, 863, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 850, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; @@ -7283,18 +7225,18 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":864 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":851 * 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, 864, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 851, __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, 864, __pyx_L1_error) + __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, 851, __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, 864, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 851, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; @@ -7303,18 +7245,18 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":865 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":852 * 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, 865, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 852, __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, 865, __pyx_L1_error) + __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, 852, __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, 865, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 852, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; @@ -7323,25 +7265,25 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":866 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":853 * 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, 866, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 853, __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, 866, __pyx_L1_error) + __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, 853, __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, 866, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 853, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { + if (likely(__pyx_t_6)) { (__pyx_v_f[0]) = 79; goto __pyx_L15; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":868 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":855 * elif t == NPY_OBJECT: f[0] = 79 #"O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< @@ -7349,23 +7291,18 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx * else: */ /*else*/ { - __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 868, __pyx_L1_error) + __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 868, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 855, __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_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 868, __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, 868, __pyx_L1_error) + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(1, 855, __pyx_L1_error) } __pyx_L15:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":869 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":856 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * f += 1 # <<<<<<<<<<<<<< @@ -7374,7 +7311,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_f = (__pyx_v_f + 1); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":844 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< @@ -7384,7 +7321,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L13; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":873 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":860 * # Cython ignores struct boundary information ("T{...}"), * # so don't output it * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< @@ -7392,12 +7329,12 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx * */ /*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, 873, __pyx_L1_error) + __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, 860, __pyx_L1_error) __pyx_v_f = __pyx_t_9; } __pyx_L13:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":818 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< @@ -7407,7 +7344,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":874 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":861 * # so don't output it * f = _util_dtypestring(child, f, end, offset) * return f # <<<<<<<<<<<<<< @@ -7417,7 +7354,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_r = __pyx_v_f; goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":809 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< @@ -7443,7 +7380,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":990 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 * * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< @@ -7458,9 +7395,9 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a int __pyx_t_1; int __pyx_t_2; __Pyx_RefNannySetupContext("set_array_base", 0); - __Pyx_TraceCall("set_array_base", __pyx_f[1], 990, 0, __PYX_ERR(1, 990, __pyx_L1_error)); + __Pyx_TraceCall("set_array_base", __pyx_f[1], 977, 0, __PYX_ERR(1, 977, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":992 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 * cdef inline void set_array_base(ndarray arr, object base): * cdef PyObject* baseptr * if base is None: # <<<<<<<<<<<<<< @@ -7471,7 +7408,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":993 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":980 * cdef PyObject* baseptr * if base is None: * baseptr = NULL # <<<<<<<<<<<<<< @@ -7480,7 +7417,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ __pyx_v_baseptr = NULL; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":992 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 * cdef inline void set_array_base(ndarray arr, object base): * cdef PyObject* baseptr * if base is None: # <<<<<<<<<<<<<< @@ -7490,7 +7427,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a goto __pyx_L3; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":995 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":982 * baseptr = NULL * else: * Py_INCREF(base) # important to do this before decref below! # <<<<<<<<<<<<<< @@ -7500,7 +7437,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a /*else*/ { Py_INCREF(__pyx_v_base); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":996 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":983 * else: * Py_INCREF(base) # important to do this before decref below! * baseptr = base # <<<<<<<<<<<<<< @@ -7511,7 +7448,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a } __pyx_L3:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":997 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":984 * Py_INCREF(base) # important to do this before decref below! * baseptr = base * Py_XDECREF(arr.base) # <<<<<<<<<<<<<< @@ -7520,7 +7457,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ Py_XDECREF(__pyx_v_arr->base); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":998 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":985 * baseptr = base * Py_XDECREF(arr.base) * arr.base = baseptr # <<<<<<<<<<<<<< @@ -7529,7 +7466,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ __pyx_v_arr->base = __pyx_v_baseptr; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":990 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 * * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< @@ -7546,7 +7483,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a __Pyx_RefNannyFinishContext(); } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1000 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< @@ -7560,9 +7497,9 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("get_array_base", 0); - __Pyx_TraceCall("get_array_base", __pyx_f[1], 1000, 0, __PYX_ERR(1, 1000, __pyx_L1_error)); + __Pyx_TraceCall("get_array_base", __pyx_f[1], 987, 0, __PYX_ERR(1, 987, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1001 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 * * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: # <<<<<<<<<<<<<< @@ -7572,7 +7509,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py __pyx_t_1 = ((__pyx_v_arr->base == NULL) != 0); if (__pyx_t_1) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1002 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":989 * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: * return None # <<<<<<<<<<<<<< @@ -7580,11 +7517,10 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py * return arr.base */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1001 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 * * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: # <<<<<<<<<<<<<< @@ -7593,7 +7529,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1004 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":991 * return None * else: * return arr.base # <<<<<<<<<<<<<< @@ -7607,7 +7543,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py goto __pyx_L0; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1000 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< @@ -7626,7 +7562,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1009 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< @@ -7647,9 +7583,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_array", 0); - __Pyx_TraceCall("import_array", __pyx_f[1], 1009, 0, __PYX_ERR(1, 1009, __pyx_L1_error)); + __Pyx_TraceCall("import_array", __pyx_f[1], 996, 0, __PYX_ERR(1, 996, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1010 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -7665,16 +7601,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1011 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":998 * 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, 1011, __pyx_L3_error) + __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 998, __pyx_L3_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1010 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -7688,7 +7624,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1012 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":999 * try: * _import_array() * except Exception: # <<<<<<<<<<<<<< @@ -7698,28 +7634,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __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, 1012, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 999, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1013 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 * _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__17, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1013, __pyx_L5_except_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1000, __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, 1013, __pyx_L5_except_error) + __PYX_ERR(1, 1000, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1010 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -7734,7 +7670,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __pyx_L8_try_end:; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1009 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< @@ -7758,7 +7694,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1015 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< @@ -7779,9 +7715,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_umath", 0); - __Pyx_TraceCall("import_umath", __pyx_f[1], 1015, 0, __PYX_ERR(1, 1015, __pyx_L1_error)); + __Pyx_TraceCall("import_umath", __pyx_f[1], 1002, 0, __PYX_ERR(1, 1002, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1016 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -7797,16 +7733,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1017 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1004 * 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, 1017, __pyx_L3_error) + __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1004, __pyx_L3_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1016 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -7820,7 +7756,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1018 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1005 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< @@ -7830,28 +7766,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __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, 1018, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1005, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1019 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 * _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__18, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1019, __pyx_L5_except_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1006, __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, 1019, __pyx_L5_except_error) + __PYX_ERR(1, 1006, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1016 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -7866,7 +7802,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __pyx_L8_try_end:; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1015 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< @@ -7890,7 +7826,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1021 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< @@ -7911,9 +7847,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_ufunc", 0); - __Pyx_TraceCall("import_ufunc", __pyx_f[1], 1021, 0, __PYX_ERR(1, 1021, __pyx_L1_error)); + __Pyx_TraceCall("import_ufunc", __pyx_f[1], 1008, 0, __PYX_ERR(1, 1008, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1022 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -7929,16 +7865,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1023 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1010 * 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, 1023, __pyx_L3_error) + __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1010, __pyx_L3_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1022 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -7952,7 +7888,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1024 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1011 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< @@ -7961,26 +7897,26 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __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, 1024, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1011, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1025 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 * _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, 1025, __pyx_L5_except_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1012, __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, 1025, __pyx_L5_except_error) + __PYX_ERR(1, 1012, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1022 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -7995,7 +7931,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __pyx_L8_try_end:; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1021 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< @@ -8125,9 +8061,9 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { }; static int __Pyx_InitCachedBuiltins(void) { __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 274, __pyx_L1_error) - __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 235, __pyx_L1_error) - __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 823, __pyx_L1_error) - __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 1013, __pyx_L1_error) + __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 229, __pyx_L1_error) + __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 810, __pyx_L1_error) + __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 1000, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; @@ -8187,100 +8123,100 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_slice__10); __Pyx_GIVEREF(__pyx_slice__10); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":235 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) */ - __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(1, 235, __pyx_L1_error) + __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(1, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__11); __Pyx_GIVEREF(__pyx_tuple__11); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":239 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< * * info.buf = PyArray_DATA(self) */ - __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(1, 239, __pyx_L1_error) + __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(1, 233, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__12); __Pyx_GIVEREF(__pyx_tuple__12); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":276 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 * 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__13 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(1, 276, __pyx_L1_error) + __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(1, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__13); __Pyx_GIVEREF(__pyx_tuple__13); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":823 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 * * 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__14 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(1, 823, __pyx_L1_error) + __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(1, 810, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__14); __Pyx_GIVEREF(__pyx_tuple__14); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":827 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 * 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_tuple__15 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(1, 827, __pyx_L1_error) + __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(1, 814, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__15); __Pyx_GIVEREF(__pyx_tuple__15); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":847 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 * 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__16 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(1, 847, __pyx_L1_error) + __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(1, 834, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__16); __Pyx_GIVEREF(__pyx_tuple__16); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1013 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 * _import_array() * except Exception: * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_umath() except -1: */ - __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(1, 1013, __pyx_L1_error) + __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(1, 1000, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__17); __Pyx_GIVEREF(__pyx_tuple__17); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1019 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_ufunc() except -1: */ - __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(1, 1019, __pyx_L1_error) + __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(1, 1006, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__18); __Pyx_GIVEREF(__pyx_tuple__18); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1025 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< */ - __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(1, 1025, __pyx_L1_error) + __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(1, 1012, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__19); __Pyx_GIVEREF(__pyx_tuple__19); @@ -8339,12 +8275,116 @@ static int __Pyx_InitGlobals(void) { return -1; } +static int __Pyx_modinit_global_init_code(void); /*proto*/ +static int __Pyx_modinit_variable_export_code(void); /*proto*/ +static int __Pyx_modinit_function_export_code(void); /*proto*/ +static int __Pyx_modinit_type_init_code(void); /*proto*/ +static int __Pyx_modinit_type_import_code(void); /*proto*/ +static int __Pyx_modinit_variable_import_code(void); /*proto*/ +static 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_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_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_type_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); + /*--- Type import code ---*/ + __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "type", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyTypeObject), + #else + sizeof(PyHeapTypeObject), + #endif + 0); if (unlikely(!__pyx_ptype_7cpython_4type_type)) __PYX_ERR(2, 9, __pyx_L1_error) + __pyx_ptype_5numpy_dtype = __Pyx_ImportType("numpy", "dtype", sizeof(PyArray_Descr), 0); if (unlikely(!__pyx_ptype_5numpy_dtype)) __PYX_ERR(1, 164, __pyx_L1_error) + __pyx_ptype_5numpy_flatiter = __Pyx_ImportType("numpy", "flatiter", sizeof(PyArrayIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_flatiter)) __PYX_ERR(1, 186, __pyx_L1_error) + __pyx_ptype_5numpy_broadcast = __Pyx_ImportType("numpy", "broadcast", sizeof(PyArrayMultiIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_broadcast)) __PYX_ERR(1, 190, __pyx_L1_error) + __pyx_ptype_5numpy_ndarray = __Pyx_ImportType("numpy", "ndarray", sizeof(PyArrayObject), 0); if (unlikely(!__pyx_ptype_5numpy_ndarray)) __PYX_ERR(1, 199, __pyx_L1_error) + __pyx_ptype_5numpy_ufunc = __Pyx_ImportType("numpy", "ufunc", sizeof(PyUFuncObject), 0); if (unlikely(!__pyx_ptype_5numpy_ufunc)) __PYX_ERR(1, 872, __pyx_L1_error) + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __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 + __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); + /*--- Function import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + + +#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 +#ifndef CYTHON_SMALL_CODE +#if defined(__clang__) + #define CYTHON_SMALL_CODE +#elif defined(__GNUC__) && (!(defined(__cplusplus)) || (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 4))) + #define CYTHON_SMALL_CODE __attribute__((optimize("Os"))) +#else + #define CYTHON_SMALL_CODE +#endif +#endif + + #if PY_MAJOR_VERSION < 3 -PyMODINIT_FUNC initcleanWorm_cython(void); /*proto*/ -PyMODINIT_FUNC initcleanWorm_cython(void) +__Pyx_PyMODINIT_FUNC initcleanWorm_cython(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC initcleanWorm_cython(void) #else -PyMODINIT_FUNC PyInit_cleanWorm_cython(void); /*proto*/ -PyMODINIT_FUNC PyInit_cleanWorm_cython(void) +__Pyx_PyMODINIT_FUNC PyInit_cleanWorm_cython(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC PyInit_cleanWorm_cython(void) #if CYTHON_PEP489_MULTI_PHASE_INIT { return PyModuleDef_Init(&__pyx_moduledef); @@ -8394,17 +8434,19 @@ static int __pyx_pymod_exec_cleanWorm_cython(PyObject *__pyx_pyinit_module) __Pyx_RefNannyDeclarations #if CYTHON_PEP489_MULTI_PHASE_INIT if (__pyx_m && __pyx_m == __pyx_pyinit_module) return 0; + #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("PyMODINIT_FUNC PyInit_cleanWorm_cython(void)", 0); +__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_cleanWorm_cython(void)", 0); if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) __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) @@ -8474,30 +8516,19 @@ static int __pyx_pymod_exec_cleanWorm_cython(PyObject *__pyx_pyinit_module) if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) /*--- Constants init code ---*/ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Global init code ---*/ - /*--- Variable export code ---*/ - /*--- Function export code ---*/ - /*--- Type init code ---*/ - /*--- Type import code ---*/ - __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "type", - #if CYTHON_COMPILING_IN_PYPY - sizeof(PyTypeObject), - #else - sizeof(PyHeapTypeObject), - #endif - 0); if (unlikely(!__pyx_ptype_7cpython_4type_type)) __PYX_ERR(2, 9, __pyx_L1_error) - __pyx_ptype_5numpy_dtype = __Pyx_ImportType("numpy", "dtype", sizeof(PyArray_Descr), 0); if (unlikely(!__pyx_ptype_5numpy_dtype)) __PYX_ERR(1, 163, __pyx_L1_error) - __pyx_ptype_5numpy_flatiter = __Pyx_ImportType("numpy", "flatiter", sizeof(PyArrayIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_flatiter)) __PYX_ERR(1, 185, __pyx_L1_error) - __pyx_ptype_5numpy_broadcast = __Pyx_ImportType("numpy", "broadcast", sizeof(PyArrayMultiIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_broadcast)) __PYX_ERR(1, 189, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType("numpy", "ndarray", sizeof(PyArrayObject), 0); if (unlikely(!__pyx_ptype_5numpy_ndarray)) __PYX_ERR(1, 198, __pyx_L1_error) - __pyx_ptype_5numpy_ufunc = __Pyx_ImportType("numpy", "ufunc", sizeof(PyUFuncObject), 0); if (unlikely(!__pyx_ptype_5numpy_ufunc)) __PYX_ERR(1, 885, __pyx_L1_error) - /*--- Variable import code ---*/ - /*--- Function import code ---*/ + /*--- Global type/function init code ---*/ + (void)__Pyx_modinit_global_init_code(); + (void)__Pyx_modinit_variable_export_code(); + (void)__Pyx_modinit_function_export_code(); + (void)__Pyx_modinit_type_init_code(); + if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; + (void)__Pyx_modinit_variable_import_code(); + (void)__Pyx_modinit_function_import_code(); /*--- Execution code ---*/ #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif - __Pyx_TraceCall("PyMODINIT_FUNC PyInit_cleanWorm_cython(void)", __pyx_f[0], 1, 0, __PYX_ERR(0, 1, __pyx_L1_error)); + __Pyx_TraceCall("__Pyx_PyMODINIT_FUNC PyInit_cleanWorm_cython(void)", __pyx_f[0], 1, 0, __PYX_ERR(0, 1, __pyx_L1_error)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":10 * @@ -8569,7 +8600,7 @@ static int __pyx_pymod_exec_cleanWorm_cython(PyObject *__pyx_pyinit_module) if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1021 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< @@ -8621,6 +8652,20 @@ static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { } #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); @@ -8635,6 +8680,30 @@ static PyObject *__Pyx_GetBuiltinName(PyObject *name) { return result; } +/* 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 + /* Profile */ #if CYTHON_PROFILE static int __Pyx_TraceSetupAndCall(PyCodeObject** code, @@ -8670,7 +8739,7 @@ static int __Pyx_TraceSetupAndCall(PyCodeObject** code, retval = 1; tstate->tracing++; tstate->use_tracing = 0; - PyErr_Fetch(&type, &value, &traceback); + __Pyx_ErrFetchInState(tstate, &type, &value, &traceback); #if CYTHON_TRACE if (tstate->c_tracefunc) retval = tstate->c_tracefunc(tstate->c_traceobj, *frame, PyTrace_CALL, NULL) == 0; @@ -8681,7 +8750,7 @@ static int __Pyx_TraceSetupAndCall(PyCodeObject** code, (CYTHON_TRACE && tstate->c_tracefunc)); tstate->tracing--; if (retval) { - PyErr_Restore(type, value, traceback); + __Pyx_ErrRestoreInState(tstate, type, value, traceback); return tstate->use_tracing && retval; } else { Py_XDECREF(type); @@ -8728,30 +8797,6 @@ static PyCodeObject *__Pyx_createFrameCodeObject(const char *funcname, const cha } #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 - /* WriteUnraisableException */ static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno, CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename, @@ -9428,6 +9473,7 @@ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const cha __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': @@ -9440,6 +9486,7 @@ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const cha ++ts; break; } + CYTHON_FALLTHROUGH; case 's': if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->enc_count = ctx->new_count; @@ -9548,31 +9595,37 @@ static PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } + 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; } + 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; } + 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; } + 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; } + 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; } + CYTHON_FALLTHROUGH; #if PyLong_SHIFT < 30 && PyLong_SHIFT != 15 default: return PyLong_Type.tp_richcompare(op1, op2, Py_EQ); #else @@ -9604,10 +9657,19 @@ static PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name) { 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); + if (likely(result)) { + Py_INCREF(result); + } else if (unlikely(PyErr_Occurred())) { + result = NULL; + } else { +#else result = PyDict_GetItem(__pyx_d, name); if (likely(result)) { Py_INCREF(result); } else { +#endif #else result = PyObject_GetItem(__pyx_d, name); if (!result) { @@ -9619,7 +9681,7 @@ static PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED } /* PyIntBinop */ - #if !CYTHON_COMPILING_IN_PYPY + #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED int inplace) { #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(op1))) { @@ -9657,6 +9719,7 @@ static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED 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])); @@ -9667,6 +9730,7 @@ static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED 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])); @@ -9677,6 +9741,7 @@ static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED 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])); @@ -9687,6 +9752,7 @@ static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED 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])); @@ -9697,6 +9763,7 @@ static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED 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])); @@ -9707,6 +9774,7 @@ static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED goto long_long; #endif } + CYTHON_FALLTHROUGH; default: return PyLong_Type.tp_as_number->nb_add(op1, op2); } } @@ -9735,7 +9803,7 @@ static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED #endif /* PyObjectCall */ - #if CYTHON_COMPILING_IN_CPYTHON + #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; @@ -9755,7 +9823,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg #endif /* ExtTypeTest */ - static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { + static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { if (unlikely(!type)) { PyErr_SetString(PyExc_SystemError, "Missing type object"); return 0; @@ -9768,13 +9836,13 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg } /* BufferFallbackError */ - static void __Pyx_RaiseBufferFallbackError(void) { + static void __Pyx_RaiseBufferFallbackError(void) { PyErr_SetString(PyExc_ValueError, "Buffer acquisition failed on assignment; and then reacquiring the old buffer failed too!"); } /* PyIntBinop */ - #if !CYTHON_COMPILING_IN_PYPY + #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED int inplace) { #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(op1))) { @@ -9812,6 +9880,7 @@ static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_U 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])); @@ -9822,6 +9891,7 @@ static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_U 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])); @@ -9832,6 +9902,7 @@ static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_U 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])); @@ -9842,6 +9913,7 @@ static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_U 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])); @@ -9852,6 +9924,7 @@ static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_U 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])); @@ -9862,6 +9935,7 @@ static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_U goto long_long; #endif } + CYTHON_FALLTHROUGH; default: return PyLong_Type.tp_as_number->nb_subtract(op1, op2); } } @@ -9889,8 +9963,124 @@ static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_U } #endif +/* 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((0 <= wrapped_i) & (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((0 <= wrapped_i) & (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((n >= 0) & (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((n >= 0) & (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 + /* PyCFunctionFastCall */ - #if CYTHON_FAST_PYCCALL + #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); @@ -9913,7 +10103,7 @@ static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, P #endif /* PyFunctionFastCall */ - #if CYTHON_FAST_PYCALL + #if CYTHON_FAST_PYCALL #include "frameobject.h" static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, PyObject *globals) { @@ -10033,7 +10223,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, #endif /* PyObjectCallMethO */ - #if CYTHON_COMPILING_IN_CPYTHON + #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { PyObject *self, *result; PyCFunction cfunc; @@ -10053,7 +10243,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject #endif /* PyObjectCallOneArg */ - #if CYTHON_COMPILING_IN_CPYTHON + #if CYTHON_COMPILING_IN_CPYTHON static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { PyObject *result; PyObject *args = PyTuple_New(1); @@ -10093,7 +10283,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec #endif /* PyObjectCallNoArg */ - #if CYTHON_COMPILING_IN_CPYTHON + #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { #if CYTHON_FAST_PYCALL if (PyFunction_Check(func)) { @@ -10114,7 +10304,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { #endif /* RaiseException */ - #if PY_MAJOR_VERSION < 3 + #if PY_MAJOR_VERSION < 3 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, CYTHON_UNUSED PyObject *cause) { __Pyx_PyThreadState_declare @@ -10272,26 +10462,45 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject } #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()) { + PyObject* args = PyTuple_Pack(1, key); + if (likely(args)) + PyErr_SetObject(PyExc_KeyError, args); + Py_XDECREF(args); + } + return NULL; + } + Py_INCREF(value); + return value; +} +#endif + /* RaiseTooManyValuesToUnpack */ - static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { + 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) { + 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"); } /* RaiseNoneIterError */ - static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { + static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); } /* SaveResetException */ - #if CYTHON_FAST_THREAD_STATE + #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { #if PY_VERSION_HEX >= 0x030700A2 *type = tstate->exc_state.exc_type; @@ -10330,7 +10539,7 @@ static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject #endif /* PyErrExceptionMatches */ - #if CYTHON_FAST_THREAD_STATE + #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); @@ -10355,7 +10564,7 @@ static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tsta #endif /* GetException */ - #if CYTHON_FAST_THREAD_STATE + #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) { @@ -10425,7 +10634,7 @@ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) } /* Import */ - static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { + static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { PyObject *empty_list = 0; PyObject *module = 0; PyObject *global_dict = 0; @@ -10490,18 +10699,21 @@ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) } /* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK + #ifndef CYTHON_CLINE_IN_TRACEBACK static int __Pyx_CLineForTraceback(CYTHON_UNUSED 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)) { - use_cline = PyDict_GetItem(*cython_runtime_dict, __pyx_n_s_cline_in_traceback); + use_cline = __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback); } else #endif { @@ -10527,7 +10739,7 @@ static int __Pyx_CLineForTraceback(CYTHON_UNUSED PyThreadState *tstate, int c_li #endif /* CodeObjectCache */ - static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { + 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; @@ -10607,7 +10819,7 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { } /* AddTraceback */ - #include "compile.h" + #include "compile.h" #include "frameobject.h" #include "traceback.h" static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( @@ -10713,8 +10925,8 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { #endif - /* CIntFromPyVerify */ - #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ + /* 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) @@ -10736,7 +10948,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { } /* Print */ - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION < 3 + #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION < 3 static PyObject *__Pyx_GetStdout(void) { PyObject *f = PySys_GetObject((char *)"stdout"); if (!f) { @@ -10842,7 +11054,7 @@ static int __Pyx_Print(PyObject* stream, PyObject *arg_tuple, int newline) { #endif /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { const int neg_one = (int) -1, const_zero = (int) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { @@ -10873,7 +11085,7 @@ static int __Pyx_Print(PyObject* stream, PyObject *arg_tuple, int newline) { } /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { const long neg_one = (long) -1, const_zero = (long) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { @@ -10904,7 +11116,7 @@ static int __Pyx_Print(PyObject* stream, PyObject *arg_tuple, int newline) { } /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_Py_intptr_t(Py_intptr_t value) { + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_Py_intptr_t(Py_intptr_t value) { const Py_intptr_t neg_one = (Py_intptr_t) -1, const_zero = (Py_intptr_t) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { @@ -10935,7 +11147,7 @@ static int __Pyx_Print(PyObject* stream, PyObject *arg_tuple, int newline) { } /* Declarations */ - #if CYTHON_CCOMPLEX + #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); @@ -10955,7 +11167,7 @@ static int __Pyx_Print(PyObject* stream, PyObject *arg_tuple, int newline) { #endif /* Arithmetic */ - #if CYTHON_CCOMPLEX + #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); @@ -11090,7 +11302,7 @@ static int __Pyx_Print(PyObject* stream, PyObject *arg_tuple, int newline) { #endif /* Declarations */ - #if CYTHON_CCOMPLEX + #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); @@ -11110,7 +11322,7 @@ static int __Pyx_Print(PyObject* stream, PyObject *arg_tuple, int newline) { #endif /* Arithmetic */ - #if CYTHON_CCOMPLEX + #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); @@ -11245,7 +11457,7 @@ static int __Pyx_Print(PyObject* stream, PyObject *arg_tuple, int newline) { #endif /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { const enum NPY_TYPES neg_one = (enum NPY_TYPES) -1, const_zero = (enum NPY_TYPES) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { @@ -11276,7 +11488,7 @@ static int __Pyx_Print(PyObject* stream, PyObject *arg_tuple, int newline) { } /* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { + static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { const int neg_one = (int) -1, const_zero = (int) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 @@ -11465,7 +11677,7 @@ static int __Pyx_Print(PyObject* stream, PyObject *arg_tuple, int newline) { } /* PrintOne */ - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION < 3 + #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION < 3 static int __Pyx_PrintOne(PyObject* f, PyObject *o) { if (!f) { if (!(f = __Pyx_GetStdout())) @@ -11502,7 +11714,7 @@ static int __Pyx_PrintOne(PyObject* stream, PyObject *o) { #endif /* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { + static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { const long neg_one = (long) -1, const_zero = (long) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 @@ -11691,7 +11903,7 @@ static int __Pyx_PrintOne(PyObject* stream, PyObject *o) { } /* FastTypeChecks */ - #if CYTHON_COMPILING_IN_CPYTHON + #if CYTHON_COMPILING_IN_CPYTHON static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { while (a) { a = a->tp_base; @@ -11763,7 +11975,7 @@ static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObj #endif /* CheckBinaryVersion */ - static int __Pyx_check_binary_version(void) { + 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()); @@ -11779,7 +11991,7 @@ static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObj } /* ModuleImport */ - #ifndef __PYX_HAVE_RT_ImportModule + #ifndef __PYX_HAVE_RT_ImportModule #define __PYX_HAVE_RT_ImportModule static PyObject *__Pyx_ImportModule(const char *name) { PyObject *py_name = 0; @@ -11797,7 +12009,7 @@ static PyObject *__Pyx_ImportModule(const char *name) { #endif /* TypeImport */ - #ifndef __PYX_HAVE_RT_ImportType + #ifndef __PYX_HAVE_RT_ImportType #define __PYX_HAVE_RT_ImportType static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict) @@ -11862,7 +12074,7 @@ static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class #endif /* InitStrings */ - static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { + static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { while (t->p) { #if PY_MAJOR_VERSION < 3 if (t->is_unicode) { @@ -11888,7 +12100,7 @@ static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class if (!*t->p) return -1; if (PyObject_Hash(*t->p) == -1) - PyErr_Clear(); + return -1; ++t; } return 0; @@ -12102,6 +12314,9 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { 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); } diff --git a/tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.cpython-35m-darwin.so b/tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.cpython-35m-darwin.so index 6cd1249d7586031ddf499dc200174fe2dc032eef..da5806d3e9d2a1594bd774311fee8b824a13c987 100755 GIT binary patch literal 105420 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�@T?h)#u)NP}#l)4Y7 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 M-(rv>wSmC@2HWbcKL7v# literal 99984 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 #ifndef offsetof @@ -196,6 +196,103 @@ END: Cython Metadata */ #undef BASE #undef MASK #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 @@ -224,12 +321,12 @@ END: Cython Metadata */ #ifndef Py_TPFLAGS_HAVE_FINALIZE #define Py_TPFLAGS_HAVE_FINALIZE 0 #endif -#if PY_VERSION_HEX < 0x030700A0 || !defined(METH_FASTCALL) +#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) #ifndef METH_FASTCALL #define METH_FASTCALL 0x80 #endif - typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject **args, Py_ssize_t nargs); - typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject **args, + 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 @@ -241,6 +338,18 @@ END: Cython Metadata */ #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_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 @@ -250,6 +359,36 @@ END: Cython Metadata */ #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; // PyThread_create_key reports success always +} +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 // TSS (Thread Specific Storage) API #if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) #define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) #else @@ -262,6 +401,11 @@ END: Cython Metadata */ #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)) ?\ @@ -306,18 +450,6 @@ END: Cython Metadata */ #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) #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_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 #define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) #define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) #if PY_MAJOR_VERSION >= 3 @@ -334,6 +466,7 @@ END: Cython Metadata */ #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) @@ -345,7 +478,11 @@ END: Cython Metadata */ #ifndef PySet_CheckExact #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) #endif -#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) +#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 @@ -380,16 +517,10 @@ END: Cython Metadata */ #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) : PyInstanceMethod_New(func)) + #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 -#ifndef __has_attribute - #define __has_attribute(x) 0 -#endif -#ifndef __has_cpp_attribute - #define __has_cpp_attribute(x) 0 -#endif #if CYTHON_USE_ASYNC_SLOTS #if PY_VERSION_HEX >= 0x030500B1 #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods @@ -407,96 +538,6 @@ END: Cython Metadata */ unaryfunc am_anext; } __Pyx_PyAsyncMethodsStruct; #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 defined(WIN32) || defined(MS_WINDOWS) #define _USE_MATH_DEFINES @@ -533,6 +574,7 @@ static CYTHON_INLINE float __PYX_NAN() { #define __PYX_HAVE__tierpsy__analysis__ske_create__segWormPython__cython_files__linearSkeleton_cython #define __PYX_HAVE_API__tierpsy__analysis__ske_create__segWormPython__cython_files__linearSkeleton_cython +/* Early includes */ #include #include #include "numpy/arrayobject.h" @@ -622,7 +664,7 @@ static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { #define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) -#define __Pyx_PyBool_FromLong(b) ((b) ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False)) +static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); #define __Pyx_PySequence_Tuple(obj)\ @@ -730,7 +772,7 @@ 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; +static PyObject *__pyx_cython_runtime = NULL; static PyObject *__pyx_empty_tuple; static PyObject *__pyx_empty_bytes; static PyObject *__pyx_empty_unicode; @@ -804,7 +846,7 @@ typedef struct { } __Pyx_BufFmt_Context; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":743 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":730 * # in Cython to enable them only on the right systems. * * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<< @@ -813,7 +855,7 @@ typedef struct { */ typedef npy_int8 __pyx_t_5numpy_int8_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":744 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":731 * * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< @@ -822,7 +864,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; */ typedef npy_int16 __pyx_t_5numpy_int16_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":745 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":732 * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<< @@ -831,7 +873,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; */ typedef npy_int32 __pyx_t_5numpy_int32_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":746 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":733 * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<< @@ -840,7 +882,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; */ typedef npy_int64 __pyx_t_5numpy_int64_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":750 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":737 * #ctypedef npy_int128 int128_t * * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< @@ -849,7 +891,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; */ typedef npy_uint8 __pyx_t_5numpy_uint8_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":751 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":738 * * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< @@ -858,7 +900,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; */ typedef npy_uint16 __pyx_t_5numpy_uint16_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":752 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":739 * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<< @@ -867,7 +909,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; */ typedef npy_uint32 __pyx_t_5numpy_uint32_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":753 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":740 * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<< @@ -876,7 +918,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; */ typedef npy_uint64 __pyx_t_5numpy_uint64_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":757 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":744 * #ctypedef npy_uint128 uint128_t * * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< @@ -885,7 +927,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; */ typedef npy_float32 __pyx_t_5numpy_float32_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":758 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":745 * * ctypedef npy_float32 float32_t * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< @@ -894,7 +936,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; */ typedef npy_float64 __pyx_t_5numpy_float64_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":767 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":754 * # The int types are mapped a bit surprising -- * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t # <<<<<<<<<<<<<< @@ -903,7 +945,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; */ typedef npy_long __pyx_t_5numpy_int_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":768 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":755 * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t * ctypedef npy_longlong long_t # <<<<<<<<<<<<<< @@ -912,7 +954,7 @@ typedef npy_long __pyx_t_5numpy_int_t; */ typedef npy_longlong __pyx_t_5numpy_long_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":769 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":756 * ctypedef npy_long int_t * ctypedef npy_longlong long_t * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<< @@ -921,7 +963,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; */ typedef npy_longlong __pyx_t_5numpy_longlong_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":771 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":758 * ctypedef npy_longlong longlong_t * * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< @@ -930,7 +972,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; */ typedef npy_ulong __pyx_t_5numpy_uint_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":772 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":759 * * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< @@ -939,7 +981,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; */ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":773 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":760 * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<< @@ -948,7 +990,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; */ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":775 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":762 * ctypedef npy_ulonglong ulonglong_t * * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< @@ -957,7 +999,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; */ typedef npy_intp __pyx_t_5numpy_intp_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":776 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":763 * * ctypedef npy_intp intp_t * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< @@ -966,7 +1008,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; */ typedef npy_uintp __pyx_t_5numpy_uintp_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":778 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":765 * ctypedef npy_uintp uintp_t * * ctypedef npy_double float_t # <<<<<<<<<<<<<< @@ -975,7 +1017,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; */ typedef npy_double __pyx_t_5numpy_float_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":779 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":766 * * ctypedef npy_double float_t * ctypedef npy_double double_t # <<<<<<<<<<<<<< @@ -984,7 +1026,7 @@ typedef npy_double __pyx_t_5numpy_float_t; */ typedef npy_double __pyx_t_5numpy_double_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":780 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":767 * ctypedef npy_double float_t * ctypedef npy_double double_t * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<< @@ -1019,7 +1061,7 @@ static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(do /*--- Type declarations ---*/ -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":782 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":769 * ctypedef npy_longdouble longdouble_t * * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< @@ -1028,7 +1070,7 @@ static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(do */ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":783 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":770 * * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< @@ -1037,7 +1079,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; */ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":784 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":771 * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<< @@ -1046,7 +1088,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; */ typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":786 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":773 * ctypedef npy_clongdouble clongdouble_t * * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< @@ -1121,16 +1163,7 @@ typedef npy_cdouble __pyx_t_5numpy_complex_t; /* PyObjectGetAttrStr.proto */ #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); -} +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) #endif @@ -1289,6 +1322,35 @@ static void __Pyx_WriteUnraisable(const char *name, int clineno, /* BufferFallbackError.proto */ static void __Pyx_RaiseBufferFallbackError(void); +/* 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 + /* PyIntFromDouble.proto */ #if PY_MAJOR_VERSION < 3 static CYTHON_INLINE PyObject* __Pyx_PyInt_FromDouble(double value); @@ -1301,23 +1363,13 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject /* DictGetItem.proto */ #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()) { - PyObject* args = PyTuple_Pack(1, key); - if (likely(args)) - PyErr_SetObject(PyExc_KeyError, args); - Py_XDECREF(args); - } - return NULL; - } - Py_INCREF(value); - return value; -} +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_PyDict_GetItem(d, key) PyObject_GetItem(d, key) +#define __Pyx_PyObject_Dict_GetItem(obj, name) PyObject_GetItem(obj, name) #endif /* SaveResetException.proto */ @@ -1529,6 +1581,7 @@ static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObj #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) /* CheckBinaryVersion.proto */ static int __Pyx_check_binary_version(void); @@ -2003,6 +2056,7 @@ static PyObject *__pyx_codeobj__26; static PyObject *__pyx_codeobj__28; static PyObject *__pyx_codeobj__30; static PyObject *__pyx_codeobj__32; +/* Late includes */ /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":18 * @@ -2168,11 +2222,11 @@ static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_length)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_length)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_chain_code_len)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_chain_code_len)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("chainCodeLength2Index", 1, 2, 2, 1); __PYX_ERR(0, 27, __pyx_L3_error) } @@ -2816,29 +2870,29 @@ static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_points_ind)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_points_ind)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_start_ind)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start_ind)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("circOpposingPoints", 1, 5, 5, 1); __PYX_ERR(0, 106, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_end_ind)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_end_ind)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("circOpposingPoints", 1, 5, 5, 2); __PYX_ERR(0, 106, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: - if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_vec_last_index)) != 0)) kw_args--; + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec_last_index)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("circOpposingPoints", 1, 5, 5, 3); __PYX_ERR(0, 106, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: - if (likely((values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_chain_code_len)) != 0)) kw_args--; + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_chain_code_len)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("circOpposingPoints", 1, 5, 5, 4); __PYX_ERR(0, 106, __pyx_L3_error) } @@ -2919,10 +2973,10 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth Py_ssize_t __pyx_t_12; Py_ssize_t __pyx_t_13; npy_intp __pyx_t_14; - Py_ssize_t __pyx_t_15; - int __pyx_t_16; + npy_intp __pyx_t_15; + Py_ssize_t __pyx_t_16; int __pyx_t_17; - Py_ssize_t __pyx_t_18; + int __pyx_t_18; Py_ssize_t __pyx_t_19; Py_ssize_t __pyx_t_20; Py_ssize_t __pyx_t_21; @@ -2933,10 +2987,11 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth Py_ssize_t __pyx_t_26; Py_ssize_t __pyx_t_27; Py_ssize_t __pyx_t_28; - PyObject *__pyx_t_29 = NULL; + Py_ssize_t __pyx_t_29; PyObject *__pyx_t_30 = NULL; - __pyx_t_5numpy_int_t __pyx_t_31; - Py_ssize_t __pyx_t_32; + PyObject *__pyx_t_31 = NULL; + __pyx_t_5numpy_int_t __pyx_t_32; + Py_ssize_t __pyx_t_33; __Pyx_RefNannySetupContext("circOpposingPoints", 0); __pyx_pybuffer_points_ind_out.pybuffer.buf = NULL; __pyx_pybuffer_points_ind_out.refcount = 0; @@ -3294,7 +3349,8 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth __PYX_ERR(0, 175, __pyx_L1_error) } __pyx_t_14 = (__pyx_v_points_ind->dimensions[0]); - for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_14; __pyx_t_7+=1) { + __pyx_t_15 = __pyx_t_14; + for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_15; __pyx_t_7+=1) { __pyx_v_ii = __pyx_t_7; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":176 @@ -3308,17 +3364,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 176, __pyx_L1_error) } - __pyx_t_15 = __pyx_v_ii; - __pyx_t_16 = -1; - if (__pyx_t_15 < 0) { - __pyx_t_15 += __pyx_pybuffernd_points_ind.diminfo[0].shape; - if (unlikely(__pyx_t_15 < 0)) __pyx_t_16 = 0; - } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_points_ind.diminfo[0].shape)) __pyx_t_16 = 0; - if (unlikely(__pyx_t_16 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_16); + __pyx_t_16 = __pyx_v_ii; + __pyx_t_17 = -1; + if (__pyx_t_16 < 0) { + __pyx_t_16 += __pyx_pybuffernd_points_ind.diminfo[0].shape; + if (unlikely(__pyx_t_16 < 0)) __pyx_t_17 = 0; + } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_points_ind.diminfo[0].shape)) __pyx_t_17 = 0; + if (unlikely(__pyx_t_17 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_17); __PYX_ERR(0, 176, __pyx_L1_error) } - __pyx_v_cur_ind = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_points_ind.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_points_ind.diminfo[0].strides)); + __pyx_v_cur_ind = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_points_ind.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_points_ind.diminfo[0].strides)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":182 * #% side 2, then find the equivalent point, at the scaled distance @@ -3327,14 +3383,14 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * point_dist = chain_code_len[start_ind2] - \ * (chain_code_len[cur_ind] - chain_code_len[start_ind1]) * scale1to2; */ - __pyx_t_17 = ((__pyx_v_cur_ind > __pyx_v_start_ind) != 0); - if (__pyx_t_17) { + __pyx_t_18 = ((__pyx_v_cur_ind > __pyx_v_start_ind) != 0); + if (__pyx_t_18) { } else { - __pyx_t_5 = __pyx_t_17; + __pyx_t_5 = __pyx_t_18; goto __pyx_L8_bool_binop_done; } - __pyx_t_17 = ((__pyx_v_cur_ind < __pyx_v_end_ind) != 0); - __pyx_t_5 = __pyx_t_17; + __pyx_t_18 = ((__pyx_v_cur_ind < __pyx_v_end_ind) != 0); + __pyx_t_5 = __pyx_t_18; __pyx_L8_bool_binop_done:; if (__pyx_t_5) { @@ -3349,14 +3405,14 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 183, __pyx_L1_error) } - __pyx_t_18 = __pyx_v_start_ind2; - __pyx_t_16 = -1; - if (__pyx_t_18 < 0) { - __pyx_t_18 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_18 < 0)) __pyx_t_16 = 0; - } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_16 = 0; - if (unlikely(__pyx_t_16 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_16); + __pyx_t_19 = __pyx_v_start_ind2; + __pyx_t_17 = -1; + if (__pyx_t_19 < 0) { + __pyx_t_19 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; + if (unlikely(__pyx_t_19 < 0)) __pyx_t_17 = 0; + } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_17 = 0; + if (unlikely(__pyx_t_17 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_17); __PYX_ERR(0, 183, __pyx_L1_error) } @@ -3371,28 +3427,28 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 184, __pyx_L1_error) } - __pyx_t_19 = __pyx_v_cur_ind; - __pyx_t_16 = -1; - if (__pyx_t_19 < 0) { - __pyx_t_19 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_19 < 0)) __pyx_t_16 = 0; - } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_16 = 0; - if (unlikely(__pyx_t_16 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_16); + __pyx_t_20 = __pyx_v_cur_ind; + __pyx_t_17 = -1; + if (__pyx_t_20 < 0) { + __pyx_t_20 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; + if (unlikely(__pyx_t_20 < 0)) __pyx_t_17 = 0; + } else if (unlikely(__pyx_t_20 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_17 = 0; + if (unlikely(__pyx_t_17 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_17); __PYX_ERR(0, 184, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 184, __pyx_L1_error) } - __pyx_t_20 = __pyx_v_start_ind1; - __pyx_t_16 = -1; - if (__pyx_t_20 < 0) { - __pyx_t_20 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_20 < 0)) __pyx_t_16 = 0; - } else if (unlikely(__pyx_t_20 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_16 = 0; - if (unlikely(__pyx_t_16 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_16); + __pyx_t_21 = __pyx_v_start_ind1; + __pyx_t_17 = -1; + if (__pyx_t_21 < 0) { + __pyx_t_21 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; + if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0; + } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_17 = 0; + if (unlikely(__pyx_t_17 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_17); __PYX_ERR(0, 184, __pyx_L1_error) } @@ -3403,7 +3459,7 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * (chain_code_len[cur_ind] - chain_code_len[start_ind1]) * scale1to2; * */ - __pyx_v_point_dist = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) - (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))) * __pyx_v_scale1to2)); + __pyx_v_point_dist = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) - (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))) * __pyx_v_scale1to2)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":182 * #% side 2, then find the equivalent point, at the scaled distance @@ -3422,14 +3478,14 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * delta_dist = chain_code_len[start_ind2] - chain_code_len[cur_ind]; * if points_ind[ii] > start_ind2: */ - __pyx_t_17 = ((__pyx_v_cur_ind < __pyx_v_start_ind) != 0); - if (!__pyx_t_17) { + __pyx_t_18 = ((__pyx_v_cur_ind < __pyx_v_start_ind) != 0); + if (!__pyx_t_18) { } else { - __pyx_t_5 = __pyx_t_17; + __pyx_t_5 = __pyx_t_18; goto __pyx_L10_bool_binop_done; } - __pyx_t_17 = ((__pyx_v_cur_ind > __pyx_v_end_ind) != 0); - __pyx_t_5 = __pyx_t_17; + __pyx_t_18 = ((__pyx_v_cur_ind > __pyx_v_end_ind) != 0); + __pyx_t_5 = __pyx_t_18; __pyx_L10_bool_binop_done:; if (__pyx_t_5) { @@ -3444,31 +3500,31 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 190, __pyx_L1_error) } - __pyx_t_21 = __pyx_v_start_ind2; - __pyx_t_16 = -1; - if (__pyx_t_21 < 0) { - __pyx_t_21 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_21 < 0)) __pyx_t_16 = 0; - } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_16 = 0; - if (unlikely(__pyx_t_16 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_16); + __pyx_t_22 = __pyx_v_start_ind2; + __pyx_t_17 = -1; + if (__pyx_t_22 < 0) { + __pyx_t_22 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; + if (unlikely(__pyx_t_22 < 0)) __pyx_t_17 = 0; + } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_17 = 0; + if (unlikely(__pyx_t_17 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_17); __PYX_ERR(0, 190, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 190, __pyx_L1_error) } - __pyx_t_22 = __pyx_v_cur_ind; - __pyx_t_16 = -1; - if (__pyx_t_22 < 0) { - __pyx_t_22 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_22 < 0)) __pyx_t_16 = 0; - } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_16 = 0; - if (unlikely(__pyx_t_16 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_16); + __pyx_t_23 = __pyx_v_cur_ind; + __pyx_t_17 = -1; + if (__pyx_t_23 < 0) { + __pyx_t_23 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; + if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0; + } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_17 = 0; + if (unlikely(__pyx_t_17 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_17); __PYX_ERR(0, 190, __pyx_L1_error) } - __pyx_v_delta_dist = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))); + __pyx_v_delta_dist = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":191 * elif (cur_ind < start_ind) or (cur_ind > end_ind): @@ -3481,17 +3537,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 191, __pyx_L1_error) } - __pyx_t_23 = __pyx_v_ii; - __pyx_t_16 = -1; - if (__pyx_t_23 < 0) { - __pyx_t_23 += __pyx_pybuffernd_points_ind.diminfo[0].shape; - if (unlikely(__pyx_t_23 < 0)) __pyx_t_16 = 0; - } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_points_ind.diminfo[0].shape)) __pyx_t_16 = 0; - if (unlikely(__pyx_t_16 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_16); + __pyx_t_24 = __pyx_v_ii; + __pyx_t_17 = -1; + if (__pyx_t_24 < 0) { + __pyx_t_24 += __pyx_pybuffernd_points_ind.diminfo[0].shape; + if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0; + } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_points_ind.diminfo[0].shape)) __pyx_t_17 = 0; + if (unlikely(__pyx_t_17 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_17); __PYX_ERR(0, 191, __pyx_L1_error) } - __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_points_ind.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_points_ind.diminfo[0].strides)) > __pyx_v_start_ind2) != 0); + __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_points_ind.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_points_ind.diminfo[0].strides)) > __pyx_v_start_ind2) != 0); if (__pyx_t_5) { /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":192 @@ -3505,17 +3561,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 192, __pyx_L1_error) } - __pyx_t_24 = __pyx_v_vec_last_index; - __pyx_t_16 = -1; - if (__pyx_t_24 < 0) { - __pyx_t_24 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_24 < 0)) __pyx_t_16 = 0; - } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_16 = 0; - if (unlikely(__pyx_t_16 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_16); + __pyx_t_25 = __pyx_v_vec_last_index; + __pyx_t_17 = -1; + if (__pyx_t_25 < 0) { + __pyx_t_25 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; + if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0; + } else if (unlikely(__pyx_t_25 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_17 = 0; + if (unlikely(__pyx_t_17 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_17); __PYX_ERR(0, 192, __pyx_L1_error) } - __pyx_v_delta_dist = (__pyx_v_delta_dist + (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))); + __pyx_v_delta_dist = (__pyx_v_delta_dist + (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":191 * elif (cur_ind < start_ind) or (cur_ind > end_ind): @@ -3537,17 +3593,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 193, __pyx_L1_error) } - __pyx_t_25 = __pyx_v_start_ind1; - __pyx_t_16 = -1; - if (__pyx_t_25 < 0) { - __pyx_t_25 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_25 < 0)) __pyx_t_16 = 0; - } else if (unlikely(__pyx_t_25 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_16 = 0; - if (unlikely(__pyx_t_16 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_16); + __pyx_t_26 = __pyx_v_start_ind1; + __pyx_t_17 = -1; + if (__pyx_t_26 < 0) { + __pyx_t_26 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; + if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0; + } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_17 = 0; + if (unlikely(__pyx_t_17 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_17); __PYX_ERR(0, 193, __pyx_L1_error) } - __pyx_v_point_dist = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) + (__pyx_v_delta_dist * __pyx_v_scale2to1)); + __pyx_v_point_dist = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) + (__pyx_v_delta_dist * __pyx_v_scale2to1)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":189 * #% side 1, then find the equivalent point, at the scaled distance @@ -3592,17 +3648,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 200, __pyx_L1_error) } - __pyx_t_26 = __pyx_v_vec_last_index; - __pyx_t_16 = -1; - if (__pyx_t_26 < 0) { - __pyx_t_26 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_26 < 0)) __pyx_t_16 = 0; - } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_16 = 0; - if (unlikely(__pyx_t_16 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_16); + __pyx_t_27 = __pyx_v_vec_last_index; + __pyx_t_17 = -1; + if (__pyx_t_27 < 0) { + __pyx_t_27 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; + if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0; + } else if (unlikely(__pyx_t_27 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_17 = 0; + if (unlikely(__pyx_t_17 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_17); __PYX_ERR(0, 200, __pyx_L1_error) } - __pyx_v_point_dist = (__pyx_v_point_dist + (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))); + __pyx_v_point_dist = (__pyx_v_point_dist + (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":199 * @@ -3625,17 +3681,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 201, __pyx_L1_error) } - __pyx_t_27 = __pyx_v_vec_last_index; - __pyx_t_16 = -1; - if (__pyx_t_27 < 0) { - __pyx_t_27 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_27 < 0)) __pyx_t_16 = 0; - } else if (unlikely(__pyx_t_27 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_16 = 0; - if (unlikely(__pyx_t_16 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_16); + __pyx_t_28 = __pyx_v_vec_last_index; + __pyx_t_17 = -1; + if (__pyx_t_28 < 0) { + __pyx_t_28 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; + if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0; + } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_17 = 0; + if (unlikely(__pyx_t_17 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_17); __PYX_ERR(0, 201, __pyx_L1_error) } - __pyx_t_5 = ((__pyx_v_point_dist > (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))) != 0); + __pyx_t_5 = ((__pyx_v_point_dist > (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))) != 0); if (__pyx_t_5) { /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":202 @@ -3649,17 +3705,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 202, __pyx_L1_error) } - __pyx_t_28 = __pyx_v_vec_last_index; - __pyx_t_16 = -1; - if (__pyx_t_28 < 0) { - __pyx_t_28 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_28 < 0)) __pyx_t_16 = 0; - } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_16 = 0; - if (unlikely(__pyx_t_16 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_16); + __pyx_t_29 = __pyx_v_vec_last_index; + __pyx_t_17 = -1; + if (__pyx_t_29 < 0) { + __pyx_t_29 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; + if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0; + } else if (unlikely(__pyx_t_29 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_17 = 0; + if (unlikely(__pyx_t_17 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_17); __PYX_ERR(0, 202, __pyx_L1_error) } - __pyx_v_point_dist = (__pyx_v_point_dist - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))); + __pyx_v_point_dist = (__pyx_v_point_dist - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":201 * if point_dist < 0: @@ -3682,70 +3738,70 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_point_dist); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_29 = NULL; - __pyx_t_16 = 0; + __pyx_t_30 = NULL; + __pyx_t_17 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_29 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_29)) { + __pyx_t_30 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_30)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_29); + __Pyx_INCREF(__pyx_t_30); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); - __pyx_t_16 = 1; + __pyx_t_17 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[3] = {__pyx_t_29, __pyx_t_3, ((PyObject *)__pyx_v_chain_code_len)}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_16, 2+__pyx_t_16); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 205, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0; + PyObject *__pyx_temp[3] = {__pyx_t_30, __pyx_t_3, ((PyObject *)__pyx_v_chain_code_len)}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 205, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[3] = {__pyx_t_29, __pyx_t_3, ((PyObject *)__pyx_v_chain_code_len)}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_16, 2+__pyx_t_16); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 205, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0; + PyObject *__pyx_temp[3] = {__pyx_t_30, __pyx_t_3, ((PyObject *)__pyx_v_chain_code_len)}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 205, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { - __pyx_t_30 = PyTuple_New(2+__pyx_t_16); if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 205, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_30); - if (__pyx_t_29) { - __Pyx_GIVEREF(__pyx_t_29); PyTuple_SET_ITEM(__pyx_t_30, 0, __pyx_t_29); __pyx_t_29 = NULL; + __pyx_t_31 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_31); + if (__pyx_t_30) { + __Pyx_GIVEREF(__pyx_t_30); PyTuple_SET_ITEM(__pyx_t_31, 0, __pyx_t_30); __pyx_t_30 = NULL; } __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_30, 0+__pyx_t_16, __pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_31, 0+__pyx_t_17, __pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_chain_code_len)); __Pyx_GIVEREF(((PyObject *)__pyx_v_chain_code_len)); - PyTuple_SET_ITEM(__pyx_t_30, 1+__pyx_t_16, ((PyObject *)__pyx_v_chain_code_len)); + PyTuple_SET_ITEM(__pyx_t_31, 1+__pyx_t_17, ((PyObject *)__pyx_v_chain_code_len)); __pyx_t_3 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_30, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 205, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_31, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_30); __pyx_t_30 = 0; + __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_31 = __Pyx_PyInt_As_npy_long(__pyx_t_1); if (unlikely((__pyx_t_31 == ((npy_long)-1)) && PyErr_Occurred())) __PYX_ERR(0, 205, __pyx_L1_error) + __pyx_t_32 = __Pyx_PyInt_As_npy_long(__pyx_t_1); if (unlikely((__pyx_t_32 == ((npy_long)-1)) && PyErr_Occurred())) __PYX_ERR(0, 205, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(((PyObject *)__pyx_v_points_ind_out) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 205, __pyx_L1_error) } - __pyx_t_32 = __pyx_v_ii; - __pyx_t_16 = -1; - if (__pyx_t_32 < 0) { - __pyx_t_32 += __pyx_pybuffernd_points_ind_out.diminfo[0].shape; - if (unlikely(__pyx_t_32 < 0)) __pyx_t_16 = 0; - } else if (unlikely(__pyx_t_32 >= __pyx_pybuffernd_points_ind_out.diminfo[0].shape)) __pyx_t_16 = 0; - if (unlikely(__pyx_t_16 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_16); + __pyx_t_33 = __pyx_v_ii; + __pyx_t_17 = -1; + if (__pyx_t_33 < 0) { + __pyx_t_33 += __pyx_pybuffernd_points_ind_out.diminfo[0].shape; + if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0; + } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_points_ind_out.diminfo[0].shape)) __pyx_t_17 = 0; + if (unlikely(__pyx_t_17 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_17); __PYX_ERR(0, 205, __pyx_L1_error) } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_points_ind_out.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_points_ind_out.diminfo[0].strides) = __pyx_t_31; + *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_points_ind_out.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_points_ind_out.diminfo[0].strides) = __pyx_t_32; __pyx_L5_continue:; } @@ -3774,8 +3830,8 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_29); __Pyx_XDECREF(__pyx_t_30); + __Pyx_XDECREF(__pyx_t_31); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign @@ -3818,20 +3874,21 @@ static PyObject *__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cytho PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations long __pyx_t_1; - int __pyx_t_2; - Py_ssize_t __pyx_t_3; + long __pyx_t_2; + int __pyx_t_3; Py_ssize_t __pyx_t_4; - int __pyx_t_5; - Py_ssize_t __pyx_t_6; + Py_ssize_t __pyx_t_5; + int __pyx_t_6; Py_ssize_t __pyx_t_7; Py_ssize_t __pyx_t_8; Py_ssize_t __pyx_t_9; Py_ssize_t __pyx_t_10; Py_ssize_t __pyx_t_11; - int __pyx_t_12; - PyObject *__pyx_t_13 = NULL; + Py_ssize_t __pyx_t_12; + int __pyx_t_13; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; __Pyx_RefNannySetupContext("min_distance", 0); __pyx_pybuffer_x.pybuffer.buf = NULL; __pyx_pybuffer_x.refcount = 0; @@ -3860,8 +3917,9 @@ static PyObject *__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cytho * dy = x[curr_ind,1] - x[j,1]; */ __pyx_t_1 = (__pyx_v_range_max + 1); - for (__pyx_t_2 = __pyx_v_range_min; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) { - __pyx_v_j = __pyx_t_2; + __pyx_t_2 = __pyx_t_1; + for (__pyx_t_3 = __pyx_v_range_min; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { + __pyx_v_j = __pyx_t_3; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":215 * min_r = 2147483647 #max 32 integer. initialization @@ -3874,41 +3932,41 @@ static PyObject *__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cytho PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 215, __pyx_L1_error) } - __pyx_t_3 = __pyx_v_curr_ind; - __pyx_t_4 = 0; - __pyx_t_5 = -1; - if (__pyx_t_3 < 0) { - __pyx_t_3 += __pyx_pybuffernd_x.diminfo[0].shape; - if (unlikely(__pyx_t_3 < 0)) __pyx_t_5 = 0; - } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_x.diminfo[0].shape)) __pyx_t_5 = 0; + __pyx_t_4 = __pyx_v_curr_ind; + __pyx_t_5 = 0; + __pyx_t_6 = -1; if (__pyx_t_4 < 0) { - __pyx_t_4 += __pyx_pybuffernd_x.diminfo[1].shape; - if (unlikely(__pyx_t_4 < 0)) __pyx_t_5 = 1; - } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_x.diminfo[1].shape)) __pyx_t_5 = 1; - if (unlikely(__pyx_t_5 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_5); + __pyx_t_4 += __pyx_pybuffernd_x.diminfo[0].shape; + if (unlikely(__pyx_t_4 < 0)) __pyx_t_6 = 0; + } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_x.diminfo[0].shape)) __pyx_t_6 = 0; + if (__pyx_t_5 < 0) { + __pyx_t_5 += __pyx_pybuffernd_x.diminfo[1].shape; + if (unlikely(__pyx_t_5 < 0)) __pyx_t_6 = 1; + } else if (unlikely(__pyx_t_5 >= __pyx_pybuffernd_x.diminfo[1].shape)) __pyx_t_6 = 1; + if (unlikely(__pyx_t_6 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_6); __PYX_ERR(0, 215, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_x) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 215, __pyx_L1_error) } - __pyx_t_6 = __pyx_v_j; - __pyx_t_7 = 0; - __pyx_t_5 = -1; - if (__pyx_t_6 < 0) { - __pyx_t_6 += __pyx_pybuffernd_x.diminfo[0].shape; - if (unlikely(__pyx_t_6 < 0)) __pyx_t_5 = 0; - } else if (unlikely(__pyx_t_6 >= __pyx_pybuffernd_x.diminfo[0].shape)) __pyx_t_5 = 0; + __pyx_t_7 = __pyx_v_j; + __pyx_t_8 = 0; + __pyx_t_6 = -1; if (__pyx_t_7 < 0) { - __pyx_t_7 += __pyx_pybuffernd_x.diminfo[1].shape; - if (unlikely(__pyx_t_7 < 0)) __pyx_t_5 = 1; - } else if (unlikely(__pyx_t_7 >= __pyx_pybuffernd_x.diminfo[1].shape)) __pyx_t_5 = 1; - if (unlikely(__pyx_t_5 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_5); + __pyx_t_7 += __pyx_pybuffernd_x.diminfo[0].shape; + if (unlikely(__pyx_t_7 < 0)) __pyx_t_6 = 0; + } else if (unlikely(__pyx_t_7 >= __pyx_pybuffernd_x.diminfo[0].shape)) __pyx_t_6 = 0; + if (__pyx_t_8 < 0) { + __pyx_t_8 += __pyx_pybuffernd_x.diminfo[1].shape; + if (unlikely(__pyx_t_8 < 0)) __pyx_t_6 = 1; + } else if (unlikely(__pyx_t_8 >= __pyx_pybuffernd_x.diminfo[1].shape)) __pyx_t_6 = 1; + if (unlikely(__pyx_t_6 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_6); __PYX_ERR(0, 215, __pyx_L1_error) } - __pyx_v_dx = ((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_x.diminfo[0].strides, __pyx_t_4, __pyx_pybuffernd_x.diminfo[1].strides)) - (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_x.diminfo[0].strides, __pyx_t_7, __pyx_pybuffernd_x.diminfo[1].strides))); + __pyx_v_dx = ((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_x.diminfo[0].strides, __pyx_t_5, __pyx_pybuffernd_x.diminfo[1].strides)) - (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_x.diminfo[0].strides, __pyx_t_8, __pyx_pybuffernd_x.diminfo[1].strides))); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":216 * for j in range(range_min, range_max+1): @@ -3921,41 +3979,41 @@ static PyObject *__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cytho PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 216, __pyx_L1_error) } - __pyx_t_8 = __pyx_v_curr_ind; - __pyx_t_9 = 1; - __pyx_t_5 = -1; - if (__pyx_t_8 < 0) { - __pyx_t_8 += __pyx_pybuffernd_x.diminfo[0].shape; - if (unlikely(__pyx_t_8 < 0)) __pyx_t_5 = 0; - } else if (unlikely(__pyx_t_8 >= __pyx_pybuffernd_x.diminfo[0].shape)) __pyx_t_5 = 0; + __pyx_t_9 = __pyx_v_curr_ind; + __pyx_t_10 = 1; + __pyx_t_6 = -1; if (__pyx_t_9 < 0) { - __pyx_t_9 += __pyx_pybuffernd_x.diminfo[1].shape; - if (unlikely(__pyx_t_9 < 0)) __pyx_t_5 = 1; - } else if (unlikely(__pyx_t_9 >= __pyx_pybuffernd_x.diminfo[1].shape)) __pyx_t_5 = 1; - if (unlikely(__pyx_t_5 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_5); + __pyx_t_9 += __pyx_pybuffernd_x.diminfo[0].shape; + if (unlikely(__pyx_t_9 < 0)) __pyx_t_6 = 0; + } else if (unlikely(__pyx_t_9 >= __pyx_pybuffernd_x.diminfo[0].shape)) __pyx_t_6 = 0; + if (__pyx_t_10 < 0) { + __pyx_t_10 += __pyx_pybuffernd_x.diminfo[1].shape; + if (unlikely(__pyx_t_10 < 0)) __pyx_t_6 = 1; + } else if (unlikely(__pyx_t_10 >= __pyx_pybuffernd_x.diminfo[1].shape)) __pyx_t_6 = 1; + if (unlikely(__pyx_t_6 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_6); __PYX_ERR(0, 216, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_x) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 216, __pyx_L1_error) } - __pyx_t_10 = __pyx_v_j; - __pyx_t_11 = 1; - __pyx_t_5 = -1; - if (__pyx_t_10 < 0) { - __pyx_t_10 += __pyx_pybuffernd_x.diminfo[0].shape; - if (unlikely(__pyx_t_10 < 0)) __pyx_t_5 = 0; - } else if (unlikely(__pyx_t_10 >= __pyx_pybuffernd_x.diminfo[0].shape)) __pyx_t_5 = 0; + __pyx_t_11 = __pyx_v_j; + __pyx_t_12 = 1; + __pyx_t_6 = -1; if (__pyx_t_11 < 0) { - __pyx_t_11 += __pyx_pybuffernd_x.diminfo[1].shape; - if (unlikely(__pyx_t_11 < 0)) __pyx_t_5 = 1; - } else if (unlikely(__pyx_t_11 >= __pyx_pybuffernd_x.diminfo[1].shape)) __pyx_t_5 = 1; - if (unlikely(__pyx_t_5 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_5); + __pyx_t_11 += __pyx_pybuffernd_x.diminfo[0].shape; + if (unlikely(__pyx_t_11 < 0)) __pyx_t_6 = 0; + } else if (unlikely(__pyx_t_11 >= __pyx_pybuffernd_x.diminfo[0].shape)) __pyx_t_6 = 0; + if (__pyx_t_12 < 0) { + __pyx_t_12 += __pyx_pybuffernd_x.diminfo[1].shape; + if (unlikely(__pyx_t_12 < 0)) __pyx_t_6 = 1; + } else if (unlikely(__pyx_t_12 >= __pyx_pybuffernd_x.diminfo[1].shape)) __pyx_t_6 = 1; + if (unlikely(__pyx_t_6 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_6); __PYX_ERR(0, 216, __pyx_L1_error) } - __pyx_v_dy = ((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_x.diminfo[0].strides, __pyx_t_9, __pyx_pybuffernd_x.diminfo[1].strides)) - (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_x.diminfo[0].strides, __pyx_t_11, __pyx_pybuffernd_x.diminfo[1].strides))); + __pyx_v_dy = ((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_9, __pyx_pybuffernd_x.diminfo[0].strides, __pyx_t_10, __pyx_pybuffernd_x.diminfo[1].strides)) - (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_x.diminfo[0].strides, __pyx_t_12, __pyx_pybuffernd_x.diminfo[1].strides))); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":217 * dx = x[curr_ind,0] - x[j,0]; @@ -3973,8 +4031,8 @@ static PyObject *__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cytho * min_r = r; * near_ind = j; */ - __pyx_t_12 = ((__pyx_v_r < __pyx_v_min_r) != 0); - if (__pyx_t_12) { + __pyx_t_13 = ((__pyx_v_r < __pyx_v_min_r) != 0); + if (__pyx_t_13) { /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":219 * r = dx*dx + dy*dy @@ -4012,20 +4070,20 @@ static PyObject *__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cytho * def circNearestPoints(np.ndarray[np.int_t, ndim=1] points_ind, \ */ __Pyx_XDECREF(__pyx_r); - __pyx_t_13 = PyFloat_FromDouble(__pyx_v_min_r); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 221, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_near_ind); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 221, __pyx_L1_error) + __pyx_t_14 = PyFloat_FromDouble(__pyx_v_min_r); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); - __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 221, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyInt_From_int(__pyx_v_near_ind); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_13); - PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_13); + __pyx_t_16 = PyTuple_New(2); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); __Pyx_GIVEREF(__pyx_t_14); - PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_14); - __pyx_t_13 = 0; + PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_14); + __Pyx_GIVEREF(__pyx_t_15); + PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_15); __pyx_t_14 = 0; - __pyx_r = ((PyObject*)__pyx_t_15); __pyx_t_15 = 0; + __pyx_r = ((PyObject*)__pyx_t_16); + __pyx_t_16 = 0; goto __pyx_L0; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":209 @@ -4038,9 +4096,9 @@ static PyObject *__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cytho /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_14); __Pyx_XDECREF(__pyx_t_15); + __Pyx_XDECREF(__pyx_t_16); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign @@ -4099,23 +4157,23 @@ static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_points_ind)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_points_ind)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_min_ind)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_min_ind)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("circNearestPoints", 1, 4, 4, 1); __PYX_ERR(0, 223, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_max_ind)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_ind)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("circNearestPoints", 1, 4, 4, 2); __PYX_ERR(0, 223, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: - if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("circNearestPoints", 1, 4, 4, 3); __PYX_ERR(0, 223, __pyx_L3_error) } @@ -4192,20 +4250,21 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyArrayObject *__pyx_t_10 = NULL; int __pyx_t_11; int __pyx_t_12; - Py_ssize_t __pyx_t_13; - int __pyx_t_14; - Py_ssize_t __pyx_t_15; + int __pyx_t_13; + Py_ssize_t __pyx_t_14; + int __pyx_t_15; Py_ssize_t __pyx_t_16; Py_ssize_t __pyx_t_17; Py_ssize_t __pyx_t_18; - float __pyx_t_19; - Py_ssize_t __pyx_t_20; + Py_ssize_t __pyx_t_19; + float __pyx_t_20; Py_ssize_t __pyx_t_21; Py_ssize_t __pyx_t_22; Py_ssize_t __pyx_t_23; Py_ssize_t __pyx_t_24; Py_ssize_t __pyx_t_25; - int __pyx_t_26; + Py_ssize_t __pyx_t_26; + int __pyx_t_27; __Pyx_RefNannySetupContext("circNearestPoints", 0); __pyx_pybuffer_near_ind.pybuffer.buf = NULL; __pyx_pybuffer_near_ind.refcount = 0; @@ -4348,8 +4407,9 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * if min_ind[i] <= max_ind[i]: */ __pyx_t_11 = __pyx_v_total_points; - for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { - __pyx_v_i = __pyx_t_12; + __pyx_t_12 = __pyx_t_11; + for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) { + __pyx_v_i = __pyx_t_13; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":259 * for i in range(total_points): @@ -4362,31 +4422,31 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 259, __pyx_L1_error) } - __pyx_t_13 = __pyx_v_i; - __pyx_t_14 = -1; - if (__pyx_t_13 < 0) { - __pyx_t_13 += __pyx_pybuffernd_min_ind.diminfo[0].shape; - if (unlikely(__pyx_t_13 < 0)) __pyx_t_14 = 0; - } else if (unlikely(__pyx_t_13 >= __pyx_pybuffernd_min_ind.diminfo[0].shape)) __pyx_t_14 = 0; - if (unlikely(__pyx_t_14 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_14); + __pyx_t_14 = __pyx_v_i; + __pyx_t_15 = -1; + if (__pyx_t_14 < 0) { + __pyx_t_14 += __pyx_pybuffernd_min_ind.diminfo[0].shape; + if (unlikely(__pyx_t_14 < 0)) __pyx_t_15 = 0; + } else if (unlikely(__pyx_t_14 >= __pyx_pybuffernd_min_ind.diminfo[0].shape)) __pyx_t_15 = 0; + if (unlikely(__pyx_t_15 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_15); __PYX_ERR(0, 259, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_max_ind) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 259, __pyx_L1_error) } - __pyx_t_15 = __pyx_v_i; - __pyx_t_14 = -1; - if (__pyx_t_15 < 0) { - __pyx_t_15 += __pyx_pybuffernd_max_ind.diminfo[0].shape; - if (unlikely(__pyx_t_15 < 0)) __pyx_t_14 = 0; - } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_max_ind.diminfo[0].shape)) __pyx_t_14 = 0; - if (unlikely(__pyx_t_14 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_14); + __pyx_t_16 = __pyx_v_i; + __pyx_t_15 = -1; + if (__pyx_t_16 < 0) { + __pyx_t_16 += __pyx_pybuffernd_max_ind.diminfo[0].shape; + if (unlikely(__pyx_t_16 < 0)) __pyx_t_15 = 0; + } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_max_ind.diminfo[0].shape)) __pyx_t_15 = 0; + if (unlikely(__pyx_t_15 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_15); __PYX_ERR(0, 259, __pyx_L1_error) } - __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_min_ind.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_min_ind.diminfo[0].strides)) <= (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_max_ind.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_max_ind.diminfo[0].strides))) != 0); + __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_min_ind.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_min_ind.diminfo[0].strides)) <= (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_max_ind.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_max_ind.diminfo[0].strides))) != 0); if (__pyx_t_3) { /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":260 @@ -4400,53 +4460,49 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 260, __pyx_L1_error) } - __pyx_t_16 = __pyx_v_i; - __pyx_t_14 = -1; - if (__pyx_t_16 < 0) { - __pyx_t_16 += __pyx_pybuffernd_points_ind.diminfo[0].shape; - if (unlikely(__pyx_t_16 < 0)) __pyx_t_14 = 0; - } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_points_ind.diminfo[0].shape)) __pyx_t_14 = 0; - if (unlikely(__pyx_t_14 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_14); + __pyx_t_17 = __pyx_v_i; + __pyx_t_15 = -1; + if (__pyx_t_17 < 0) { + __pyx_t_17 += __pyx_pybuffernd_points_ind.diminfo[0].shape; + if (unlikely(__pyx_t_17 < 0)) __pyx_t_15 = 0; + } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_points_ind.diminfo[0].shape)) __pyx_t_15 = 0; + if (unlikely(__pyx_t_15 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_15); __PYX_ERR(0, 260, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_min_ind) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 260, __pyx_L1_error) } - __pyx_t_17 = __pyx_v_i; - __pyx_t_14 = -1; - if (__pyx_t_17 < 0) { - __pyx_t_17 += __pyx_pybuffernd_min_ind.diminfo[0].shape; - if (unlikely(__pyx_t_17 < 0)) __pyx_t_14 = 0; - } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_min_ind.diminfo[0].shape)) __pyx_t_14 = 0; - if (unlikely(__pyx_t_14 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_14); + __pyx_t_18 = __pyx_v_i; + __pyx_t_15 = -1; + if (__pyx_t_18 < 0) { + __pyx_t_18 += __pyx_pybuffernd_min_ind.diminfo[0].shape; + if (unlikely(__pyx_t_18 < 0)) __pyx_t_15 = 0; + } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_min_ind.diminfo[0].shape)) __pyx_t_15 = 0; + if (unlikely(__pyx_t_15 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_15); __PYX_ERR(0, 260, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_max_ind) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 260, __pyx_L1_error) } - __pyx_t_18 = __pyx_v_i; - __pyx_t_14 = -1; - if (__pyx_t_18 < 0) { - __pyx_t_18 += __pyx_pybuffernd_max_ind.diminfo[0].shape; - if (unlikely(__pyx_t_18 < 0)) __pyx_t_14 = 0; - } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_max_ind.diminfo[0].shape)) __pyx_t_14 = 0; - if (unlikely(__pyx_t_14 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_14); + __pyx_t_19 = __pyx_v_i; + __pyx_t_15 = -1; + if (__pyx_t_19 < 0) { + __pyx_t_19 += __pyx_pybuffernd_max_ind.diminfo[0].shape; + if (unlikely(__pyx_t_19 < 0)) __pyx_t_15 = 0; + } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_max_ind.diminfo[0].shape)) __pyx_t_15 = 0; + if (unlikely(__pyx_t_15 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_15); __PYX_ERR(0, 260, __pyx_L1_error) } - __pyx_t_9 = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_min_distance(((PyArrayObject *)__pyx_v_x), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_points_ind.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_points_ind.diminfo[0].strides)), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_min_ind.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_min_ind.diminfo[0].strides)), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_max_ind.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_max_ind.diminfo[0].strides))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 260, __pyx_L1_error) + __pyx_t_9 = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_min_distance(((PyArrayObject *)__pyx_v_x), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_points_ind.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_points_ind.diminfo[0].strides)), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_min_ind.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_min_ind.diminfo[0].strides)), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_max_ind.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_max_ind.diminfo[0].strides))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (likely(__pyx_t_9 != Py_None)) { PyObject* sequence = __pyx_t_9; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + 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); @@ -4467,12 +4523,12 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 260, __pyx_L1_error) } - __pyx_t_19 = __pyx_PyFloat_AsFloat(__pyx_t_5); if (unlikely((__pyx_t_19 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 260, __pyx_L1_error) + __pyx_t_20 = __pyx_PyFloat_AsFloat(__pyx_t_5); if (unlikely((__pyx_t_20 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 260, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_14 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_14 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 260, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_15 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 260, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v_mag1 = __pyx_t_19; - __pyx_v_near_ind1 = __pyx_t_14; + __pyx_v_mag1 = __pyx_t_20; + __pyx_v_near_ind1 = __pyx_t_15; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":261 * if min_ind[i] <= max_ind[i]: @@ -4485,17 +4541,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 261, __pyx_L1_error) } - __pyx_t_20 = __pyx_v_i; - __pyx_t_14 = -1; - if (__pyx_t_20 < 0) { - __pyx_t_20 += __pyx_pybuffernd_near_ind.diminfo[0].shape; - if (unlikely(__pyx_t_20 < 0)) __pyx_t_14 = 0; - } else if (unlikely(__pyx_t_20 >= __pyx_pybuffernd_near_ind.diminfo[0].shape)) __pyx_t_14 = 0; - if (unlikely(__pyx_t_14 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_14); + __pyx_t_21 = __pyx_v_i; + __pyx_t_15 = -1; + if (__pyx_t_21 < 0) { + __pyx_t_21 += __pyx_pybuffernd_near_ind.diminfo[0].shape; + if (unlikely(__pyx_t_21 < 0)) __pyx_t_15 = 0; + } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_near_ind.diminfo[0].shape)) __pyx_t_15 = 0; + if (unlikely(__pyx_t_15 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_15); __PYX_ERR(0, 261, __pyx_L1_error) } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_near_ind.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_near_ind.diminfo[0].strides) = __pyx_v_near_ind1; + *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_near_ind.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_near_ind.diminfo[0].strides) = __pyx_v_near_ind1; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":259 * for i in range(total_points): @@ -4519,39 +4575,35 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 265, __pyx_L1_error) } - __pyx_t_21 = __pyx_v_i; - __pyx_t_14 = -1; - if (__pyx_t_21 < 0) { - __pyx_t_21 += __pyx_pybuffernd_points_ind.diminfo[0].shape; - if (unlikely(__pyx_t_21 < 0)) __pyx_t_14 = 0; - } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_points_ind.diminfo[0].shape)) __pyx_t_14 = 0; - if (unlikely(__pyx_t_14 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_14); + __pyx_t_22 = __pyx_v_i; + __pyx_t_15 = -1; + if (__pyx_t_22 < 0) { + __pyx_t_22 += __pyx_pybuffernd_points_ind.diminfo[0].shape; + if (unlikely(__pyx_t_22 < 0)) __pyx_t_15 = 0; + } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_points_ind.diminfo[0].shape)) __pyx_t_15 = 0; + if (unlikely(__pyx_t_15 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_15); __PYX_ERR(0, 265, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_min_ind) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 265, __pyx_L1_error) } - __pyx_t_22 = __pyx_v_i; - __pyx_t_14 = -1; - if (__pyx_t_22 < 0) { - __pyx_t_22 += __pyx_pybuffernd_min_ind.diminfo[0].shape; - if (unlikely(__pyx_t_22 < 0)) __pyx_t_14 = 0; - } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_min_ind.diminfo[0].shape)) __pyx_t_14 = 0; - if (unlikely(__pyx_t_14 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_14); + __pyx_t_23 = __pyx_v_i; + __pyx_t_15 = -1; + if (__pyx_t_23 < 0) { + __pyx_t_23 += __pyx_pybuffernd_min_ind.diminfo[0].shape; + if (unlikely(__pyx_t_23 < 0)) __pyx_t_15 = 0; + } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_min_ind.diminfo[0].shape)) __pyx_t_15 = 0; + if (unlikely(__pyx_t_15 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_15); __PYX_ERR(0, 265, __pyx_L1_error) } - __pyx_t_9 = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_min_distance(((PyArrayObject *)__pyx_v_x), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_points_ind.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_points_ind.diminfo[0].strides)), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_min_ind.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_min_ind.diminfo[0].strides)), __pyx_v_last_index); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 265, __pyx_L1_error) + __pyx_t_9 = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_min_distance(((PyArrayObject *)__pyx_v_x), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_points_ind.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_points_ind.diminfo[0].strides)), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_min_ind.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_min_ind.diminfo[0].strides)), __pyx_v_last_index); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (likely(__pyx_t_9 != Py_None)) { PyObject* sequence = __pyx_t_9; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + 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); @@ -4572,12 +4624,12 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 265, __pyx_L1_error) } - __pyx_t_19 = __pyx_PyFloat_AsFloat(__pyx_t_7); if (unlikely((__pyx_t_19 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 265, __pyx_L1_error) + __pyx_t_20 = __pyx_PyFloat_AsFloat(__pyx_t_7); if (unlikely((__pyx_t_20 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_14 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 265, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_15 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_v_mag1 = __pyx_t_19; - __pyx_v_near_ind1 = __pyx_t_14; + __pyx_v_mag1 = __pyx_t_20; + __pyx_v_near_ind1 = __pyx_t_15; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":266 * else: @@ -4590,39 +4642,35 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 266, __pyx_L1_error) } - __pyx_t_23 = __pyx_v_i; - __pyx_t_14 = -1; - if (__pyx_t_23 < 0) { - __pyx_t_23 += __pyx_pybuffernd_points_ind.diminfo[0].shape; - if (unlikely(__pyx_t_23 < 0)) __pyx_t_14 = 0; - } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_points_ind.diminfo[0].shape)) __pyx_t_14 = 0; - if (unlikely(__pyx_t_14 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_14); + __pyx_t_24 = __pyx_v_i; + __pyx_t_15 = -1; + if (__pyx_t_24 < 0) { + __pyx_t_24 += __pyx_pybuffernd_points_ind.diminfo[0].shape; + if (unlikely(__pyx_t_24 < 0)) __pyx_t_15 = 0; + } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_points_ind.diminfo[0].shape)) __pyx_t_15 = 0; + if (unlikely(__pyx_t_15 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_15); __PYX_ERR(0, 266, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_max_ind) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 266, __pyx_L1_error) } - __pyx_t_24 = __pyx_v_i; - __pyx_t_14 = -1; - if (__pyx_t_24 < 0) { - __pyx_t_24 += __pyx_pybuffernd_max_ind.diminfo[0].shape; - if (unlikely(__pyx_t_24 < 0)) __pyx_t_14 = 0; - } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_max_ind.diminfo[0].shape)) __pyx_t_14 = 0; - if (unlikely(__pyx_t_14 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_14); + __pyx_t_25 = __pyx_v_i; + __pyx_t_15 = -1; + if (__pyx_t_25 < 0) { + __pyx_t_25 += __pyx_pybuffernd_max_ind.diminfo[0].shape; + if (unlikely(__pyx_t_25 < 0)) __pyx_t_15 = 0; + } else if (unlikely(__pyx_t_25 >= __pyx_pybuffernd_max_ind.diminfo[0].shape)) __pyx_t_15 = 0; + if (unlikely(__pyx_t_15 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_15); __PYX_ERR(0, 266, __pyx_L1_error) } - __pyx_t_9 = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_min_distance(((PyArrayObject *)__pyx_v_x), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_points_ind.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_points_ind.diminfo[0].strides)), 0, (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_max_ind.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_max_ind.diminfo[0].strides))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 266, __pyx_L1_error) + __pyx_t_9 = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_min_distance(((PyArrayObject *)__pyx_v_x), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_points_ind.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_points_ind.diminfo[0].strides)), 0, (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_max_ind.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_max_ind.diminfo[0].strides))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (likely(__pyx_t_9 != Py_None)) { PyObject* sequence = __pyx_t_9; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + 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); @@ -4643,12 +4691,12 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 266, __pyx_L1_error) } - __pyx_t_19 = __pyx_PyFloat_AsFloat(__pyx_t_5); if (unlikely((__pyx_t_19 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 266, __pyx_L1_error) + __pyx_t_20 = __pyx_PyFloat_AsFloat(__pyx_t_5); if (unlikely((__pyx_t_20 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 266, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_14 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_14 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 266, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_15 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 266, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v_mag2 = __pyx_t_19; - __pyx_v_near_ind2 = __pyx_t_14; + __pyx_v_mag2 = __pyx_t_20; + __pyx_v_near_ind2 = __pyx_t_15; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":269 * @@ -4658,25 +4706,25 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * return near_ind */ if (((__pyx_v_mag1 <= __pyx_v_mag2) != 0)) { - __pyx_t_14 = __pyx_v_near_ind1; + __pyx_t_15 = __pyx_v_near_ind1; } else { - __pyx_t_14 = __pyx_v_near_ind2; + __pyx_t_15 = __pyx_v_near_ind2; } if (unlikely(((PyObject *)__pyx_v_near_ind) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 269, __pyx_L1_error) } - __pyx_t_25 = __pyx_v_i; - __pyx_t_26 = -1; - if (__pyx_t_25 < 0) { - __pyx_t_25 += __pyx_pybuffernd_near_ind.diminfo[0].shape; - if (unlikely(__pyx_t_25 < 0)) __pyx_t_26 = 0; - } else if (unlikely(__pyx_t_25 >= __pyx_pybuffernd_near_ind.diminfo[0].shape)) __pyx_t_26 = 0; - if (unlikely(__pyx_t_26 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_26); + __pyx_t_26 = __pyx_v_i; + __pyx_t_27 = -1; + if (__pyx_t_26 < 0) { + __pyx_t_26 += __pyx_pybuffernd_near_ind.diminfo[0].shape; + if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0; + } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_near_ind.diminfo[0].shape)) __pyx_t_27 = 0; + if (unlikely(__pyx_t_27 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_27); __PYX_ERR(0, 269, __pyx_L1_error) } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_near_ind.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_near_ind.diminfo[0].strides) = __pyx_t_14; + *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_near_ind.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_near_ind.diminfo[0].strides) = __pyx_t_15; } __pyx_L5:; } @@ -5303,35 +5351,35 @@ static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_points_ind)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_points_ind)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("circOpposingNearestPoints", 1, 6, 6, 1); __PYX_ERR(0, 296, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_start_ind)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start_ind)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("circOpposingNearestPoints", 1, 6, 6, 2); __PYX_ERR(0, 296, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: - if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_end_ind)) != 0)) kw_args--; + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_end_ind)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("circOpposingNearestPoints", 1, 6, 6, 3); __PYX_ERR(0, 296, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: - if (likely((values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_search_len)) != 0)) kw_args--; + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_search_len)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("circOpposingNearestPoints", 1, 6, 6, 4); __PYX_ERR(0, 296, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: - if (likely((values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_chain_code_len)) != 0)) kw_args--; + if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_chain_code_len)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("circOpposingNearestPoints", 1, 6, 6, 5); __PYX_ERR(0, 296, __pyx_L3_error) } @@ -5434,14 +5482,15 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyArrayObject *__pyx_t_16 = NULL; PyArrayObject *__pyx_t_17 = NULL; long __pyx_t_18; - Py_ssize_t __pyx_t_19; - int __pyx_t_20; - Py_ssize_t __pyx_t_21; + long __pyx_t_19; + Py_ssize_t __pyx_t_20; + int __pyx_t_21; Py_ssize_t __pyx_t_22; Py_ssize_t __pyx_t_23; Py_ssize_t __pyx_t_24; Py_ssize_t __pyx_t_25; Py_ssize_t __pyx_t_26; + Py_ssize_t __pyx_t_27; __Pyx_RefNannySetupContext("circOpposingNearestPoints", 0); __pyx_pybuffer_opposite_ind.pybuffer.buf = NULL; __pyx_pybuffer_opposite_ind.refcount = 0; @@ -5951,7 +6000,7 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 386, __pyx_L1_error) } - __pyx_t_8 = PyObject_GetItem(((PyObject *)__pyx_v_opposite_ind), __pyx_v_side12); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 386, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_opposite_ind), __pyx_v_side12); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 386, __pyx_L1_error) __pyx_t_12 = ((PyArrayObject *)__pyx_t_8); @@ -6125,7 +6174,8 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth __Pyx_GOTREF(__pyx_t_8); __pyx_t_18 = __Pyx_PyInt_As_long(__pyx_t_8); if (unlikely((__pyx_t_18 == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 393, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_18; __pyx_t_3+=1) { + __pyx_t_19 = __pyx_t_18; + for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_19; __pyx_t_3+=1) { __pyx_v_ii = __pyx_t_3; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":394 @@ -6139,17 +6189,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 394, __pyx_L1_error) } - __pyx_t_19 = __pyx_v_ii; - __pyx_t_20 = -1; - if (__pyx_t_19 < 0) { - __pyx_t_19 += __pyx_pybuffernd_opposite_ind.diminfo[0].shape; - if (unlikely(__pyx_t_19 < 0)) __pyx_t_20 = 0; - } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_opposite_ind.diminfo[0].shape)) __pyx_t_20 = 0; - if (unlikely(__pyx_t_20 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_20); + __pyx_t_20 = __pyx_v_ii; + __pyx_t_21 = -1; + if (__pyx_t_20 < 0) { + __pyx_t_20 += __pyx_pybuffernd_opposite_ind.diminfo[0].shape; + if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0; + } else if (unlikely(__pyx_t_20 >= __pyx_pybuffernd_opposite_ind.diminfo[0].shape)) __pyx_t_21 = 0; + if (unlikely(__pyx_t_21 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_21); __PYX_ERR(0, 394, __pyx_L1_error) } - __pyx_v_cur_ind = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_opposite_ind.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_opposite_ind.diminfo[0].strides)); + __pyx_v_cur_ind = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_opposite_ind.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_opposite_ind.diminfo[0].strides)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":395 * for ii in range(opposite_ind.size): @@ -6162,17 +6212,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 395, __pyx_L1_error) } - __pyx_t_21 = __pyx_v_cur_ind; - __pyx_t_20 = -1; - if (__pyx_t_21 < 0) { - __pyx_t_21 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_21 < 0)) __pyx_t_20 = 0; - } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_20 = 0; - if (unlikely(__pyx_t_20 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_20); + __pyx_t_22 = __pyx_v_cur_ind; + __pyx_t_21 = -1; + if (__pyx_t_22 < 0) { + __pyx_t_22 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; + if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0; + } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_21 = 0; + if (unlikely(__pyx_t_21 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_21); __PYX_ERR(0, 395, __pyx_L1_error) } - __pyx_v_min_opposite = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) - __pyx_v_search_len); + __pyx_v_min_opposite = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) - __pyx_v_search_len); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":396 * cur_ind = opposite_ind[ii] @@ -6185,17 +6235,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 396, __pyx_L1_error) } - __pyx_t_22 = __pyx_v_cur_ind; - __pyx_t_20 = -1; - if (__pyx_t_22 < 0) { - __pyx_t_22 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_22 < 0)) __pyx_t_20 = 0; - } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_20 = 0; - if (unlikely(__pyx_t_20 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_20); + __pyx_t_23 = __pyx_v_cur_ind; + __pyx_t_21 = -1; + if (__pyx_t_23 < 0) { + __pyx_t_23 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; + if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0; + } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_21 = 0; + if (unlikely(__pyx_t_21 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_21); __PYX_ERR(0, 396, __pyx_L1_error) } - __pyx_v_max_opposite = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) + __pyx_v_search_len); + __pyx_v_max_opposite = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) + __pyx_v_search_len); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":399 * @@ -6226,17 +6276,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 400, __pyx_L1_error) } - __pyx_t_23 = __pyx_v_ii; - __pyx_t_20 = -1; - if (__pyx_t_23 < 0) { - __pyx_t_23 += __pyx_pybuffernd_minOpoints_ind.diminfo[0].shape; - if (unlikely(__pyx_t_23 < 0)) __pyx_t_20 = 0; - } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_minOpoints_ind.diminfo[0].shape)) __pyx_t_20 = 0; - if (unlikely(__pyx_t_20 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_20); + __pyx_t_24 = __pyx_v_ii; + __pyx_t_21 = -1; + if (__pyx_t_24 < 0) { + __pyx_t_24 += __pyx_pybuffernd_minOpoints_ind.diminfo[0].shape; + if (unlikely(__pyx_t_24 < 0)) __pyx_t_21 = 0; + } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_minOpoints_ind.diminfo[0].shape)) __pyx_t_21 = 0; + if (unlikely(__pyx_t_21 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_21); __PYX_ERR(0, 400, __pyx_L1_error) } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_minOpoints_ind.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_minOpoints_ind.diminfo[0].strides) = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_wrapOppositeRegion(((PyArrayObject *)__pyx_v_chain_code_len), __pyx_v_min_opposite, __pyx_v_start1, __pyx_v_end1, __pyx_v_last_chain_index, __pyx_v_ISMIN, __pyx_v_SIDE1, __pyx_v_is2Wrap); + *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_minOpoints_ind.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_minOpoints_ind.diminfo[0].strides) = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_wrapOppositeRegion(((PyArrayObject *)__pyx_v_chain_code_len), __pyx_v_min_opposite, __pyx_v_start1, __pyx_v_end1, __pyx_v_last_chain_index, __pyx_v_ISMIN, __pyx_v_SIDE1, __pyx_v_is2Wrap); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":401 * if (cur_ind > start_ind) and (cur_ind < end_ind): @@ -6249,17 +6299,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 401, __pyx_L1_error) } - __pyx_t_24 = __pyx_v_ii; - __pyx_t_20 = -1; - if (__pyx_t_24 < 0) { - __pyx_t_24 += __pyx_pybuffernd_maxOpoints_ind.diminfo[0].shape; - if (unlikely(__pyx_t_24 < 0)) __pyx_t_20 = 0; - } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_maxOpoints_ind.diminfo[0].shape)) __pyx_t_20 = 0; - if (unlikely(__pyx_t_20 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_20); + __pyx_t_25 = __pyx_v_ii; + __pyx_t_21 = -1; + if (__pyx_t_25 < 0) { + __pyx_t_25 += __pyx_pybuffernd_maxOpoints_ind.diminfo[0].shape; + if (unlikely(__pyx_t_25 < 0)) __pyx_t_21 = 0; + } else if (unlikely(__pyx_t_25 >= __pyx_pybuffernd_maxOpoints_ind.diminfo[0].shape)) __pyx_t_21 = 0; + if (unlikely(__pyx_t_21 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_21); __PYX_ERR(0, 401, __pyx_L1_error) } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_maxOpoints_ind.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_maxOpoints_ind.diminfo[0].strides) = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_wrapOppositeRegion(((PyArrayObject *)__pyx_v_chain_code_len), __pyx_v_max_opposite, __pyx_v_start1, __pyx_v_end1, __pyx_v_last_chain_index, __pyx_v_ISMAX, __pyx_v_SIDE1, __pyx_v_is2Wrap); + *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_maxOpoints_ind.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_maxOpoints_ind.diminfo[0].strides) = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_wrapOppositeRegion(((PyArrayObject *)__pyx_v_chain_code_len), __pyx_v_max_opposite, __pyx_v_start1, __pyx_v_end1, __pyx_v_last_chain_index, __pyx_v_ISMAX, __pyx_v_SIDE1, __pyx_v_is2Wrap); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":399 * @@ -6300,17 +6350,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 403, __pyx_L1_error) } - __pyx_t_25 = __pyx_v_ii; - __pyx_t_20 = -1; - if (__pyx_t_25 < 0) { - __pyx_t_25 += __pyx_pybuffernd_minOpoints_ind.diminfo[0].shape; - if (unlikely(__pyx_t_25 < 0)) __pyx_t_20 = 0; - } else if (unlikely(__pyx_t_25 >= __pyx_pybuffernd_minOpoints_ind.diminfo[0].shape)) __pyx_t_20 = 0; - if (unlikely(__pyx_t_20 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_20); + __pyx_t_26 = __pyx_v_ii; + __pyx_t_21 = -1; + if (__pyx_t_26 < 0) { + __pyx_t_26 += __pyx_pybuffernd_minOpoints_ind.diminfo[0].shape; + if (unlikely(__pyx_t_26 < 0)) __pyx_t_21 = 0; + } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_minOpoints_ind.diminfo[0].shape)) __pyx_t_21 = 0; + if (unlikely(__pyx_t_21 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_21); __PYX_ERR(0, 403, __pyx_L1_error) } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_minOpoints_ind.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_minOpoints_ind.diminfo[0].strides) = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_wrapOppositeRegion(((PyArrayObject *)__pyx_v_chain_code_len), __pyx_v_min_opposite, __pyx_v_start2, __pyx_v_end2, __pyx_v_last_chain_index, __pyx_v_ISMIN, __pyx_v_SIDE2, __pyx_v_is2Wrap); + *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_minOpoints_ind.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_minOpoints_ind.diminfo[0].strides) = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_wrapOppositeRegion(((PyArrayObject *)__pyx_v_chain_code_len), __pyx_v_min_opposite, __pyx_v_start2, __pyx_v_end2, __pyx_v_last_chain_index, __pyx_v_ISMIN, __pyx_v_SIDE2, __pyx_v_is2Wrap); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":404 * elif (cur_ind < start_ind) or (cur_ind > end_ind): @@ -6323,17 +6373,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 404, __pyx_L1_error) } - __pyx_t_26 = __pyx_v_ii; - __pyx_t_20 = -1; - if (__pyx_t_26 < 0) { - __pyx_t_26 += __pyx_pybuffernd_maxOpoints_ind.diminfo[0].shape; - if (unlikely(__pyx_t_26 < 0)) __pyx_t_20 = 0; - } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_maxOpoints_ind.diminfo[0].shape)) __pyx_t_20 = 0; - if (unlikely(__pyx_t_20 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_20); + __pyx_t_27 = __pyx_v_ii; + __pyx_t_21 = -1; + if (__pyx_t_27 < 0) { + __pyx_t_27 += __pyx_pybuffernd_maxOpoints_ind.diminfo[0].shape; + if (unlikely(__pyx_t_27 < 0)) __pyx_t_21 = 0; + } else if (unlikely(__pyx_t_27 >= __pyx_pybuffernd_maxOpoints_ind.diminfo[0].shape)) __pyx_t_21 = 0; + if (unlikely(__pyx_t_21 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_21); __PYX_ERR(0, 404, __pyx_L1_error) } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_maxOpoints_ind.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_maxOpoints_ind.diminfo[0].strides) = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_wrapOppositeRegion(((PyArrayObject *)__pyx_v_chain_code_len), __pyx_v_max_opposite, __pyx_v_start2, __pyx_v_end2, __pyx_v_last_chain_index, __pyx_v_ISMAX, __pyx_v_SIDE2, __pyx_v_is2Wrap); + *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_maxOpoints_ind.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_maxOpoints_ind.diminfo[0].strides) = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_wrapOppositeRegion(((PyArrayObject *)__pyx_v_chain_code_len), __pyx_v_max_opposite, __pyx_v_start2, __pyx_v_end2, __pyx_v_last_chain_index, __pyx_v_ISMAX, __pyx_v_SIDE2, __pyx_v_is2Wrap); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":402 * minOpoints_ind[ii] = wrapOppositeRegion(chain_code_len, min_opposite, start1, end1, last_chain_index, ISMIN, SIDE1, is2Wrap) @@ -6359,7 +6409,7 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 407, __pyx_L1_error) } - __pyx_t_11 = PyObject_GetItem(((PyObject *)__pyx_v_points_ind), __pyx_v_side12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 407, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_points_ind), __pyx_v_side12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_2 = NULL; __pyx_t_3 = 0; @@ -6676,23 +6726,23 @@ static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_head_ind)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_head_ind)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_tail_ind)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tail_ind)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("getHeadTailRegion", 1, 4, 4, 1); __PYX_ERR(0, 423, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_chain_code_len)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_chain_code_len)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("getHeadTailRegion", 1, 4, 4, 2); __PYX_ERR(0, 423, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: - if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_worm_seg_length)) != 0)) kw_args--; + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worm_seg_length)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("getHeadTailRegion", 1, 4, 4, 3); __PYX_ERR(0, 423, __pyx_L3_error) } @@ -6794,7 +6844,7 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth __pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_t_1, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 428, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_GetItem(((PyObject *)__pyx_v_chain_code_len), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 428, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_chain_code_len), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 428, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 428, __pyx_L1_error) @@ -7270,23 +7320,23 @@ static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_bend_side1)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bend_side1)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_bend_side2)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bend_side2)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("getInterBendSeeds", 1, 4, 4, 1); __PYX_ERR(0, 447, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_contour)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_contour)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("getInterBendSeeds", 1, 4, 4, 2); __PYX_ERR(0, 447, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: - if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_chain_code_len)) != 0)) kw_args--; + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_chain_code_len)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("getInterBendSeeds", 1, 4, 4, 3); __PYX_ERR(0, 447, __pyx_L3_error) } @@ -7358,17 +7408,18 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyArrayObject *__pyx_t_7 = NULL; PyArrayObject *__pyx_t_8 = NULL; int __pyx_t_9; - Py_ssize_t __pyx_t_10; - int __pyx_t_11; - Py_ssize_t __pyx_t_12; + int __pyx_t_10; + Py_ssize_t __pyx_t_11; + int __pyx_t_12; Py_ssize_t __pyx_t_13; Py_ssize_t __pyx_t_14; - __pyx_t_5numpy_int_t __pyx_t_15; - Py_ssize_t __pyx_t_16; - PyObject *__pyx_t_17 = NULL; + Py_ssize_t __pyx_t_15; + __pyx_t_5numpy_int_t __pyx_t_16; + Py_ssize_t __pyx_t_17; PyObject *__pyx_t_18 = NULL; PyObject *__pyx_t_19 = NULL; PyObject *__pyx_t_20 = NULL; + PyObject *__pyx_t_21 = NULL; __Pyx_RefNannySetupContext("getInterBendSeeds", 0); __pyx_pybuffer_interbend_side1.pybuffer.buf = NULL; __pyx_pybuffer_interbend_side1.refcount = 0; @@ -7533,8 +7584,9 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * chain_code_len[bend_side1[i+1]]) / 2., chain_code_len); */ __pyx_t_3 = __pyx_v_total_interbends; - for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_3; __pyx_t_9+=1) { - __pyx_v_i = __pyx_t_9; + __pyx_t_9 = __pyx_t_3; + for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) { + __pyx_v_i = __pyx_t_10; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":455 * cdef int i @@ -7553,24 +7605,24 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 455, __pyx_L1_error) } - __pyx_t_10 = __pyx_v_i; - __pyx_t_11 = -1; - if (__pyx_t_10 < 0) { - __pyx_t_10 += __pyx_pybuffernd_bend_side1.diminfo[0].shape; - if (unlikely(__pyx_t_10 < 0)) __pyx_t_11 = 0; - } else if (unlikely(__pyx_t_10 >= __pyx_pybuffernd_bend_side1.diminfo[0].shape)) __pyx_t_11 = 0; - if (unlikely(__pyx_t_11 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_11); + __pyx_t_11 = __pyx_v_i; + __pyx_t_12 = -1; + if (__pyx_t_11 < 0) { + __pyx_t_11 += __pyx_pybuffernd_bend_side1.diminfo[0].shape; + if (unlikely(__pyx_t_11 < 0)) __pyx_t_12 = 0; + } else if (unlikely(__pyx_t_11 >= __pyx_pybuffernd_bend_side1.diminfo[0].shape)) __pyx_t_12 = 0; + if (unlikely(__pyx_t_12 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_12); __PYX_ERR(0, 455, __pyx_L1_error) } - __pyx_t_12 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_bend_side1.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_bend_side1.diminfo[0].strides)); - __pyx_t_11 = -1; - if (__pyx_t_12 < 0) { - __pyx_t_12 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_12 < 0)) __pyx_t_11 = 0; - } else if (unlikely(__pyx_t_12 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_11 = 0; - if (unlikely(__pyx_t_11 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_11); + __pyx_t_13 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_bend_side1.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_bend_side1.diminfo[0].strides)); + __pyx_t_12 = -1; + if (__pyx_t_13 < 0) { + __pyx_t_13 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; + if (unlikely(__pyx_t_13 < 0)) __pyx_t_12 = 0; + } else if (unlikely(__pyx_t_13 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_12 = 0; + if (unlikely(__pyx_t_12 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_12); __PYX_ERR(0, 455, __pyx_L1_error) } @@ -7589,24 +7641,24 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 456, __pyx_L1_error) } - __pyx_t_13 = (__pyx_v_i + 1); - __pyx_t_11 = -1; - if (__pyx_t_13 < 0) { - __pyx_t_13 += __pyx_pybuffernd_bend_side1.diminfo[0].shape; - if (unlikely(__pyx_t_13 < 0)) __pyx_t_11 = 0; - } else if (unlikely(__pyx_t_13 >= __pyx_pybuffernd_bend_side1.diminfo[0].shape)) __pyx_t_11 = 0; - if (unlikely(__pyx_t_11 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_11); + __pyx_t_14 = (__pyx_v_i + 1); + __pyx_t_12 = -1; + if (__pyx_t_14 < 0) { + __pyx_t_14 += __pyx_pybuffernd_bend_side1.diminfo[0].shape; + if (unlikely(__pyx_t_14 < 0)) __pyx_t_12 = 0; + } else if (unlikely(__pyx_t_14 >= __pyx_pybuffernd_bend_side1.diminfo[0].shape)) __pyx_t_12 = 0; + if (unlikely(__pyx_t_12 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_12); __PYX_ERR(0, 456, __pyx_L1_error) } - __pyx_t_14 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_bend_side1.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_bend_side1.diminfo[0].strides)); - __pyx_t_11 = -1; - if (__pyx_t_14 < 0) { - __pyx_t_14 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_14 < 0)) __pyx_t_11 = 0; - } else if (unlikely(__pyx_t_14 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_11 = 0; - if (unlikely(__pyx_t_11 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_11); + __pyx_t_15 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_bend_side1.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_bend_side1.diminfo[0].strides)); + __pyx_t_12 = -1; + if (__pyx_t_15 < 0) { + __pyx_t_15 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; + if (unlikely(__pyx_t_15 < 0)) __pyx_t_12 = 0; + } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_12 = 0; + if (unlikely(__pyx_t_12 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_12); __PYX_ERR(0, 456, __pyx_L1_error) } @@ -7617,7 +7669,7 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * chain_code_len[bend_side1[i+1]]) / 2., chain_code_len); * interbend_side2 = circNearestPoints(interbend_side1, bend_side2[1:], bend_side2[:total_interbends], contour); */ - __pyx_t_4 = PyFloat_FromDouble((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_12, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) + (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))) / 2.)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 456, __pyx_L1_error) + __pyx_t_4 = PyFloat_FromDouble((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) + (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))) / 2.)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":456 @@ -7628,7 +7680,7 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * return interbend_side1, interbend_side2 */ __pyx_t_2 = NULL; - __pyx_t_11 = 0; + __pyx_t_12 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_2)) { @@ -7636,13 +7688,13 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); - __pyx_t_11 = 1; + __pyx_t_12 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_4, ((PyObject *)__pyx_v_chain_code_len)}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 455, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 455, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -7651,23 +7703,23 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_4, ((PyObject *)__pyx_v_chain_code_len)}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 455, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 455, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { - __pyx_t_1 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 455, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_11, __pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_12, __pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_chain_code_len)); __Pyx_GIVEREF(((PyObject *)__pyx_v_chain_code_len)); - PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_11, ((PyObject *)__pyx_v_chain_code_len)); + PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_12, ((PyObject *)__pyx_v_chain_code_len)); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); @@ -7682,23 +7734,23 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * chain_code_len[bend_side1[i+1]]) / 2., chain_code_len); * interbend_side2 = circNearestPoints(interbend_side1, bend_side2[1:], bend_side2[:total_interbends], contour); */ - __pyx_t_15 = __Pyx_PyInt_As_npy_long(__pyx_t_5); if (unlikely((__pyx_t_15 == ((npy_long)-1)) && PyErr_Occurred())) __PYX_ERR(0, 455, __pyx_L1_error) + __pyx_t_16 = __Pyx_PyInt_As_npy_long(__pyx_t_5); if (unlikely((__pyx_t_16 == ((npy_long)-1)) && PyErr_Occurred())) __PYX_ERR(0, 455, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(((PyObject *)__pyx_v_interbend_side1) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 455, __pyx_L1_error) } - __pyx_t_16 = __pyx_v_i; - __pyx_t_11 = -1; - if (__pyx_t_16 < 0) { - __pyx_t_16 += __pyx_pybuffernd_interbend_side1.diminfo[0].shape; - if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0; - } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_interbend_side1.diminfo[0].shape)) __pyx_t_11 = 0; - if (unlikely(__pyx_t_11 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_11); + __pyx_t_17 = __pyx_v_i; + __pyx_t_12 = -1; + if (__pyx_t_17 < 0) { + __pyx_t_17 += __pyx_pybuffernd_interbend_side1.diminfo[0].shape; + if (unlikely(__pyx_t_17 < 0)) __pyx_t_12 = 0; + } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_interbend_side1.diminfo[0].shape)) __pyx_t_12 = 0; + if (unlikely(__pyx_t_12 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_12); __PYX_ERR(0, 455, __pyx_L1_error) } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_interbend_side1.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_interbend_side1.diminfo[0].strides) = __pyx_t_15; + *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_interbend_side1.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_interbend_side1.diminfo[0].strides) = __pyx_t_16; } /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":457 @@ -7714,7 +7766,7 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 457, __pyx_L1_error) } - __pyx_t_1 = PyObject_GetItem(((PyObject *)__pyx_v_bend_side2), __pyx_slice_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 457, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_bend_side2), __pyx_slice_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(((PyObject *)__pyx_v_bend_side2) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); @@ -7725,7 +7777,7 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth __pyx_t_2 = PySlice_New(Py_None, __pyx_t_4, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyObject_GetItem(((PyObject *)__pyx_v_bend_side2), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 457, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_bend_side2), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; @@ -7761,26 +7813,26 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth } else #endif { - __pyx_t_17 = PyTuple_New(4+__pyx_t_3); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 457, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_17); + __pyx_t_18 = PyTuple_New(4+__pyx_t_3); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 457, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); if (__pyx_t_2) { - __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_2); __pyx_t_2 = NULL; + __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_interbend_side1)); __Pyx_GIVEREF(((PyObject *)__pyx_v_interbend_side1)); - PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_3, ((PyObject *)__pyx_v_interbend_side1)); + PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_3, ((PyObject *)__pyx_v_interbend_side1)); __Pyx_GIVEREF(__pyx_t_1); - PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_3, __pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_3, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_17, 2+__pyx_t_3, __pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_18, 2+__pyx_t_3, __pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_contour)); __Pyx_GIVEREF(((PyObject *)__pyx_v_contour)); - PyTuple_SET_ITEM(__pyx_t_17, 3+__pyx_t_3, ((PyObject *)__pyx_v_contour)); + PyTuple_SET_ITEM(__pyx_t_18, 3+__pyx_t_3, ((PyObject *)__pyx_v_contour)); __pyx_t_1 = 0; __pyx_t_4 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_17, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 457, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_18, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 457, __pyx_L1_error) @@ -7790,14 +7842,14 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_interbend_side2.rcbuffer->pybuffer); __pyx_t_3 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_interbend_side2.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_3 < 0)) { - PyErr_Fetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); + PyErr_Fetch(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_interbend_side2.rcbuffer->pybuffer, (PyObject*)__pyx_v_interbend_side2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_20); + Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_21); __Pyx_RaiseBufferFallbackError(); } else { - PyErr_Restore(__pyx_t_18, __pyx_t_19, __pyx_t_20); + PyErr_Restore(__pyx_t_19, __pyx_t_20, __pyx_t_21); } - __pyx_t_18 = __pyx_t_19 = __pyx_t_20 = 0; + __pyx_t_19 = __pyx_t_20 = __pyx_t_21 = 0; } __pyx_pybuffernd_interbend_side2.diminfo[0].strides = __pyx_pybuffernd_interbend_side2.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_interbend_side2.diminfo[0].shape = __pyx_pybuffernd_interbend_side2.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 457, __pyx_L1_error) @@ -7841,7 +7893,7 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_17); + __Pyx_XDECREF(__pyx_t_18); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign @@ -8210,47 +8262,47 @@ static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_start_side1)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start_side1)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_end_side1)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_end_side1)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("skeletonize", 1, 8, 8, 1); __PYX_ERR(0, 483, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_inc_side1)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inc_side1)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("skeletonize", 1, 8, 8, 2); __PYX_ERR(0, 483, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: - if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_start_side2)) != 0)) kw_args--; + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start_side2)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("skeletonize", 1, 8, 8, 3); __PYX_ERR(0, 483, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: - if (likely((values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_end_side2)) != 0)) kw_args--; + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_end_side2)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("skeletonize", 1, 8, 8, 4); __PYX_ERR(0, 483, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: - if (likely((values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_inc_side2)) != 0)) kw_args--; + if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inc_side2)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("skeletonize", 1, 8, 8, 5); __PYX_ERR(0, 483, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: - if (likely((values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cnt_side1)) != 0)) kw_args--; + if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cnt_side1)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("skeletonize", 1, 8, 8, 6); __PYX_ERR(0, 483, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: - if (likely((values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cnt_side2)) != 0)) kw_args--; + if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cnt_side2)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("skeletonize", 1, 8, 8, 7); __PYX_ERR(0, 483, __pyx_L3_error) } @@ -8514,11 +8566,7 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth __Pyx_GOTREF(__pyx_t_1); if (likely(__pyx_t_1 != Py_None)) { PyObject* sequence = __pyx_t_1; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + 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); @@ -8564,11 +8612,7 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth __Pyx_GOTREF(__pyx_t_1); if (likely(__pyx_t_1 != Py_None)) { PyObject* sequence = __pyx_t_1; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + 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); @@ -10436,7 +10480,7 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth __Pyx_GIVEREF(__pyx_slice__2); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_slice__2); __pyx_t_8 = 0; - __pyx_t_8 = PyObject_GetItem(((PyObject *)__pyx_v_skeleton), __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 625, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_skeleton), __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 625, __pyx_L1_error) @@ -10478,7 +10522,7 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth __pyx_t_2 = PySlice_New(Py_None, __pyx_t_8, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = PyObject_GetItem(((PyObject *)__pyx_v_cnt_widths), __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 626, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_cnt_widths), __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 626, __pyx_L1_error) @@ -10602,17 +10646,17 @@ static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_skeleton)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_skeleton)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_widths)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_widths)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("cleanSkeleton", 1, 3, 3, 1); __PYX_ERR(0, 633, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_worm_seg_size)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worm_seg_size)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("cleanSkeleton", 1, 3, 3, 2); __PYX_ERR(0, 633, __pyx_L3_error) } @@ -10772,13 +10816,13 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth Py_ssize_t __pyx_t_65; Py_ssize_t __pyx_t_66; long __pyx_t_67; - Py_ssize_t __pyx_t_68; + long __pyx_t_68; Py_ssize_t __pyx_t_69; Py_ssize_t __pyx_t_70; Py_ssize_t __pyx_t_71; Py_ssize_t __pyx_t_72; Py_ssize_t __pyx_t_73; - Py_ssize_t __pyx_t_74; + int __pyx_t_74; Py_ssize_t __pyx_t_75; Py_ssize_t __pyx_t_76; Py_ssize_t __pyx_t_77; @@ -10818,21 +10862,21 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth Py_ssize_t __pyx_t_111; Py_ssize_t __pyx_t_112; Py_ssize_t __pyx_t_113; - float __pyx_t_114; + Py_ssize_t __pyx_t_114; Py_ssize_t __pyx_t_115; - Py_ssize_t __pyx_t_116; + float __pyx_t_116; Py_ssize_t __pyx_t_117; Py_ssize_t __pyx_t_118; Py_ssize_t __pyx_t_119; Py_ssize_t __pyx_t_120; - __pyx_t_5numpy_float_t __pyx_t_121; - int __pyx_t_122; - Py_ssize_t __pyx_t_123; - Py_ssize_t __pyx_t_124; + Py_ssize_t __pyx_t_121; + Py_ssize_t __pyx_t_122; + __pyx_t_5numpy_float_t __pyx_t_123; + int __pyx_t_124; int __pyx_t_125; Py_ssize_t __pyx_t_126; Py_ssize_t __pyx_t_127; - Py_ssize_t __pyx_t_128; + int __pyx_t_128; Py_ssize_t __pyx_t_129; Py_ssize_t __pyx_t_130; Py_ssize_t __pyx_t_131; @@ -10844,12 +10888,12 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth Py_ssize_t __pyx_t_137; Py_ssize_t __pyx_t_138; Py_ssize_t __pyx_t_139; - PyObject *__pyx_t_140 = NULL; - PyObject *__pyx_t_141 = NULL; - PyObject *__pyx_t_142 = NULL; - Py_ssize_t __pyx_t_143; - Py_ssize_t __pyx_t_144; - Py_ssize_t __pyx_t_145; + Py_ssize_t __pyx_t_140; + Py_ssize_t __pyx_t_141; + Py_ssize_t __pyx_t_142; + PyObject *__pyx_t_143 = NULL; + PyObject *__pyx_t_144 = NULL; + PyObject *__pyx_t_145 = NULL; Py_ssize_t __pyx_t_146; Py_ssize_t __pyx_t_147; Py_ssize_t __pyx_t_148; @@ -10867,6 +10911,9 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth Py_ssize_t __pyx_t_160; Py_ssize_t __pyx_t_161; Py_ssize_t __pyx_t_162; + Py_ssize_t __pyx_t_163; + Py_ssize_t __pyx_t_164; + Py_ssize_t __pyx_t_165; __Pyx_RefNannySetupContext("cleanSkeleton", 0); __pyx_pybuffer_pSortC.pybuffer.buf = NULL; __pyx_pybuffer_pSortC.refcount = 0; @@ -10963,13 +11010,13 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 678, __pyx_L1_error) } - __pyx_t_2 = PyObject_GetItem(((PyObject *)__pyx_v_skeleton), __pyx_tuple__4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 678, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_skeleton), __pyx_tuple__4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 678, __pyx_L1_error) } - __pyx_t_4 = PyObject_GetItem(((PyObject *)__pyx_v_skeleton), __pyx_tuple__6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 678, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_skeleton), __pyx_tuple__6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); @@ -12403,7 +12450,8 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * widths[minI] = fmin(widths[minI], widths[i]); */ __pyx_t_67 = (__pyx_v_maxI + 1); - for (__pyx_t_48 = (__pyx_v_minI + 1); __pyx_t_48 < __pyx_t_67; __pyx_t_48+=1) { + __pyx_t_68 = __pyx_t_67; + for (__pyx_t_48 = (__pyx_v_minI + 1); __pyx_t_48 < __pyx_t_68; __pyx_t_48+=1) { __pyx_v_i = __pyx_t_48; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":754 @@ -12417,17 +12465,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 754, __pyx_L1_error) } - __pyx_t_68 = __pyx_v_i; + __pyx_t_69 = __pyx_v_i; __pyx_t_49 = -1; - if (__pyx_t_68 < 0) { - __pyx_t_68 += __pyx_pybuffernd_keep.diminfo[0].shape; - if (unlikely(__pyx_t_68 < 0)) __pyx_t_49 = 0; - } else if (unlikely(__pyx_t_68 >= __pyx_pybuffernd_keep.diminfo[0].shape)) __pyx_t_49 = 0; + if (__pyx_t_69 < 0) { + __pyx_t_69 += __pyx_pybuffernd_keep.diminfo[0].shape; + if (unlikely(__pyx_t_69 < 0)) __pyx_t_49 = 0; + } else if (unlikely(__pyx_t_69 >= __pyx_pybuffernd_keep.diminfo[0].shape)) __pyx_t_49 = 0; if (unlikely(__pyx_t_49 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_49); __PYX_ERR(0, 754, __pyx_L1_error) } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_68, __pyx_pybuffernd_keep.diminfo[0].strides) = __pyx_v_FLAG_MAX; + *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_69, __pyx_pybuffernd_keep.diminfo[0].strides) = __pyx_v_FLAG_MAX; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":755 * for i in range(minI+1, maxI+1): @@ -12440,12 +12488,12 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 755, __pyx_L1_error) } - __pyx_t_69 = __pyx_v_minI; + __pyx_t_70 = __pyx_v_minI; __pyx_t_49 = -1; - if (__pyx_t_69 < 0) { - __pyx_t_69 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_69 < 0)) __pyx_t_49 = 0; - } else if (unlikely(__pyx_t_69 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_49 = 0; + if (__pyx_t_70 < 0) { + __pyx_t_70 += __pyx_pybuffernd_widths.diminfo[0].shape; + if (unlikely(__pyx_t_70 < 0)) __pyx_t_49 = 0; + } else if (unlikely(__pyx_t_70 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_49 = 0; if (unlikely(__pyx_t_49 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_49); __PYX_ERR(0, 755, __pyx_L1_error) @@ -12454,12 +12502,12 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 755, __pyx_L1_error) } - __pyx_t_70 = __pyx_v_i; + __pyx_t_71 = __pyx_v_i; __pyx_t_49 = -1; - if (__pyx_t_70 < 0) { - __pyx_t_70 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_70 < 0)) __pyx_t_49 = 0; - } else if (unlikely(__pyx_t_70 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_49 = 0; + if (__pyx_t_71 < 0) { + __pyx_t_71 += __pyx_pybuffernd_widths.diminfo[0].shape; + if (unlikely(__pyx_t_71 < 0)) __pyx_t_49 = 0; + } else if (unlikely(__pyx_t_71 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_49 = 0; if (unlikely(__pyx_t_49 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_49); __PYX_ERR(0, 755, __pyx_L1_error) @@ -12468,17 +12516,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 755, __pyx_L1_error) } - __pyx_t_71 = __pyx_v_minI; + __pyx_t_72 = __pyx_v_minI; __pyx_t_49 = -1; - if (__pyx_t_71 < 0) { - __pyx_t_71 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_71 < 0)) __pyx_t_49 = 0; - } else if (unlikely(__pyx_t_71 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_49 = 0; + if (__pyx_t_72 < 0) { + __pyx_t_72 += __pyx_pybuffernd_widths.diminfo[0].shape; + if (unlikely(__pyx_t_72 < 0)) __pyx_t_49 = 0; + } else if (unlikely(__pyx_t_72 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_49 = 0; if (unlikely(__pyx_t_49 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_49); __PYX_ERR(0, 755, __pyx_L1_error) } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_71, __pyx_pybuffernd_widths.diminfo[0].strides) = fmin((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_69, __pyx_pybuffernd_widths.diminfo[0].strides)), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_70, __pyx_pybuffernd_widths.diminfo[0].strides))); + *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_72, __pyx_pybuffernd_widths.diminfo[0].strides) = fmin((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_70, __pyx_pybuffernd_widths.diminfo[0].strides)), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_71, __pyx_pybuffernd_widths.diminfo[0].strides))); } /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":751 @@ -12510,8 +12558,9 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * widths[minI] = fmin(widths[minI], widths[i]); */ __pyx_t_48 = __pyx_v_maxI; - for (__pyx_t_49 = (__pyx_v_minI + 1); __pyx_t_49 < __pyx_t_48; __pyx_t_49+=1) { - __pyx_v_i = __pyx_t_49; + __pyx_t_49 = __pyx_t_48; + for (__pyx_t_13 = (__pyx_v_minI + 1); __pyx_t_13 < __pyx_t_49; __pyx_t_13+=1) { + __pyx_v_i = __pyx_t_13; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":760 * if(minI < maxI - 1): @@ -12524,17 +12573,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 760, __pyx_L1_error) } - __pyx_t_72 = __pyx_v_i; - __pyx_t_13 = -1; - if (__pyx_t_72 < 0) { - __pyx_t_72 += __pyx_pybuffernd_keep.diminfo[0].shape; - if (unlikely(__pyx_t_72 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_72 >= __pyx_pybuffernd_keep.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_73 = __pyx_v_i; + __pyx_t_74 = -1; + if (__pyx_t_73 < 0) { + __pyx_t_73 += __pyx_pybuffernd_keep.diminfo[0].shape; + if (unlikely(__pyx_t_73 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_73 >= __pyx_pybuffernd_keep.diminfo[0].shape)) __pyx_t_74 = 0; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 760, __pyx_L1_error) } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_72, __pyx_pybuffernd_keep.diminfo[0].strides) = __pyx_v_FLAG_MAX; + *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_73, __pyx_pybuffernd_keep.diminfo[0].strides) = __pyx_v_FLAG_MAX; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":761 * for i in range(minI+1, maxI): @@ -12547,45 +12596,45 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 761, __pyx_L1_error) } - __pyx_t_73 = __pyx_v_minI; - __pyx_t_13 = -1; - if (__pyx_t_73 < 0) { - __pyx_t_73 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_73 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_73 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_75 = __pyx_v_minI; + __pyx_t_74 = -1; + if (__pyx_t_75 < 0) { + __pyx_t_75 += __pyx_pybuffernd_widths.diminfo[0].shape; + if (unlikely(__pyx_t_75 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_75 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_74 = 0; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 761, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 761, __pyx_L1_error) } - __pyx_t_74 = __pyx_v_i; - __pyx_t_13 = -1; - if (__pyx_t_74 < 0) { - __pyx_t_74 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_74 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_74 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_76 = __pyx_v_i; + __pyx_t_74 = -1; + if (__pyx_t_76 < 0) { + __pyx_t_76 += __pyx_pybuffernd_widths.diminfo[0].shape; + if (unlikely(__pyx_t_76 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_76 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_74 = 0; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 761, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 761, __pyx_L1_error) } - __pyx_t_75 = __pyx_v_minI; - __pyx_t_13 = -1; - if (__pyx_t_75 < 0) { - __pyx_t_75 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_75 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_75 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_77 = __pyx_v_minI; + __pyx_t_74 = -1; + if (__pyx_t_77 < 0) { + __pyx_t_77 += __pyx_pybuffernd_widths.diminfo[0].shape; + if (unlikely(__pyx_t_77 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_77 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_74 = 0; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 761, __pyx_L1_error) } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_75, __pyx_pybuffernd_widths.diminfo[0].strides) = fmin((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_73, __pyx_pybuffernd_widths.diminfo[0].strides)), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_74, __pyx_pybuffernd_widths.diminfo[0].strides))); + *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_77, __pyx_pybuffernd_widths.diminfo[0].strides) = fmin((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_75, __pyx_pybuffernd_widths.diminfo[0].strides)), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_76, __pyx_pybuffernd_widths.diminfo[0].strides))); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":762 * keep[i] = FLAG_MAX; @@ -12598,45 +12647,45 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 762, __pyx_L1_error) } - __pyx_t_76 = __pyx_v_maxI; - __pyx_t_13 = -1; - if (__pyx_t_76 < 0) { - __pyx_t_76 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_76 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_76 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_78 = __pyx_v_maxI; + __pyx_t_74 = -1; + if (__pyx_t_78 < 0) { + __pyx_t_78 += __pyx_pybuffernd_widths.diminfo[0].shape; + if (unlikely(__pyx_t_78 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_78 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_74 = 0; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 762, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 762, __pyx_L1_error) } - __pyx_t_77 = __pyx_v_i; - __pyx_t_13 = -1; - if (__pyx_t_77 < 0) { - __pyx_t_77 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_77 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_77 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_79 = __pyx_v_i; + __pyx_t_74 = -1; + if (__pyx_t_79 < 0) { + __pyx_t_79 += __pyx_pybuffernd_widths.diminfo[0].shape; + if (unlikely(__pyx_t_79 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_79 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_74 = 0; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 762, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 762, __pyx_L1_error) } - __pyx_t_78 = __pyx_v_maxI; - __pyx_t_13 = -1; - if (__pyx_t_78 < 0) { - __pyx_t_78 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_78 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_78 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_80 = __pyx_v_maxI; + __pyx_t_74 = -1; + if (__pyx_t_80 < 0) { + __pyx_t_80 += __pyx_pybuffernd_widths.diminfo[0].shape; + if (unlikely(__pyx_t_80 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_80 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_74 = 0; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 762, __pyx_L1_error) } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_78, __pyx_pybuffernd_widths.diminfo[0].strides) = fmin((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_76, __pyx_pybuffernd_widths.diminfo[0].strides)), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_77, __pyx_pybuffernd_widths.diminfo[0].strides))); + *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_80, __pyx_pybuffernd_widths.diminfo[0].strides) = fmin((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_78, __pyx_pybuffernd_widths.diminfo[0].strides)), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_79, __pyx_pybuffernd_widths.diminfo[0].strides))); } /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":758 @@ -12713,8 +12762,9 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * skeleton[newTotal, 0] = skeleton[i,0]; */ __pyx_t_48 = __pyx_v_number_points; - for (__pyx_t_49 = 0; __pyx_t_49 < __pyx_t_48; __pyx_t_49+=1) { - __pyx_v_i = __pyx_t_49; + __pyx_t_49 = __pyx_t_48; + for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_49; __pyx_t_13+=1) { + __pyx_v_i = __pyx_t_13; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":773 * cdef int newTotal = 0; @@ -12727,17 +12777,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 773, __pyx_L1_error) } - __pyx_t_79 = __pyx_v_i; - __pyx_t_13 = -1; - if (__pyx_t_79 < 0) { - __pyx_t_79 += __pyx_pybuffernd_keep.diminfo[0].shape; - if (unlikely(__pyx_t_79 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_79 >= __pyx_pybuffernd_keep.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_81 = __pyx_v_i; + __pyx_t_74 = -1; + if (__pyx_t_81 < 0) { + __pyx_t_81 += __pyx_pybuffernd_keep.diminfo[0].shape; + if (unlikely(__pyx_t_81 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_81 >= __pyx_pybuffernd_keep.diminfo[0].shape)) __pyx_t_74 = 0; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 773, __pyx_L1_error) } - __pyx_t_11 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_79, __pyx_pybuffernd_keep.diminfo[0].strides)) != __pyx_v_FLAG_MAX) != 0); + __pyx_t_11 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_81, __pyx_pybuffernd_keep.diminfo[0].strides)) != __pyx_v_FLAG_MAX) != 0); if (__pyx_t_11) { /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":774 @@ -12751,41 +12801,41 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 774, __pyx_L1_error) } - __pyx_t_80 = __pyx_v_i; - __pyx_t_81 = 0; - __pyx_t_13 = -1; - if (__pyx_t_80 < 0) { - __pyx_t_80 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_80 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_80 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_81 < 0) { - __pyx_t_81 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_81 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_81 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_82 = __pyx_v_i; + __pyx_t_83 = 0; + __pyx_t_74 = -1; + if (__pyx_t_82 < 0) { + __pyx_t_82 += __pyx_pybuffernd_skeleton.diminfo[0].shape; + if (unlikely(__pyx_t_82 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_82 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; + if (__pyx_t_83 < 0) { + __pyx_t_83 += __pyx_pybuffernd_skeleton.diminfo[1].shape; + if (unlikely(__pyx_t_83 < 0)) __pyx_t_74 = 1; + } else if (unlikely(__pyx_t_83 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 774, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 774, __pyx_L1_error) } - __pyx_t_82 = __pyx_v_newTotal; - __pyx_t_83 = 0; - __pyx_t_13 = -1; - if (__pyx_t_82 < 0) { - __pyx_t_82 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_82 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_82 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_83 < 0) { - __pyx_t_83 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_83 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_83 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_84 = __pyx_v_newTotal; + __pyx_t_85 = 0; + __pyx_t_74 = -1; + if (__pyx_t_84 < 0) { + __pyx_t_84 += __pyx_pybuffernd_skeleton.diminfo[0].shape; + if (unlikely(__pyx_t_84 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_84 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; + if (__pyx_t_85 < 0) { + __pyx_t_85 += __pyx_pybuffernd_skeleton.diminfo[1].shape; + if (unlikely(__pyx_t_85 < 0)) __pyx_t_74 = 1; + } else if (unlikely(__pyx_t_85 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 774, __pyx_L1_error) } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_82, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_83, __pyx_pybuffernd_skeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_80, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_81, __pyx_pybuffernd_skeleton.diminfo[1].strides)); + *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_84, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_85, __pyx_pybuffernd_skeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_82, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_83, __pyx_pybuffernd_skeleton.diminfo[1].strides)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":775 * if (keep[i] != FLAG_MAX): @@ -12798,41 +12848,41 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 775, __pyx_L1_error) } - __pyx_t_84 = __pyx_v_i; - __pyx_t_85 = 1; - __pyx_t_13 = -1; - if (__pyx_t_84 < 0) { - __pyx_t_84 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_84 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_84 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_85 < 0) { - __pyx_t_85 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_85 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_85 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_86 = __pyx_v_i; + __pyx_t_87 = 1; + __pyx_t_74 = -1; + if (__pyx_t_86 < 0) { + __pyx_t_86 += __pyx_pybuffernd_skeleton.diminfo[0].shape; + if (unlikely(__pyx_t_86 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_86 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; + if (__pyx_t_87 < 0) { + __pyx_t_87 += __pyx_pybuffernd_skeleton.diminfo[1].shape; + if (unlikely(__pyx_t_87 < 0)) __pyx_t_74 = 1; + } else if (unlikely(__pyx_t_87 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 775, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 775, __pyx_L1_error) } - __pyx_t_86 = __pyx_v_newTotal; - __pyx_t_87 = 1; - __pyx_t_13 = -1; - if (__pyx_t_86 < 0) { - __pyx_t_86 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_86 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_86 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_87 < 0) { - __pyx_t_87 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_87 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_87 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_88 = __pyx_v_newTotal; + __pyx_t_89 = 1; + __pyx_t_74 = -1; + if (__pyx_t_88 < 0) { + __pyx_t_88 += __pyx_pybuffernd_skeleton.diminfo[0].shape; + if (unlikely(__pyx_t_88 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_88 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; + if (__pyx_t_89 < 0) { + __pyx_t_89 += __pyx_pybuffernd_skeleton.diminfo[1].shape; + if (unlikely(__pyx_t_89 < 0)) __pyx_t_74 = 1; + } else if (unlikely(__pyx_t_89 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 775, __pyx_L1_error) } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_86, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_87, __pyx_pybuffernd_skeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_84, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_85, __pyx_pybuffernd_skeleton.diminfo[1].strides)); + *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_88, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_89, __pyx_pybuffernd_skeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_86, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_87, __pyx_pybuffernd_skeleton.diminfo[1].strides)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":776 * skeleton[newTotal, 0] = skeleton[i,0]; @@ -12845,31 +12895,31 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 776, __pyx_L1_error) } - __pyx_t_88 = __pyx_v_i; - __pyx_t_13 = -1; - if (__pyx_t_88 < 0) { - __pyx_t_88 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_88 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_88 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_90 = __pyx_v_i; + __pyx_t_74 = -1; + if (__pyx_t_90 < 0) { + __pyx_t_90 += __pyx_pybuffernd_widths.diminfo[0].shape; + if (unlikely(__pyx_t_90 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_90 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_74 = 0; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 776, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 776, __pyx_L1_error) } - __pyx_t_89 = __pyx_v_newTotal; - __pyx_t_13 = -1; - if (__pyx_t_89 < 0) { - __pyx_t_89 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_89 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_89 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_91 = __pyx_v_newTotal; + __pyx_t_74 = -1; + if (__pyx_t_91 < 0) { + __pyx_t_91 += __pyx_pybuffernd_widths.diminfo[0].shape; + if (unlikely(__pyx_t_91 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_91 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_74 = 0; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 776, __pyx_L1_error) } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_89, __pyx_pybuffernd_widths.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_88, __pyx_pybuffernd_widths.diminfo[0].strides)); + *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_91, __pyx_pybuffernd_widths.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_90, __pyx_pybuffernd_widths.diminfo[0].strides)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":777 * skeleton[newTotal, 1] = skeleton[i,1]; @@ -12901,17 +12951,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 780, __pyx_L1_error) } - __pyx_t_90 = 0; + __pyx_t_92 = 0; __pyx_t_48 = -1; - if (__pyx_t_90 < 0) { - __pyx_t_90 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_90 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_90 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_48 = 0; + if (__pyx_t_92 < 0) { + __pyx_t_92 += __pyx_pybuffernd_widths.diminfo[0].shape; + if (unlikely(__pyx_t_92 < 0)) __pyx_t_48 = 0; + } else if (unlikely(__pyx_t_92 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_48 = 0; if (unlikely(__pyx_t_48 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_48); __PYX_ERR(0, 780, __pyx_L1_error) } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_90, __pyx_pybuffernd_widths.diminfo[0].strides) = 0.0; + *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_92, __pyx_pybuffernd_widths.diminfo[0].strides) = 0.0; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":781 * #//% The head and tail have no width. @@ -12924,17 +12974,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 781, __pyx_L1_error) } - __pyx_t_91 = (__pyx_v_newTotal - 1); + __pyx_t_93 = (__pyx_v_newTotal - 1); __pyx_t_48 = -1; - if (__pyx_t_91 < 0) { - __pyx_t_91 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_91 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_91 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_48 = 0; + if (__pyx_t_93 < 0) { + __pyx_t_93 += __pyx_pybuffernd_widths.diminfo[0].shape; + if (unlikely(__pyx_t_93 < 0)) __pyx_t_48 = 0; + } else if (unlikely(__pyx_t_93 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_48 = 0; if (unlikely(__pyx_t_48 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_48); __PYX_ERR(0, 781, __pyx_L1_error) } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_91, __pyx_pybuffernd_widths.diminfo[0].strides) = 0.0; + *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_93, __pyx_pybuffernd_widths.diminfo[0].strides) = 0.0; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":782 * widths[0] = 0; @@ -12983,8 +13033,9 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * y = absDiff(skeleton[i + 1, 0], skeleton[i, 0]); */ __pyx_t_48 = __pyx_v_last_index; - for (__pyx_t_49 = 0; __pyx_t_49 < __pyx_t_48; __pyx_t_49+=1) { - __pyx_v_i = __pyx_t_49; + __pyx_t_49 = __pyx_t_48; + for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_49; __pyx_t_13+=1) { + __pyx_v_i = __pyx_t_13; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":799 * for i in range(last_index): @@ -12997,41 +13048,41 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 799, __pyx_L1_error) } - __pyx_t_92 = (__pyx_v_i + 1); - __pyx_t_93 = 0; - __pyx_t_13 = -1; - if (__pyx_t_92 < 0) { - __pyx_t_92 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_92 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_92 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_93 < 0) { - __pyx_t_93 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_93 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_93 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_94 = (__pyx_v_i + 1); + __pyx_t_95 = 0; + __pyx_t_74 = -1; + if (__pyx_t_94 < 0) { + __pyx_t_94 += __pyx_pybuffernd_skeleton.diminfo[0].shape; + if (unlikely(__pyx_t_94 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_94 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; + if (__pyx_t_95 < 0) { + __pyx_t_95 += __pyx_pybuffernd_skeleton.diminfo[1].shape; + if (unlikely(__pyx_t_95 < 0)) __pyx_t_74 = 1; + } else if (unlikely(__pyx_t_95 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 799, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 799, __pyx_L1_error) } - __pyx_t_94 = __pyx_v_i; - __pyx_t_95 = 0; - __pyx_t_13 = -1; - if (__pyx_t_94 < 0) { - __pyx_t_94 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_94 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_94 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_95 < 0) { - __pyx_t_95 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_95 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_95 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_96 = __pyx_v_i; + __pyx_t_97 = 0; + __pyx_t_74 = -1; + if (__pyx_t_96 < 0) { + __pyx_t_96 += __pyx_pybuffernd_skeleton.diminfo[0].shape; + if (unlikely(__pyx_t_96 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_96 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; + if (__pyx_t_97 < 0) { + __pyx_t_97 += __pyx_pybuffernd_skeleton.diminfo[1].shape; + if (unlikely(__pyx_t_97 < 0)) __pyx_t_74 = 1; + } else if (unlikely(__pyx_t_97 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 799, __pyx_L1_error) } - __pyx_v_y = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_92, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_93, __pyx_pybuffernd_skeleton.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_94, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_95, __pyx_pybuffernd_skeleton.diminfo[1].strides))); + __pyx_v_y = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_94, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_95, __pyx_pybuffernd_skeleton.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_96, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_97, __pyx_pybuffernd_skeleton.diminfo[1].strides))); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":800 * #//% Initialize the point differences. @@ -13044,41 +13095,41 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 800, __pyx_L1_error) } - __pyx_t_96 = (__pyx_v_i + 1); - __pyx_t_97 = 1; - __pyx_t_13 = -1; - if (__pyx_t_96 < 0) { - __pyx_t_96 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_96 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_96 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_97 < 0) { - __pyx_t_97 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_97 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_97 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_98 = (__pyx_v_i + 1); + __pyx_t_99 = 1; + __pyx_t_74 = -1; + if (__pyx_t_98 < 0) { + __pyx_t_98 += __pyx_pybuffernd_skeleton.diminfo[0].shape; + if (unlikely(__pyx_t_98 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_98 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; + if (__pyx_t_99 < 0) { + __pyx_t_99 += __pyx_pybuffernd_skeleton.diminfo[1].shape; + if (unlikely(__pyx_t_99 < 0)) __pyx_t_74 = 1; + } else if (unlikely(__pyx_t_99 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 800, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 800, __pyx_L1_error) } - __pyx_t_98 = __pyx_v_i; - __pyx_t_99 = 1; - __pyx_t_13 = -1; - if (__pyx_t_98 < 0) { - __pyx_t_98 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_98 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_98 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_99 < 0) { - __pyx_t_99 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_99 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_99 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_100 = __pyx_v_i; + __pyx_t_101 = 1; + __pyx_t_74 = -1; + if (__pyx_t_100 < 0) { + __pyx_t_100 += __pyx_pybuffernd_skeleton.diminfo[0].shape; + if (unlikely(__pyx_t_100 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_100 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; + if (__pyx_t_101 < 0) { + __pyx_t_101 += __pyx_pybuffernd_skeleton.diminfo[1].shape; + if (unlikely(__pyx_t_101 < 0)) __pyx_t_74 = 1; + } else if (unlikely(__pyx_t_101 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 800, __pyx_L1_error) } - __pyx_v_x = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_96, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_97, __pyx_pybuffernd_skeleton.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_98, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_99, __pyx_pybuffernd_skeleton.diminfo[1].strides))); + __pyx_v_x = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_98, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_99, __pyx_pybuffernd_skeleton.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_100, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_101, __pyx_pybuffernd_skeleton.diminfo[1].strides))); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":803 * @@ -13121,41 +13172,41 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 804, __pyx_L1_error) } - __pyx_t_100 = __pyx_v_i; - __pyx_t_101 = 0; - __pyx_t_13 = -1; - if (__pyx_t_100 < 0) { - __pyx_t_100 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_100 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_100 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_101 < 0) { - __pyx_t_101 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_101 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_101 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_102 = __pyx_v_i; + __pyx_t_103 = 0; + __pyx_t_74 = -1; + if (__pyx_t_102 < 0) { + __pyx_t_102 += __pyx_pybuffernd_skeleton.diminfo[0].shape; + if (unlikely(__pyx_t_102 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_102 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; + if (__pyx_t_103 < 0) { + __pyx_t_103 += __pyx_pybuffernd_skeleton.diminfo[1].shape; + if (unlikely(__pyx_t_103 < 0)) __pyx_t_74 = 1; + } else if (unlikely(__pyx_t_103 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 804, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_cSkeleton) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 804, __pyx_L1_error) } - __pyx_t_102 = __pyx_v_j; - __pyx_t_103 = 0; - __pyx_t_13 = -1; - if (__pyx_t_102 < 0) { - __pyx_t_102 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_102 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_102 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_103 < 0) { - __pyx_t_103 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_103 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_103 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_104 = __pyx_v_j; + __pyx_t_105 = 0; + __pyx_t_74 = -1; + if (__pyx_t_104 < 0) { + __pyx_t_104 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; + if (unlikely(__pyx_t_104 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_104 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_74 = 0; + if (__pyx_t_105 < 0) { + __pyx_t_105 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; + if (unlikely(__pyx_t_105 < 0)) __pyx_t_74 = 1; + } else if (unlikely(__pyx_t_105 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_74 = 1; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 804, __pyx_L1_error) } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_102, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_103, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_100, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_101, __pyx_pybuffernd_skeleton.diminfo[1].strides)); + *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_104, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_105, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_102, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_103, __pyx_pybuffernd_skeleton.diminfo[1].strides)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":805 * if ((y == 0. or y == 1.) and (x == 0. or x == 1.)): @@ -13168,41 +13219,41 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 805, __pyx_L1_error) } - __pyx_t_104 = __pyx_v_i; - __pyx_t_105 = 1; - __pyx_t_13 = -1; - if (__pyx_t_104 < 0) { - __pyx_t_104 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_104 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_104 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_105 < 0) { - __pyx_t_105 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_105 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_105 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_106 = __pyx_v_i; + __pyx_t_107 = 1; + __pyx_t_74 = -1; + if (__pyx_t_106 < 0) { + __pyx_t_106 += __pyx_pybuffernd_skeleton.diminfo[0].shape; + if (unlikely(__pyx_t_106 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_106 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; + if (__pyx_t_107 < 0) { + __pyx_t_107 += __pyx_pybuffernd_skeleton.diminfo[1].shape; + if (unlikely(__pyx_t_107 < 0)) __pyx_t_74 = 1; + } else if (unlikely(__pyx_t_107 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 805, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_cSkeleton) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 805, __pyx_L1_error) } - __pyx_t_106 = __pyx_v_j; - __pyx_t_107 = 1; - __pyx_t_13 = -1; - if (__pyx_t_106 < 0) { - __pyx_t_106 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_106 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_106 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_107 < 0) { - __pyx_t_107 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_107 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_107 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_108 = __pyx_v_j; + __pyx_t_109 = 1; + __pyx_t_74 = -1; + if (__pyx_t_108 < 0) { + __pyx_t_108 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; + if (unlikely(__pyx_t_108 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_108 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_74 = 0; + if (__pyx_t_109 < 0) { + __pyx_t_109 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; + if (unlikely(__pyx_t_109 < 0)) __pyx_t_74 = 1; + } else if (unlikely(__pyx_t_109 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_74 = 1; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 805, __pyx_L1_error) } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_106, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_107, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_104, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_105, __pyx_pybuffernd_skeleton.diminfo[1].strides)); + *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_108, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_109, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_106, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_107, __pyx_pybuffernd_skeleton.diminfo[1].strides)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":807 * cSkeleton[j,1] = skeleton[i,1]; @@ -13215,31 +13266,31 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 807, __pyx_L1_error) } - __pyx_t_108 = __pyx_v_i; - __pyx_t_13 = -1; - if (__pyx_t_108 < 0) { - __pyx_t_108 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_108 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_108 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_110 = __pyx_v_i; + __pyx_t_74 = -1; + if (__pyx_t_110 < 0) { + __pyx_t_110 += __pyx_pybuffernd_widths.diminfo[0].shape; + if (unlikely(__pyx_t_110 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_110 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_74 = 0; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 807, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_cWidths) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 807, __pyx_L1_error) } - __pyx_t_109 = __pyx_v_j; - __pyx_t_13 = -1; - if (__pyx_t_109 < 0) { - __pyx_t_109 += __pyx_pybuffernd_cWidths.diminfo[0].shape; - if (unlikely(__pyx_t_109 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_109 >= __pyx_pybuffernd_cWidths.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_111 = __pyx_v_j; + __pyx_t_74 = -1; + if (__pyx_t_111 < 0) { + __pyx_t_111 += __pyx_pybuffernd_cWidths.diminfo[0].shape; + if (unlikely(__pyx_t_111 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_111 >= __pyx_pybuffernd_cWidths.diminfo[0].shape)) __pyx_t_74 = 0; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 807, __pyx_L1_error) } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cWidths.rcbuffer->pybuffer.buf, __pyx_t_109, __pyx_pybuffernd_cWidths.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_108, __pyx_pybuffernd_widths.diminfo[0].strides)); + *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cWidths.rcbuffer->pybuffer.buf, __pyx_t_111, __pyx_pybuffernd_cWidths.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_110, __pyx_pybuffernd_widths.diminfo[0].strides)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":808 * @@ -13435,22 +13486,22 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 820, __pyx_L1_error) } - __pyx_t_110 = __pyx_v_i; - __pyx_t_111 = 0; - __pyx_t_13 = -1; - if (__pyx_t_110 < 0) { - __pyx_t_110 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_110 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_110 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_111 < 0) { - __pyx_t_111 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_111 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_111 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_112 = __pyx_v_i; + __pyx_t_113 = 0; + __pyx_t_74 = -1; + if (__pyx_t_112 < 0) { + __pyx_t_112 += __pyx_pybuffernd_skeleton.diminfo[0].shape; + if (unlikely(__pyx_t_112 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_112 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; + if (__pyx_t_113 < 0) { + __pyx_t_113 += __pyx_pybuffernd_skeleton.diminfo[1].shape; + if (unlikely(__pyx_t_113 < 0)) __pyx_t_74 = 1; + } else if (unlikely(__pyx_t_113 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 820, __pyx_L1_error) } - __pyx_v_y1 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_110, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_111, __pyx_pybuffernd_skeleton.diminfo[1].strides)); + __pyx_v_y1 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_112, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_113, __pyx_pybuffernd_skeleton.diminfo[1].strides)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":821 * @@ -13463,22 +13514,22 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 821, __pyx_L1_error) } - __pyx_t_112 = (__pyx_v_i + 1); - __pyx_t_113 = 0; - __pyx_t_13 = -1; - if (__pyx_t_112 < 0) { - __pyx_t_112 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_112 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_112 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_113 < 0) { - __pyx_t_113 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_113 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_113 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_114 = (__pyx_v_i + 1); + __pyx_t_115 = 0; + __pyx_t_74 = -1; + if (__pyx_t_114 < 0) { + __pyx_t_114 += __pyx_pybuffernd_skeleton.diminfo[0].shape; + if (unlikely(__pyx_t_114 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_114 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; + if (__pyx_t_115 < 0) { + __pyx_t_115 += __pyx_pybuffernd_skeleton.diminfo[1].shape; + if (unlikely(__pyx_t_115 < 0)) __pyx_t_74 = 1; + } else if (unlikely(__pyx_t_115 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 821, __pyx_L1_error) } - __pyx_v_y2 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_112, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_113, __pyx_pybuffernd_skeleton.diminfo[1].strides)); + __pyx_v_y2 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_114, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_115, __pyx_pybuffernd_skeleton.diminfo[1].strides)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":822 * y1 = skeleton[i,0]; @@ -13487,12 +13538,12 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * x1 = skeleton[i,1]; * x2 = skeleton[i + 1,1]; */ - __pyx_t_114 = (__pyx_v_y2 - __pyx_v_y1); + __pyx_t_116 = (__pyx_v_y2 - __pyx_v_y1); if (unlikely(__pyx_v_points == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "float division"); __PYX_ERR(0, 822, __pyx_L1_error) } - __pyx_v_delY = (__pyx_t_114 / __pyx_v_points); + __pyx_v_delY = (__pyx_t_116 / __pyx_v_points); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":823 * y2 = skeleton[i + 1,0]; @@ -13505,22 +13556,22 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 823, __pyx_L1_error) } - __pyx_t_115 = __pyx_v_i; - __pyx_t_116 = 1; - __pyx_t_13 = -1; - if (__pyx_t_115 < 0) { - __pyx_t_115 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_115 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_115 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_116 < 0) { - __pyx_t_116 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_116 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_116 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_117 = __pyx_v_i; + __pyx_t_118 = 1; + __pyx_t_74 = -1; + if (__pyx_t_117 < 0) { + __pyx_t_117 += __pyx_pybuffernd_skeleton.diminfo[0].shape; + if (unlikely(__pyx_t_117 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_117 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; + if (__pyx_t_118 < 0) { + __pyx_t_118 += __pyx_pybuffernd_skeleton.diminfo[1].shape; + if (unlikely(__pyx_t_118 < 0)) __pyx_t_74 = 1; + } else if (unlikely(__pyx_t_118 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 823, __pyx_L1_error) } - __pyx_v_x1 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_115, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_116, __pyx_pybuffernd_skeleton.diminfo[1].strides)); + __pyx_v_x1 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_117, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_118, __pyx_pybuffernd_skeleton.diminfo[1].strides)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":824 * delY = (y2-y1)/points; @@ -13533,22 +13584,22 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 824, __pyx_L1_error) } - __pyx_t_117 = (__pyx_v_i + 1); - __pyx_t_118 = 1; - __pyx_t_13 = -1; - if (__pyx_t_117 < 0) { - __pyx_t_117 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_117 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_117 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_118 < 0) { - __pyx_t_118 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_118 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_118 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_119 = (__pyx_v_i + 1); + __pyx_t_120 = 1; + __pyx_t_74 = -1; + if (__pyx_t_119 < 0) { + __pyx_t_119 += __pyx_pybuffernd_skeleton.diminfo[0].shape; + if (unlikely(__pyx_t_119 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_119 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; + if (__pyx_t_120 < 0) { + __pyx_t_120 += __pyx_pybuffernd_skeleton.diminfo[1].shape; + if (unlikely(__pyx_t_120 < 0)) __pyx_t_74 = 1; + } else if (unlikely(__pyx_t_120 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 824, __pyx_L1_error) } - __pyx_v_x2 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_117, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_118, __pyx_pybuffernd_skeleton.diminfo[1].strides)); + __pyx_v_x2 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_119, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_120, __pyx_pybuffernd_skeleton.diminfo[1].strides)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":825 * x1 = skeleton[i,1]; @@ -13557,12 +13608,12 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * delW = (widths[i + 1] - widths[i])/points; * */ - __pyx_t_114 = (__pyx_v_x2 - __pyx_v_x1); + __pyx_t_116 = (__pyx_v_x2 - __pyx_v_x1); if (unlikely(__pyx_v_points == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "float division"); __PYX_ERR(0, 825, __pyx_L1_error) } - __pyx_v_delX = (__pyx_t_114 / __pyx_v_points); + __pyx_v_delX = (__pyx_t_116 / __pyx_v_points); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":826 * x2 = skeleton[i + 1,1]; @@ -13575,36 +13626,36 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 826, __pyx_L1_error) } - __pyx_t_119 = (__pyx_v_i + 1); - __pyx_t_13 = -1; - if (__pyx_t_119 < 0) { - __pyx_t_119 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_119 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_119 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_121 = (__pyx_v_i + 1); + __pyx_t_74 = -1; + if (__pyx_t_121 < 0) { + __pyx_t_121 += __pyx_pybuffernd_widths.diminfo[0].shape; + if (unlikely(__pyx_t_121 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_121 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_74 = 0; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 826, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 826, __pyx_L1_error) } - __pyx_t_120 = __pyx_v_i; - __pyx_t_13 = -1; - if (__pyx_t_120 < 0) { - __pyx_t_120 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_120 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_120 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_122 = __pyx_v_i; + __pyx_t_74 = -1; + if (__pyx_t_122 < 0) { + __pyx_t_122 += __pyx_pybuffernd_widths.diminfo[0].shape; + if (unlikely(__pyx_t_122 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_122 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_74 = 0; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 826, __pyx_L1_error) } - __pyx_t_121 = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_119, __pyx_pybuffernd_widths.diminfo[0].strides)) - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_120, __pyx_pybuffernd_widths.diminfo[0].strides))); + __pyx_t_123 = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_121, __pyx_pybuffernd_widths.diminfo[0].strides)) - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_122, __pyx_pybuffernd_widths.diminfo[0].strides))); if (unlikely(__pyx_v_points == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "float division"); __PYX_ERR(0, 826, __pyx_L1_error) } - __pyx_v_delW = (__pyx_t_121 / __pyx_v_points); + __pyx_v_delW = (__pyx_t_123 / __pyx_v_points); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":829 * @@ -13640,9 +13691,10 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * xd = round(x1 + m*delX); * yd = round(y1 + m*delY); */ - __pyx_t_13 = ((int)__pyx_v_points); - for (__pyx_t_122 = 0; __pyx_t_122 < __pyx_t_13; __pyx_t_122+=1) { - __pyx_v_m = __pyx_t_122; + __pyx_t_74 = ((int)__pyx_v_points); + __pyx_t_124 = __pyx_t_74; + for (__pyx_t_125 = 0; __pyx_t_125 < __pyx_t_124; __pyx_t_125+=1) { + __pyx_v_m = __pyx_t_125; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":833 * n_interp = 0; #number of points in the interpolation @@ -13653,17 +13705,12 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth */ __pyx_t_3 = PyFloat_FromDouble((__pyx_v_x1 + (__pyx_v_m * __pyx_v_delX))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 833, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_round, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_round, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 833, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_114 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_114 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 833, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_v_xd = __pyx_t_114; + __pyx_t_116 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_116 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 833, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_xd = __pyx_t_116; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":834 * for m in range(points): @@ -13672,19 +13719,14 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * if (xd != xprev) or (yd !=yprev): * cSkeleton[j+n_interp, 0] = yd; */ - __pyx_t_3 = PyFloat_FromDouble((__pyx_v_y1 + (__pyx_v_m * __pyx_v_delY))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 834, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 834, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble((__pyx_v_y1 + (__pyx_v_m * __pyx_v_delY))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_round, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 834, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_round, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_114 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_114 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 834, __pyx_L1_error) + __pyx_t_116 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_116 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 834, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_v_yd = __pyx_t_114; + __pyx_v_yd = __pyx_t_116; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":835 * xd = round(x1 + m*delX); @@ -13715,22 +13757,22 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 836, __pyx_L1_error) } - __pyx_t_123 = (__pyx_v_j + __pyx_v_n_interp); - __pyx_t_124 = 0; - __pyx_t_125 = -1; - if (__pyx_t_123 < 0) { - __pyx_t_123 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_123 < 0)) __pyx_t_125 = 0; - } else if (unlikely(__pyx_t_123 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_125 = 0; - if (__pyx_t_124 < 0) { - __pyx_t_124 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_124 < 0)) __pyx_t_125 = 1; - } else if (unlikely(__pyx_t_124 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_125 = 1; - if (unlikely(__pyx_t_125 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_125); + __pyx_t_126 = (__pyx_v_j + __pyx_v_n_interp); + __pyx_t_127 = 0; + __pyx_t_128 = -1; + if (__pyx_t_126 < 0) { + __pyx_t_126 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; + if (unlikely(__pyx_t_126 < 0)) __pyx_t_128 = 0; + } else if (unlikely(__pyx_t_126 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_128 = 0; + if (__pyx_t_127 < 0) { + __pyx_t_127 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; + if (unlikely(__pyx_t_127 < 0)) __pyx_t_128 = 1; + } else if (unlikely(__pyx_t_127 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_128 = 1; + if (unlikely(__pyx_t_128 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_128); __PYX_ERR(0, 836, __pyx_L1_error) } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_123, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_124, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = __pyx_v_yd; + *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_126, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_127, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = __pyx_v_yd; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":837 * if (xd != xprev) or (yd !=yprev): @@ -13743,22 +13785,22 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 837, __pyx_L1_error) } - __pyx_t_126 = (__pyx_v_j + __pyx_v_n_interp); - __pyx_t_127 = 1; - __pyx_t_125 = -1; - if (__pyx_t_126 < 0) { - __pyx_t_126 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_126 < 0)) __pyx_t_125 = 0; - } else if (unlikely(__pyx_t_126 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_125 = 0; - if (__pyx_t_127 < 0) { - __pyx_t_127 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_127 < 0)) __pyx_t_125 = 1; - } else if (unlikely(__pyx_t_127 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_125 = 1; - if (unlikely(__pyx_t_125 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_125); + __pyx_t_129 = (__pyx_v_j + __pyx_v_n_interp); + __pyx_t_130 = 1; + __pyx_t_128 = -1; + if (__pyx_t_129 < 0) { + __pyx_t_129 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; + if (unlikely(__pyx_t_129 < 0)) __pyx_t_128 = 0; + } else if (unlikely(__pyx_t_129 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_128 = 0; + if (__pyx_t_130 < 0) { + __pyx_t_130 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; + if (unlikely(__pyx_t_130 < 0)) __pyx_t_128 = 1; + } else if (unlikely(__pyx_t_130 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_128 = 1; + if (unlikely(__pyx_t_128 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_128); __PYX_ERR(0, 837, __pyx_L1_error) } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_126, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_127, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = __pyx_v_xd; + *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_129, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_130, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = __pyx_v_xd; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":838 * cSkeleton[j+n_interp, 0] = yd; @@ -13771,43 +13813,38 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 838, __pyx_L1_error) } - __pyx_t_128 = __pyx_v_i; - __pyx_t_125 = -1; - if (__pyx_t_128 < 0) { - __pyx_t_128 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_128 < 0)) __pyx_t_125 = 0; - } else if (unlikely(__pyx_t_128 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_125 = 0; - if (unlikely(__pyx_t_125 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_125); + __pyx_t_131 = __pyx_v_i; + __pyx_t_128 = -1; + if (__pyx_t_131 < 0) { + __pyx_t_131 += __pyx_pybuffernd_widths.diminfo[0].shape; + if (unlikely(__pyx_t_131 < 0)) __pyx_t_128 = 0; + } else if (unlikely(__pyx_t_131 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_128 = 0; + if (unlikely(__pyx_t_128 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_128); __PYX_ERR(0, 838, __pyx_L1_error) } - __pyx_t_3 = PyFloat_FromDouble(((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_128, __pyx_pybuffernd_widths.diminfo[0].strides)) + (__pyx_v_m * __pyx_v_delW))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 838, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_131, __pyx_pybuffernd_widths.diminfo[0].strides)) + (__pyx_v_m * __pyx_v_delW))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 838, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 838, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_round, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 838, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_round, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 838, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_121 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_121 == ((npy_double)-1)) && PyErr_Occurred())) __PYX_ERR(0, 838, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_123 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_123 == ((npy_double)-1)) && PyErr_Occurred())) __PYX_ERR(0, 838, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(((PyObject *)__pyx_v_cWidths) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 838, __pyx_L1_error) } - __pyx_t_129 = (__pyx_v_j + __pyx_v_n_interp); - __pyx_t_125 = -1; - if (__pyx_t_129 < 0) { - __pyx_t_129 += __pyx_pybuffernd_cWidths.diminfo[0].shape; - if (unlikely(__pyx_t_129 < 0)) __pyx_t_125 = 0; - } else if (unlikely(__pyx_t_129 >= __pyx_pybuffernd_cWidths.diminfo[0].shape)) __pyx_t_125 = 0; - if (unlikely(__pyx_t_125 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_125); + __pyx_t_132 = (__pyx_v_j + __pyx_v_n_interp); + __pyx_t_128 = -1; + if (__pyx_t_132 < 0) { + __pyx_t_132 += __pyx_pybuffernd_cWidths.diminfo[0].shape; + if (unlikely(__pyx_t_132 < 0)) __pyx_t_128 = 0; + } else if (unlikely(__pyx_t_132 >= __pyx_pybuffernd_cWidths.diminfo[0].shape)) __pyx_t_128 = 0; + if (unlikely(__pyx_t_128 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_128); __PYX_ERR(0, 838, __pyx_L1_error) } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cWidths.rcbuffer->pybuffer.buf, __pyx_t_129, __pyx_pybuffernd_cWidths.diminfo[0].strides) = __pyx_t_121; + *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cWidths.rcbuffer->pybuffer.buf, __pyx_t_132, __pyx_pybuffernd_cWidths.diminfo[0].strides) = __pyx_t_123; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":839 * cSkeleton[j+n_interp, 1] = xd; @@ -13851,17 +13888,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 844, __pyx_L1_error) } - __pyx_t_130 = __pyx_v_last_index; - __pyx_t_131 = 0; + __pyx_t_133 = __pyx_v_last_index; + __pyx_t_134 = 0; __pyx_t_48 = -1; - if (__pyx_t_130 < 0) { - __pyx_t_130 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_130 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_130 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_131 < 0) { - __pyx_t_131 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_131 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_131 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_48 = 1; + if (__pyx_t_133 < 0) { + __pyx_t_133 += __pyx_pybuffernd_skeleton.diminfo[0].shape; + if (unlikely(__pyx_t_133 < 0)) __pyx_t_48 = 0; + } else if (unlikely(__pyx_t_133 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_48 = 0; + if (__pyx_t_134 < 0) { + __pyx_t_134 += __pyx_pybuffernd_skeleton.diminfo[1].shape; + if (unlikely(__pyx_t_134 < 0)) __pyx_t_48 = 1; + } else if (unlikely(__pyx_t_134 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_48 = 1; if (unlikely(__pyx_t_48 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_48); __PYX_ERR(0, 844, __pyx_L1_error) @@ -13870,22 +13907,22 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 844, __pyx_L1_error) } - __pyx_t_132 = __pyx_v_j; - __pyx_t_133 = 0; + __pyx_t_135 = __pyx_v_j; + __pyx_t_136 = 0; __pyx_t_48 = -1; - if (__pyx_t_132 < 0) { - __pyx_t_132 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_132 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_132 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_133 < 0) { - __pyx_t_133 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_133 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_133 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_48 = 1; + if (__pyx_t_135 < 0) { + __pyx_t_135 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; + if (unlikely(__pyx_t_135 < 0)) __pyx_t_48 = 0; + } else if (unlikely(__pyx_t_135 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_48 = 0; + if (__pyx_t_136 < 0) { + __pyx_t_136 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; + if (unlikely(__pyx_t_136 < 0)) __pyx_t_48 = 1; + } else if (unlikely(__pyx_t_136 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_48 = 1; if (unlikely(__pyx_t_48 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_48); __PYX_ERR(0, 844, __pyx_L1_error) } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_132, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_133, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_130, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_131, __pyx_pybuffernd_skeleton.diminfo[1].strides)); + *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_135, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_136, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_133, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_134, __pyx_pybuffernd_skeleton.diminfo[1].strides)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":845 * #//% Add the last point. @@ -13898,17 +13935,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 845, __pyx_L1_error) } - __pyx_t_134 = __pyx_v_last_index; - __pyx_t_135 = 1; + __pyx_t_137 = __pyx_v_last_index; + __pyx_t_138 = 1; __pyx_t_48 = -1; - if (__pyx_t_134 < 0) { - __pyx_t_134 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_134 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_134 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_135 < 0) { - __pyx_t_135 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_135 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_135 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_48 = 1; + if (__pyx_t_137 < 0) { + __pyx_t_137 += __pyx_pybuffernd_skeleton.diminfo[0].shape; + if (unlikely(__pyx_t_137 < 0)) __pyx_t_48 = 0; + } else if (unlikely(__pyx_t_137 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_48 = 0; + if (__pyx_t_138 < 0) { + __pyx_t_138 += __pyx_pybuffernd_skeleton.diminfo[1].shape; + if (unlikely(__pyx_t_138 < 0)) __pyx_t_48 = 1; + } else if (unlikely(__pyx_t_138 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_48 = 1; if (unlikely(__pyx_t_48 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_48); __PYX_ERR(0, 845, __pyx_L1_error) @@ -13917,22 +13954,22 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 845, __pyx_L1_error) } - __pyx_t_136 = __pyx_v_j; - __pyx_t_137 = 1; + __pyx_t_139 = __pyx_v_j; + __pyx_t_140 = 1; __pyx_t_48 = -1; - if (__pyx_t_136 < 0) { - __pyx_t_136 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_136 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_136 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_137 < 0) { - __pyx_t_137 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_137 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_137 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_48 = 1; + if (__pyx_t_139 < 0) { + __pyx_t_139 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; + if (unlikely(__pyx_t_139 < 0)) __pyx_t_48 = 0; + } else if (unlikely(__pyx_t_139 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_48 = 0; + if (__pyx_t_140 < 0) { + __pyx_t_140 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; + if (unlikely(__pyx_t_140 < 0)) __pyx_t_48 = 1; + } else if (unlikely(__pyx_t_140 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_48 = 1; if (unlikely(__pyx_t_48 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_48); __PYX_ERR(0, 845, __pyx_L1_error) } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_136, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_137, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_134, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_135, __pyx_pybuffernd_skeleton.diminfo[1].strides)); + *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_139, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_140, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_137, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_138, __pyx_pybuffernd_skeleton.diminfo[1].strides)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":846 * cSkeleton[j,0] = skeleton[last_index,0]; @@ -13945,12 +13982,12 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 846, __pyx_L1_error) } - __pyx_t_138 = __pyx_v_last_index; + __pyx_t_141 = __pyx_v_last_index; __pyx_t_48 = -1; - if (__pyx_t_138 < 0) { - __pyx_t_138 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_138 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_138 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_48 = 0; + if (__pyx_t_141 < 0) { + __pyx_t_141 += __pyx_pybuffernd_widths.diminfo[0].shape; + if (unlikely(__pyx_t_141 < 0)) __pyx_t_48 = 0; + } else if (unlikely(__pyx_t_141 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_48 = 0; if (unlikely(__pyx_t_48 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_48); __PYX_ERR(0, 846, __pyx_L1_error) @@ -13959,17 +13996,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 846, __pyx_L1_error) } - __pyx_t_139 = __pyx_v_j; + __pyx_t_142 = __pyx_v_j; __pyx_t_48 = -1; - if (__pyx_t_139 < 0) { - __pyx_t_139 += __pyx_pybuffernd_cWidths.diminfo[0].shape; - if (unlikely(__pyx_t_139 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_139 >= __pyx_pybuffernd_cWidths.diminfo[0].shape)) __pyx_t_48 = 0; + if (__pyx_t_142 < 0) { + __pyx_t_142 += __pyx_pybuffernd_cWidths.diminfo[0].shape; + if (unlikely(__pyx_t_142 < 0)) __pyx_t_48 = 0; + } else if (unlikely(__pyx_t_142 >= __pyx_pybuffernd_cWidths.diminfo[0].shape)) __pyx_t_48 = 0; if (unlikely(__pyx_t_48 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_48); __PYX_ERR(0, 846, __pyx_L1_error) } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cWidths.rcbuffer->pybuffer.buf, __pyx_t_139, __pyx_pybuffernd_cWidths.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_138, __pyx_pybuffernd_widths.diminfo[0].strides)); + *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cWidths.rcbuffer->pybuffer.buf, __pyx_t_142, __pyx_pybuffernd_cWidths.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_141, __pyx_pybuffernd_widths.diminfo[0].strides)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":847 * cSkeleton[j,1] = skeleton[last_index,1]; @@ -13996,13 +14033,13 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * cdef int nextI * i = 0; */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 852, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_arange); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 852, __pyx_L1_error) + __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 852, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_arange); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_number_points); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 852, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_number_points); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 852, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); @@ -14014,63 +14051,63 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth } } if (!__pyx_t_5) { - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 852, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 852, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_1); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 852, __pyx_L1_error) + PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_3}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 852, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 852, __pyx_L1_error) + PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_3}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 852, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 852, __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 = NULL; - __Pyx_GIVEREF(__pyx_t_1); - PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 852, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_t_3); + __pyx_t_3 = 0; + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 852, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __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, 852, __pyx_L1_error) - __pyx_t_10 = ((PyArrayObject *)__pyx_t_3); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 852, __pyx_L1_error) + __pyx_t_10 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_keep.rcbuffer->pybuffer); __pyx_t_48 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_keep.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_48 < 0)) { - PyErr_Fetch(&__pyx_t_140, &__pyx_t_141, &__pyx_t_142); + PyErr_Fetch(&__pyx_t_143, &__pyx_t_144, &__pyx_t_145); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_keep.rcbuffer->pybuffer, (PyObject*)__pyx_v_keep, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_140); Py_XDECREF(__pyx_t_141); Py_XDECREF(__pyx_t_142); + Py_XDECREF(__pyx_t_143); Py_XDECREF(__pyx_t_144); Py_XDECREF(__pyx_t_145); __Pyx_RaiseBufferFallbackError(); } else { - PyErr_Restore(__pyx_t_140, __pyx_t_141, __pyx_t_142); + PyErr_Restore(__pyx_t_143, __pyx_t_144, __pyx_t_145); } - __pyx_t_140 = __pyx_t_141 = __pyx_t_142 = 0; + __pyx_t_143 = __pyx_t_144 = __pyx_t_145 = 0; } __pyx_pybuffernd_keep.diminfo[0].strides = __pyx_pybuffernd_keep.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_keep.diminfo[0].shape = __pyx_pybuffernd_keep.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_48 < 0)) __PYX_ERR(0, 852, __pyx_L1_error) } __pyx_t_10 = 0; - __Pyx_DECREF_SET(__pyx_v_keep, ((PyArrayObject *)__pyx_t_3)); - __pyx_t_3 = 0; + __Pyx_DECREF_SET(__pyx_v_keep, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":854 * keep = np.arange(number_points) @@ -14112,17 +14149,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 859, __pyx_L1_error) } - __pyx_t_143 = __pyx_v_i; - __pyx_t_144 = 0; + __pyx_t_146 = __pyx_v_i; + __pyx_t_147 = 0; __pyx_t_48 = -1; - if (__pyx_t_143 < 0) { - __pyx_t_143 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_143 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_143 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_144 < 0) { - __pyx_t_144 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_144 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_144 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_48 = 1; + if (__pyx_t_146 < 0) { + __pyx_t_146 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; + if (unlikely(__pyx_t_146 < 0)) __pyx_t_48 = 0; + } else if (unlikely(__pyx_t_146 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_48 = 0; + if (__pyx_t_147 < 0) { + __pyx_t_147 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; + if (unlikely(__pyx_t_147 < 0)) __pyx_t_48 = 1; + } else if (unlikely(__pyx_t_147 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_48 = 1; if (unlikely(__pyx_t_48 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_48); __PYX_ERR(0, 859, __pyx_L1_error) @@ -14131,22 +14168,22 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 859, __pyx_L1_error) } - __pyx_t_145 = __pyx_v_nextI; - __pyx_t_146 = 0; + __pyx_t_148 = __pyx_v_nextI; + __pyx_t_149 = 0; __pyx_t_48 = -1; - if (__pyx_t_145 < 0) { - __pyx_t_145 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_145 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_145 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_146 < 0) { - __pyx_t_146 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_146 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_146 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_48 = 1; + if (__pyx_t_148 < 0) { + __pyx_t_148 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; + if (unlikely(__pyx_t_148 < 0)) __pyx_t_48 = 0; + } else if (unlikely(__pyx_t_148 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_48 = 0; + if (__pyx_t_149 < 0) { + __pyx_t_149 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; + if (unlikely(__pyx_t_149 < 0)) __pyx_t_48 = 1; + } else if (unlikely(__pyx_t_149 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_48 = 1; if (unlikely(__pyx_t_48 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_48); __PYX_ERR(0, 859, __pyx_L1_error) } - __pyx_t_25 = ((__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_143, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_144, __pyx_pybuffernd_cSkeleton.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_145, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_146, __pyx_pybuffernd_cSkeleton.diminfo[1].strides))) <= 1.0) != 0); + __pyx_t_25 = ((__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_146, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_147, __pyx_pybuffernd_cSkeleton.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_148, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_149, __pyx_pybuffernd_cSkeleton.diminfo[1].strides))) <= 1.0) != 0); if (__pyx_t_25) { } else { __pyx_t_11 = __pyx_t_25; @@ -14156,17 +14193,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 859, __pyx_L1_error) } - __pyx_t_147 = __pyx_v_i; - __pyx_t_148 = 1; + __pyx_t_150 = __pyx_v_i; + __pyx_t_151 = 1; __pyx_t_48 = -1; - if (__pyx_t_147 < 0) { - __pyx_t_147 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_147 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_147 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_148 < 0) { - __pyx_t_148 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_148 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_148 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_48 = 1; + if (__pyx_t_150 < 0) { + __pyx_t_150 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; + if (unlikely(__pyx_t_150 < 0)) __pyx_t_48 = 0; + } else if (unlikely(__pyx_t_150 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_48 = 0; + if (__pyx_t_151 < 0) { + __pyx_t_151 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; + if (unlikely(__pyx_t_151 < 0)) __pyx_t_48 = 1; + } else if (unlikely(__pyx_t_151 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_48 = 1; if (unlikely(__pyx_t_48 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_48); __PYX_ERR(0, 859, __pyx_L1_error) @@ -14175,22 +14212,22 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 859, __pyx_L1_error) } - __pyx_t_149 = __pyx_v_nextI; - __pyx_t_150 = 1; + __pyx_t_152 = __pyx_v_nextI; + __pyx_t_153 = 1; __pyx_t_48 = -1; - if (__pyx_t_149 < 0) { - __pyx_t_149 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_149 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_149 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_150 < 0) { - __pyx_t_150 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_150 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_150 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_48 = 1; + if (__pyx_t_152 < 0) { + __pyx_t_152 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; + if (unlikely(__pyx_t_152 < 0)) __pyx_t_48 = 0; + } else if (unlikely(__pyx_t_152 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_48 = 0; + if (__pyx_t_153 < 0) { + __pyx_t_153 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; + if (unlikely(__pyx_t_153 < 0)) __pyx_t_48 = 1; + } else if (unlikely(__pyx_t_153 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_48 = 1; if (unlikely(__pyx_t_48 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_48); __PYX_ERR(0, 859, __pyx_L1_error) } - __pyx_t_25 = ((__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_147, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_148, __pyx_pybuffernd_cSkeleton.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_149, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_150, __pyx_pybuffernd_cSkeleton.diminfo[1].strides))) <= 1.0) != 0); + __pyx_t_25 = ((__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_150, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_151, __pyx_pybuffernd_cSkeleton.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_152, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_153, __pyx_pybuffernd_cSkeleton.diminfo[1].strides))) <= 1.0) != 0); __pyx_t_11 = __pyx_t_25; __pyx_L58_bool_binop_done:; if (__pyx_t_11) { @@ -14206,17 +14243,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 860, __pyx_L1_error) } - __pyx_t_151 = (__pyx_v_i + 1); + __pyx_t_154 = (__pyx_v_i + 1); __pyx_t_48 = -1; - if (__pyx_t_151 < 0) { - __pyx_t_151 += __pyx_pybuffernd_keep.diminfo[0].shape; - if (unlikely(__pyx_t_151 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_151 >= __pyx_pybuffernd_keep.diminfo[0].shape)) __pyx_t_48 = 0; + if (__pyx_t_154 < 0) { + __pyx_t_154 += __pyx_pybuffernd_keep.diminfo[0].shape; + if (unlikely(__pyx_t_154 < 0)) __pyx_t_48 = 0; + } else if (unlikely(__pyx_t_154 >= __pyx_pybuffernd_keep.diminfo[0].shape)) __pyx_t_48 = 0; if (unlikely(__pyx_t_48 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_48); __PYX_ERR(0, 860, __pyx_L1_error) } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_151, __pyx_pybuffernd_keep.diminfo[0].strides) = __pyx_v_FLAG_MAX; + *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_154, __pyx_pybuffernd_keep.diminfo[0].strides) = __pyx_v_FLAG_MAX; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":862 * keep[i + 1] = FLAG_MAX; @@ -14267,8 +14304,9 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * cSkeleton[newTotal,0] = cSkeleton[i,0]; */ __pyx_t_48 = __pyx_v_number_points; - for (__pyx_t_49 = 0; __pyx_t_49 < __pyx_t_48; __pyx_t_49+=1) { - __pyx_v_i = __pyx_t_49; + __pyx_t_49 = __pyx_t_48; + for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_49; __pyx_t_13+=1) { + __pyx_v_i = __pyx_t_13; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":869 * newTotal = 0; @@ -14281,17 +14319,17 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 869, __pyx_L1_error) } - __pyx_t_152 = __pyx_v_i; - __pyx_t_13 = -1; - if (__pyx_t_152 < 0) { - __pyx_t_152 += __pyx_pybuffernd_keep.diminfo[0].shape; - if (unlikely(__pyx_t_152 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_152 >= __pyx_pybuffernd_keep.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_155 = __pyx_v_i; + __pyx_t_74 = -1; + if (__pyx_t_155 < 0) { + __pyx_t_155 += __pyx_pybuffernd_keep.diminfo[0].shape; + if (unlikely(__pyx_t_155 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_155 >= __pyx_pybuffernd_keep.diminfo[0].shape)) __pyx_t_74 = 0; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 869, __pyx_L1_error) } - __pyx_t_11 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_152, __pyx_pybuffernd_keep.diminfo[0].strides)) != __pyx_v_FLAG_MAX) != 0); + __pyx_t_11 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_155, __pyx_pybuffernd_keep.diminfo[0].strides)) != __pyx_v_FLAG_MAX) != 0); if (__pyx_t_11) { /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":870 @@ -14305,41 +14343,41 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 870, __pyx_L1_error) } - __pyx_t_153 = __pyx_v_i; - __pyx_t_154 = 0; - __pyx_t_13 = -1; - if (__pyx_t_153 < 0) { - __pyx_t_153 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_153 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_153 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_154 < 0) { - __pyx_t_154 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_154 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_154 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_156 = __pyx_v_i; + __pyx_t_157 = 0; + __pyx_t_74 = -1; + if (__pyx_t_156 < 0) { + __pyx_t_156 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; + if (unlikely(__pyx_t_156 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_156 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_74 = 0; + if (__pyx_t_157 < 0) { + __pyx_t_157 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; + if (unlikely(__pyx_t_157 < 0)) __pyx_t_74 = 1; + } else if (unlikely(__pyx_t_157 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_74 = 1; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 870, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_cSkeleton) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 870, __pyx_L1_error) } - __pyx_t_155 = __pyx_v_newTotal; - __pyx_t_156 = 0; - __pyx_t_13 = -1; - if (__pyx_t_155 < 0) { - __pyx_t_155 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_155 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_155 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_156 < 0) { - __pyx_t_156 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_156 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_156 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_158 = __pyx_v_newTotal; + __pyx_t_159 = 0; + __pyx_t_74 = -1; + if (__pyx_t_158 < 0) { + __pyx_t_158 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; + if (unlikely(__pyx_t_158 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_158 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_74 = 0; + if (__pyx_t_159 < 0) { + __pyx_t_159 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; + if (unlikely(__pyx_t_159 < 0)) __pyx_t_74 = 1; + } else if (unlikely(__pyx_t_159 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_74 = 1; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 870, __pyx_L1_error) } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_155, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_156, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_153, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_154, __pyx_pybuffernd_cSkeleton.diminfo[1].strides)); + *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_158, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_159, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_156, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_157, __pyx_pybuffernd_cSkeleton.diminfo[1].strides)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":871 * if (keep[i] != FLAG_MAX): @@ -14352,41 +14390,41 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 871, __pyx_L1_error) } - __pyx_t_157 = __pyx_v_i; - __pyx_t_158 = 1; - __pyx_t_13 = -1; - if (__pyx_t_157 < 0) { - __pyx_t_157 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_157 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_157 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_158 < 0) { - __pyx_t_158 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_158 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_158 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_160 = __pyx_v_i; + __pyx_t_161 = 1; + __pyx_t_74 = -1; + if (__pyx_t_160 < 0) { + __pyx_t_160 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; + if (unlikely(__pyx_t_160 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_160 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_74 = 0; + if (__pyx_t_161 < 0) { + __pyx_t_161 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; + if (unlikely(__pyx_t_161 < 0)) __pyx_t_74 = 1; + } else if (unlikely(__pyx_t_161 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_74 = 1; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 871, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_cSkeleton) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 871, __pyx_L1_error) } - __pyx_t_159 = __pyx_v_newTotal; - __pyx_t_160 = 1; - __pyx_t_13 = -1; - if (__pyx_t_159 < 0) { - __pyx_t_159 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_159 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_159 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_160 < 0) { - __pyx_t_160 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_160 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_160 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_162 = __pyx_v_newTotal; + __pyx_t_163 = 1; + __pyx_t_74 = -1; + if (__pyx_t_162 < 0) { + __pyx_t_162 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; + if (unlikely(__pyx_t_162 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_162 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_74 = 0; + if (__pyx_t_163 < 0) { + __pyx_t_163 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; + if (unlikely(__pyx_t_163 < 0)) __pyx_t_74 = 1; + } else if (unlikely(__pyx_t_163 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_74 = 1; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 871, __pyx_L1_error) } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_159, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_160, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_157, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_158, __pyx_pybuffernd_cSkeleton.diminfo[1].strides)); + *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_162, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_163, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_160, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_161, __pyx_pybuffernd_cSkeleton.diminfo[1].strides)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":872 * cSkeleton[newTotal,0] = cSkeleton[i,0]; @@ -14399,31 +14437,31 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 872, __pyx_L1_error) } - __pyx_t_161 = __pyx_v_i; - __pyx_t_13 = -1; - if (__pyx_t_161 < 0) { - __pyx_t_161 += __pyx_pybuffernd_cWidths.diminfo[0].shape; - if (unlikely(__pyx_t_161 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_161 >= __pyx_pybuffernd_cWidths.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_164 = __pyx_v_i; + __pyx_t_74 = -1; + if (__pyx_t_164 < 0) { + __pyx_t_164 += __pyx_pybuffernd_cWidths.diminfo[0].shape; + if (unlikely(__pyx_t_164 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_164 >= __pyx_pybuffernd_cWidths.diminfo[0].shape)) __pyx_t_74 = 0; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 872, __pyx_L1_error) } if (unlikely(((PyObject *)__pyx_v_cWidths) == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 872, __pyx_L1_error) } - __pyx_t_162 = __pyx_v_newTotal; - __pyx_t_13 = -1; - if (__pyx_t_162 < 0) { - __pyx_t_162 += __pyx_pybuffernd_cWidths.diminfo[0].shape; - if (unlikely(__pyx_t_162 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_162 >= __pyx_pybuffernd_cWidths.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); + __pyx_t_165 = __pyx_v_newTotal; + __pyx_t_74 = -1; + if (__pyx_t_165 < 0) { + __pyx_t_165 += __pyx_pybuffernd_cWidths.diminfo[0].shape; + if (unlikely(__pyx_t_165 < 0)) __pyx_t_74 = 0; + } else if (unlikely(__pyx_t_165 >= __pyx_pybuffernd_cWidths.diminfo[0].shape)) __pyx_t_74 = 0; + if (unlikely(__pyx_t_74 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_74); __PYX_ERR(0, 872, __pyx_L1_error) } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cWidths.rcbuffer->pybuffer.buf, __pyx_t_162, __pyx_pybuffernd_cWidths.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cWidths.rcbuffer->pybuffer.buf, __pyx_t_161, __pyx_pybuffernd_cWidths.diminfo[0].strides)); + *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cWidths.rcbuffer->pybuffer.buf, __pyx_t_165, __pyx_pybuffernd_cWidths.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cWidths.rcbuffer->pybuffer.buf, __pyx_t_164, __pyx_pybuffernd_cWidths.diminfo[0].strides)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":873 * cSkeleton[newTotal,1] = cSkeleton[i,1]; @@ -14455,22 +14493,22 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 876, __pyx_L1_error) } - __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_newTotal); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 876, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = PySlice_New(Py_None, __pyx_t_3, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 876, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_newTotal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PySlice_New(Py_None, __pyx_t_1, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 876, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __Pyx_INCREF(__pyx_slice__7); __Pyx_GIVEREF(__pyx_slice__7); - PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_slice__7); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_slice__7); __pyx_t_2 = 0; - __pyx_t_2 = PyObject_GetItem(((PyObject *)__pyx_v_cSkeleton), __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 876, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_cSkeleton), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 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, 876, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); { @@ -14478,14 +14516,14 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer); __pyx_t_48 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_48 < 0)) { - PyErr_Fetch(&__pyx_t_142, &__pyx_t_141, &__pyx_t_140); + PyErr_Fetch(&__pyx_t_145, &__pyx_t_144, &__pyx_t_143); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer, (PyObject*)__pyx_v_cSkeleton, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_142); Py_XDECREF(__pyx_t_141); Py_XDECREF(__pyx_t_140); + Py_XDECREF(__pyx_t_145); Py_XDECREF(__pyx_t_144); Py_XDECREF(__pyx_t_143); __Pyx_RaiseBufferFallbackError(); } else { - PyErr_Restore(__pyx_t_142, __pyx_t_141, __pyx_t_140); + PyErr_Restore(__pyx_t_145, __pyx_t_144, __pyx_t_143); } - __pyx_t_142 = __pyx_t_141 = __pyx_t_140 = 0; + __pyx_t_145 = __pyx_t_144 = __pyx_t_143 = 0; } __pyx_pybuffernd_cSkeleton.diminfo[0].strides = __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cSkeleton.diminfo[0].shape = __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_cSkeleton.diminfo[1].strides = __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_cSkeleton.diminfo[1].shape = __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_48 < 0)) __PYX_ERR(0, 876, __pyx_L1_error) @@ -14507,12 +14545,12 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth } __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_newTotal); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PySlice_New(Py_None, __pyx_t_2, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 877, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = PySlice_New(Py_None, __pyx_t_2, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 877, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyObject_GetItem(((PyObject *)__pyx_v_cWidths), __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 877, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_cWidths), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 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, 877, __pyx_L1_error) __pyx_t_9 = ((PyArrayObject *)__pyx_t_2); { @@ -14520,14 +14558,14 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cWidths.rcbuffer->pybuffer); __pyx_t_48 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cWidths.rcbuffer->pybuffer, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_48 < 0)) { - PyErr_Fetch(&__pyx_t_140, &__pyx_t_141, &__pyx_t_142); + PyErr_Fetch(&__pyx_t_143, &__pyx_t_144, &__pyx_t_145); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cWidths.rcbuffer->pybuffer, (PyObject*)__pyx_v_cWidths, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_140); Py_XDECREF(__pyx_t_141); Py_XDECREF(__pyx_t_142); + Py_XDECREF(__pyx_t_143); Py_XDECREF(__pyx_t_144); Py_XDECREF(__pyx_t_145); __Pyx_RaiseBufferFallbackError(); } else { - PyErr_Restore(__pyx_t_140, __pyx_t_141, __pyx_t_142); + PyErr_Restore(__pyx_t_143, __pyx_t_144, __pyx_t_145); } - __pyx_t_140 = __pyx_t_141 = __pyx_t_142 = 0; + __pyx_t_143 = __pyx_t_144 = __pyx_t_145 = 0; } __pyx_pybuffernd_cWidths.diminfo[0].strides = __pyx_pybuffernd_cWidths.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cWidths.diminfo[0].shape = __pyx_pybuffernd_cWidths.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_48 < 0)) __PYX_ERR(0, 877, __pyx_L1_error) @@ -14605,12 +14643,12 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":214 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 * # 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 fullfill the PEP. + * # requirements, and does not yet fulfill the PEP. */ /* Python wrapper */ @@ -14627,7 +14665,6 @@ static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx } static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { - int __pyx_v_copy_shape; int __pyx_v_i; int __pyx_v_ndim; int __pyx_v_endian_detector; @@ -14636,46 +14673,35 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P char *__pyx_v_f; PyArray_Descr *__pyx_v_descr = 0; int __pyx_v_offset; - int __pyx_v_hasfields; 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; - PyObject *__pyx_t_6 = NULL; - char *__pyx_t_7; - __Pyx_RefNannySetupContext("__getbuffer__", 0); - if (__pyx_v_info != NULL) { - __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(__pyx_v_info->obj); - } - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":220 - * # of flags - * - * if info == NULL: return # <<<<<<<<<<<<<< - * - * cdef int copy_shape, i, ndim - */ - __pyx_t_1 = ((__pyx_v_info == NULL) != 0); - if (__pyx_t_1) { - __pyx_r = 0; - goto __pyx_L0; + 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; + PyObject *__pyx_t_7 = NULL; + char *__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); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":223 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":222 * - * cdef int copy_shape, i, ndim + * cdef int i, ndim * cdef int endian_detector = 1 # <<<<<<<<<<<<<< * cdef bint little_endian = ((&endian_detector)[0] != 0) * */ __pyx_v_endian_detector = 1; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":224 - * cdef int copy_shape, i, ndim + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":223 + * cdef int i, ndim * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< * @@ -14683,59 +14709,18 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":226 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":225 * cdef bint little_endian = ((&endian_detector)[0] != 0) * * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): + * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) */ __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":228 - * ndim = PyArray_NDIM(self) - * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< - * copy_shape = 1 - * else: - */ - __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); - if (__pyx_t_1) { - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":229 - * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): - * copy_shape = 1 # <<<<<<<<<<<<<< - * else: - * copy_shape = 0 - */ - __pyx_v_copy_shape = 1; - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":228 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 * ndim = PyArray_NDIM(self) * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< - * copy_shape = 1 - * else: - */ - goto __pyx_L4; - } - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":231 - * copy_shape = 1 - * else: - * copy_shape = 0 # <<<<<<<<<<<<<< - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - */ - /*else*/ { - __pyx_v_copy_shape = 0; - } - __pyx_L4:; - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":233 - * copy_shape = 0 - * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") @@ -14744,10 +14729,10 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; - goto __pyx_L6_bool_binop_done; + goto __pyx_L4_bool_binop_done; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":234 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":228 * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< @@ -14756,32 +14741,32 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_C_CONTIGUOUS) != 0)) != 0); __pyx_t_1 = __pyx_t_2; - __pyx_L6_bool_binop_done:; + __pyx_L4_bool_binop_done:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":233 - * copy_shape = 0 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 + * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") */ - if (__pyx_t_1) { + if (unlikely(__pyx_t_1)) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":235 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_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__8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 235, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 229, __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, 235, __pyx_L1_error) + __PYX_ERR(1, 229, __pyx_L1_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":233 - * copy_shape = 0 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 + * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): @@ -14789,7 +14774,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":237 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -14800,10 +14785,10 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; - goto __pyx_L9_bool_binop_done; + goto __pyx_L7_bool_binop_done; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":238 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":232 * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< @@ -14812,31 +14797,31 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_F_CONTIGUOUS) != 0)) != 0); __pyx_t_1 = __pyx_t_2; - __pyx_L9_bool_binop_done:; + __pyx_L7_bool_binop_done:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":237 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") */ - if (__pyx_t_1) { + if (unlikely(__pyx_t_1)) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":239 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_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__9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 239, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 233, __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, 239, __pyx_L1_error) + __PYX_ERR(1, 233, __pyx_L1_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":237 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -14845,35 +14830,35 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":241 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":235 * raise ValueError(u"ndarray is not Fortran contiguous") * * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< * info.ndim = ndim - * if copy_shape: + * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":242 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":236 * * info.buf = PyArray_DATA(self) * info.ndim = ndim # <<<<<<<<<<<<<< - * if copy_shape: + * if sizeof(npy_intp) != sizeof(Py_ssize_t): * # Allocate new buffer for strides and shape info. */ __pyx_v_info->ndim = __pyx_v_ndim; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":243 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 * info.buf = PyArray_DATA(self) * info.ndim = ndim - * if copy_shape: # <<<<<<<<<<<<<< + * 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 = (__pyx_v_copy_shape != 0); + __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":246 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":240 * # 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) # <<<<<<<<<<<<<< @@ -14882,7 +14867,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->strides = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * 2) * ((size_t)__pyx_v_ndim)))); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":247 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":241 * # This is allocated as one block, strides first. * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim # <<<<<<<<<<<<<< @@ -14891,7 +14876,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":248 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":242 * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim * for i in range(ndim): # <<<<<<<<<<<<<< @@ -14899,10 +14884,11 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P * info.shape[i] = PyArray_DIMS(self)[i] */ __pyx_t_4 = __pyx_v_ndim; - for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { - __pyx_v_i = __pyx_t_5; + __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":249 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":243 * info.shape = info.strides + ndim * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] # <<<<<<<<<<<<<< @@ -14911,7 +14897,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(__pyx_v_self)[__pyx_v_i]); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":250 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":244 * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] * info.shape[i] = PyArray_DIMS(self)[i] # <<<<<<<<<<<<<< @@ -14921,17 +14907,17 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":243 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 * info.buf = PyArray_DATA(self) * info.ndim = ndim - * if copy_shape: # <<<<<<<<<<<<<< + * 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_L11; + goto __pyx_L9; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":252 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":246 * info.shape[i] = PyArray_DIMS(self)[i] * else: * info.strides = PyArray_STRIDES(self) # <<<<<<<<<<<<<< @@ -14941,7 +14927,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P /*else*/ { __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":253 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":247 * else: * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) # <<<<<<<<<<<<<< @@ -14950,9 +14936,9 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self)); } - __pyx_L11:; + __pyx_L9:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":254 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":248 * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL # <<<<<<<<<<<<<< @@ -14961,7 +14947,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->suboffsets = NULL; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":255 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":249 * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) # <<<<<<<<<<<<<< @@ -14970,7 +14956,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":256 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":250 * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< @@ -14979,7 +14965,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":259 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":253 * * cdef int t * cdef char* f = NULL # <<<<<<<<<<<<<< @@ -14988,7 +14974,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_f = NULL; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":260 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":254 * cdef int t * cdef char* f = NULL * cdef dtype descr = self.descr # <<<<<<<<<<<<<< @@ -15000,85 +14986,32 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); __pyx_t_3 = 0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":263 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":257 * cdef int offset * - * cdef bint hasfields = PyDataType_HASFIELDS(descr) # <<<<<<<<<<<<<< - * - * if not hasfields and not copy_shape: - */ - __pyx_v_hasfields = PyDataType_HASFIELDS(__pyx_v_descr); - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":265 - * cdef bint hasfields = PyDataType_HASFIELDS(descr) - * - * if not hasfields and not copy_shape: # <<<<<<<<<<<<<< - * # do not call releasebuffer - * info.obj = None - */ - __pyx_t_2 = ((!(__pyx_v_hasfields != 0)) != 0); - if (__pyx_t_2) { - } else { - __pyx_t_1 = __pyx_t_2; - goto __pyx_L15_bool_binop_done; - } - __pyx_t_2 = ((!(__pyx_v_copy_shape != 0)) != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L15_bool_binop_done:; - if (__pyx_t_1) { - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":267 - * if not hasfields and not copy_shape: - * # do not call releasebuffer - * info.obj = None # <<<<<<<<<<<<<< - * else: - * # need to call releasebuffer - */ - __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(Py_None); - __Pyx_GOTREF(__pyx_v_info->obj); - __Pyx_DECREF(__pyx_v_info->obj); - __pyx_v_info->obj = Py_None; - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":265 - * cdef bint hasfields = PyDataType_HASFIELDS(descr) - * - * if not hasfields and not copy_shape: # <<<<<<<<<<<<<< - * # do not call releasebuffer - * info.obj = None - */ - goto __pyx_L14; - } - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":270 - * else: - * # need to call releasebuffer - * info.obj = self # <<<<<<<<<<<<<< + * info.obj = self # <<<<<<<<<<<<<< * - * if not hasfields: + * if not PyDataType_HASFIELDS(descr): */ - /*else*/ { - __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); - } - __pyx_L14:; + __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":272 - * info.obj = self + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 + * info.obj = self * - * if not hasfields: # <<<<<<<<<<<<<< + * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or */ - __pyx_t_1 = ((!(__pyx_v_hasfields != 0)) != 0); + __pyx_t_1 = ((!(PyDataType_HASFIELDS(__pyx_v_descr) != 0)) != 0); if (__pyx_t_1) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":273 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":260 * - * if not hasfields: + * if not PyDataType_HASFIELDS(descr): * t = descr.type_num # <<<<<<<<<<<<<< * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): @@ -15086,8 +15019,8 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_4 = __pyx_v_descr->type_num; __pyx_v_t = __pyx_t_4; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":274 - * if not hasfields: + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): @@ -15095,18 +15028,18 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_t_2 = ((__pyx_v_descr->byteorder == '>') != 0); if (!__pyx_t_2) { - goto __pyx_L20_next_or; + 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_L19_bool_binop_done; + goto __pyx_L14_bool_binop_done; } - __pyx_L20_next_or:; + __pyx_L15_next_or:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":275 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":262 * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< @@ -15117,36 +15050,36 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; - goto __pyx_L19_bool_binop_done; + goto __pyx_L14_bool_binop_done; } __pyx_t_2 = ((!(__pyx_v_little_endian != 0)) != 0); __pyx_t_1 = __pyx_t_2; - __pyx_L19_bool_binop_done:; + __pyx_L14_bool_binop_done:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":274 - * if not hasfields: + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + * 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 (__pyx_t_1) { + if (unlikely(__pyx_t_1)) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":276 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 * 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__10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 276, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 263, __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) + __PYX_ERR(1, 263, __pyx_L1_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":274 - * if not hasfields: + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): @@ -15154,7 +15087,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":277 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":264 * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" # <<<<<<<<<<<<<< @@ -15166,7 +15099,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"b"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":278 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":265 * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" # <<<<<<<<<<<<<< @@ -15177,7 +15110,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"B"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":279 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":266 * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" # <<<<<<<<<<<<<< @@ -15188,7 +15121,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"h"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":280 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":267 * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" # <<<<<<<<<<<<<< @@ -15199,7 +15132,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"H"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":281 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":268 * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" # <<<<<<<<<<<<<< @@ -15210,7 +15143,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"i"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":282 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":269 * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" # <<<<<<<<<<<<<< @@ -15221,7 +15154,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"I"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":283 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":270 * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" # <<<<<<<<<<<<<< @@ -15232,7 +15165,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"l"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":284 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":271 * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" # <<<<<<<<<<<<<< @@ -15243,7 +15176,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"L"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":285 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":272 * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" # <<<<<<<<<<<<<< @@ -15254,7 +15187,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"q"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":286 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":273 * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" # <<<<<<<<<<<<<< @@ -15265,7 +15198,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Q"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":287 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":274 * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" # <<<<<<<<<<<<<< @@ -15276,7 +15209,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"f"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":288 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":275 * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" # <<<<<<<<<<<<<< @@ -15287,7 +15220,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"d"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":289 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":276 * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" # <<<<<<<<<<<<<< @@ -15298,7 +15231,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"g"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":290 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":277 * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" # <<<<<<<<<<<<<< @@ -15309,7 +15242,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zf"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":291 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":278 * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" # <<<<<<<<<<<<<< @@ -15320,7 +15253,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zd"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":292 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":279 * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" # <<<<<<<<<<<<<< @@ -15331,7 +15264,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zg"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":293 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":280 * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" * elif t == NPY_OBJECT: f = "O" # <<<<<<<<<<<<<< @@ -15343,33 +15276,28 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P break; default: - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":295 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":282 * 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, 295, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 295, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_6); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_Raise(__pyx_t_6, 0, 0, 0); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __PYX_ERR(1, 295, __pyx_L1_error) + __PYX_ERR(1, 282, __pyx_L1_error) break; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":296 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":283 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f # <<<<<<<<<<<<<< @@ -15378,7 +15306,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->format = __pyx_v_f; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":297 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":284 * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f * return # <<<<<<<<<<<<<< @@ -15388,16 +15316,16 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_r = 0; goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":272 - * info.obj = self + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 + * info.obj = self * - * if not hasfields: # <<<<<<<<<<<<<< + * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":299 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":286 * return * else: * info.format = PyObject_Malloc(_buffer_format_string_len) # <<<<<<<<<<<<<< @@ -15407,7 +15335,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P /*else*/ { __pyx_v_info->format = ((char *)PyObject_Malloc(0xFF)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":300 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":287 * else: * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment # <<<<<<<<<<<<<< @@ -15416,7 +15344,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ (__pyx_v_info->format[0]) = '^'; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":301 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":288 * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 # <<<<<<<<<<<<<< @@ -15425,17 +15353,17 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_offset = 0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":302 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":289 * 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_7 = __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_7 == ((char *)NULL))) __PYX_ERR(1, 302, __pyx_L1_error) - __pyx_v_f = __pyx_t_7; + __pyx_t_8 = __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_8 == ((char *)NULL))) __PYX_ERR(1, 289, __pyx_L1_error) + __pyx_v_f = __pyx_t_8; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":305 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":292 * info.format + _buffer_format_string_len, * &offset) * f[0] = c'\0' # Terminate format string # <<<<<<<<<<<<<< @@ -15445,12 +15373,12 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P (__pyx_v_f[0]) = '\x00'; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":214 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 * # 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 fullfill the PEP. + * # requirements, and does not yet fulfill the PEP. */ /* function exit code */ @@ -15458,18 +15386,18 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("numpy.ndarray.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; - if (__pyx_v_info != NULL && __pyx_v_info->obj != NULL) { + if (__pyx_v_info->obj != NULL) { __Pyx_GOTREF(__pyx_v_info->obj); - __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = NULL; + __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } goto __pyx_L2; __pyx_L0:; - if (__pyx_v_info != NULL && __pyx_v_info->obj == Py_None) { - __Pyx_GOTREF(Py_None); - __Pyx_DECREF(Py_None); __pyx_v_info->obj = NULL; + 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); @@ -15477,7 +15405,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":307 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< @@ -15501,7 +15429,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s int __pyx_t_1; __Pyx_RefNannySetupContext("__releasebuffer__", 0); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":308 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< @@ -15511,7 +15439,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __pyx_t_1 = (PyArray_HASFIELDS(__pyx_v_self) != 0); if (__pyx_t_1) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":309 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":296 * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) # <<<<<<<<<<<<<< @@ -15520,7 +15448,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ PyObject_Free(__pyx_v_info->format); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":308 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< @@ -15529,7 +15457,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":310 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -15539,7 +15467,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":311 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":298 * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): * PyObject_Free(info.strides) # <<<<<<<<<<<<<< @@ -15548,7 +15476,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ PyObject_Free(__pyx_v_info->strides); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":310 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -15557,7 +15485,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":307 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< @@ -15569,7 +15497,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __Pyx_RefNannyFinishContext(); } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":788 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< @@ -15583,7 +15511,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":789 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":776 * * cdef inline object PyArray_MultiIterNew1(a): * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< @@ -15591,13 +15519,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ * 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, 789, __pyx_L1_error) + __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":788 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< @@ -15616,7 +15544,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":791 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< @@ -15630,7 +15558,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":792 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":779 * * cdef inline object PyArray_MultiIterNew2(a, b): * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< @@ -15638,13 +15566,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ * 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, 792, __pyx_L1_error) + __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":791 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< @@ -15663,7 +15591,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":794 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< @@ -15677,7 +15605,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":795 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":782 * * cdef inline object PyArray_MultiIterNew3(a, b, c): * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< @@ -15685,13 +15613,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ * 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, 795, __pyx_L1_error) + __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, 782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":794 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< @@ -15710,7 +15638,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":797 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< @@ -15724,7 +15652,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":798 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":785 * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< @@ -15732,13 +15660,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ * 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, 798, __pyx_L1_error) + __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, 785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":797 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< @@ -15757,7 +15685,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":800 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< @@ -15771,7 +15699,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":801 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":788 * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<< @@ -15779,13 +15707,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ * 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, 801, __pyx_L1_error) + __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, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":800 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< @@ -15804,7 +15732,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":803 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< @@ -15818,7 +15746,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ int __pyx_t_1; __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":804 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< @@ -15828,7 +15756,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); if (__pyx_t_1) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":805 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":792 * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): * return d.subarray.shape # <<<<<<<<<<<<<< @@ -15840,7 +15768,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":804 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< @@ -15849,7 +15777,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":807 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":794 * return d.subarray.shape * else: * return () # <<<<<<<<<<<<<< @@ -15863,7 +15791,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ goto __pyx_L0; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":803 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< @@ -15878,7 +15806,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":809 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< @@ -15907,7 +15835,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx char *__pyx_t_9; __Pyx_RefNannySetupContext("_util_dtypestring", 0); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":814 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":801 * * cdef dtype child * cdef int endian_detector = 1 # <<<<<<<<<<<<<< @@ -15916,7 +15844,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_endian_detector = 1; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":815 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":802 * cdef dtype child * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< @@ -15925,7 +15853,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":818 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< @@ -15934,21 +15862,21 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ if (unlikely(__pyx_v_descr->names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(1, 818, __pyx_L1_error) + __PYX_ERR(1, 805, __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, 818, __pyx_L1_error) + __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, 805, __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, 818, __pyx_L1_error) + __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); __pyx_t_3 = 0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":819 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":806 * * for childname in descr.names: * fields = descr.fields[childname] # <<<<<<<<<<<<<< @@ -15957,15 +15885,15 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ if (unlikely(__pyx_v_descr->fields == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 819, __pyx_L1_error) + __PYX_ERR(1, 806, __pyx_L1_error) } - __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 819, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 806, __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, 819, __pyx_L1_error) + 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, 806, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":820 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":807 * for childname in descr.names: * fields = descr.fields[childname] * child, new_offset = fields # <<<<<<<<<<<<<< @@ -15974,15 +15902,11 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ if (likely(__pyx_v_fields != Py_None)) { PyObject* sequence = __pyx_v_fields; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + 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, 820, __pyx_L1_error) + __PYX_ERR(1, 807, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); @@ -15990,51 +15914,51 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __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, 820, __pyx_L1_error) + __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 820, __pyx_L1_error) + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { - __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 820, __pyx_L1_error) + __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 807, __pyx_L1_error) } - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(1, 820, __pyx_L1_error) + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(1, 807, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":822 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 * 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, 822, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 809, __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, 822, __pyx_L1_error) + __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 809, __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, 822, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 809, __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 (__pyx_t_6) { + if (unlikely(__pyx_t_6)) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":823 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 * * 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__11, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 823, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 810, __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, 823, __pyx_L1_error) + __PYX_ERR(1, 810, __pyx_L1_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":822 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< @@ -16043,7 +15967,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":825 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -16063,7 +15987,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __pyx_L8_next_or:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":826 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":813 * * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< @@ -16080,29 +16004,29 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = __pyx_t_7; __pyx_L7_bool_binop_done:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":825 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * 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 (__pyx_t_6) { + if (unlikely(__pyx_t_6)) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":827 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 * 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__12, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 827, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 814, __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, 827, __pyx_L1_error) + __PYX_ERR(1, 814, __pyx_L1_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":825 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -16111,7 +16035,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":837 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":824 * * # Output padding bytes * while offset[0] < new_offset: # <<<<<<<<<<<<<< @@ -16119,15 +16043,15 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx * f += 1 */ while (1) { - __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 837, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 824, __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, 837, __pyx_L1_error) + __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, 824, __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, 837, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 824, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_6) break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":838 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":825 * # Output padding bytes * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< @@ -16136,7 +16060,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ (__pyx_v_f[0]) = 0x78; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":839 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":826 * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte * f += 1 # <<<<<<<<<<<<<< @@ -16145,7 +16069,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_f = (__pyx_v_f + 1); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":840 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":827 * f[0] = 120 # "x"; pad byte * f += 1 * offset[0] += 1 # <<<<<<<<<<<<<< @@ -16156,7 +16080,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":842 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":829 * offset[0] += 1 * * offset[0] += child.itemsize # <<<<<<<<<<<<<< @@ -16166,7 +16090,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_8 = 0; (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":844 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< @@ -16176,19 +16100,19 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); if (__pyx_t_6) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":845 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":832 * * 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, 845, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 832, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); __pyx_t_4 = 0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":846 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< @@ -16196,22 +16120,22 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx * */ __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); - if (__pyx_t_6) { + if (unlikely(__pyx_t_6)) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":847 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 * 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__13, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 847, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 834, __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, 847, __pyx_L1_error) + __PYX_ERR(1, 834, __pyx_L1_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":846 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< @@ -16220,252 +16144,252 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":850 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":837 * * # 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, 850, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 837, __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, 850, __pyx_L1_error) + __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, 837, __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, 850, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 837, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":851 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":838 * # 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, 851, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 838, __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, 851, __pyx_L1_error) + __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, 838, __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, 851, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 838, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":852 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":839 * 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, 852, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 839, __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, 852, __pyx_L1_error) + __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, 839, __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, 852, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 839, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":853 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":840 * 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, 853, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 840, __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, 853, __pyx_L1_error) + __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, 840, __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, 853, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 840, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":854 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":841 * 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, 854, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 841, __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, 854, __pyx_L1_error) + __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, 841, __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, 854, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 841, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":855 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":842 * 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, 855, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 842, __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, 855, __pyx_L1_error) + __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, 842, __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, 855, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 842, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":856 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":843 * 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, 856, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 843, __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, 856, __pyx_L1_error) + __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, 843, __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, 856, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 843, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":857 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":844 * 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, 857, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 844, __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, 857, __pyx_L1_error) + __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, 844, __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, 857, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 844, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":858 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":845 * 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, 858, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 845, __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, 858, __pyx_L1_error) + __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, 845, __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, 858, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 845, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":859 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":846 * 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, 859, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 846, __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, 859, __pyx_L1_error) + __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, 846, __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, 859, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 846, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":860 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":847 * 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, 860, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 847, __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, 860, __pyx_L1_error) + __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, 847, __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, 860, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 847, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":861 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":848 * 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, 861, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 848, __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, 861, __pyx_L1_error) + __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, 848, __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, 861, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 848, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":862 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":849 * 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, 862, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 849, __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, 862, __pyx_L1_error) + __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, 849, __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, 862, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 849, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":863 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":850 * 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, 863, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 850, __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, 863, __pyx_L1_error) + __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, 850, __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, 863, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 850, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; @@ -16474,18 +16398,18 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":864 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":851 * 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, 864, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 851, __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, 864, __pyx_L1_error) + __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, 851, __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, 864, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 851, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; @@ -16494,18 +16418,18 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":865 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":852 * 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, 865, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 852, __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, 865, __pyx_L1_error) + __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, 852, __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, 865, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 852, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; @@ -16514,25 +16438,25 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":866 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":853 * 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, 866, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 853, __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, 866, __pyx_L1_error) + __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, 853, __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, 866, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 853, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { + if (likely(__pyx_t_6)) { (__pyx_v_f[0]) = 79; goto __pyx_L15; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":868 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":855 * elif t == NPY_OBJECT: f[0] = 79 #"O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< @@ -16540,23 +16464,18 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx * else: */ /*else*/ { - __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 868, __pyx_L1_error) + __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 868, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 855, __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_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 868, __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, 868, __pyx_L1_error) + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(1, 855, __pyx_L1_error) } __pyx_L15:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":869 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":856 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * f += 1 # <<<<<<<<<<<<<< @@ -16565,7 +16484,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_f = (__pyx_v_f + 1); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":844 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< @@ -16575,7 +16494,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L13; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":873 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":860 * # Cython ignores struct boundary information ("T{...}"), * # so don't output it * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< @@ -16583,12 +16502,12 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx * */ /*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, 873, __pyx_L1_error) + __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, 860, __pyx_L1_error) __pyx_v_f = __pyx_t_9; } __pyx_L13:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":818 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< @@ -16598,7 +16517,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":874 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":861 * # so don't output it * f = _util_dtypestring(child, f, end, offset) * return f # <<<<<<<<<<<<<< @@ -16608,7 +16527,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_r = __pyx_v_f; goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":809 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< @@ -16633,7 +16552,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":990 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 * * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< @@ -16648,7 +16567,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a int __pyx_t_2; __Pyx_RefNannySetupContext("set_array_base", 0); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":992 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 * cdef inline void set_array_base(ndarray arr, object base): * cdef PyObject* baseptr * if base is None: # <<<<<<<<<<<<<< @@ -16659,7 +16578,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":993 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":980 * cdef PyObject* baseptr * if base is None: * baseptr = NULL # <<<<<<<<<<<<<< @@ -16668,7 +16587,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ __pyx_v_baseptr = NULL; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":992 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 * cdef inline void set_array_base(ndarray arr, object base): * cdef PyObject* baseptr * if base is None: # <<<<<<<<<<<<<< @@ -16678,7 +16597,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a goto __pyx_L3; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":995 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":982 * baseptr = NULL * else: * Py_INCREF(base) # important to do this before decref below! # <<<<<<<<<<<<<< @@ -16688,7 +16607,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a /*else*/ { Py_INCREF(__pyx_v_base); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":996 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":983 * else: * Py_INCREF(base) # important to do this before decref below! * baseptr = base # <<<<<<<<<<<<<< @@ -16699,7 +16618,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a } __pyx_L3:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":997 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":984 * Py_INCREF(base) # important to do this before decref below! * baseptr = base * Py_XDECREF(arr.base) # <<<<<<<<<<<<<< @@ -16708,7 +16627,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ Py_XDECREF(__pyx_v_arr->base); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":998 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":985 * baseptr = base * Py_XDECREF(arr.base) * arr.base = baseptr # <<<<<<<<<<<<<< @@ -16717,7 +16636,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ __pyx_v_arr->base = __pyx_v_baseptr; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":990 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 * * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< @@ -16729,7 +16648,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a __Pyx_RefNannyFinishContext(); } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1000 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< @@ -16743,7 +16662,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py int __pyx_t_1; __Pyx_RefNannySetupContext("get_array_base", 0); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1001 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 * * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: # <<<<<<<<<<<<<< @@ -16753,7 +16672,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py __pyx_t_1 = ((__pyx_v_arr->base == NULL) != 0); if (__pyx_t_1) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1002 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":989 * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: * return None # <<<<<<<<<<<<<< @@ -16761,11 +16680,10 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py * return arr.base */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1001 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 * * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: # <<<<<<<<<<<<<< @@ -16774,7 +16692,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1004 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":991 * return None * else: * return arr.base # <<<<<<<<<<<<<< @@ -16788,7 +16706,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py goto __pyx_L0; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1000 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< @@ -16803,7 +16721,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1009 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< @@ -16824,7 +16742,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_array", 0); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1010 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -16840,16 +16758,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1011 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":998 * 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, 1011, __pyx_L3_error) + __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 998, __pyx_L3_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1010 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -16863,7 +16781,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1012 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":999 * try: * _import_array() * except Exception: # <<<<<<<<<<<<<< @@ -16873,28 +16791,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __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, 1012, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 999, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1013 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 * _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__14, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1013, __pyx_L5_except_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1000, __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, 1013, __pyx_L5_except_error) + __PYX_ERR(1, 1000, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1010 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -16909,7 +16827,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __pyx_L8_try_end:; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1009 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< @@ -16932,7 +16850,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1015 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< @@ -16953,7 +16871,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_umath", 0); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1016 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -16969,16 +16887,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1017 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1004 * 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, 1017, __pyx_L3_error) + __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1004, __pyx_L3_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1016 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -16992,7 +16910,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1018 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1005 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< @@ -17002,28 +16920,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __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, 1018, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1005, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1019 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 * _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__15, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1019, __pyx_L5_except_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1006, __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, 1019, __pyx_L5_except_error) + __PYX_ERR(1, 1006, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1016 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -17038,7 +16956,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __pyx_L8_try_end:; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1015 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< @@ -17061,7 +16979,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1021 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< @@ -17082,7 +17000,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_ufunc", 0); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1022 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -17098,16 +17016,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1023 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1010 * 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, 1023, __pyx_L3_error) + __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1010, __pyx_L3_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1022 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -17121,7 +17039,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1024 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1011 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< @@ -17130,26 +17048,26 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __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, 1024, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1011, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1025 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< */ - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1025, __pyx_L5_except_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1012, __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, 1025, __pyx_L5_except_error) + __PYX_ERR(1, 1012, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1022 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -17164,7 +17082,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __pyx_L8_try_end:; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1021 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< @@ -17402,9 +17320,9 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { static int __Pyx_InitCachedBuiltins(void) { __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 175, __pyx_L1_error) __pyx_builtin_round = __Pyx_GetBuiltinName(__pyx_n_s_round); if (!__pyx_builtin_round) __PYX_ERR(0, 833, __pyx_L1_error) - __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 235, __pyx_L1_error) - __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 823, __pyx_L1_error) - __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 1013, __pyx_L1_error) + __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 229, __pyx_L1_error) + __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 810, __pyx_L1_error) + __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 1000, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; @@ -17467,100 +17385,100 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_slice__7); __Pyx_GIVEREF(__pyx_slice__7); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":235 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) */ - __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 235, __pyx_L1_error) + __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__8); __Pyx_GIVEREF(__pyx_tuple__8); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":239 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< * * info.buf = PyArray_DATA(self) */ - __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 239, __pyx_L1_error) + __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 233, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__9); __Pyx_GIVEREF(__pyx_tuple__9); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":276 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 * 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__10 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(1, 276, __pyx_L1_error) + __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(1, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__10); __Pyx_GIVEREF(__pyx_tuple__10); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":823 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 * * 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__11 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(1, 823, __pyx_L1_error) + __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(1, 810, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__11); __Pyx_GIVEREF(__pyx_tuple__11); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":827 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 * 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_tuple__12 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(1, 827, __pyx_L1_error) + __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(1, 814, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__12); __Pyx_GIVEREF(__pyx_tuple__12); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":847 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 * 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__13 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(1, 847, __pyx_L1_error) + __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(1, 834, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__13); __Pyx_GIVEREF(__pyx_tuple__13); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1013 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 * _import_array() * except Exception: * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_umath() except -1: */ - __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(1, 1013, __pyx_L1_error) + __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(1, 1000, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__14); __Pyx_GIVEREF(__pyx_tuple__14); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1019 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_ufunc() except -1: */ - __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(1, 1019, __pyx_L1_error) + __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(1, 1006, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__15); __Pyx_GIVEREF(__pyx_tuple__15); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1025 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< */ - __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(1, 1025, __pyx_L1_error) + __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(1, 1012, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__16); __Pyx_GIVEREF(__pyx_tuple__16); @@ -17677,12 +17595,116 @@ static int __Pyx_InitGlobals(void) { return -1; } +static int __Pyx_modinit_global_init_code(void); /*proto*/ +static int __Pyx_modinit_variable_export_code(void); /*proto*/ +static int __Pyx_modinit_function_export_code(void); /*proto*/ +static int __Pyx_modinit_type_init_code(void); /*proto*/ +static int __Pyx_modinit_type_import_code(void); /*proto*/ +static int __Pyx_modinit_variable_import_code(void); /*proto*/ +static 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_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_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_type_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); + /*--- Type import code ---*/ + __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "type", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyTypeObject), + #else + sizeof(PyHeapTypeObject), + #endif + 0); if (unlikely(!__pyx_ptype_7cpython_4type_type)) __PYX_ERR(2, 9, __pyx_L1_error) + __pyx_ptype_5numpy_dtype = __Pyx_ImportType("numpy", "dtype", sizeof(PyArray_Descr), 0); if (unlikely(!__pyx_ptype_5numpy_dtype)) __PYX_ERR(1, 164, __pyx_L1_error) + __pyx_ptype_5numpy_flatiter = __Pyx_ImportType("numpy", "flatiter", sizeof(PyArrayIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_flatiter)) __PYX_ERR(1, 186, __pyx_L1_error) + __pyx_ptype_5numpy_broadcast = __Pyx_ImportType("numpy", "broadcast", sizeof(PyArrayMultiIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_broadcast)) __PYX_ERR(1, 190, __pyx_L1_error) + __pyx_ptype_5numpy_ndarray = __Pyx_ImportType("numpy", "ndarray", sizeof(PyArrayObject), 0); if (unlikely(!__pyx_ptype_5numpy_ndarray)) __PYX_ERR(1, 199, __pyx_L1_error) + __pyx_ptype_5numpy_ufunc = __Pyx_ImportType("numpy", "ufunc", sizeof(PyUFuncObject), 0); if (unlikely(!__pyx_ptype_5numpy_ufunc)) __PYX_ERR(1, 872, __pyx_L1_error) + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __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 + __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); + /*--- Function import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + + +#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 +#ifndef CYTHON_SMALL_CODE +#if defined(__clang__) + #define CYTHON_SMALL_CODE +#elif defined(__GNUC__) && (!(defined(__cplusplus)) || (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 4))) + #define CYTHON_SMALL_CODE __attribute__((optimize("Os"))) +#else + #define CYTHON_SMALL_CODE +#endif +#endif + + #if PY_MAJOR_VERSION < 3 -PyMODINIT_FUNC initlinearSkeleton_cython(void); /*proto*/ -PyMODINIT_FUNC initlinearSkeleton_cython(void) +__Pyx_PyMODINIT_FUNC initlinearSkeleton_cython(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC initlinearSkeleton_cython(void) #else -PyMODINIT_FUNC PyInit_linearSkeleton_cython(void); /*proto*/ -PyMODINIT_FUNC PyInit_linearSkeleton_cython(void) +__Pyx_PyMODINIT_FUNC PyInit_linearSkeleton_cython(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC PyInit_linearSkeleton_cython(void) #if CYTHON_PEP489_MULTI_PHASE_INIT { return PyModuleDef_Init(&__pyx_moduledef); @@ -17730,17 +17752,19 @@ static int __pyx_pymod_exec_linearSkeleton_cython(PyObject *__pyx_pyinit_module) __Pyx_RefNannyDeclarations #if CYTHON_PEP489_MULTI_PHASE_INIT if (__pyx_m && __pyx_m == __pyx_pyinit_module) return 0; + #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("PyMODINIT_FUNC PyInit_linearSkeleton_cython(void)", 0); +__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_linearSkeleton_cython(void)", 0); if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) __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) @@ -17810,25 +17834,14 @@ static int __pyx_pymod_exec_linearSkeleton_cython(PyObject *__pyx_pyinit_module) if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) /*--- Constants init code ---*/ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Global init code ---*/ - /*--- Variable export code ---*/ - /*--- Function export code ---*/ - /*--- Type init code ---*/ - /*--- Type import code ---*/ - __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "type", - #if CYTHON_COMPILING_IN_PYPY - sizeof(PyTypeObject), - #else - sizeof(PyHeapTypeObject), - #endif - 0); if (unlikely(!__pyx_ptype_7cpython_4type_type)) __PYX_ERR(2, 9, __pyx_L1_error) - __pyx_ptype_5numpy_dtype = __Pyx_ImportType("numpy", "dtype", sizeof(PyArray_Descr), 0); if (unlikely(!__pyx_ptype_5numpy_dtype)) __PYX_ERR(1, 163, __pyx_L1_error) - __pyx_ptype_5numpy_flatiter = __Pyx_ImportType("numpy", "flatiter", sizeof(PyArrayIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_flatiter)) __PYX_ERR(1, 185, __pyx_L1_error) - __pyx_ptype_5numpy_broadcast = __Pyx_ImportType("numpy", "broadcast", sizeof(PyArrayMultiIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_broadcast)) __PYX_ERR(1, 189, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType("numpy", "ndarray", sizeof(PyArrayObject), 0); if (unlikely(!__pyx_ptype_5numpy_ndarray)) __PYX_ERR(1, 198, __pyx_L1_error) - __pyx_ptype_5numpy_ufunc = __Pyx_ImportType("numpy", "ufunc", sizeof(PyUFuncObject), 0); if (unlikely(!__pyx_ptype_5numpy_ufunc)) __PYX_ERR(1, 885, __pyx_L1_error) - /*--- Variable import code ---*/ - /*--- Function import code ---*/ + /*--- Global type/function init code ---*/ + (void)__Pyx_modinit_global_init_code(); + (void)__Pyx_modinit_variable_export_code(); + (void)__Pyx_modinit_function_export_code(); + (void)__Pyx_modinit_type_init_code(); + if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; + (void)__Pyx_modinit_variable_import_code(); + (void)__Pyx_modinit_function_import_code(); /*--- Execution code ---*/ #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) @@ -17952,7 +17965,7 @@ static int __pyx_pymod_exec_linearSkeleton_cython(PyObject *__pyx_pyinit_module) if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1021 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< @@ -18002,6 +18015,20 @@ static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { } #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); @@ -18650,6 +18677,7 @@ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const cha __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': @@ -18662,6 +18690,7 @@ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const cha ++ts; break; } + CYTHON_FALLTHROUGH; case 's': if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->enc_count = ctx->new_count; @@ -18776,6 +18805,7 @@ static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_U 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])); @@ -18786,6 +18816,7 @@ static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_U 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])); @@ -18796,6 +18827,7 @@ static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_U 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])); @@ -18806,6 +18838,7 @@ static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_U 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])); @@ -18816,6 +18849,7 @@ static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_U 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])); @@ -18826,6 +18860,7 @@ static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_U goto long_long; #endif } + CYTHON_FALLTHROUGH; default: return PyLong_Type.tp_as_number->nb_subtract(op1, op2); } } @@ -19144,10 +19179,19 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name) { 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); + if (likely(result)) { + Py_INCREF(result); + } else if (unlikely(PyErr_Occurred())) { + result = NULL; + } else { +#else result = PyDict_GetItem(__pyx_d, name); if (likely(result)) { Py_INCREF(result); } else { +#endif #else result = PyObject_GetItem(__pyx_d, name); if (!result) { @@ -19159,25 +19203,25 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { } /* RaiseTooManyValuesToUnpack */ - static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { + 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) { + 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"); } /* RaiseNoneIterError */ - static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { + static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); } /* WriteUnraisableException */ - static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno, + 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; @@ -19219,13 +19263,129 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { } /* BufferFallbackError */ - static void __Pyx_RaiseBufferFallbackError(void) { + static void __Pyx_RaiseBufferFallbackError(void) { PyErr_SetString(PyExc_ValueError, "Buffer acquisition failed on assignment; and then reacquiring the old buffer failed too!"); } +/* 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((0 <= wrapped_i) & (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((0 <= wrapped_i) & (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((n >= 0) & (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((n >= 0) & (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 + /* PyIntFromDouble */ - #if PY_MAJOR_VERSION < 3 + #if PY_MAJOR_VERSION < 3 static CYTHON_INLINE PyObject* __Pyx_PyInt_FromDouble(double value) { if (value >= (double)LONG_MIN && value <= (double)LONG_MAX) { return PyInt_FromLong((long)value); @@ -19235,7 +19395,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_FromDouble(double value) { #endif /* RaiseException */ - #if PY_MAJOR_VERSION < 3 + #if PY_MAJOR_VERSION < 3 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, CYTHON_UNUSED PyObject *cause) { __Pyx_PyThreadState_declare @@ -19393,8 +19553,27 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject } #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()) { + PyObject* args = PyTuple_Pack(1, key); + if (likely(args)) + PyErr_SetObject(PyExc_KeyError, args); + Py_XDECREF(args); + } + return NULL; + } + Py_INCREF(value); + return value; +} +#endif + /* SaveResetException */ - #if CYTHON_FAST_THREAD_STATE + #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { #if PY_VERSION_HEX >= 0x030700A2 *type = tstate->exc_state.exc_type; @@ -19433,7 +19612,7 @@ static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject #endif /* PyErrExceptionMatches */ - #if CYTHON_FAST_THREAD_STATE + #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); @@ -19458,7 +19637,7 @@ static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tsta #endif /* GetException */ - #if CYTHON_FAST_THREAD_STATE + #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) { @@ -19528,7 +19707,7 @@ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) } /* Import */ - static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { + static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { PyObject *empty_list = 0; PyObject *module = 0; PyObject *global_dict = 0; @@ -19593,18 +19772,21 @@ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) } /* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK + #ifndef CYTHON_CLINE_IN_TRACEBACK static int __Pyx_CLineForTraceback(CYTHON_UNUSED 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)) { - use_cline = PyDict_GetItem(*cython_runtime_dict, __pyx_n_s_cline_in_traceback); + use_cline = __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback); } else #endif { @@ -19630,7 +19812,7 @@ static int __Pyx_CLineForTraceback(CYTHON_UNUSED PyThreadState *tstate, int c_li #endif /* CodeObjectCache */ - static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { + 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; @@ -19710,7 +19892,7 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { } /* AddTraceback */ - #include "compile.h" + #include "compile.h" #include "frameobject.h" #include "traceback.h" static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( @@ -19816,8 +19998,8 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { #endif - /* CIntFromPyVerify */ - #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ + /* 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) @@ -19839,7 +20021,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { } /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { const int neg_one = (int) -1, const_zero = (int) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { @@ -19870,7 +20052,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { } /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_Py_intptr_t(Py_intptr_t value) { + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_Py_intptr_t(Py_intptr_t value) { const Py_intptr_t neg_one = (Py_intptr_t) -1, const_zero = (Py_intptr_t) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { @@ -19901,7 +20083,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { } /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { const long neg_one = (long) -1, const_zero = (long) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { @@ -19932,7 +20114,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { } /* Declarations */ - #if CYTHON_CCOMPLEX + #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); @@ -19952,7 +20134,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { #endif /* Arithmetic */ - #if CYTHON_CCOMPLEX + #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); @@ -20087,7 +20269,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { #endif /* Declarations */ - #if CYTHON_CCOMPLEX + #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); @@ -20107,7 +20289,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { #endif /* Arithmetic */ - #if CYTHON_CCOMPLEX + #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); @@ -20242,7 +20424,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { #endif /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { const enum NPY_TYPES neg_one = (enum NPY_TYPES) -1, const_zero = (enum NPY_TYPES) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { @@ -20273,7 +20455,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { } /* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { + static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { const int neg_one = (int) -1, const_zero = (int) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 @@ -20462,7 +20644,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { } /* CIntFromPy */ - static CYTHON_INLINE npy_long __Pyx_PyInt_As_npy_long(PyObject *x) { + static CYTHON_INLINE npy_long __Pyx_PyInt_As_npy_long(PyObject *x) { const npy_long neg_one = (npy_long) -1, const_zero = (npy_long) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 @@ -20651,7 +20833,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { } /* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { + static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { const long neg_one = (long) -1, const_zero = (long) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 @@ -20840,7 +21022,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { } /* FastTypeChecks */ - #if CYTHON_COMPILING_IN_CPYTHON + #if CYTHON_COMPILING_IN_CPYTHON static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { while (a) { a = a->tp_base; @@ -20912,7 +21094,7 @@ static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObj #endif /* CheckBinaryVersion */ - static int __Pyx_check_binary_version(void) { + 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()); @@ -20928,7 +21110,7 @@ static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObj } /* ModuleImport */ - #ifndef __PYX_HAVE_RT_ImportModule + #ifndef __PYX_HAVE_RT_ImportModule #define __PYX_HAVE_RT_ImportModule static PyObject *__Pyx_ImportModule(const char *name) { PyObject *py_name = 0; @@ -20946,7 +21128,7 @@ static PyObject *__Pyx_ImportModule(const char *name) { #endif /* TypeImport */ - #ifndef __PYX_HAVE_RT_ImportType + #ifndef __PYX_HAVE_RT_ImportType #define __PYX_HAVE_RT_ImportType static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict) @@ -21011,7 +21193,7 @@ static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class #endif /* InitStrings */ - static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { + static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { while (t->p) { #if PY_MAJOR_VERSION < 3 if (t->is_unicode) { @@ -21037,7 +21219,7 @@ static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class if (!*t->p) return -1; if (PyObject_Hash(*t->p) == -1) - PyErr_Clear(); + return -1; ++t; } return 0; @@ -21251,6 +21433,9 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { 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); } diff --git a/tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.cpython-35m-darwin.so b/tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.cpython-35m-darwin.so index 6554045ceeae5224ad89ca0ad75e5683cb012b9e..cea2bcda49e1f857a42f90d388e35ccc620e6698 100755 GIT binary patch literal 212508 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 P@xRsf19jwBDD-~;(h^-}n2T=ljDv>09UC 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 z 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 diff --git a/tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.c b/tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.c index 0c03379d..730a8062 100644 --- a/tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.c +++ b/tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.c @@ -1,4 +1,4 @@ -/* Generated by Cython 0.27.3 */ +/* Generated by Cython 0.28.3 */ /* BEGIN: Cython Metadata { @@ -20,7 +20,7 @@ END: Cython Metadata */ #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_27_3" +#define CYTHON_ABI "0_28_3" #define CYTHON_FUTURE_DIVISION 0 #include #ifndef offsetof @@ -196,6 +196,103 @@ END: Cython Metadata */ #undef BASE #undef MASK #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 @@ -224,12 +321,12 @@ END: Cython Metadata */ #ifndef Py_TPFLAGS_HAVE_FINALIZE #define Py_TPFLAGS_HAVE_FINALIZE 0 #endif -#if PY_VERSION_HEX < 0x030700A0 || !defined(METH_FASTCALL) +#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) #ifndef METH_FASTCALL #define METH_FASTCALL 0x80 #endif - typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject **args, Py_ssize_t nargs); - typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject **args, + 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 @@ -241,6 +338,18 @@ END: Cython Metadata */ #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_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 @@ -250,6 +359,36 @@ END: Cython Metadata */ #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; // PyThread_create_key reports success always +} +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 // TSS (Thread Specific Storage) API #if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) #define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) #else @@ -262,6 +401,11 @@ END: Cython Metadata */ #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)) ?\ @@ -306,18 +450,6 @@ END: Cython Metadata */ #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) #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_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 #define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) #define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) #if PY_MAJOR_VERSION >= 3 @@ -334,6 +466,7 @@ END: Cython Metadata */ #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) @@ -345,7 +478,11 @@ END: Cython Metadata */ #ifndef PySet_CheckExact #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) #endif -#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) +#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 @@ -380,16 +517,10 @@ END: Cython Metadata */ #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) : PyInstanceMethod_New(func)) + #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 -#ifndef __has_attribute - #define __has_attribute(x) 0 -#endif -#ifndef __has_cpp_attribute - #define __has_cpp_attribute(x) 0 -#endif #if CYTHON_USE_ASYNC_SLOTS #if PY_VERSION_HEX >= 0x030500B1 #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods @@ -407,96 +538,6 @@ END: Cython Metadata */ unaryfunc am_anext; } __Pyx_PyAsyncMethodsStruct; #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 defined(WIN32) || defined(MS_WINDOWS) #define _USE_MATH_DEFINES @@ -533,6 +574,7 @@ static CYTHON_INLINE float __PYX_NAN() { #define __PYX_HAVE__tierpsy__analysis__ske_create__segWormPython__cython_files__segWorm_cython #define __PYX_HAVE_API__tierpsy__analysis__ske_create__segWormPython__cython_files__segWorm_cython +/* Early includes */ #include #include #include "numpy/arrayobject.h" @@ -622,7 +664,7 @@ static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { #define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) -#define __Pyx_PyBool_FromLong(b) ((b) ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False)) +static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); #define __Pyx_PySequence_Tuple(obj)\ @@ -730,7 +772,7 @@ 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; +static PyObject *__pyx_cython_runtime = NULL; static PyObject *__pyx_empty_tuple; static PyObject *__pyx_empty_bytes; static PyObject *__pyx_empty_unicode; @@ -804,7 +846,7 @@ typedef struct { } __Pyx_BufFmt_Context; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":743 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":730 * # in Cython to enable them only on the right systems. * * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<< @@ -813,7 +855,7 @@ typedef struct { */ typedef npy_int8 __pyx_t_5numpy_int8_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":744 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":731 * * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< @@ -822,7 +864,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; */ typedef npy_int16 __pyx_t_5numpy_int16_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":745 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":732 * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<< @@ -831,7 +873,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; */ typedef npy_int32 __pyx_t_5numpy_int32_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":746 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":733 * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<< @@ -840,7 +882,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; */ typedef npy_int64 __pyx_t_5numpy_int64_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":750 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":737 * #ctypedef npy_int128 int128_t * * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< @@ -849,7 +891,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; */ typedef npy_uint8 __pyx_t_5numpy_uint8_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":751 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":738 * * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< @@ -858,7 +900,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; */ typedef npy_uint16 __pyx_t_5numpy_uint16_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":752 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":739 * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<< @@ -867,7 +909,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; */ typedef npy_uint32 __pyx_t_5numpy_uint32_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":753 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":740 * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<< @@ -876,7 +918,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; */ typedef npy_uint64 __pyx_t_5numpy_uint64_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":757 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":744 * #ctypedef npy_uint128 uint128_t * * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< @@ -885,7 +927,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; */ typedef npy_float32 __pyx_t_5numpy_float32_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":758 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":745 * * ctypedef npy_float32 float32_t * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< @@ -894,7 +936,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; */ typedef npy_float64 __pyx_t_5numpy_float64_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":767 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":754 * # The int types are mapped a bit surprising -- * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t # <<<<<<<<<<<<<< @@ -903,7 +945,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; */ typedef npy_long __pyx_t_5numpy_int_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":768 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":755 * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t * ctypedef npy_longlong long_t # <<<<<<<<<<<<<< @@ -912,7 +954,7 @@ typedef npy_long __pyx_t_5numpy_int_t; */ typedef npy_longlong __pyx_t_5numpy_long_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":769 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":756 * ctypedef npy_long int_t * ctypedef npy_longlong long_t * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<< @@ -921,7 +963,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; */ typedef npy_longlong __pyx_t_5numpy_longlong_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":771 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":758 * ctypedef npy_longlong longlong_t * * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< @@ -930,7 +972,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; */ typedef npy_ulong __pyx_t_5numpy_uint_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":772 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":759 * * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< @@ -939,7 +981,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; */ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":773 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":760 * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<< @@ -948,7 +990,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; */ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":775 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":762 * ctypedef npy_ulonglong ulonglong_t * * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< @@ -957,7 +999,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; */ typedef npy_intp __pyx_t_5numpy_intp_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":776 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":763 * * ctypedef npy_intp intp_t * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< @@ -966,7 +1008,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; */ typedef npy_uintp __pyx_t_5numpy_uintp_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":778 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":765 * ctypedef npy_uintp uintp_t * * ctypedef npy_double float_t # <<<<<<<<<<<<<< @@ -975,7 +1017,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; */ typedef npy_double __pyx_t_5numpy_float_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":779 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":766 * * ctypedef npy_double float_t * ctypedef npy_double double_t # <<<<<<<<<<<<<< @@ -984,7 +1026,7 @@ typedef npy_double __pyx_t_5numpy_float_t; */ typedef npy_double __pyx_t_5numpy_double_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":780 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":767 * ctypedef npy_double float_t * ctypedef npy_double double_t * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<< @@ -1019,7 +1061,7 @@ static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(do /*--- Type declarations ---*/ -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":782 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":769 * ctypedef npy_longdouble longdouble_t * * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< @@ -1028,7 +1070,7 @@ static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(do */ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":783 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":770 * * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< @@ -1037,7 +1079,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; */ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":784 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":771 * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<< @@ -1046,7 +1088,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; */ typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":786 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":773 * ctypedef npy_clongdouble clongdouble_t * * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< @@ -1121,16 +1163,7 @@ typedef npy_cdouble __pyx_t_5numpy_complex_t; /* PyObjectGetAttrStr.proto */ #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); -} +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) #endif @@ -1138,6 +1171,42 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject /* GetBuiltinName.proto */ static PyObject *__Pyx_GetBuiltinName(PyObject *name); +/* 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 + /* Profile.proto */ #ifndef CYTHON_PROFILE #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON @@ -1233,7 +1302,7 @@ static PyObject *__Pyx_GetBuiltinName(PyObject *name); } static void __Pyx_call_return_trace_func(PyThreadState *tstate, PyFrameObject *frame, PyObject *result) { PyObject *type, *value, *traceback; - PyErr_Fetch(&type, &value, &traceback); + __Pyx_ErrFetchInState(tstate, &type, &value, &traceback); tstate->tracing++; tstate->use_tracing = 0; if (CYTHON_TRACE && tstate->c_tracefunc) @@ -1243,7 +1312,7 @@ static PyObject *__Pyx_GetBuiltinName(PyObject *name); CYTHON_FRAME_DEL(frame); tstate->use_tracing = 1; tstate->tracing--; - PyErr_Restore(type, value, traceback); + __Pyx_ErrRestoreInState(tstate, type, value, traceback); } #ifdef WITH_THREAD #define __Pyx_TraceReturn(result, nogil)\ @@ -1287,7 +1356,7 @@ static PyObject *__Pyx_GetBuiltinName(PyObject *name); static int __Pyx_call_line_trace_func(PyThreadState *tstate, PyFrameObject *frame, int lineno) { int ret; PyObject *type, *value, *traceback; - PyErr_Fetch(&type, &value, &traceback); + __Pyx_ErrFetchInState(tstate, &type, &value, &traceback); __Pyx_PyFrame_SetLineNumber(frame, lineno); tstate->tracing++; tstate->use_tracing = 0; @@ -1295,7 +1364,7 @@ static PyObject *__Pyx_GetBuiltinName(PyObject *name); tstate->use_tracing = 1; tstate->tracing--; if (likely(!ret)) { - PyErr_Restore(type, value, traceback); + __Pyx_ErrRestoreInState(tstate, type, value, traceback); } else { Py_XDECREF(type); Py_XDECREF(value); @@ -1340,42 +1409,6 @@ static PyObject *__Pyx_GetBuiltinName(PyObject *name); #define __Pyx_TraceLine(lineno, nogil, goto_error) if ((1)); else goto_error; #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 - /* WriteUnraisableException.proto */ static void __Pyx_WriteUnraisable(const char *name, int clineno, int lineno, const char *filename, @@ -1438,25 +1471,41 @@ static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\ /* RaiseException.proto */ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); +/* 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, int nargs, PyObject *kwargs); +#else +#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) +#endif +#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); + /* DictGetItem.proto */ #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()) { - PyObject* args = PyTuple_Pack(1, key); - if (likely(args)) - PyErr_SetObject(PyExc_KeyError, args); - Py_XDECREF(args); - } - return NULL; - } - Py_INCREF(value); - return value; -} +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_PyDict_GetItem(d, key) PyObject_GetItem(d, key) +#define __Pyx_PyObject_Dict_GetItem(obj, name) PyObject_GetItem(obj, name) #endif /* RaiseTooManyValuesToUnpack.proto */ @@ -1671,6 +1720,7 @@ static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObj #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) /* CheckBinaryVersion.proto */ static int __Pyx_check_binary_version(void); @@ -1878,6 +1928,7 @@ static PyObject *__pyx_tuple__11; static PyObject *__pyx_tuple__12; static PyObject *__pyx_tuple__13; static PyObject *__pyx_codeobj__2; +/* Late includes */ /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":19 * from libc.math cimport sqrt, atan2, M_PI, abs @@ -2109,7 +2160,7 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth Py_ssize_t __pyx_t_15; int __pyx_t_16; int __pyx_t_17; - Py_ssize_t __pyx_t_18; + int __pyx_t_18; Py_ssize_t __pyx_t_19; Py_ssize_t __pyx_t_20; Py_ssize_t __pyx_t_21; @@ -2119,6 +2170,7 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth Py_ssize_t __pyx_t_25; Py_ssize_t __pyx_t_26; Py_ssize_t __pyx_t_27; + Py_ssize_t __pyx_t_28; __Pyx_TraceFrameInit(__pyx_codeobj_) __Pyx_RefNannySetupContext("circComputeChainCodeLengths", 0); __Pyx_TraceCall("circComputeChainCodeLengths", __pyx_f[0], 33, 0, __PYX_ERR(0, 33, __pyx_L1_error)); @@ -2254,8 +2306,9 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * dPx = absDiff(points[i,0], points[i-1,0]); */ __pyx_t_16 = __pyx_v_number_of_points; - for (__pyx_t_17 = 1; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) { - __pyx_v_i = __pyx_t_17; + __pyx_t_17 = __pyx_t_16; + for (__pyx_t_18 = 1; __pyx_t_18 < __pyx_t_17; __pyx_t_18+=1) { + __pyx_v_i = __pyx_t_18; /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":72 * for i in range(1, number_of_points): @@ -2264,11 +2317,11 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * dPy = absDiff(points[i,1], points[i-1,1]); * lengths[i] = lengths[i-1] + calculate_displacement(dPx, dPy) */ - __pyx_t_18 = __pyx_v_i; - __pyx_t_19 = 0; - __pyx_t_20 = (__pyx_v_i - 1); - __pyx_t_21 = 0; - __pyx_v_dPx = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_19, __pyx_pybuffernd_points.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_21, __pyx_pybuffernd_points.diminfo[1].strides))); + __pyx_t_19 = __pyx_v_i; + __pyx_t_20 = 0; + __pyx_t_21 = (__pyx_v_i - 1); + __pyx_t_22 = 0; + __pyx_v_dPx = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_20, __pyx_pybuffernd_points.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_22, __pyx_pybuffernd_points.diminfo[1].strides))); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":73 * #//% Measure the difference between subsequent points. @@ -2277,11 +2330,11 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * lengths[i] = lengths[i-1] + calculate_displacement(dPx, dPy) * return lengths */ - __pyx_t_22 = __pyx_v_i; - __pyx_t_23 = 1; - __pyx_t_24 = (__pyx_v_i - 1); - __pyx_t_25 = 1; - __pyx_v_dPy = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_23, __pyx_pybuffernd_points.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_25, __pyx_pybuffernd_points.diminfo[1].strides))); + __pyx_t_23 = __pyx_v_i; + __pyx_t_24 = 1; + __pyx_t_25 = (__pyx_v_i - 1); + __pyx_t_26 = 1; + __pyx_v_dPy = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_24, __pyx_pybuffernd_points.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_26, __pyx_pybuffernd_points.diminfo[1].strides))); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":74 * dPx = absDiff(points[i,0], points[i-1,0]); @@ -2290,9 +2343,9 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth * return lengths * */ - __pyx_t_26 = (__pyx_v_i - 1); - __pyx_t_27 = __pyx_v_i; - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_lengths.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_lengths.diminfo[0].strides) = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_lengths.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_lengths.diminfo[0].strides)) + __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_calculate_displacement(__pyx_v_dPx, __pyx_v_dPy)); + __pyx_t_27 = (__pyx_v_i - 1); + __pyx_t_28 = __pyx_v_i; + *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_lengths.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_lengths.diminfo[0].strides) = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_lengths.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_lengths.diminfo[0].strides)) + __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_calculate_displacement(__pyx_v_dPx, __pyx_v_dPy)); } /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":75 @@ -2924,17 +2977,17 @@ static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_points)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_points)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_edgeLength)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_edgeLength)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("circCurvature_old", 1, 3, 3, 1); __PYX_ERR(0, 144, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_chainCodeLengths)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_chainCodeLengths)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("circCurvature_old", 1, 3, 3, 2); __PYX_ERR(0, 144, __pyx_L3_error) } @@ -3669,12 +3722,12 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":214 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 * # 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 fullfill the PEP. + * # requirements, and does not yet fulfill the PEP. */ /* Python wrapper */ @@ -3691,7 +3744,6 @@ static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx } static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { - int __pyx_v_copy_shape; int __pyx_v_i; int __pyx_v_ndim; int __pyx_v_endian_detector; @@ -3700,7 +3752,6 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P char *__pyx_v_f; PyArray_Descr *__pyx_v_descr = 0; int __pyx_v_offset; - int __pyx_v_hasfields; int __pyx_r; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations @@ -3709,39 +3760,29 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_t_5; - PyObject *__pyx_t_6 = NULL; - char *__pyx_t_7; - __Pyx_RefNannySetupContext("__getbuffer__", 0); - if (__pyx_v_info != NULL) { - __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(__pyx_v_info->obj); - } - __Pyx_TraceCall("__getbuffer__", __pyx_f[1], 214, 0, __PYX_ERR(1, 214, __pyx_L1_error)); - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":220 - * # of flags - * - * if info == NULL: return # <<<<<<<<<<<<<< - * - * cdef int copy_shape, i, ndim - */ - __pyx_t_1 = ((__pyx_v_info == NULL) != 0); - if (__pyx_t_1) { - __pyx_r = 0; - goto __pyx_L0; + int __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + char *__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); + __Pyx_TraceCall("__getbuffer__", __pyx_f[1], 215, 0, __PYX_ERR(1, 215, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":223 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":222 * - * cdef int copy_shape, i, ndim + * cdef int i, ndim * cdef int endian_detector = 1 # <<<<<<<<<<<<<< * cdef bint little_endian = ((&endian_detector)[0] != 0) * */ __pyx_v_endian_detector = 1; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":224 - * cdef int copy_shape, i, ndim + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":223 + * cdef int i, ndim * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< * @@ -3749,59 +3790,18 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":226 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":225 * cdef bint little_endian = ((&endian_detector)[0] != 0) * * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): + * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) */ __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":228 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 * ndim = PyArray_NDIM(self) * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< - * copy_shape = 1 - * else: - */ - __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); - if (__pyx_t_1) { - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":229 - * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): - * copy_shape = 1 # <<<<<<<<<<<<<< - * else: - * copy_shape = 0 - */ - __pyx_v_copy_shape = 1; - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":228 - * ndim = PyArray_NDIM(self) - * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< - * copy_shape = 1 - * else: - */ - goto __pyx_L4; - } - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":231 - * copy_shape = 1 - * else: - * copy_shape = 0 # <<<<<<<<<<<<<< - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - */ - /*else*/ { - __pyx_v_copy_shape = 0; - } - __pyx_L4:; - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":233 - * copy_shape = 0 - * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") @@ -3810,10 +3810,10 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; - goto __pyx_L6_bool_binop_done; + goto __pyx_L4_bool_binop_done; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":234 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":228 * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< @@ -3822,32 +3822,32 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_C_CONTIGUOUS) != 0)) != 0); __pyx_t_1 = __pyx_t_2; - __pyx_L6_bool_binop_done:; + __pyx_L4_bool_binop_done:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":233 - * copy_shape = 0 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 + * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") */ - if (__pyx_t_1) { + if (unlikely(__pyx_t_1)) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":235 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_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__3, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 235, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 229, __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, 235, __pyx_L1_error) + __PYX_ERR(1, 229, __pyx_L1_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":233 - * copy_shape = 0 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 + * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): @@ -3855,7 +3855,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":237 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -3866,10 +3866,10 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; - goto __pyx_L9_bool_binop_done; + goto __pyx_L7_bool_binop_done; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":238 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":232 * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< @@ -3878,31 +3878,31 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_F_CONTIGUOUS) != 0)) != 0); __pyx_t_1 = __pyx_t_2; - __pyx_L9_bool_binop_done:; + __pyx_L7_bool_binop_done:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":237 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") */ - if (__pyx_t_1) { + if (unlikely(__pyx_t_1)) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":239 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_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__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 239, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 233, __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, 239, __pyx_L1_error) + __PYX_ERR(1, 233, __pyx_L1_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":237 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -3911,35 +3911,35 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":241 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":235 * raise ValueError(u"ndarray is not Fortran contiguous") * * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< * info.ndim = ndim - * if copy_shape: + * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":242 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":236 * * info.buf = PyArray_DATA(self) * info.ndim = ndim # <<<<<<<<<<<<<< - * if copy_shape: + * if sizeof(npy_intp) != sizeof(Py_ssize_t): * # Allocate new buffer for strides and shape info. */ __pyx_v_info->ndim = __pyx_v_ndim; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":243 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 * info.buf = PyArray_DATA(self) * info.ndim = ndim - * if copy_shape: # <<<<<<<<<<<<<< + * 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 = (__pyx_v_copy_shape != 0); + __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":246 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":240 * # 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) # <<<<<<<<<<<<<< @@ -3948,7 +3948,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->strides = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * 2) * ((size_t)__pyx_v_ndim)))); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":247 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":241 * # This is allocated as one block, strides first. * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim # <<<<<<<<<<<<<< @@ -3957,7 +3957,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":248 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":242 * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim * for i in range(ndim): # <<<<<<<<<<<<<< @@ -3965,10 +3965,11 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P * info.shape[i] = PyArray_DIMS(self)[i] */ __pyx_t_4 = __pyx_v_ndim; - for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { - __pyx_v_i = __pyx_t_5; + __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":249 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":243 * info.shape = info.strides + ndim * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] # <<<<<<<<<<<<<< @@ -3977,7 +3978,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(__pyx_v_self)[__pyx_v_i]); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":250 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":244 * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] * info.shape[i] = PyArray_DIMS(self)[i] # <<<<<<<<<<<<<< @@ -3987,17 +3988,17 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":243 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 * info.buf = PyArray_DATA(self) * info.ndim = ndim - * if copy_shape: # <<<<<<<<<<<<<< + * 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_L11; + goto __pyx_L9; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":252 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":246 * info.shape[i] = PyArray_DIMS(self)[i] * else: * info.strides = PyArray_STRIDES(self) # <<<<<<<<<<<<<< @@ -4007,7 +4008,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P /*else*/ { __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":253 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":247 * else: * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) # <<<<<<<<<<<<<< @@ -4016,9 +4017,9 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self)); } - __pyx_L11:; + __pyx_L9:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":254 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":248 * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL # <<<<<<<<<<<<<< @@ -4027,7 +4028,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->suboffsets = NULL; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":255 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":249 * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) # <<<<<<<<<<<<<< @@ -4036,7 +4037,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":256 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":250 * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< @@ -4045,7 +4046,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":259 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":253 * * cdef int t * cdef char* f = NULL # <<<<<<<<<<<<<< @@ -4054,7 +4055,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_f = NULL; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":260 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":254 * cdef int t * cdef char* f = NULL * cdef dtype descr = self.descr # <<<<<<<<<<<<<< @@ -4066,85 +4067,32 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); __pyx_t_3 = 0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":263 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":257 * cdef int offset * - * cdef bint hasfields = PyDataType_HASFIELDS(descr) # <<<<<<<<<<<<<< - * - * if not hasfields and not copy_shape: - */ - __pyx_v_hasfields = PyDataType_HASFIELDS(__pyx_v_descr); - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":265 - * cdef bint hasfields = PyDataType_HASFIELDS(descr) - * - * if not hasfields and not copy_shape: # <<<<<<<<<<<<<< - * # do not call releasebuffer - * info.obj = None - */ - __pyx_t_2 = ((!(__pyx_v_hasfields != 0)) != 0); - if (__pyx_t_2) { - } else { - __pyx_t_1 = __pyx_t_2; - goto __pyx_L15_bool_binop_done; - } - __pyx_t_2 = ((!(__pyx_v_copy_shape != 0)) != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L15_bool_binop_done:; - if (__pyx_t_1) { - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":267 - * if not hasfields and not copy_shape: - * # do not call releasebuffer - * info.obj = None # <<<<<<<<<<<<<< - * else: - * # need to call releasebuffer - */ - __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(Py_None); - __Pyx_GOTREF(__pyx_v_info->obj); - __Pyx_DECREF(__pyx_v_info->obj); - __pyx_v_info->obj = Py_None; - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":265 - * cdef bint hasfields = PyDataType_HASFIELDS(descr) - * - * if not hasfields and not copy_shape: # <<<<<<<<<<<<<< - * # do not call releasebuffer - * info.obj = None - */ - goto __pyx_L14; - } - - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":270 - * else: - * # need to call releasebuffer - * info.obj = self # <<<<<<<<<<<<<< + * info.obj = self # <<<<<<<<<<<<<< * - * if not hasfields: + * if not PyDataType_HASFIELDS(descr): */ - /*else*/ { - __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); - } - __pyx_L14:; + __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":272 - * info.obj = self + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 + * info.obj = self * - * if not hasfields: # <<<<<<<<<<<<<< + * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or */ - __pyx_t_1 = ((!(__pyx_v_hasfields != 0)) != 0); + __pyx_t_1 = ((!(PyDataType_HASFIELDS(__pyx_v_descr) != 0)) != 0); if (__pyx_t_1) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":273 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":260 * - * if not hasfields: + * if not PyDataType_HASFIELDS(descr): * t = descr.type_num # <<<<<<<<<<<<<< * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): @@ -4152,8 +4100,8 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_4 = __pyx_v_descr->type_num; __pyx_v_t = __pyx_t_4; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":274 - * if not hasfields: + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): @@ -4161,18 +4109,18 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_t_2 = ((__pyx_v_descr->byteorder == '>') != 0); if (!__pyx_t_2) { - goto __pyx_L20_next_or; + 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_L19_bool_binop_done; + goto __pyx_L14_bool_binop_done; } - __pyx_L20_next_or:; + __pyx_L15_next_or:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":275 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":262 * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< @@ -4183,36 +4131,36 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; - goto __pyx_L19_bool_binop_done; + goto __pyx_L14_bool_binop_done; } __pyx_t_2 = ((!(__pyx_v_little_endian != 0)) != 0); __pyx_t_1 = __pyx_t_2; - __pyx_L19_bool_binop_done:; + __pyx_L14_bool_binop_done:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":274 - * if not hasfields: + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + * 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 (__pyx_t_1) { + if (unlikely(__pyx_t_1)) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":276 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 * 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__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 276, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 263, __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) + __PYX_ERR(1, 263, __pyx_L1_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":274 - * if not hasfields: + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): @@ -4220,7 +4168,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":277 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":264 * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" # <<<<<<<<<<<<<< @@ -4232,7 +4180,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"b"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":278 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":265 * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" # <<<<<<<<<<<<<< @@ -4243,7 +4191,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"B"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":279 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":266 * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" # <<<<<<<<<<<<<< @@ -4254,7 +4202,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"h"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":280 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":267 * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" # <<<<<<<<<<<<<< @@ -4265,7 +4213,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"H"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":281 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":268 * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" # <<<<<<<<<<<<<< @@ -4276,7 +4224,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"i"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":282 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":269 * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" # <<<<<<<<<<<<<< @@ -4287,7 +4235,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"I"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":283 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":270 * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" # <<<<<<<<<<<<<< @@ -4298,7 +4246,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"l"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":284 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":271 * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" # <<<<<<<<<<<<<< @@ -4309,7 +4257,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"L"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":285 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":272 * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" # <<<<<<<<<<<<<< @@ -4320,7 +4268,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"q"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":286 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":273 * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" # <<<<<<<<<<<<<< @@ -4331,7 +4279,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Q"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":287 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":274 * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" # <<<<<<<<<<<<<< @@ -4342,7 +4290,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"f"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":288 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":275 * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" # <<<<<<<<<<<<<< @@ -4353,7 +4301,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"d"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":289 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":276 * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" # <<<<<<<<<<<<<< @@ -4364,7 +4312,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"g"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":290 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":277 * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" # <<<<<<<<<<<<<< @@ -4375,7 +4323,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zf"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":291 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":278 * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" # <<<<<<<<<<<<<< @@ -4386,7 +4334,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zd"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":292 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":279 * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" # <<<<<<<<<<<<<< @@ -4397,7 +4345,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zg"); break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":293 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":280 * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" * elif t == NPY_OBJECT: f = "O" # <<<<<<<<<<<<<< @@ -4409,33 +4357,28 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P break; default: - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":295 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":282 * 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, 295, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 295, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_6); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_Raise(__pyx_t_6, 0, 0, 0); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __PYX_ERR(1, 295, __pyx_L1_error) + __PYX_ERR(1, 282, __pyx_L1_error) break; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":296 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":283 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f # <<<<<<<<<<<<<< @@ -4444,7 +4387,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->format = __pyx_v_f; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":297 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":284 * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f * return # <<<<<<<<<<<<<< @@ -4454,16 +4397,16 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_r = 0; goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":272 - * info.obj = self + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 + * info.obj = self * - * if not hasfields: # <<<<<<<<<<<<<< + * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":299 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":286 * return * else: * info.format = PyObject_Malloc(_buffer_format_string_len) # <<<<<<<<<<<<<< @@ -4473,7 +4416,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P /*else*/ { __pyx_v_info->format = ((char *)PyObject_Malloc(0xFF)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":300 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":287 * else: * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment # <<<<<<<<<<<<<< @@ -4482,7 +4425,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ (__pyx_v_info->format[0]) = '^'; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":301 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":288 * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 # <<<<<<<<<<<<<< @@ -4491,17 +4434,17 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_offset = 0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":302 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":289 * 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_7 = __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_7 == ((char *)NULL))) __PYX_ERR(1, 302, __pyx_L1_error) - __pyx_v_f = __pyx_t_7; + __pyx_t_8 = __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_8 == ((char *)NULL))) __PYX_ERR(1, 289, __pyx_L1_error) + __pyx_v_f = __pyx_t_8; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":305 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":292 * info.format + _buffer_format_string_len, * &offset) * f[0] = c'\0' # Terminate format string # <<<<<<<<<<<<<< @@ -4511,12 +4454,12 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P (__pyx_v_f[0]) = '\x00'; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":214 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 * # 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 fullfill the PEP. + * # requirements, and does not yet fulfill the PEP. */ /* function exit code */ @@ -4524,18 +4467,18 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("numpy.ndarray.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; - if (__pyx_v_info != NULL && __pyx_v_info->obj != NULL) { + if (__pyx_v_info->obj != NULL) { __Pyx_GOTREF(__pyx_v_info->obj); - __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = NULL; + __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } goto __pyx_L2; __pyx_L0:; - if (__pyx_v_info != NULL && __pyx_v_info->obj == Py_None) { - __Pyx_GOTREF(Py_None); - __Pyx_DECREF(Py_None); __pyx_v_info->obj = NULL; + 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); @@ -4544,7 +4487,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":307 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< @@ -4568,9 +4511,9 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("__releasebuffer__", 0); - __Pyx_TraceCall("__releasebuffer__", __pyx_f[1], 307, 0, __PYX_ERR(1, 307, __pyx_L1_error)); + __Pyx_TraceCall("__releasebuffer__", __pyx_f[1], 294, 0, __PYX_ERR(1, 294, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":308 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< @@ -4580,7 +4523,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __pyx_t_1 = (PyArray_HASFIELDS(__pyx_v_self) != 0); if (__pyx_t_1) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":309 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":296 * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) # <<<<<<<<<<<<<< @@ -4589,7 +4532,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ PyObject_Free(__pyx_v_info->format); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":308 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< @@ -4598,7 +4541,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":310 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -4608,7 +4551,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":311 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":298 * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): * PyObject_Free(info.strides) # <<<<<<<<<<<<<< @@ -4617,7 +4560,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ PyObject_Free(__pyx_v_info->strides); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":310 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -4626,7 +4569,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":307 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< @@ -4643,7 +4586,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __Pyx_RefNannyFinishContext(); } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":788 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< @@ -4657,9 +4600,9 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); - __Pyx_TraceCall("PyArray_MultiIterNew1", __pyx_f[1], 788, 0, __PYX_ERR(1, 788, __pyx_L1_error)); + __Pyx_TraceCall("PyArray_MultiIterNew1", __pyx_f[1], 775, 0, __PYX_ERR(1, 775, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":789 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":776 * * cdef inline object PyArray_MultiIterNew1(a): * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< @@ -4667,13 +4610,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ * 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, 789, __pyx_L1_error) + __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":788 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< @@ -4693,7 +4636,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":791 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< @@ -4707,9 +4650,9 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); - __Pyx_TraceCall("PyArray_MultiIterNew2", __pyx_f[1], 791, 0, __PYX_ERR(1, 791, __pyx_L1_error)); + __Pyx_TraceCall("PyArray_MultiIterNew2", __pyx_f[1], 778, 0, __PYX_ERR(1, 778, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":792 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":779 * * cdef inline object PyArray_MultiIterNew2(a, b): * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< @@ -4717,13 +4660,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ * 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, 792, __pyx_L1_error) + __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":791 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< @@ -4743,7 +4686,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":794 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< @@ -4757,9 +4700,9 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); - __Pyx_TraceCall("PyArray_MultiIterNew3", __pyx_f[1], 794, 0, __PYX_ERR(1, 794, __pyx_L1_error)); + __Pyx_TraceCall("PyArray_MultiIterNew3", __pyx_f[1], 781, 0, __PYX_ERR(1, 781, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":795 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":782 * * cdef inline object PyArray_MultiIterNew3(a, b, c): * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< @@ -4767,13 +4710,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ * 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, 795, __pyx_L1_error) + __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, 782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":794 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< @@ -4793,7 +4736,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":797 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< @@ -4807,9 +4750,9 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); - __Pyx_TraceCall("PyArray_MultiIterNew4", __pyx_f[1], 797, 0, __PYX_ERR(1, 797, __pyx_L1_error)); + __Pyx_TraceCall("PyArray_MultiIterNew4", __pyx_f[1], 784, 0, __PYX_ERR(1, 784, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":798 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":785 * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< @@ -4817,13 +4760,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ * 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, 798, __pyx_L1_error) + __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, 785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":797 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< @@ -4843,7 +4786,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":800 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< @@ -4857,9 +4800,9 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); - __Pyx_TraceCall("PyArray_MultiIterNew5", __pyx_f[1], 800, 0, __PYX_ERR(1, 800, __pyx_L1_error)); + __Pyx_TraceCall("PyArray_MultiIterNew5", __pyx_f[1], 787, 0, __PYX_ERR(1, 787, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":801 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":788 * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<< @@ -4867,13 +4810,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ * 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, 801, __pyx_L1_error) + __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, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":800 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< @@ -4893,7 +4836,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":803 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< @@ -4907,9 +4850,9 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); - __Pyx_TraceCall("PyDataType_SHAPE", __pyx_f[1], 803, 0, __PYX_ERR(1, 803, __pyx_L1_error)); + __Pyx_TraceCall("PyDataType_SHAPE", __pyx_f[1], 790, 0, __PYX_ERR(1, 790, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":804 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< @@ -4919,7 +4862,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); if (__pyx_t_1) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":805 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":792 * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): * return d.subarray.shape # <<<<<<<<<<<<<< @@ -4931,7 +4874,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":804 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< @@ -4940,7 +4883,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":807 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":794 * return d.subarray.shape * else: * return () # <<<<<<<<<<<<<< @@ -4954,7 +4897,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ goto __pyx_L0; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":803 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< @@ -4973,7 +4916,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":809 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< @@ -5002,9 +4945,9 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx long __pyx_t_8; char *__pyx_t_9; __Pyx_RefNannySetupContext("_util_dtypestring", 0); - __Pyx_TraceCall("_util_dtypestring", __pyx_f[1], 809, 0, __PYX_ERR(1, 809, __pyx_L1_error)); + __Pyx_TraceCall("_util_dtypestring", __pyx_f[1], 796, 0, __PYX_ERR(1, 796, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":814 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":801 * * cdef dtype child * cdef int endian_detector = 1 # <<<<<<<<<<<<<< @@ -5013,7 +4956,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_endian_detector = 1; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":815 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":802 * cdef dtype child * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< @@ -5022,7 +4965,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":818 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< @@ -5031,21 +4974,21 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ if (unlikely(__pyx_v_descr->names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(1, 818, __pyx_L1_error) + __PYX_ERR(1, 805, __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, 818, __pyx_L1_error) + __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, 805, __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, 818, __pyx_L1_error) + __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); __pyx_t_3 = 0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":819 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":806 * * for childname in descr.names: * fields = descr.fields[childname] # <<<<<<<<<<<<<< @@ -5054,15 +4997,15 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ if (unlikely(__pyx_v_descr->fields == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 819, __pyx_L1_error) + __PYX_ERR(1, 806, __pyx_L1_error) } - __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 819, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 806, __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, 819, __pyx_L1_error) + 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, 806, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":820 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":807 * for childname in descr.names: * fields = descr.fields[childname] * child, new_offset = fields # <<<<<<<<<<<<<< @@ -5071,15 +5014,11 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ if (likely(__pyx_v_fields != Py_None)) { PyObject* sequence = __pyx_v_fields; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + 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, 820, __pyx_L1_error) + __PYX_ERR(1, 807, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); @@ -5087,51 +5026,51 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __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, 820, __pyx_L1_error) + __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 820, __pyx_L1_error) + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { - __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 820, __pyx_L1_error) + __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 807, __pyx_L1_error) } - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(1, 820, __pyx_L1_error) + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(1, 807, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":822 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 * 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, 822, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 809, __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, 822, __pyx_L1_error) + __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 809, __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, 822, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 809, __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 (__pyx_t_6) { + if (unlikely(__pyx_t_6)) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":823 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 * * 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__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 823, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 810, __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, 823, __pyx_L1_error) + __PYX_ERR(1, 810, __pyx_L1_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":822 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< @@ -5140,7 +5079,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":825 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -5160,7 +5099,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __pyx_L8_next_or:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":826 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":813 * * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< @@ -5177,29 +5116,29 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = __pyx_t_7; __pyx_L7_bool_binop_done:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":825 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * 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 (__pyx_t_6) { + if (unlikely(__pyx_t_6)) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":827 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 * 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__7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 827, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 814, __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, 827, __pyx_L1_error) + __PYX_ERR(1, 814, __pyx_L1_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":825 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -5208,7 +5147,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":837 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":824 * * # Output padding bytes * while offset[0] < new_offset: # <<<<<<<<<<<<<< @@ -5216,15 +5155,15 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx * f += 1 */ while (1) { - __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 837, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 824, __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, 837, __pyx_L1_error) + __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, 824, __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, 837, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 824, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_6) break; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":838 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":825 * # Output padding bytes * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< @@ -5233,7 +5172,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ (__pyx_v_f[0]) = 0x78; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":839 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":826 * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte * f += 1 # <<<<<<<<<<<<<< @@ -5242,7 +5181,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_f = (__pyx_v_f + 1); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":840 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":827 * f[0] = 120 # "x"; pad byte * f += 1 * offset[0] += 1 # <<<<<<<<<<<<<< @@ -5253,7 +5192,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":842 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":829 * offset[0] += 1 * * offset[0] += child.itemsize # <<<<<<<<<<<<<< @@ -5263,7 +5202,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_8 = 0; (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":844 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< @@ -5273,19 +5212,19 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); if (__pyx_t_6) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":845 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":832 * * 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, 845, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 832, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); __pyx_t_4 = 0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":846 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< @@ -5293,22 +5232,22 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx * */ __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); - if (__pyx_t_6) { + if (unlikely(__pyx_t_6)) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":847 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 * 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__8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 847, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 834, __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, 847, __pyx_L1_error) + __PYX_ERR(1, 834, __pyx_L1_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":846 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< @@ -5317,252 +5256,252 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":850 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":837 * * # 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, 850, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 837, __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, 850, __pyx_L1_error) + __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, 837, __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, 850, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 837, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":851 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":838 * # 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, 851, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 838, __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, 851, __pyx_L1_error) + __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, 838, __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, 851, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 838, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":852 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":839 * 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, 852, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 839, __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, 852, __pyx_L1_error) + __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, 839, __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, 852, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 839, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":853 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":840 * 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, 853, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 840, __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, 853, __pyx_L1_error) + __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, 840, __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, 853, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 840, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":854 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":841 * 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, 854, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 841, __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, 854, __pyx_L1_error) + __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, 841, __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, 854, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 841, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":855 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":842 * 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, 855, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 842, __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, 855, __pyx_L1_error) + __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, 842, __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, 855, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 842, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":856 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":843 * 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, 856, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 843, __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, 856, __pyx_L1_error) + __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, 843, __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, 856, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 843, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":857 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":844 * 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, 857, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 844, __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, 857, __pyx_L1_error) + __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, 844, __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, 857, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 844, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":858 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":845 * 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, 858, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 845, __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, 858, __pyx_L1_error) + __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, 845, __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, 858, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 845, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":859 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":846 * 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, 859, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 846, __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, 859, __pyx_L1_error) + __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, 846, __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, 859, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 846, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":860 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":847 * 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, 860, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 847, __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, 860, __pyx_L1_error) + __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, 847, __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, 860, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 847, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":861 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":848 * 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, 861, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 848, __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, 861, __pyx_L1_error) + __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, 848, __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, 861, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 848, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":862 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":849 * 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, 862, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 849, __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, 862, __pyx_L1_error) + __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, 849, __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, 862, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 849, __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/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":863 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":850 * 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, 863, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 850, __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, 863, __pyx_L1_error) + __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, 850, __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, 863, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 850, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; @@ -5571,18 +5510,18 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":864 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":851 * 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, 864, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 851, __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, 864, __pyx_L1_error) + __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, 851, __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, 864, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 851, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; @@ -5591,18 +5530,18 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":865 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":852 * 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, 865, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 852, __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, 865, __pyx_L1_error) + __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, 852, __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, 865, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 852, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; @@ -5611,25 +5550,25 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":866 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":853 * 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, 866, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 853, __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, 866, __pyx_L1_error) + __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, 853, __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, 866, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 853, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { + if (likely(__pyx_t_6)) { (__pyx_v_f[0]) = 79; goto __pyx_L15; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":868 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":855 * elif t == NPY_OBJECT: f[0] = 79 #"O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< @@ -5637,23 +5576,18 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx * else: */ /*else*/ { - __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 868, __pyx_L1_error) + __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 868, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 855, __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_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 868, __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, 868, __pyx_L1_error) + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(1, 855, __pyx_L1_error) } __pyx_L15:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":869 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":856 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * f += 1 # <<<<<<<<<<<<<< @@ -5662,7 +5596,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_f = (__pyx_v_f + 1); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":844 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< @@ -5672,7 +5606,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L13; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":873 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":860 * # Cython ignores struct boundary information ("T{...}"), * # so don't output it * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< @@ -5680,12 +5614,12 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx * */ /*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, 873, __pyx_L1_error) + __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, 860, __pyx_L1_error) __pyx_v_f = __pyx_t_9; } __pyx_L13:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":818 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< @@ -5695,7 +5629,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":874 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":861 * # so don't output it * f = _util_dtypestring(child, f, end, offset) * return f # <<<<<<<<<<<<<< @@ -5705,7 +5639,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_r = __pyx_v_f; goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":809 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< @@ -5731,7 +5665,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":990 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 * * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< @@ -5746,9 +5680,9 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a int __pyx_t_1; int __pyx_t_2; __Pyx_RefNannySetupContext("set_array_base", 0); - __Pyx_TraceCall("set_array_base", __pyx_f[1], 990, 0, __PYX_ERR(1, 990, __pyx_L1_error)); + __Pyx_TraceCall("set_array_base", __pyx_f[1], 977, 0, __PYX_ERR(1, 977, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":992 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 * cdef inline void set_array_base(ndarray arr, object base): * cdef PyObject* baseptr * if base is None: # <<<<<<<<<<<<<< @@ -5759,7 +5693,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":993 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":980 * cdef PyObject* baseptr * if base is None: * baseptr = NULL # <<<<<<<<<<<<<< @@ -5768,7 +5702,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ __pyx_v_baseptr = NULL; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":992 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 * cdef inline void set_array_base(ndarray arr, object base): * cdef PyObject* baseptr * if base is None: # <<<<<<<<<<<<<< @@ -5778,7 +5712,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a goto __pyx_L3; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":995 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":982 * baseptr = NULL * else: * Py_INCREF(base) # important to do this before decref below! # <<<<<<<<<<<<<< @@ -5788,7 +5722,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a /*else*/ { Py_INCREF(__pyx_v_base); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":996 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":983 * else: * Py_INCREF(base) # important to do this before decref below! * baseptr = base # <<<<<<<<<<<<<< @@ -5799,7 +5733,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a } __pyx_L3:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":997 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":984 * Py_INCREF(base) # important to do this before decref below! * baseptr = base * Py_XDECREF(arr.base) # <<<<<<<<<<<<<< @@ -5808,7 +5742,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ Py_XDECREF(__pyx_v_arr->base); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":998 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":985 * baseptr = base * Py_XDECREF(arr.base) * arr.base = baseptr # <<<<<<<<<<<<<< @@ -5817,7 +5751,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ __pyx_v_arr->base = __pyx_v_baseptr; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":990 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 * * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< @@ -5834,7 +5768,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a __Pyx_RefNannyFinishContext(); } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1000 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< @@ -5848,9 +5782,9 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("get_array_base", 0); - __Pyx_TraceCall("get_array_base", __pyx_f[1], 1000, 0, __PYX_ERR(1, 1000, __pyx_L1_error)); + __Pyx_TraceCall("get_array_base", __pyx_f[1], 987, 0, __PYX_ERR(1, 987, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1001 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 * * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: # <<<<<<<<<<<<<< @@ -5860,7 +5794,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py __pyx_t_1 = ((__pyx_v_arr->base == NULL) != 0); if (__pyx_t_1) { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1002 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":989 * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: * return None # <<<<<<<<<<<<<< @@ -5868,11 +5802,10 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py * return arr.base */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1001 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 * * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: # <<<<<<<<<<<<<< @@ -5881,7 +5814,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py */ } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1004 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":991 * return None * else: * return arr.base # <<<<<<<<<<<<<< @@ -5895,7 +5828,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py goto __pyx_L0; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1000 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< @@ -5914,7 +5847,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1009 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< @@ -5935,9 +5868,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_array", 0); - __Pyx_TraceCall("import_array", __pyx_f[1], 1009, 0, __PYX_ERR(1, 1009, __pyx_L1_error)); + __Pyx_TraceCall("import_array", __pyx_f[1], 996, 0, __PYX_ERR(1, 996, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1010 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -5953,16 +5886,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1011 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":998 * 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, 1011, __pyx_L3_error) + __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 998, __pyx_L3_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1010 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -5976,7 +5909,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1012 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":999 * try: * _import_array() * except Exception: # <<<<<<<<<<<<<< @@ -5986,28 +5919,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __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, 1012, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 999, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1013 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 * _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__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1013, __pyx_L5_except_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1000, __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, 1013, __pyx_L5_except_error) + __PYX_ERR(1, 1000, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1010 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -6022,7 +5955,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __pyx_L8_try_end:; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1009 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< @@ -6046,7 +5979,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1015 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< @@ -6067,9 +6000,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_umath", 0); - __Pyx_TraceCall("import_umath", __pyx_f[1], 1015, 0, __PYX_ERR(1, 1015, __pyx_L1_error)); + __Pyx_TraceCall("import_umath", __pyx_f[1], 1002, 0, __PYX_ERR(1, 1002, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1016 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -6085,16 +6018,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1017 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1004 * 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, 1017, __pyx_L3_error) + __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1004, __pyx_L3_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1016 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -6108,7 +6041,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1018 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1005 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< @@ -6118,28 +6051,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __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, 1018, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1005, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1019 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 * _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__10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1019, __pyx_L5_except_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1006, __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, 1019, __pyx_L5_except_error) + __PYX_ERR(1, 1006, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1016 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -6154,7 +6087,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __pyx_L8_try_end:; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1015 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< @@ -6178,7 +6111,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { return __pyx_r; } -/* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1021 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< @@ -6199,9 +6132,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_ufunc", 0); - __Pyx_TraceCall("import_ufunc", __pyx_f[1], 1021, 0, __PYX_ERR(1, 1021, __pyx_L1_error)); + __Pyx_TraceCall("import_ufunc", __pyx_f[1], 1008, 0, __PYX_ERR(1, 1008, __pyx_L1_error)); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1022 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -6217,16 +6150,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1023 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1010 * 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, 1023, __pyx_L3_error) + __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1010, __pyx_L3_error) - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1022 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -6240,7 +6173,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1024 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1011 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< @@ -6249,26 +6182,26 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __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, 1024, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1011, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1025 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< */ - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1025, __pyx_L5_except_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1012, __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, 1025, __pyx_L5_except_error) + __PYX_ERR(1, 1012, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1022 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -6283,7 +6216,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __pyx_L8_try_end:; } - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1021 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< @@ -6405,9 +6338,9 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { }; static int __Pyx_InitCachedBuiltins(void) { __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 70, __pyx_L1_error) - __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 235, __pyx_L1_error) - __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 823, __pyx_L1_error) - __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 1013, __pyx_L1_error) + __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 229, __pyx_L1_error) + __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 810, __pyx_L1_error) + __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 1000, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; @@ -6417,100 +6350,100 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":235 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) */ - __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(1, 235, __pyx_L1_error) + __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(1, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__3); __Pyx_GIVEREF(__pyx_tuple__3); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":239 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< * * info.buf = PyArray_DATA(self) */ - __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(1, 239, __pyx_L1_error) + __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(1, 233, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__4); __Pyx_GIVEREF(__pyx_tuple__4); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":276 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 * 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__5 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(1, 276, __pyx_L1_error) + __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(1, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__5); __Pyx_GIVEREF(__pyx_tuple__5); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":823 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 * * 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__6 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(1, 823, __pyx_L1_error) + __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(1, 810, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__6); __Pyx_GIVEREF(__pyx_tuple__6); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":827 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 * 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_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(1, 827, __pyx_L1_error) + __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(1, 814, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__7); __Pyx_GIVEREF(__pyx_tuple__7); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":847 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 * 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__8 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 847, __pyx_L1_error) + __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 834, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__8); __Pyx_GIVEREF(__pyx_tuple__8); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1013 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 * _import_array() * except Exception: * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_umath() except -1: */ - __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 1013, __pyx_L1_error) + __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 1000, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__9); __Pyx_GIVEREF(__pyx_tuple__9); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1019 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_ufunc() except -1: */ - __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(1, 1019, __pyx_L1_error) + __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(1, 1006, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__10); __Pyx_GIVEREF(__pyx_tuple__10); - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1025 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< */ - __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(1, 1025, __pyx_L1_error) + __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(1, 1012, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__11); __Pyx_GIVEREF(__pyx_tuple__11); @@ -6551,12 +6484,116 @@ static int __Pyx_InitGlobals(void) { return -1; } +static int __Pyx_modinit_global_init_code(void); /*proto*/ +static int __Pyx_modinit_variable_export_code(void); /*proto*/ +static int __Pyx_modinit_function_export_code(void); /*proto*/ +static int __Pyx_modinit_type_init_code(void); /*proto*/ +static int __Pyx_modinit_type_import_code(void); /*proto*/ +static int __Pyx_modinit_variable_import_code(void); /*proto*/ +static 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_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_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_type_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); + /*--- Type import code ---*/ + __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "type", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyTypeObject), + #else + sizeof(PyHeapTypeObject), + #endif + 0); if (unlikely(!__pyx_ptype_7cpython_4type_type)) __PYX_ERR(2, 9, __pyx_L1_error) + __pyx_ptype_5numpy_dtype = __Pyx_ImportType("numpy", "dtype", sizeof(PyArray_Descr), 0); if (unlikely(!__pyx_ptype_5numpy_dtype)) __PYX_ERR(1, 164, __pyx_L1_error) + __pyx_ptype_5numpy_flatiter = __Pyx_ImportType("numpy", "flatiter", sizeof(PyArrayIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_flatiter)) __PYX_ERR(1, 186, __pyx_L1_error) + __pyx_ptype_5numpy_broadcast = __Pyx_ImportType("numpy", "broadcast", sizeof(PyArrayMultiIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_broadcast)) __PYX_ERR(1, 190, __pyx_L1_error) + __pyx_ptype_5numpy_ndarray = __Pyx_ImportType("numpy", "ndarray", sizeof(PyArrayObject), 0); if (unlikely(!__pyx_ptype_5numpy_ndarray)) __PYX_ERR(1, 199, __pyx_L1_error) + __pyx_ptype_5numpy_ufunc = __Pyx_ImportType("numpy", "ufunc", sizeof(PyUFuncObject), 0); if (unlikely(!__pyx_ptype_5numpy_ufunc)) __PYX_ERR(1, 872, __pyx_L1_error) + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __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 + __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); + /*--- Function import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + + +#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 +#ifndef CYTHON_SMALL_CODE +#if defined(__clang__) + #define CYTHON_SMALL_CODE +#elif defined(__GNUC__) && (!(defined(__cplusplus)) || (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 4))) + #define CYTHON_SMALL_CODE __attribute__((optimize("Os"))) +#else + #define CYTHON_SMALL_CODE +#endif +#endif + + #if PY_MAJOR_VERSION < 3 -PyMODINIT_FUNC initsegWorm_cython(void); /*proto*/ -PyMODINIT_FUNC initsegWorm_cython(void) +__Pyx_PyMODINIT_FUNC initsegWorm_cython(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC initsegWorm_cython(void) #else -PyMODINIT_FUNC PyInit_segWorm_cython(void); /*proto*/ -PyMODINIT_FUNC PyInit_segWorm_cython(void) +__Pyx_PyMODINIT_FUNC PyInit_segWorm_cython(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC PyInit_segWorm_cython(void) #if CYTHON_PEP489_MULTI_PHASE_INIT { return PyModuleDef_Init(&__pyx_moduledef); @@ -6605,17 +6642,19 @@ static int __pyx_pymod_exec_segWorm_cython(PyObject *__pyx_pyinit_module) __Pyx_RefNannyDeclarations #if CYTHON_PEP489_MULTI_PHASE_INIT if (__pyx_m && __pyx_m == __pyx_pyinit_module) return 0; + #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("PyMODINIT_FUNC PyInit_segWorm_cython(void)", 0); +__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_segWorm_cython(void)", 0); if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) __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) @@ -6685,30 +6724,19 @@ static int __pyx_pymod_exec_segWorm_cython(PyObject *__pyx_pyinit_module) if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) /*--- Constants init code ---*/ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Global init code ---*/ - /*--- Variable export code ---*/ - /*--- Function export code ---*/ - /*--- Type init code ---*/ - /*--- Type import code ---*/ - __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "type", - #if CYTHON_COMPILING_IN_PYPY - sizeof(PyTypeObject), - #else - sizeof(PyHeapTypeObject), - #endif - 0); if (unlikely(!__pyx_ptype_7cpython_4type_type)) __PYX_ERR(2, 9, __pyx_L1_error) - __pyx_ptype_5numpy_dtype = __Pyx_ImportType("numpy", "dtype", sizeof(PyArray_Descr), 0); if (unlikely(!__pyx_ptype_5numpy_dtype)) __PYX_ERR(1, 163, __pyx_L1_error) - __pyx_ptype_5numpy_flatiter = __Pyx_ImportType("numpy", "flatiter", sizeof(PyArrayIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_flatiter)) __PYX_ERR(1, 185, __pyx_L1_error) - __pyx_ptype_5numpy_broadcast = __Pyx_ImportType("numpy", "broadcast", sizeof(PyArrayMultiIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_broadcast)) __PYX_ERR(1, 189, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType("numpy", "ndarray", sizeof(PyArrayObject), 0); if (unlikely(!__pyx_ptype_5numpy_ndarray)) __PYX_ERR(1, 198, __pyx_L1_error) - __pyx_ptype_5numpy_ufunc = __Pyx_ImportType("numpy", "ufunc", sizeof(PyUFuncObject), 0); if (unlikely(!__pyx_ptype_5numpy_ufunc)) __PYX_ERR(1, 885, __pyx_L1_error) - /*--- Variable import code ---*/ - /*--- Function import code ---*/ + /*--- Global type/function init code ---*/ + (void)__Pyx_modinit_global_init_code(); + (void)__Pyx_modinit_variable_export_code(); + (void)__Pyx_modinit_function_export_code(); + (void)__Pyx_modinit_type_init_code(); + if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; + (void)__Pyx_modinit_variable_import_code(); + (void)__Pyx_modinit_function_import_code(); /*--- Execution code ---*/ #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif - __Pyx_TraceCall("PyMODINIT_FUNC PyInit_segWorm_cython(void)", __pyx_f[0], 1, 0, __PYX_ERR(0, 1, __pyx_L1_error)); + __Pyx_TraceCall("__Pyx_PyMODINIT_FUNC PyInit_segWorm_cython(void)", __pyx_f[0], 1, 0, __PYX_ERR(0, 1, __pyx_L1_error)); /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":13 * @author: ajaver @@ -6756,7 +6784,7 @@ static int __pyx_pymod_exec_segWorm_cython(PyObject *__pyx_pyinit_module) if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "../miniconda3/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1021 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< @@ -6807,6 +6835,20 @@ static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { } #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); @@ -6821,6 +6863,30 @@ static PyObject *__Pyx_GetBuiltinName(PyObject *name) { return result; } +/* 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 + /* Profile */ #if CYTHON_PROFILE static int __Pyx_TraceSetupAndCall(PyCodeObject** code, @@ -6856,7 +6922,7 @@ static int __Pyx_TraceSetupAndCall(PyCodeObject** code, retval = 1; tstate->tracing++; tstate->use_tracing = 0; - PyErr_Fetch(&type, &value, &traceback); + __Pyx_ErrFetchInState(tstate, &type, &value, &traceback); #if CYTHON_TRACE if (tstate->c_tracefunc) retval = tstate->c_tracefunc(tstate->c_traceobj, *frame, PyTrace_CALL, NULL) == 0; @@ -6867,7 +6933,7 @@ static int __Pyx_TraceSetupAndCall(PyCodeObject** code, (CYTHON_TRACE && tstate->c_tracefunc)); tstate->tracing--; if (retval) { - PyErr_Restore(type, value, traceback); + __Pyx_ErrRestoreInState(tstate, type, value, traceback); return tstate->use_tracing && retval; } else { Py_XDECREF(type); @@ -6914,30 +6980,6 @@ static PyCodeObject *__Pyx_createFrameCodeObject(const char *funcname, const cha } #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 - /* WriteUnraisableException */ static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno, CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename, @@ -7472,6 +7514,7 @@ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const cha __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': @@ -7484,6 +7527,7 @@ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const cha ++ts; break; } + CYTHON_FALLTHROUGH; case 's': if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->enc_count = ctx->new_count; @@ -7563,10 +7607,19 @@ fail:; static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name) { 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); + if (likely(result)) { + Py_INCREF(result); + } else if (unlikely(PyErr_Occurred())) { + result = NULL; + } else { +#else result = PyDict_GetItem(__pyx_d, name); if (likely(result)) { Py_INCREF(result); } else { +#endif #else result = PyObject_GetItem(__pyx_d, name); if (!result) { @@ -7578,7 +7631,7 @@ fail:; } /* PyObjectCall */ - #if CYTHON_COMPILING_IN_CPYTHON + #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; @@ -7598,7 +7651,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg #endif /* ExtTypeTest */ - static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { + static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { if (unlikely(!type)) { PyErr_SetString(PyExc_SystemError, "Missing type object"); return 0; @@ -7611,7 +7664,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg } /* RaiseArgTupleInvalid */ - static void __Pyx_RaiseArgtupleInvalid( + static void __Pyx_RaiseArgtupleInvalid( const char* func_name, int exact, Py_ssize_t num_min, @@ -7637,7 +7690,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg } /* RaiseDoubleKeywords */ - static void __Pyx_RaiseDoubleKeywordsError( + static void __Pyx_RaiseDoubleKeywordsError( const char* func_name, PyObject* kw_name) { @@ -7651,7 +7704,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg } /* ParseKeywords */ - static int __Pyx_ParseOptionalKeywords( + static int __Pyx_ParseOptionalKeywords( PyObject *kwds, PyObject **argnames[], PyObject *kwds2, @@ -7753,7 +7806,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg } /* RaiseException */ - #if PY_MAJOR_VERSION < 3 + #if PY_MAJOR_VERSION < 3 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, CYTHON_UNUSED PyObject *cause) { __Pyx_PyThreadState_declare @@ -7911,26 +7964,248 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject } #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))); + 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)meth)) (self, args, nargs, NULL); + } else { + return (*((__Pyx_PyCFunctionFast)meth)) (self, args, nargs); + } +} +#endif + +/* PyFunctionFastCall */ + #if CYTHON_FAST_PYCALL +#include "frameobject.h" +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 = f->f_localsplus; + 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, int 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, nargs, + k, (int)nk, + d, (int)nd, kwdefs, closure); +#else + result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, + args, 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 + +/* 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()) { + PyObject* args = PyTuple_Pack(1, key); + if (likely(args)) + PyErr_SetObject(PyExc_KeyError, args); + Py_XDECREF(args); + } + return NULL; + } + Py_INCREF(value); + return value; +} +#endif + /* RaiseTooManyValuesToUnpack */ - static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { + 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) { + 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"); } /* RaiseNoneIterError */ - static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { + static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); } /* SaveResetException */ - #if CYTHON_FAST_THREAD_STATE + #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { #if PY_VERSION_HEX >= 0x030700A2 *type = tstate->exc_state.exc_type; @@ -7969,7 +8244,7 @@ static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject #endif /* PyErrExceptionMatches */ - #if CYTHON_FAST_THREAD_STATE + #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); @@ -7994,7 +8269,7 @@ static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tsta #endif /* GetException */ - #if CYTHON_FAST_THREAD_STATE + #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) { @@ -8064,7 +8339,7 @@ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) } /* Import */ - static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { + static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { PyObject *empty_list = 0; PyObject *module = 0; PyObject *global_dict = 0; @@ -8129,18 +8404,21 @@ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) } /* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK + #ifndef CYTHON_CLINE_IN_TRACEBACK static int __Pyx_CLineForTraceback(CYTHON_UNUSED 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)) { - use_cline = PyDict_GetItem(*cython_runtime_dict, __pyx_n_s_cline_in_traceback); + use_cline = __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback); } else #endif { @@ -8166,7 +8444,7 @@ static int __Pyx_CLineForTraceback(CYTHON_UNUSED PyThreadState *tstate, int c_li #endif /* CodeObjectCache */ - static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { + 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; @@ -8246,7 +8524,7 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { } /* AddTraceback */ - #include "compile.h" + #include "compile.h" #include "frameobject.h" #include "traceback.h" static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( @@ -8352,8 +8630,8 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { #endif - /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { + /* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { const int neg_one = (int) -1, const_zero = (int) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { @@ -8384,7 +8662,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { } /* CIntFromPyVerify */ - #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ + #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) @@ -8406,7 +8684,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { } /* Declarations */ - #if CYTHON_CCOMPLEX + #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); @@ -8426,7 +8704,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { #endif /* Arithmetic */ - #if CYTHON_CCOMPLEX + #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); @@ -8561,7 +8839,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { #endif /* Declarations */ - #if CYTHON_CCOMPLEX + #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); @@ -8581,7 +8859,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { #endif /* Arithmetic */ - #if CYTHON_CCOMPLEX + #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); @@ -8716,7 +8994,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { #endif /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { const enum NPY_TYPES neg_one = (enum NPY_TYPES) -1, const_zero = (enum NPY_TYPES) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { @@ -8747,7 +9025,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { } /* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { + static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { const int neg_one = (int) -1, const_zero = (int) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 @@ -8936,7 +9214,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { } /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { const long neg_one = (long) -1, const_zero = (long) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { @@ -8967,7 +9245,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { } /* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { + static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { const long neg_one = (long) -1, const_zero = (long) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 @@ -9156,7 +9434,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { } /* FastTypeChecks */ - #if CYTHON_COMPILING_IN_CPYTHON + #if CYTHON_COMPILING_IN_CPYTHON static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { while (a) { a = a->tp_base; @@ -9228,7 +9506,7 @@ static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObj #endif /* CheckBinaryVersion */ - static int __Pyx_check_binary_version(void) { + 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()); @@ -9244,7 +9522,7 @@ static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObj } /* ModuleImport */ - #ifndef __PYX_HAVE_RT_ImportModule + #ifndef __PYX_HAVE_RT_ImportModule #define __PYX_HAVE_RT_ImportModule static PyObject *__Pyx_ImportModule(const char *name) { PyObject *py_name = 0; @@ -9262,7 +9540,7 @@ static PyObject *__Pyx_ImportModule(const char *name) { #endif /* TypeImport */ - #ifndef __PYX_HAVE_RT_ImportType + #ifndef __PYX_HAVE_RT_ImportType #define __PYX_HAVE_RT_ImportType static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict) @@ -9327,7 +9605,7 @@ static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class #endif /* InitStrings */ - static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { + static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { while (t->p) { #if PY_MAJOR_VERSION < 3 if (t->is_unicode) { @@ -9353,7 +9631,7 @@ static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class if (!*t->p) return -1; if (PyObject_Hash(*t->p) == -1) - PyErr_Clear(); + return -1; ++t; } return 0; @@ -9567,6 +9845,9 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { 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); } diff --git a/tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.cpython-35m-darwin.so b/tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.cpython-35m-darwin.so index b35870f311a7410442cdc3163dec018f7736ae9f..ed49cd1de9c5ece45ad8a5d3d1c0d44b19d21ad7 100755 GIT binary patch literal 77004 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 XX{=DY@6xIrO~(H+f2XccmrDN!Lm;Xu literal 68744 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 diff --git a/tierpsy/analysis/stage_aligment/get_mask_diff_var.c b/tierpsy/analysis/stage_aligment/get_mask_diff_var.c index 4b8eba24..47152043 100644 --- a/tierpsy/analysis/stage_aligment/get_mask_diff_var.c +++ b/tierpsy/analysis/stage_aligment/get_mask_diff_var.c @@ -1,9 +1,13 @@ -/* Generated by Cython 0.25.2 */ +/* Generated by Cython 0.28.3 */ /* BEGIN: Cython Metadata { "distutils": { - "depends": [] + "depends": [], + "name": "tierpsy.analysis.stage_aligment.get_mask_diff_var", + "sources": [ + "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx" + ] }, "module_name": "tierpsy.analysis.stage_aligment.get_mask_diff_var" } @@ -13,10 +17,11 @@ END: Cython Metadata */ #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 < 0x03020000) - #error Cython requires Python 2.6+ or Python 3.2+. +#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_25_2" +#define CYTHON_ABI "0_28_3" +#define CYTHON_FUTURE_DIVISION 0 #include #ifndef offsetof #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) @@ -38,8 +43,9 @@ END: Cython Metadata */ #ifndef DL_EXPORT #define DL_EXPORT(t) t #endif +#define __PYX_COMMA , #ifndef HAVE_LONG_LONG - #if PY_VERSION_HEX >= 0x03030000 || (PY_MAJOR_VERSION == 2 && PY_VERSION_HEX >= 0x02070000) + #if PY_VERSION_HEX >= 0x02070000 #define HAVE_LONG_LONG #endif #endif @@ -55,8 +61,14 @@ END: Cython Metadata */ #define CYTHON_COMPILING_IN_CPYTHON 0 #undef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 0 - #undef CYTHON_USE_ASYNC_SLOTS - #define CYTHON_USE_ASYNC_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 @@ -75,6 +87,10 @@ END: Cython Metadata */ #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 #elif defined(PYSTON_VERSION) #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 1 @@ -82,6 +98,8 @@ END: Cython Metadata */ #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 @@ -106,6 +124,10 @@ END: Cython Metadata */ #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 #else #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 0 @@ -113,6 +135,12 @@ END: Cython Metadata */ #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 @@ -152,6 +180,12 @@ END: Cython Metadata */ #ifndef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 1 #endif + #ifndef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT (0 && PY_VERSION_HEX >= 0x03050000) + #endif + #ifndef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) + #endif #endif #if !defined(CYTHON_FAST_PYCCALL) #define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) @@ -162,6 +196,103 @@ END: Cython Metadata */ #undef BASE #undef MASK #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 @@ -190,19 +321,91 @@ END: Cython Metadata */ #ifndef Py_TPFLAGS_HAVE_FINALIZE #define Py_TPFLAGS_HAVE_FINALIZE 0 #endif -#ifndef METH_FASTCALL - #define METH_FASTCALL 0x80 - typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject **args, - Py_ssize_t nargs, PyObject *kwnames); +#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))))) + ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS))))) #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_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; // PyThread_create_key reports success always +} +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 // TSS (Thread Specific Storage) API +#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)) ?\ @@ -247,18 +450,6 @@ END: Cython Metadata */ #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) #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_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 #define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) #define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) #if PY_MAJOR_VERSION >= 3 @@ -275,6 +466,7 @@ END: Cython Metadata */ #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) @@ -286,8 +478,11 @@ END: Cython Metadata */ #ifndef PySet_CheckExact #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) #endif -#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) -#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) +#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 @@ -322,7 +517,7 @@ END: Cython Metadata */ #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) : PyInstanceMethod_New(func)) + #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 @@ -331,68 +526,17 @@ END: Cython Metadata */ #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) #else - typedef struct { - unaryfunc am_await; - unaryfunc am_aiter; - unaryfunc am_anext; - } __Pyx_PyAsyncMethodsStruct; #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) #endif #else #define __Pyx_PyType_AsAsync(obj) NULL #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) - -#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 +#ifndef __Pyx_PyAsyncMethodsStruct + typedef struct { + unaryfunc am_await; + unaryfunc am_aiter; + unaryfunc am_anext; + } __Pyx_PyAsyncMethodsStruct; #endif #if defined(WIN32) || defined(MS_WINDOWS) @@ -420,14 +564,6 @@ static CYTHON_INLINE float __PYX_NAN() { __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ } -#if PY_MAJOR_VERSION >= 3 - #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 - #ifndef __PYX_EXTERN_C #ifdef __cplusplus #define __PYX_EXTERN_C extern "C" @@ -438,16 +574,16 @@ static CYTHON_INLINE float __PYX_NAN() { #define __PYX_HAVE__tierpsy__analysis__stage_aligment__get_mask_diff_var #define __PYX_HAVE_API__tierpsy__analysis__stage_aligment__get_mask_diff_var +/* Early includes */ #include #include -#include #include "numpy/arrayobject.h" #include "numpy/ufuncobject.h" #ifdef _OPENMP #include #endif /* _OPENMP */ -#ifdef PYREX_WITHOUT_ASSERTIONS +#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) #define CYTHON_WITHOUT_ASSERTIONS #endif @@ -478,8 +614,8 @@ typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* enc #define __Pyx_sst_abs(value) abs(value) #elif SIZEOF_LONG >= SIZEOF_SIZE_T #define __Pyx_sst_abs(value) labs(value) -#elif defined (_MSC_VER) && defined (_M_X64) - #define __Pyx_sst_abs(value) _abs64(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__) @@ -487,8 +623,8 @@ typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* enc #else #define __Pyx_sst_abs(value) ((value<0) ? -value : value) #endif -static CYTHON_INLINE char* __Pyx_PyObject_AsString(PyObject*); -static CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); +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 @@ -501,31 +637,37 @@ static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize #endif -#define __Pyx_PyObject_AsSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s)) +#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) -#if PY_MAJOR_VERSION < 3 -static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) -{ +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); } -#else -#define __Pyx_Py_UNICODE_strlen Py_UNICODE_strlen -#endif #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) -#define __Pyx_PyBool_FromLong(b) ((b) ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False)) +static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); static CYTHON_INLINE int __Pyx_PyObject_IsTrue(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 @@ -624,10 +766,12 @@ static int __Pyx_init_sys_getdefaultencoding_params(void) { #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; +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; @@ -701,7 +845,7 @@ typedef struct { } __Pyx_BufFmt_Context; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":725 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":730 * # in Cython to enable them only on the right systems. * * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<< @@ -710,7 +854,7 @@ typedef struct { */ typedef npy_int8 __pyx_t_5numpy_int8_t; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":726 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":731 * * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< @@ -719,7 +863,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; */ typedef npy_int16 __pyx_t_5numpy_int16_t; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":727 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":732 * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<< @@ -728,7 +872,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; */ typedef npy_int32 __pyx_t_5numpy_int32_t; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":728 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":733 * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<< @@ -737,7 +881,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; */ typedef npy_int64 __pyx_t_5numpy_int64_t; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":732 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":737 * #ctypedef npy_int128 int128_t * * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< @@ -746,7 +890,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; */ typedef npy_uint8 __pyx_t_5numpy_uint8_t; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":733 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":738 * * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< @@ -755,7 +899,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; */ typedef npy_uint16 __pyx_t_5numpy_uint16_t; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":734 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":739 * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<< @@ -764,7 +908,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; */ typedef npy_uint32 __pyx_t_5numpy_uint32_t; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":735 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":740 * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<< @@ -773,7 +917,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; */ typedef npy_uint64 __pyx_t_5numpy_uint64_t; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":739 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":744 * #ctypedef npy_uint128 uint128_t * * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< @@ -782,7 +926,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; */ typedef npy_float32 __pyx_t_5numpy_float32_t; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":740 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":745 * * ctypedef npy_float32 float32_t * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< @@ -791,7 +935,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; */ typedef npy_float64 __pyx_t_5numpy_float64_t; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":749 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":754 * # The int types are mapped a bit surprising -- * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t # <<<<<<<<<<<<<< @@ -800,7 +944,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; */ typedef npy_long __pyx_t_5numpy_int_t; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":750 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":755 * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t * ctypedef npy_longlong long_t # <<<<<<<<<<<<<< @@ -809,7 +953,7 @@ typedef npy_long __pyx_t_5numpy_int_t; */ typedef npy_longlong __pyx_t_5numpy_long_t; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":751 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":756 * ctypedef npy_long int_t * ctypedef npy_longlong long_t * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<< @@ -818,7 +962,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; */ typedef npy_longlong __pyx_t_5numpy_longlong_t; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":753 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":758 * ctypedef npy_longlong longlong_t * * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< @@ -827,7 +971,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; */ typedef npy_ulong __pyx_t_5numpy_uint_t; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":754 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":759 * * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< @@ -836,7 +980,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; */ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":755 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":760 * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<< @@ -845,7 +989,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; */ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":757 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":762 * ctypedef npy_ulonglong ulonglong_t * * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< @@ -854,7 +998,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; */ typedef npy_intp __pyx_t_5numpy_intp_t; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":758 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":763 * * ctypedef npy_intp intp_t * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< @@ -863,7 +1007,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; */ typedef npy_uintp __pyx_t_5numpy_uintp_t; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":760 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":765 * ctypedef npy_uintp uintp_t * * ctypedef npy_double float_t # <<<<<<<<<<<<<< @@ -872,7 +1016,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; */ typedef npy_double __pyx_t_5numpy_float_t; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":761 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":766 * * ctypedef npy_double float_t * ctypedef npy_double double_t # <<<<<<<<<<<<<< @@ -881,7 +1025,7 @@ typedef npy_double __pyx_t_5numpy_float_t; */ typedef npy_double __pyx_t_5numpy_double_t; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":762 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":767 * ctypedef npy_double float_t * ctypedef npy_double double_t * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<< @@ -916,7 +1060,7 @@ static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(do /*--- Type declarations ---*/ -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":764 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":769 * ctypedef npy_longdouble longdouble_t * * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< @@ -925,7 +1069,7 @@ static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(do */ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":765 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":770 * * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< @@ -934,7 +1078,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; */ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":766 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":771 * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<< @@ -943,7 +1087,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; */ typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":768 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":773 * ctypedef npy_clongdouble clongdouble_t * * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< @@ -1018,16 +1162,7 @@ typedef npy_cdouble __pyx_t_5numpy_complex_t; /* PyObjectGetAttrStr.proto */ #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); -} +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) #endif @@ -1048,17 +1183,31 @@ static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\ const char* function_name); /* ArgTypeTest.proto */ -static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, - const char *name, int exact); +#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); + +/* IsLittleEndian.proto */ +static CYTHON_INLINE int __Pyx_Is_Little_Endian(void); /* BufferFormatCheck.proto */ -static CYTHON_INLINE int __Pyx_GetBufferAndValidate(Py_buffer* buf, PyObject* obj, - __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack); -static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info); 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); // PROTO + __Pyx_TypeInfo* type); + +/* BufferGetAndValidate.proto */ +#define __Pyx_GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack)\ + ((obj == Py_None || obj == NULL) ?\ + (__Pyx_ZeroBuffer(buf), 0) :\ + __Pyx__GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack)) +static int __Pyx__GetBufferAndValidate(Py_buffer* buf, PyObject* obj, + __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack); +static void __Pyx_ZeroBuffer(Py_buffer* buf); +static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info); +static Py_ssize_t __Pyx_minusones[] = { -1, -1, -1, -1, -1, -1, -1, -1 }; +static Py_ssize_t __Pyx_zeros[] = { 0, 0, 0, 0, 0, 0, 0, 0 }; #define __Pyx_BufPtrStrided2d(type, buf, i0, s0, i1, s1) (type)((char*)buf + i0 * s0 + i1 * s1) /* GetModuleGlobalName.proto */ @@ -1067,23 +1216,35 @@ static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name); /* PyThreadStateGet.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; -#define __Pyx_PyThreadState_assign __pyx_tstate = PyThreadState_GET(); +#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 @@ -1098,25 +1259,41 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg /* RaiseException.proto */ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); +/* 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, int nargs, PyObject *kwargs); +#else +#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) +#endif +#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); + /* DictGetItem.proto */ #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()) { - PyObject* args = PyTuple_Pack(1, key); - if (likely(args)) - PyErr_SetObject(PyExc_KeyError, args); - Py_XDECREF(args); - } - return NULL; - } - Py_INCREF(value); - return value; -} +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_PyDict_GetItem(d, key) PyObject_GetItem(d, key) +#define __Pyx_PyObject_Dict_GetItem(obj, name) PyObject_GetItem(obj, name) #endif /* RaiseTooManyValuesToUnpack.proto */ @@ -1161,6 +1338,13 @@ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); /* Import.proto */ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); +/* 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; @@ -1203,10 +1387,6 @@ typedef struct { #endif -/* None.proto */ -static Py_ssize_t __Pyx_zeros[] = {0, 0, 0, 0, 0, 0, 0, 0}; -static Py_ssize_t __Pyx_minusones[] = {-1, -1, -1, -1, -1, -1, -1, -1}; - /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); @@ -1320,6 +1500,19 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); /* CIntFromPy.proto */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); +/* 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) + /* CheckBinaryVersion.proto */ static int __Pyx_check_binary_version(void); @@ -1359,7 +1552,7 @@ static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0; /* Module declarations from 'cpython.ref' */ -/* Module declarations from 'libc.stdlib' */ +/* Module declarations from 'cpython.mem' */ /* Module declarations from 'numpy' */ @@ -1376,6 +1569,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *, cha /* Module declarations from 'tierpsy.analysis.stage_aligment.get_mask_diff_var' */ static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t = { "uint8_t", NULL, sizeof(__pyx_t_5numpy_uint8_t), { 0 }, 0, IS_UNSIGNED(__pyx_t_5numpy_uint8_t) ? 'U' : 'I', IS_UNSIGNED(__pyx_t_5numpy_uint8_t), 0 }; #define __Pyx_MODULE_NAME "tierpsy.analysis.stage_aligment.get_mask_diff_var" +extern int __pyx_module_is_main_tierpsy__analysis__stage_aligment__get_mask_diff_var; int __pyx_module_is_main_tierpsy__analysis__stage_aligment__get_mask_diff_var = 0; /* Implementation of 'tierpsy.analysis.stage_aligment.get_mask_diff_var' */ @@ -1406,23 +1600,24 @@ static const char __pyx_k_ValueError[] = "ValueError"; static const char __pyx_k_ImportError[] = "ImportError"; static const char __pyx_k_RuntimeError[] = "RuntimeError"; static const char __pyx_k_get_mask_diff_var[] = "get_mask_diff_var"; +static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; -static const char __pyx_k_Users_ajaver_Documents_GitHub_t[] = "/Users/ajaver/Documents/GitHub/tierpsy-tracker/tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx"; static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import"; -static const char __pyx_k_tierpsy_analysis_stage_aligment[] = "tierpsy.analysis.stage_aligment.get_mask_diff_var"; +static const char __pyx_k_tierpsy_analysis_stage_aligment[] = "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx"; static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%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_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; +static const char __pyx_k_tierpsy_analysis_stage_aligment_2[] = "tierpsy.analysis.stage_aligment.get_mask_diff_var"; static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; static PyObject *__pyx_n_s_ImportError; static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; static PyObject *__pyx_n_s_RuntimeError; -static PyObject *__pyx_kp_s_Users_ajaver_Documents_GitHub_t; static PyObject *__pyx_n_s_ValueError; +static PyObject *__pyx_n_s_cline_in_traceback; static PyObject *__pyx_n_s_f; static PyObject *__pyx_n_s_g; static PyObject *__pyx_n_s_get_mask_diff_var; @@ -1445,7 +1640,8 @@ static PyObject *__pyx_n_s_pix_diff; static PyObject *__pyx_n_s_range; static PyObject *__pyx_n_s_sum_x2; static PyObject *__pyx_n_s_test; -static PyObject *__pyx_n_s_tierpsy_analysis_stage_aligment; +static PyObject *__pyx_kp_s_tierpsy_analysis_stage_aligment; +static PyObject *__pyx_n_s_tierpsy_analysis_stage_aligment_2; static PyObject *__pyx_n_s_tot_valid; static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; static PyObject *__pyx_n_s_var_diff; @@ -1463,6 +1659,7 @@ static PyObject *__pyx_tuple__8; static PyObject *__pyx_tuple__9; static PyObject *__pyx_tuple__10; static PyObject *__pyx_codeobj__11; +/* Late includes */ /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":7 * @cython.boundscheck(False) @@ -1489,17 +1686,20 @@ static PyObject *__pyx_pw_7tierpsy_8analysis_14stage_aligment_17get_mask_diff_va 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] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_g)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_g)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("get_mask_diff_var", 1, 2, 2, 1); __PYX_ERR(0, 7, __pyx_L3_error) } @@ -1558,17 +1758,19 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_14stage_aligment_17get_mask_diff_va int __pyx_t_3; int __pyx_t_4; int __pyx_t_5; - Py_ssize_t __pyx_t_6; - Py_ssize_t __pyx_t_7; - int __pyx_t_8; + int __pyx_t_6; + int __pyx_t_7; + Py_ssize_t __pyx_t_8; Py_ssize_t __pyx_t_9; - Py_ssize_t __pyx_t_10; + int __pyx_t_10; Py_ssize_t __pyx_t_11; Py_ssize_t __pyx_t_12; Py_ssize_t __pyx_t_13; Py_ssize_t __pyx_t_14; - PyObject *__pyx_t_15 = NULL; - PyObject *__pyx_t_16 = NULL; + Py_ssize_t __pyx_t_15; + Py_ssize_t __pyx_t_16; + PyObject *__pyx_t_17 = NULL; + PyObject *__pyx_t_18 = NULL; __Pyx_RefNannySetupContext("get_mask_diff_var", 0); __pyx_pybuffer_f.pybuffer.buf = NULL; __pyx_pybuffer_f.refcount = 0; @@ -1651,8 +1853,9 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_14stage_aligment_17get_mask_diff_va * if ( f[i,j] != 0 ) and ( g[i,j] != 0 ): */ __pyx_t_1 = __pyx_v_n_row; - for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) { - __pyx_v_i = __pyx_t_2; + __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; /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":20 * @@ -1661,9 +1864,10 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_14stage_aligment_17get_mask_diff_va * if ( f[i,j] != 0 ) and ( g[i,j] != 0 ): * pix_diff = f[i,j] - g[i,j]; */ - __pyx_t_3 = __pyx_v_n_col; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_j = __pyx_t_4; + __pyx_t_4 = __pyx_v_n_col; + __pyx_t_5 = __pyx_t_4; + for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { + __pyx_v_j = __pyx_t_6; /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":21 * for i in range(n_row): @@ -1672,20 +1876,20 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_14stage_aligment_17get_mask_diff_va * pix_diff = f[i,j] - g[i,j]; * mean_x += pix_diff; */ - __pyx_t_6 = __pyx_v_i; - __pyx_t_7 = __pyx_v_j; - __pyx_t_8 = (((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_f.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_f.diminfo[0].strides, __pyx_t_7, __pyx_pybuffernd_f.diminfo[1].strides)) != 0) != 0); - if (__pyx_t_8) { + __pyx_t_8 = __pyx_v_i; + __pyx_t_9 = __pyx_v_j; + __pyx_t_10 = (((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_f.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_f.diminfo[0].strides, __pyx_t_9, __pyx_pybuffernd_f.diminfo[1].strides)) != 0) != 0); + if (__pyx_t_10) { } else { - __pyx_t_5 = __pyx_t_8; + __pyx_t_7 = __pyx_t_10; goto __pyx_L8_bool_binop_done; } - __pyx_t_9 = __pyx_v_i; - __pyx_t_10 = __pyx_v_j; - __pyx_t_8 = (((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_g.rcbuffer->pybuffer.buf, __pyx_t_9, __pyx_pybuffernd_g.diminfo[0].strides, __pyx_t_10, __pyx_pybuffernd_g.diminfo[1].strides)) != 0) != 0); - __pyx_t_5 = __pyx_t_8; + __pyx_t_11 = __pyx_v_i; + __pyx_t_12 = __pyx_v_j; + __pyx_t_10 = (((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_g.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_g.diminfo[0].strides, __pyx_t_12, __pyx_pybuffernd_g.diminfo[1].strides)) != 0) != 0); + __pyx_t_7 = __pyx_t_10; __pyx_L8_bool_binop_done:; - if (__pyx_t_5) { + if (__pyx_t_7) { /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":22 * for j in range(n_col): @@ -1694,11 +1898,11 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_14stage_aligment_17get_mask_diff_va * mean_x += pix_diff; * sum_x2 += pix_diff*pix_diff; */ - __pyx_t_11 = __pyx_v_i; - __pyx_t_12 = __pyx_v_j; __pyx_t_13 = __pyx_v_i; __pyx_t_14 = __pyx_v_j; - __pyx_v_pix_diff = (((double)(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_f.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_f.diminfo[0].strides, __pyx_t_12, __pyx_pybuffernd_f.diminfo[1].strides))) - ((double)(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_g.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_g.diminfo[0].strides, __pyx_t_14, __pyx_pybuffernd_g.diminfo[1].strides)))); + __pyx_t_15 = __pyx_v_i; + __pyx_t_16 = __pyx_v_j; + __pyx_v_pix_diff = (((double)(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_f.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_f.diminfo[0].strides, __pyx_t_14, __pyx_pybuffernd_f.diminfo[1].strides))) - ((double)(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_g.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_g.diminfo[0].strides, __pyx_t_16, __pyx_pybuffernd_g.diminfo[1].strides)))); /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":23 * if ( f[i,j] != 0 ) and ( g[i,j] != 0 ): @@ -1745,8 +1949,8 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_14stage_aligment_17get_mask_diff_va * mean_x /= tot_valid; * var_diff = sum_x2/tot_valid - mean_x*mean_x; */ - __pyx_t_5 = ((__pyx_v_tot_valid > 0.0) != 0); - if (__pyx_t_5) { + __pyx_t_7 = ((__pyx_v_tot_valid > 0.0) != 0); + if (__pyx_t_7) { /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":28 * #print tot_pix @@ -1782,10 +1986,10 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_14stage_aligment_17get_mask_diff_va * return np.nan; */ __Pyx_XDECREF(__pyx_r); - __pyx_t_15 = PyFloat_FromDouble(__pyx_v_var_diff); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 30, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_r = __pyx_t_15; - __pyx_t_15 = 0; + __pyx_t_17 = PyFloat_FromDouble(__pyx_v_var_diff); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 30, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); + __pyx_r = __pyx_t_17; + __pyx_t_17 = 0; goto __pyx_L0; /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":27 @@ -1805,13 +2009,13 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_14stage_aligment_17get_mask_diff_va */ /*else*/ { __Pyx_XDECREF(__pyx_r); - __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 32, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_nan); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 32, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_r = __pyx_t_16; - __pyx_t_16 = 0; + __pyx_t_17 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); + __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_nan); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + __pyx_r = __pyx_t_18; + __pyx_t_18 = 0; goto __pyx_L0; } @@ -1825,8 +2029,8 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_14stage_aligment_17get_mask_diff_va /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_15); - __Pyx_XDECREF(__pyx_t_16); + __Pyx_XDECREF(__pyx_t_17); + __Pyx_XDECREF(__pyx_t_18); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign @@ -1846,12 +2050,12 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_14stage_aligment_17get_mask_diff_va return __pyx_r; } -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":197 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 * # 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 fullfill the PEP. + * # requirements, and does not yet fulfill the PEP. */ /* Python wrapper */ @@ -1868,7 +2072,6 @@ static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx } static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { - int __pyx_v_copy_shape; int __pyx_v_i; int __pyx_v_ndim; int __pyx_v_endian_detector; @@ -1877,7 +2080,6 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P char *__pyx_v_f; PyArray_Descr *__pyx_v_descr = 0; int __pyx_v_offset; - int __pyx_v_hasfields; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; @@ -1885,38 +2087,28 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_t_5; - PyObject *__pyx_t_6 = NULL; - char *__pyx_t_7; - __Pyx_RefNannySetupContext("__getbuffer__", 0); - if (__pyx_v_info != NULL) { - __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(__pyx_v_info->obj); - } - - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":203 - * # of flags - * - * if info == NULL: return # <<<<<<<<<<<<<< - * - * cdef int copy_shape, i, ndim - */ - __pyx_t_1 = ((__pyx_v_info == NULL) != 0); - if (__pyx_t_1) { - __pyx_r = 0; - goto __pyx_L0; + int __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + char *__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); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":206 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":222 * - * cdef int copy_shape, i, ndim + * cdef int i, ndim * cdef int endian_detector = 1 # <<<<<<<<<<<<<< * cdef bint little_endian = ((&endian_detector)[0] != 0) * */ __pyx_v_endian_detector = 1; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":207 - * cdef int copy_shape, i, ndim + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":223 + * cdef int i, ndim * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< * @@ -1924,59 +2116,18 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":209 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":225 * cdef bint little_endian = ((&endian_detector)[0] != 0) * * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): + * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) */ __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":211 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 * ndim = PyArray_NDIM(self) * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< - * copy_shape = 1 - * else: - */ - __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); - if (__pyx_t_1) { - - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":212 - * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): - * copy_shape = 1 # <<<<<<<<<<<<<< - * else: - * copy_shape = 0 - */ - __pyx_v_copy_shape = 1; - - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":211 - * ndim = PyArray_NDIM(self) - * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< - * copy_shape = 1 - * else: - */ - goto __pyx_L4; - } - - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":214 - * copy_shape = 1 - * else: - * copy_shape = 0 # <<<<<<<<<<<<<< - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - */ - /*else*/ { - __pyx_v_copy_shape = 0; - } - __pyx_L4:; - - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":216 - * copy_shape = 0 - * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") @@ -1985,10 +2136,10 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; - goto __pyx_L6_bool_binop_done; + goto __pyx_L4_bool_binop_done; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":217 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":228 * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< @@ -1997,32 +2148,32 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_C_CONTIGUOUS) != 0)) != 0); __pyx_t_1 = __pyx_t_2; - __pyx_L6_bool_binop_done:; + __pyx_L4_bool_binop_done:; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":216 - * copy_shape = 0 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 + * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") */ - if (__pyx_t_1) { + if (unlikely(__pyx_t_1)) { - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":218 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_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_, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 218, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 229, __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, 218, __pyx_L1_error) + __PYX_ERR(1, 229, __pyx_L1_error) - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":216 - * copy_shape = 0 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 + * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): @@ -2030,7 +2181,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":220 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -2041,10 +2192,10 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; - goto __pyx_L9_bool_binop_done; + goto __pyx_L7_bool_binop_done; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":221 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":232 * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< @@ -2053,31 +2204,31 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_F_CONTIGUOUS) != 0)) != 0); __pyx_t_1 = __pyx_t_2; - __pyx_L9_bool_binop_done:; + __pyx_L7_bool_binop_done:; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":220 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") */ - if (__pyx_t_1) { + if (unlikely(__pyx_t_1)) { - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":222 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_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__2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 222, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 233, __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, 222, __pyx_L1_error) + __PYX_ERR(1, 233, __pyx_L1_error) - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":220 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -2086,64 +2237,65 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":224 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":235 * raise ValueError(u"ndarray is not Fortran contiguous") * * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< * info.ndim = ndim - * if copy_shape: + * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":225 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":236 * * info.buf = PyArray_DATA(self) * info.ndim = ndim # <<<<<<<<<<<<<< - * if copy_shape: + * if sizeof(npy_intp) != sizeof(Py_ssize_t): * # Allocate new buffer for strides and shape info. */ __pyx_v_info->ndim = __pyx_v_ndim; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":226 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 * info.buf = PyArray_DATA(self) * info.ndim = ndim - * if copy_shape: # <<<<<<<<<<<<<< + * 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 = (__pyx_v_copy_shape != 0); + __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":229 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":240 * # Allocate new buffer for strides and shape info. * # This is allocated as one block, strides first. - * info.strides = stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2) # <<<<<<<<<<<<<< + * 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 *)malloc((((sizeof(Py_ssize_t)) * ((size_t)__pyx_v_ndim)) * 2))); + __pyx_v_info->strides = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * 2) * ((size_t)__pyx_v_ndim)))); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":230 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":241 * # This is allocated as one block, strides first. - * info.strides = stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2) + * 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); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":231 - * info.strides = stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2) + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":242 + * 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; - for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { - __pyx_v_i = __pyx_t_5; + __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; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":232 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":243 * info.shape = info.strides + ndim * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] # <<<<<<<<<<<<<< @@ -2152,7 +2304,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(__pyx_v_self)[__pyx_v_i]); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":233 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":244 * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] * info.shape[i] = PyArray_DIMS(self)[i] # <<<<<<<<<<<<<< @@ -2162,17 +2314,17 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":226 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 * info.buf = PyArray_DATA(self) * info.ndim = ndim - * if copy_shape: # <<<<<<<<<<<<<< + * 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_L11; + goto __pyx_L9; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":235 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":246 * info.shape[i] = PyArray_DIMS(self)[i] * else: * info.strides = PyArray_STRIDES(self) # <<<<<<<<<<<<<< @@ -2182,7 +2334,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P /*else*/ { __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":236 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":247 * else: * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) # <<<<<<<<<<<<<< @@ -2191,9 +2343,9 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self)); } - __pyx_L11:; + __pyx_L9:; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":237 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":248 * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL # <<<<<<<<<<<<<< @@ -2202,7 +2354,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->suboffsets = NULL; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":238 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":249 * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) # <<<<<<<<<<<<<< @@ -2211,7 +2363,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":239 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":250 * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< @@ -2220,7 +2372,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":242 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":253 * * cdef int t * cdef char* f = NULL # <<<<<<<<<<<<<< @@ -2229,7 +2381,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_f = NULL; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":243 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":254 * cdef int t * cdef char* f = NULL * cdef dtype descr = self.descr # <<<<<<<<<<<<<< @@ -2241,85 +2393,32 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); __pyx_t_3 = 0; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":246 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":257 * cdef int offset * - * cdef bint hasfields = PyDataType_HASFIELDS(descr) # <<<<<<<<<<<<<< - * - * if not hasfields and not copy_shape: - */ - __pyx_v_hasfields = PyDataType_HASFIELDS(__pyx_v_descr); - - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":248 - * cdef bint hasfields = PyDataType_HASFIELDS(descr) + * info.obj = self # <<<<<<<<<<<<<< * - * if not hasfields and not copy_shape: # <<<<<<<<<<<<<< - * # do not call releasebuffer - * info.obj = None - */ - __pyx_t_2 = ((!(__pyx_v_hasfields != 0)) != 0); - if (__pyx_t_2) { - } else { - __pyx_t_1 = __pyx_t_2; - goto __pyx_L15_bool_binop_done; - } - __pyx_t_2 = ((!(__pyx_v_copy_shape != 0)) != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L15_bool_binop_done:; - if (__pyx_t_1) { - - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":250 - * if not hasfields and not copy_shape: - * # do not call releasebuffer - * info.obj = None # <<<<<<<<<<<<<< - * else: - * # need to call releasebuffer + * if not PyDataType_HASFIELDS(descr): */ - __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(Py_None); - __Pyx_GOTREF(__pyx_v_info->obj); - __Pyx_DECREF(__pyx_v_info->obj); - __pyx_v_info->obj = Py_None; + __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); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":248 - * cdef bint hasfields = PyDataType_HASFIELDS(descr) + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 + * info.obj = self * - * if not hasfields and not copy_shape: # <<<<<<<<<<<<<< - * # do not call releasebuffer - * info.obj = None - */ - goto __pyx_L14; - } - - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":253 - * else: - * # need to call releasebuffer - * info.obj = self # <<<<<<<<<<<<<< - * - * if not hasfields: - */ - /*else*/ { - __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); - } - __pyx_L14:; - - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":255 - * info.obj = self - * - * if not hasfields: # <<<<<<<<<<<<<< + * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or */ - __pyx_t_1 = ((!(__pyx_v_hasfields != 0)) != 0); + __pyx_t_1 = ((!(PyDataType_HASFIELDS(__pyx_v_descr) != 0)) != 0); if (__pyx_t_1) { - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":256 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":260 * - * if not hasfields: + * if not PyDataType_HASFIELDS(descr): * t = descr.type_num # <<<<<<<<<<<<<< * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): @@ -2327,8 +2426,8 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_4 = __pyx_v_descr->type_num; __pyx_v_t = __pyx_t_4; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":257 - * if not hasfields: + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): @@ -2336,18 +2435,18 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_t_2 = ((__pyx_v_descr->byteorder == '>') != 0); if (!__pyx_t_2) { - goto __pyx_L20_next_or; + 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_L19_bool_binop_done; + goto __pyx_L14_bool_binop_done; } - __pyx_L20_next_or:; + __pyx_L15_next_or:; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":258 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":262 * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< @@ -2358,36 +2457,36 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; - goto __pyx_L19_bool_binop_done; + goto __pyx_L14_bool_binop_done; } __pyx_t_2 = ((!(__pyx_v_little_endian != 0)) != 0); __pyx_t_1 = __pyx_t_2; - __pyx_L19_bool_binop_done:; + __pyx_L14_bool_binop_done:; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":257 - * if not hasfields: + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + * 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 (__pyx_t_1) { + if (unlikely(__pyx_t_1)) { - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":259 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 * 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__3, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 259, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 263, __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, 259, __pyx_L1_error) + __PYX_ERR(1, 263, __pyx_L1_error) - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":257 - * if not hasfields: + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): @@ -2395,7 +2494,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":260 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":264 * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" # <<<<<<<<<<<<<< @@ -2407,7 +2506,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"b"); break; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":261 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":265 * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" # <<<<<<<<<<<<<< @@ -2418,7 +2517,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"B"); break; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":262 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":266 * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" # <<<<<<<<<<<<<< @@ -2429,7 +2528,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"h"); break; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":263 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":267 * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" # <<<<<<<<<<<<<< @@ -2440,7 +2539,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"H"); break; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":264 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":268 * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" # <<<<<<<<<<<<<< @@ -2451,7 +2550,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"i"); break; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":265 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":269 * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" # <<<<<<<<<<<<<< @@ -2462,7 +2561,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"I"); break; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":266 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":270 * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" # <<<<<<<<<<<<<< @@ -2473,7 +2572,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"l"); break; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":267 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":271 * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" # <<<<<<<<<<<<<< @@ -2484,7 +2583,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"L"); break; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":268 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":272 * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" # <<<<<<<<<<<<<< @@ -2495,7 +2594,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"q"); break; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":269 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":273 * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" # <<<<<<<<<<<<<< @@ -2506,7 +2605,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Q"); break; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":270 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":274 * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" # <<<<<<<<<<<<<< @@ -2517,7 +2616,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"f"); break; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":271 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":275 * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" # <<<<<<<<<<<<<< @@ -2528,7 +2627,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"d"); break; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":272 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":276 * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" # <<<<<<<<<<<<<< @@ -2539,7 +2638,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"g"); break; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":273 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":277 * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" # <<<<<<<<<<<<<< @@ -2550,7 +2649,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zf"); break; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":274 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":278 * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" # <<<<<<<<<<<<<< @@ -2561,7 +2660,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zd"); break; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":275 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":279 * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" # <<<<<<<<<<<<<< @@ -2572,7 +2671,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zg"); break; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":276 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":280 * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" * elif t == NPY_OBJECT: f = "O" # <<<<<<<<<<<<<< @@ -2584,33 +2683,28 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P break; default: - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":278 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":282 * 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, 278, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 278, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 278, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_6); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 278, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_Raise(__pyx_t_6, 0, 0, 0); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __PYX_ERR(1, 278, __pyx_L1_error) + __PYX_ERR(1, 282, __pyx_L1_error) break; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":279 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":283 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f # <<<<<<<<<<<<<< @@ -2619,46 +2713,46 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->format = __pyx_v_f; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":280 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":284 * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f * return # <<<<<<<<<<<<<< * else: - * info.format = stdlib.malloc(_buffer_format_string_len) + * info.format = PyObject_Malloc(_buffer_format_string_len) */ __pyx_r = 0; goto __pyx_L0; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":255 - * info.obj = self + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 + * info.obj = self * - * if not hasfields: # <<<<<<<<<<<<<< + * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or */ } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":282 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":286 * return * else: - * info.format = stdlib.malloc(_buffer_format_string_len) # <<<<<<<<<<<<<< + * 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 *)malloc(0xFF)); + __pyx_v_info->format = ((char *)PyObject_Malloc(0xFF)); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":283 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":287 * else: - * info.format = stdlib.malloc(_buffer_format_string_len) + * 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]) = '^'; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":284 - * info.format = stdlib.malloc(_buffer_format_string_len) + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":288 + * 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, @@ -2666,17 +2760,17 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_offset = 0; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":285 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":289 * 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_7 = __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_7 == NULL)) __PYX_ERR(1, 285, __pyx_L1_error) - __pyx_v_f = __pyx_t_7; + __pyx_t_8 = __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_8 == ((char *)NULL))) __PYX_ERR(1, 289, __pyx_L1_error) + __pyx_v_f = __pyx_t_8; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":288 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":292 * info.format + _buffer_format_string_len, * &offset) * f[0] = c'\0' # Terminate format string # <<<<<<<<<<<<<< @@ -2686,12 +2780,12 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P (__pyx_v_f[0]) = '\x00'; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":197 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 * # 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 fullfill the PEP. + * # requirements, and does not yet fulfill the PEP. */ /* function exit code */ @@ -2699,18 +2793,18 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("numpy.ndarray.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; - if (__pyx_v_info != NULL && __pyx_v_info->obj != NULL) { + if (__pyx_v_info->obj != NULL) { __Pyx_GOTREF(__pyx_v_info->obj); - __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = NULL; + __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } goto __pyx_L2; __pyx_L0:; - if (__pyx_v_info != NULL && __pyx_v_info->obj == Py_None) { - __Pyx_GOTREF(Py_None); - __Pyx_DECREF(Py_None); __pyx_v_info->obj = NULL; + 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); @@ -2718,12 +2812,12 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P return __pyx_r; } -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":290 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< * if PyArray_HASFIELDS(self): - * stdlib.free(info.format) + * PyObject_Free(info.format) */ /* Python wrapper */ @@ -2742,75 +2836,75 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s int __pyx_t_1; __Pyx_RefNannySetupContext("__releasebuffer__", 0); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":291 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< - * stdlib.free(info.format) + * 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) { - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":292 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":296 * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): - * stdlib.free(info.format) # <<<<<<<<<<<<<< + * PyObject_Free(info.format) # <<<<<<<<<<<<<< * if sizeof(npy_intp) != sizeof(Py_ssize_t): - * stdlib.free(info.strides) + * PyObject_Free(info.strides) */ - free(__pyx_v_info->format); + PyObject_Free(__pyx_v_info->format); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":291 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< - * stdlib.free(info.format) + * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":293 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 * if PyArray_HASFIELDS(self): - * stdlib.free(info.format) + * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< - * stdlib.free(info.strides) + * 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) { - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":294 - * stdlib.free(info.format) + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":298 + * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): - * stdlib.free(info.strides) # <<<<<<<<<<<<<< + * PyObject_Free(info.strides) # <<<<<<<<<<<<<< * # info.shape was stored after info.strides in the same block * */ - free(__pyx_v_info->strides); + PyObject_Free(__pyx_v_info->strides); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":293 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 * if PyArray_HASFIELDS(self): - * stdlib.free(info.format) + * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< - * stdlib.free(info.strides) + * PyObject_Free(info.strides) * # info.shape was stored after info.strides in the same block */ } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":290 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< * if PyArray_HASFIELDS(self): - * stdlib.free(info.format) + * PyObject_Free(info.format) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":770 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< @@ -2824,7 +2918,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":771 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":776 * * cdef inline object PyArray_MultiIterNew1(a): * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< @@ -2832,13 +2926,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ * 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, 771, __pyx_L1_error) + __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":770 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< @@ -2857,7 +2951,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ return __pyx_r; } -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":773 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< @@ -2871,7 +2965,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":774 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":779 * * cdef inline object PyArray_MultiIterNew2(a, b): * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< @@ -2879,13 +2973,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ * 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, 774, __pyx_L1_error) + __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":773 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< @@ -2904,7 +2998,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ return __pyx_r; } -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":776 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< @@ -2918,7 +3012,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":777 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":782 * * cdef inline object PyArray_MultiIterNew3(a, b, c): * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< @@ -2926,13 +3020,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ * 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, 777, __pyx_L1_error) + __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, 782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":776 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< @@ -2951,7 +3045,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ return __pyx_r; } -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":779 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< @@ -2965,7 +3059,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":780 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":785 * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< @@ -2973,13 +3067,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ * 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, 780, __pyx_L1_error) + __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, 785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":779 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< @@ -2998,7 +3092,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ return __pyx_r; } -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":782 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< @@ -3012,21 +3106,21 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":783 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":788 * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<< * - * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: + * 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, 783, __pyx_L1_error) + __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, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":782 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< @@ -3045,9 +3139,83 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ return __pyx_r; } -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":785 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 + * 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/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 + * + * 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/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":792 + * 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/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 + * + * cdef inline tuple PyDataType_SHAPE(dtype d): + * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< + * return d.subarray.shape + * else: + */ + } + + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":794 + * 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/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 * 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/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 + * 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. @@ -3074,7 +3242,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx char *__pyx_t_9; __Pyx_RefNannySetupContext("_util_dtypestring", 0); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":790 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":801 * * cdef dtype child * cdef int endian_detector = 1 # <<<<<<<<<<<<<< @@ -3083,7 +3251,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_endian_detector = 1; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":791 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":802 * cdef dtype child * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< @@ -3092,7 +3260,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":794 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< @@ -3101,21 +3269,21 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ if (unlikely(__pyx_v_descr->names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(1, 794, __pyx_L1_error) + __PYX_ERR(1, 805, __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, 794, __pyx_L1_error) + __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, 805, __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, 794, __pyx_L1_error) + __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); __pyx_t_3 = 0; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":795 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":806 * * for childname in descr.names: * fields = descr.fields[childname] # <<<<<<<<<<<<<< @@ -3124,15 +3292,15 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ if (unlikely(__pyx_v_descr->fields == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 795, __pyx_L1_error) + __PYX_ERR(1, 806, __pyx_L1_error) } - __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 795, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 806, __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, 795, __pyx_L1_error) + 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, 806, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":796 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":807 * for childname in descr.names: * fields = descr.fields[childname] * child, new_offset = fields # <<<<<<<<<<<<<< @@ -3141,15 +3309,11 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ if (likely(__pyx_v_fields != Py_None)) { PyObject* sequence = __pyx_v_fields; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + 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, 796, __pyx_L1_error) + __PYX_ERR(1, 807, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); @@ -3157,51 +3321,51 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __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, 796, __pyx_L1_error) + __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 796, __pyx_L1_error) + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { - __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 796, __pyx_L1_error) + __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 807, __pyx_L1_error) } - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(1, 796, __pyx_L1_error) + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(1, 807, __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; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":798 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 * 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, 798, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 809, __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, 798, __pyx_L1_error) + __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 809, __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, 798, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 809, __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 (__pyx_t_6) { + if (unlikely(__pyx_t_6)) { - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":799 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 * * 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__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 799, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 810, __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, 799, __pyx_L1_error) + __PYX_ERR(1, 810, __pyx_L1_error) - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":798 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< @@ -3210,7 +3374,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":801 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -3230,7 +3394,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __pyx_L8_next_or:; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":802 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":813 * * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< @@ -3247,29 +3411,29 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = __pyx_t_7; __pyx_L7_bool_binop_done:; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":801 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * 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 (__pyx_t_6) { + if (unlikely(__pyx_t_6)) { - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":803 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 * 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__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 803, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 814, __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, 803, __pyx_L1_error) + __PYX_ERR(1, 814, __pyx_L1_error) - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":801 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -3278,7 +3442,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":813 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":824 * * # Output padding bytes * while offset[0] < new_offset: # <<<<<<<<<<<<<< @@ -3286,15 +3450,15 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx * f += 1 */ while (1) { - __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 813, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 824, __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, 813, __pyx_L1_error) + __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, 824, __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, 813, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 824, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_6) break; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":814 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":825 * # Output padding bytes * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< @@ -3303,7 +3467,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ (__pyx_v_f[0]) = 0x78; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":815 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":826 * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte * f += 1 # <<<<<<<<<<<<<< @@ -3312,7 +3476,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_f = (__pyx_v_f + 1); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":816 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":827 * f[0] = 120 # "x"; pad byte * f += 1 * offset[0] += 1 # <<<<<<<<<<<<<< @@ -3323,7 +3487,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":818 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":829 * offset[0] += 1 * * offset[0] += child.itemsize # <<<<<<<<<<<<<< @@ -3333,7 +3497,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_8 = 0; (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":820 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< @@ -3343,19 +3507,19 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); if (__pyx_t_6) { - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":821 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":832 * * 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, 821, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 832, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); __pyx_t_4 = 0; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":822 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< @@ -3363,22 +3527,22 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx * */ __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); - if (__pyx_t_6) { + if (unlikely(__pyx_t_6)) { - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":823 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 * 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__6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 823, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 834, __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, 823, __pyx_L1_error) + __PYX_ERR(1, 834, __pyx_L1_error) - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":822 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< @@ -3387,252 +3551,252 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":826 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":837 * * # 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, 826, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 837, __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, 826, __pyx_L1_error) + __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, 837, __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, 826, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 837, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 98; goto __pyx_L15; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":827 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":838 * # 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, 827, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 838, __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, 827, __pyx_L1_error) + __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, 838, __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, 827, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 838, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 66; goto __pyx_L15; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":828 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":839 * 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, 828, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 839, __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, 828, __pyx_L1_error) + __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, 839, __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, 828, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 839, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x68; goto __pyx_L15; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":829 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":840 * 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, 829, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 840, __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, 829, __pyx_L1_error) + __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, 840, __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, 829, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 840, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 72; goto __pyx_L15; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":830 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":841 * 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, 830, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 841, __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, 830, __pyx_L1_error) + __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, 841, __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, 830, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 841, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x69; goto __pyx_L15; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":831 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":842 * 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, 831, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 842, __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, 831, __pyx_L1_error) + __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, 842, __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, 831, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 842, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 73; goto __pyx_L15; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":832 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":843 * 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, 832, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 843, __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, 832, __pyx_L1_error) + __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, 843, __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, 832, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 843, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x6C; goto __pyx_L15; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":833 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":844 * 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, 833, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 844, __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, 833, __pyx_L1_error) + __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, 844, __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, 833, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 844, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 76; goto __pyx_L15; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":834 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":845 * 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, 834, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 845, __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, 834, __pyx_L1_error) + __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, 845, __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, 834, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 845, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x71; goto __pyx_L15; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":835 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":846 * 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, 835, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 846, __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, 835, __pyx_L1_error) + __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, 846, __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, 835, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 846, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 81; goto __pyx_L15; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":836 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":847 * 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, 836, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 847, __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, 836, __pyx_L1_error) + __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, 847, __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, 836, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 847, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x66; goto __pyx_L15; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":837 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":848 * 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, 837, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 848, __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, 837, __pyx_L1_error) + __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, 848, __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, 837, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 848, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x64; goto __pyx_L15; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":838 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":849 * 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, 838, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 849, __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, 838, __pyx_L1_error) + __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, 849, __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, 838, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 849, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x67; goto __pyx_L15; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":839 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":850 * 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, 839, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 850, __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, 839, __pyx_L1_error) + __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, 850, __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, 839, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 850, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; @@ -3641,18 +3805,18 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":840 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":851 * 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, 840, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 851, __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, 840, __pyx_L1_error) + __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, 851, __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, 840, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 851, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; @@ -3661,18 +3825,18 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":841 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":852 * 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, 841, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 852, __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, 841, __pyx_L1_error) + __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, 852, __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, 841, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 852, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; @@ -3681,25 +3845,25 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":842 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":853 * 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, 842, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 853, __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, 842, __pyx_L1_error) + __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, 853, __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, 842, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 853, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { + if (likely(__pyx_t_6)) { (__pyx_v_f[0]) = 79; goto __pyx_L15; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":844 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":855 * elif t == NPY_OBJECT: f[0] = 79 #"O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< @@ -3707,23 +3871,18 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx * else: */ /*else*/ { - __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 844, __pyx_L1_error) + __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 844, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 855, __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_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 844, __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, 844, __pyx_L1_error) + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(1, 855, __pyx_L1_error) } __pyx_L15:; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":845 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":856 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * f += 1 # <<<<<<<<<<<<<< @@ -3732,7 +3891,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_f = (__pyx_v_f + 1); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":820 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< @@ -3742,7 +3901,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L13; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":849 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":860 * # Cython ignores struct boundary information ("T{...}"), * # so don't output it * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< @@ -3750,12 +3909,12 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx * */ /*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 == NULL)) __PYX_ERR(1, 849, __pyx_L1_error) + __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, 860, __pyx_L1_error) __pyx_v_f = __pyx_t_9; } __pyx_L13:; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":794 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< @@ -3765,7 +3924,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":850 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":861 * # so don't output it * f = _util_dtypestring(child, f, end, offset) * return f # <<<<<<<<<<<<<< @@ -3775,8 +3934,8 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_r = __pyx_v_f; goto __pyx_L0; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":785 - * return PyArray_MultiIterNew(5, a, b, c, d, e) + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 + * 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 @@ -3800,7 +3959,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx return __pyx_r; } -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":966 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 * * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< @@ -3815,7 +3974,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a int __pyx_t_2; __Pyx_RefNannySetupContext("set_array_base", 0); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":968 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 * cdef inline void set_array_base(ndarray arr, object base): * cdef PyObject* baseptr * if base is None: # <<<<<<<<<<<<<< @@ -3826,7 +3985,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":969 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":980 * cdef PyObject* baseptr * if base is None: * baseptr = NULL # <<<<<<<<<<<<<< @@ -3835,7 +3994,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ __pyx_v_baseptr = NULL; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":968 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 * cdef inline void set_array_base(ndarray arr, object base): * cdef PyObject* baseptr * if base is None: # <<<<<<<<<<<<<< @@ -3845,7 +4004,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a goto __pyx_L3; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":971 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":982 * baseptr = NULL * else: * Py_INCREF(base) # important to do this before decref below! # <<<<<<<<<<<<<< @@ -3855,7 +4014,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a /*else*/ { Py_INCREF(__pyx_v_base); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":972 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":983 * else: * Py_INCREF(base) # important to do this before decref below! * baseptr = base # <<<<<<<<<<<<<< @@ -3866,7 +4025,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a } __pyx_L3:; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":973 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":984 * Py_INCREF(base) # important to do this before decref below! * baseptr = base * Py_XDECREF(arr.base) # <<<<<<<<<<<<<< @@ -3875,7 +4034,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ Py_XDECREF(__pyx_v_arr->base); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":974 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":985 * baseptr = base * Py_XDECREF(arr.base) * arr.base = baseptr # <<<<<<<<<<<<<< @@ -3884,7 +4043,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ __pyx_v_arr->base = __pyx_v_baseptr; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":966 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 * * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< @@ -3896,7 +4055,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a __Pyx_RefNannyFinishContext(); } -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":976 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< @@ -3910,7 +4069,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py int __pyx_t_1; __Pyx_RefNannySetupContext("get_array_base", 0); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":977 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 * * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: # <<<<<<<<<<<<<< @@ -3920,7 +4079,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py __pyx_t_1 = ((__pyx_v_arr->base == NULL) != 0); if (__pyx_t_1) { - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":978 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":989 * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: * return None # <<<<<<<<<<<<<< @@ -3928,11 +4087,10 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py * return arr.base */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":977 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 * * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: # <<<<<<<<<<<<<< @@ -3941,7 +4099,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py */ } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":980 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":991 * return None * else: * return arr.base # <<<<<<<<<<<<<< @@ -3955,7 +4113,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py goto __pyx_L0; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":976 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< @@ -3970,7 +4128,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py return __pyx_r; } -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":985 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< @@ -3991,7 +4149,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_array", 0); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":986 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -4007,16 +4165,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":987 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":998 * 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 == -1)) __PYX_ERR(1, 987, __pyx_L3_error) + __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 998, __pyx_L3_error) - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":986 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -4027,11 +4185,10 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __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_L10_try_end; + goto __pyx_L8_try_end; __pyx_L3_error:; - __Pyx_PyThreadState_assign - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":988 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":999 * try: * _import_array() * except Exception: # <<<<<<<<<<<<<< @@ -4041,44 +4198,43 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __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, 988, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 999, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":989 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 * _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__7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 989, __pyx_L5_except_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1000, __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, 989, __pyx_L5_except_error) + __PYX_ERR(1, 1000, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":986 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< * _import_array() * except Exception: */ - __Pyx_PyThreadState_assign __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_L10_try_end:; + __pyx_L8_try_end:; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":985 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< @@ -4101,7 +4257,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { return __pyx_r; } -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":991 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< @@ -4122,7 +4278,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_umath", 0); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":992 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -4138,16 +4294,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":993 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1004 * 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 == -1)) __PYX_ERR(1, 993, __pyx_L3_error) + __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1004, __pyx_L3_error) - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":992 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -4158,11 +4314,10 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __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_L10_try_end; + goto __pyx_L8_try_end; __pyx_L3_error:; - __Pyx_PyThreadState_assign - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":994 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1005 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< @@ -4172,44 +4327,43 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __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, 994, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1005, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":995 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 * _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__8, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 995, __pyx_L5_except_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1006, __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, 995, __pyx_L5_except_error) + __PYX_ERR(1, 1006, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":992 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ - __Pyx_PyThreadState_assign __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_L10_try_end:; + __pyx_L8_try_end:; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":991 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< @@ -4232,7 +4386,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { return __pyx_r; } -/* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":997 +/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< @@ -4253,7 +4407,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_ufunc", 0); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":998 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -4269,16 +4423,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":999 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1010 * 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 == -1)) __PYX_ERR(1, 999, __pyx_L3_error) + __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1010, __pyx_L3_error) - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":998 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -4289,11 +4443,10 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __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_L10_try_end; + goto __pyx_L8_try_end; __pyx_L3_error:; - __Pyx_PyThreadState_assign - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1000 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1011 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< @@ -4302,42 +4455,41 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __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, 1000, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1011, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1001 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< */ - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1001, __pyx_L5_except_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1012, __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, 1001, __pyx_L5_except_error) + __PYX_ERR(1, 1012, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":998 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ - __Pyx_PyThreadState_assign __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_L10_try_end:; + __pyx_L8_try_end:; } - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":997 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< @@ -4365,17 +4517,31 @@ static PyMethodDef __pyx_methods[] = { }; #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_get_mask_diff_var(PyObject* module); /*proto*/ +static PyModuleDef_Slot __pyx_moduledef_slots[] = { + {Py_mod_create, (void*)__pyx_pymod_create}, + {Py_mod_exec, (void*)__pyx_pymod_exec_get_mask_diff_var}, + {0, NULL} +}; +#endif + static struct PyModuleDef __pyx_moduledef = { - #if PY_VERSION_HEX < 0x03020000 - { PyObject_HEAD_INIT(NULL) NULL, 0, NULL }, - #else PyModuleDef_HEAD_INIT, - #endif "get_mask_diff_var", 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 */ @@ -4388,8 +4554,8 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, {&__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_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_kp_s_Users_ajaver_Documents_GitHub_t, __pyx_k_Users_ajaver_Documents_GitHub_t, sizeof(__pyx_k_Users_ajaver_Documents_GitHub_t), 0, 0, 1, 0}, {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 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_f, __pyx_k_f, sizeof(__pyx_k_f), 0, 0, 1, 1}, {&__pyx_n_s_g, __pyx_k_g, sizeof(__pyx_k_g), 0, 0, 1, 1}, {&__pyx_n_s_get_mask_diff_var, __pyx_k_get_mask_diff_var, sizeof(__pyx_k_get_mask_diff_var), 0, 0, 1, 1}, @@ -4412,7 +4578,8 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, {&__pyx_n_s_sum_x2, __pyx_k_sum_x2, sizeof(__pyx_k_sum_x2), 0, 0, 1, 1}, {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, - {&__pyx_n_s_tierpsy_analysis_stage_aligment, __pyx_k_tierpsy_analysis_stage_aligment, sizeof(__pyx_k_tierpsy_analysis_stage_aligment), 0, 0, 1, 1}, + {&__pyx_kp_s_tierpsy_analysis_stage_aligment, __pyx_k_tierpsy_analysis_stage_aligment, sizeof(__pyx_k_tierpsy_analysis_stage_aligment), 0, 0, 1, 0}, + {&__pyx_n_s_tierpsy_analysis_stage_aligment_2, __pyx_k_tierpsy_analysis_stage_aligment_2, sizeof(__pyx_k_tierpsy_analysis_stage_aligment_2), 0, 0, 1, 1}, {&__pyx_n_s_tot_valid, __pyx_k_tot_valid, sizeof(__pyx_k_tot_valid), 0, 0, 1, 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_var_diff, __pyx_k_var_diff, sizeof(__pyx_k_var_diff), 0, 0, 1, 1}, @@ -4420,9 +4587,9 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { }; static int __Pyx_InitCachedBuiltins(void) { __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 19, __pyx_L1_error) - __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 218, __pyx_L1_error) - __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 799, __pyx_L1_error) - __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 989, __pyx_L1_error) + __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 229, __pyx_L1_error) + __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 810, __pyx_L1_error) + __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 1000, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; @@ -4432,100 +4599,100 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":218 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) */ - __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple_)) __PYX_ERR(1, 218, __pyx_L1_error) + __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple_)) __PYX_ERR(1, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple_); __Pyx_GIVEREF(__pyx_tuple_); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":222 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< * * info.buf = PyArray_DATA(self) */ - __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(1, 222, __pyx_L1_error) + __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(1, 233, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__2); __Pyx_GIVEREF(__pyx_tuple__2); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":259 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 * 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__3 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(1, 259, __pyx_L1_error) + __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(1, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__3); __Pyx_GIVEREF(__pyx_tuple__3); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":799 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 * * 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__4 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(1, 799, __pyx_L1_error) + __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(1, 810, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__4); __Pyx_GIVEREF(__pyx_tuple__4); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":803 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 * 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_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(1, 803, __pyx_L1_error) + __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(1, 814, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__5); __Pyx_GIVEREF(__pyx_tuple__5); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":823 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 * 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__6 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(1, 823, __pyx_L1_error) + __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(1, 834, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__6); __Pyx_GIVEREF(__pyx_tuple__6); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":989 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 * _import_array() * except Exception: * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_umath() except -1: */ - __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(1, 989, __pyx_L1_error) + __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(1, 1000, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__7); __Pyx_GIVEREF(__pyx_tuple__7); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":995 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_ufunc() except -1: */ - __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 995, __pyx_L1_error) + __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 1006, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__8); __Pyx_GIVEREF(__pyx_tuple__8); - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1001 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< */ - __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 1001, __pyx_L1_error) + __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 1012, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__9); __Pyx_GIVEREF(__pyx_tuple__9); @@ -4539,7 +4706,7 @@ static int __Pyx_InitCachedConstants(void) { __pyx_tuple__10 = PyTuple_Pack(12, __pyx_n_s_f, __pyx_n_s_g, __pyx_n_s_n_row, __pyx_n_s_n_col, __pyx_n_s_i, __pyx_n_s_k, __pyx_n_s_var_diff, __pyx_n_s_mean_x, __pyx_n_s_sum_x2, __pyx_n_s_pix_diff, __pyx_n_s_tot_valid, __pyx_n_s_j); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__10); __Pyx_GIVEREF(__pyx_tuple__10); - __pyx_codeobj__11 = (PyObject*)__Pyx_PyCode_New(2, 0, 12, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__10, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_ajaver_Documents_GitHub_t, __pyx_n_s_get_mask_diff_var, 7, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__11)) __PYX_ERR(0, 7, __pyx_L1_error) + __pyx_codeobj__11 = (PyObject*)__Pyx_PyCode_New(2, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__10, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tierpsy_analysis_stage_aligment, __pyx_n_s_get_mask_diff_var, 7, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__11)) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; @@ -4554,26 +4721,176 @@ static int __Pyx_InitGlobals(void) { return -1; } -#if PY_MAJOR_VERSION < 3 -PyMODINIT_FUNC initget_mask_diff_var(void); /*proto*/ -PyMODINIT_FUNC initget_mask_diff_var(void) -#else -PyMODINIT_FUNC PyInit_get_mask_diff_var(void); /*proto*/ -PyMODINIT_FUNC PyInit_get_mask_diff_var(void) +static int __Pyx_modinit_global_init_code(void); /*proto*/ +static int __Pyx_modinit_variable_export_code(void); /*proto*/ +static int __Pyx_modinit_function_export_code(void); /*proto*/ +static int __Pyx_modinit_type_init_code(void); /*proto*/ +static int __Pyx_modinit_type_import_code(void); /*proto*/ +static int __Pyx_modinit_variable_import_code(void); /*proto*/ +static 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_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_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_type_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); + /*--- Type import code ---*/ + __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "type", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyTypeObject), + #else + sizeof(PyHeapTypeObject), + #endif + 0); if (unlikely(!__pyx_ptype_7cpython_4type_type)) __PYX_ERR(2, 9, __pyx_L1_error) + __pyx_ptype_5numpy_dtype = __Pyx_ImportType("numpy", "dtype", sizeof(PyArray_Descr), 0); if (unlikely(!__pyx_ptype_5numpy_dtype)) __PYX_ERR(1, 164, __pyx_L1_error) + __pyx_ptype_5numpy_flatiter = __Pyx_ImportType("numpy", "flatiter", sizeof(PyArrayIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_flatiter)) __PYX_ERR(1, 186, __pyx_L1_error) + __pyx_ptype_5numpy_broadcast = __Pyx_ImportType("numpy", "broadcast", sizeof(PyArrayMultiIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_broadcast)) __PYX_ERR(1, 190, __pyx_L1_error) + __pyx_ptype_5numpy_ndarray = __Pyx_ImportType("numpy", "ndarray", sizeof(PyArrayObject), 0); if (unlikely(!__pyx_ptype_5numpy_ndarray)) __PYX_ERR(1, 199, __pyx_L1_error) + __pyx_ptype_5numpy_ufunc = __Pyx_ImportType("numpy", "ufunc", sizeof(PyUFuncObject), 0); if (unlikely(!__pyx_ptype_5numpy_ufunc)) __PYX_ERR(1, 872, __pyx_L1_error) + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __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 + __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); + /*--- Function import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + + +#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 +#ifndef CYTHON_SMALL_CODE +#if defined(__clang__) + #define CYTHON_SMALL_CODE +#elif defined(__GNUC__) && (!(defined(__cplusplus)) || (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 4))) + #define CYTHON_SMALL_CODE __attribute__((optimize("Os"))) +#else + #define CYTHON_SMALL_CODE +#endif +#endif + + +#if PY_MAJOR_VERSION < 3 +__Pyx_PyMODINIT_FUNC initget_mask_diff_var(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC initget_mask_diff_var(void) +#else +__Pyx_PyMODINIT_FUNC PyInit_get_mask_diff_var(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC PyInit_get_mask_diff_var(void) +#if CYTHON_PEP489_MULTI_PHASE_INIT +{ + return PyModuleDef_Init(&__pyx_moduledef); +} +static int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name) { + PyObject *value = PyObject_GetAttrString(spec, from_name); + int result = 0; + if (likely(value)) { + result = PyDict_SetItemString(moddict, to_name, value); + Py_DECREF(value); + } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { + PyErr_Clear(); + } else { + result = -1; + } + return result; +} +static PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) { + PyObject *module = NULL, *moddict, *modname; + 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__") < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__") < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__") < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__") < 0)) goto bad; + return module; +bad: + Py_XDECREF(module); + return NULL; +} + + +static int __pyx_pymod_exec_get_mask_diff_var(PyObject *__pyx_pyinit_module) +#endif #endif { PyObject *__pyx_t_1 = NULL; __Pyx_RefNannyDeclarations - #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"); - } + #if CYTHON_PEP489_MULTI_PHASE_INIT + if (__pyx_m && __pyx_m == __pyx_pyinit_module) return 0; + #elif PY_MAJOR_VERSION >= 3 + if (__pyx_m) return __Pyx_NewRef(__pyx_m); #endif - __Pyx_RefNannySetupContext("PyMODINIT_FUNC PyInit_get_mask_diff_var(void)", 0); + #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_get_mask_diff_var(void)", 0); if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) __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) @@ -4590,6 +4907,9 @@ PyMODINIT_FUNC PyInit_get_mask_diff_var(void) #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 @@ -4601,15 +4921,21 @@ PyMODINIT_FUNC PyInit_get_mask_diff_var(void) #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("get_mask_diff_var", __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) + __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error) #if CYTHON_COMPILING_IN_PYPY Py_INCREF(__pyx_b); #endif @@ -4634,25 +4960,14 @@ PyMODINIT_FUNC PyInit_get_mask_diff_var(void) if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) /*--- Constants init code ---*/ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Global init code ---*/ - /*--- Variable export code ---*/ - /*--- Function export code ---*/ - /*--- Type init code ---*/ - /*--- Type import code ---*/ - __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "type", - #if CYTHON_COMPILING_IN_PYPY - sizeof(PyTypeObject), - #else - sizeof(PyHeapTypeObject), - #endif - 0); if (unlikely(!__pyx_ptype_7cpython_4type_type)) __PYX_ERR(2, 9, __pyx_L1_error) - __pyx_ptype_5numpy_dtype = __Pyx_ImportType("numpy", "dtype", sizeof(PyArray_Descr), 0); if (unlikely(!__pyx_ptype_5numpy_dtype)) __PYX_ERR(1, 155, __pyx_L1_error) - __pyx_ptype_5numpy_flatiter = __Pyx_ImportType("numpy", "flatiter", sizeof(PyArrayIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_flatiter)) __PYX_ERR(1, 168, __pyx_L1_error) - __pyx_ptype_5numpy_broadcast = __Pyx_ImportType("numpy", "broadcast", sizeof(PyArrayMultiIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_broadcast)) __PYX_ERR(1, 172, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType("numpy", "ndarray", sizeof(PyArrayObject), 0); if (unlikely(!__pyx_ptype_5numpy_ndarray)) __PYX_ERR(1, 181, __pyx_L1_error) - __pyx_ptype_5numpy_ufunc = __Pyx_ImportType("numpy", "ufunc", sizeof(PyUFuncObject), 0); if (unlikely(!__pyx_ptype_5numpy_ufunc)) __PYX_ERR(1, 861, __pyx_L1_error) - /*--- Variable import code ---*/ - /*--- Function import code ---*/ + /*--- Global type/function init code ---*/ + (void)__Pyx_modinit_global_init_code(); + (void)__Pyx_modinit_variable_export_code(); + (void)__Pyx_modinit_function_export_code(); + (void)__Pyx_modinit_type_init_code(); + if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; + (void)__Pyx_modinit_variable_import_code(); + (void)__Pyx_modinit_function_import_code(); /*--- Execution code ---*/ #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) @@ -4675,7 +4990,7 @@ PyMODINIT_FUNC PyInit_get_mask_diff_var(void) * #f, g are to one dim vector * */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7tierpsy_8analysis_14stage_aligment_17get_mask_diff_var_1get_mask_diff_var, NULL, __pyx_n_s_tierpsy_analysis_stage_aligment); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7tierpsy_8analysis_14stage_aligment_17get_mask_diff_var_1get_mask_diff_var, NULL, __pyx_n_s_tierpsy_analysis_stage_aligment_2); 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_get_mask_diff_var, __pyx_t_1) < 0) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -4685,12 +5000,12 @@ PyMODINIT_FUNC PyInit_get_mask_diff_var(void) * cimport numpy as np * cimport cython */ - __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "../../../miniconda/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":997 + /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< @@ -4705,7 +5020,7 @@ PyMODINIT_FUNC PyInit_get_mask_diff_var(void) __Pyx_XDECREF(__pyx_t_1); if (__pyx_m) { if (__pyx_d) { - __Pyx_AddTraceback("init tierpsy.analysis.stage_aligment.get_mask_diff_var", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("init tierpsy.analysis.stage_aligment.get_mask_diff_var", 0, __pyx_lineno, __pyx_filename); } Py_DECREF(__pyx_m); __pyx_m = 0; } else if (!PyErr_Occurred()) { @@ -4713,10 +5028,12 @@ PyMODINIT_FUNC PyInit_get_mask_diff_var(void) } __pyx_L0:; __Pyx_RefNannyFinishContext(); - #if PY_MAJOR_VERSION < 3 - return; - #else + #if CYTHON_PEP489_MULTI_PHASE_INIT + return (__pyx_m != NULL) ? 0 : -1; + #elif PY_MAJOR_VERSION >= 3 return __pyx_m; + #else + return; #endif } @@ -4738,6 +5055,20 @@ static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { } #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); @@ -4895,37 +5226,38 @@ static int __Pyx_ParseOptionalKeywords( } /* ArgTypeTest */ -static void __Pyx_RaiseArgumentTypeInvalid(const char* name, PyObject *obj, PyTypeObject *type) { - PyErr_Format(PyExc_TypeError, - "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)", - name, type->tp_name, Py_TYPE(obj)->tp_name); -} -static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, - const char *name, int exact) +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; } - if (none_allowed && obj == Py_None) return 1; else if (exact) { - if (likely(Py_TYPE(obj) == type)) return 1; #if PY_MAJOR_VERSION == 2 - else if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1; + if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1; #endif } else { - if (likely(PyObject_TypeCheck(obj, type))) return 1; + if (likely(__Pyx_TypeCheck(obj, type))) return 1; } - __Pyx_RaiseArgumentTypeInvalid(name, obj, type); + PyErr_Format(PyExc_TypeError, + "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)", + name, type->tp_name, Py_TYPE(obj)->tp_name); return 0; } -/* BufferFormatCheck */ -static CYTHON_INLINE int __Pyx_IsLittleEndian(void) { - unsigned int n = 1; - return *(unsigned char*)(&n) != 0; +/* 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) { @@ -5247,7 +5579,7 @@ static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) { ctx->is_complex = 0; return 0; } -static CYTHON_INLINE PyObject * +static PyObject * __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp) { const char *ts = *tsp; @@ -5312,7 +5644,7 @@ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const cha ++ts; break; case '<': - if (!__Pyx_IsLittleEndian()) { + if (!__Pyx_Is_Little_Endian()) { PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler"); return NULL; } @@ -5321,7 +5653,7 @@ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const cha break; case '>': case '!': - if (__Pyx_IsLittleEndian()) { + if (__Pyx_Is_Little_Endian()) { PyErr_SetString(PyExc_ValueError, "Big-endian buffer not supported on little-endian compiler"); return NULL; } @@ -5385,6 +5717,7 @@ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const cha __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': @@ -5397,6 +5730,7 @@ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const cha ++ts; break; } + CYTHON_FALLTHROUGH; case 's': if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->enc_count = ctx->new_count; @@ -5424,24 +5758,30 @@ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const cha } } } -static CYTHON_INLINE void __Pyx_ZeroBuffer(Py_buffer* buf) { + +/* BufferGetAndValidate */ + static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) { + if (unlikely(info->buf == NULL)) return; + if (info->suboffsets == __Pyx_minusones) info->suboffsets = NULL; + __Pyx_ReleaseBuffer(info); +} +static void __Pyx_ZeroBuffer(Py_buffer* buf) { buf->buf = NULL; buf->obj = NULL; buf->strides = __Pyx_zeros; buf->shape = __Pyx_zeros; buf->suboffsets = __Pyx_minusones; } -static CYTHON_INLINE int __Pyx_GetBufferAndValidate( +static int __Pyx__GetBufferAndValidate( Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack) { - if (obj == Py_None || obj == NULL) { + buf->buf = NULL; + if (unlikely(__Pyx_GetBuffer(obj, buf, flags) == -1)) { __Pyx_ZeroBuffer(buf); - return 0; + return -1; } - buf->buf = NULL; - if (__Pyx_GetBuffer(obj, buf, flags) == -1) goto fail; - if (buf->ndim != nd) { + if (unlikely(buf->ndim != nd)) { PyErr_Format(PyExc_ValueError, "Buffer has wrong number of dimensions (expected %d, got %d)", nd, buf->ndim); @@ -5452,7 +5792,7 @@ static CYTHON_INLINE int __Pyx_GetBufferAndValidate( __Pyx_BufFmt_Init(&ctx, stack, dtype); if (!__Pyx_BufFmt_CheckString(&ctx, buf->format)) goto fail; } - if ((unsigned)buf->itemsize != dtype->size) { + if (unlikely((unsigned)buf->itemsize != dtype->size)) { PyErr_Format(PyExc_ValueError, "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "d byte%s) does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "d byte%s)", buf->itemsize, (buf->itemsize > 1) ? "s" : "", @@ -5462,23 +5802,27 @@ static CYTHON_INLINE int __Pyx_GetBufferAndValidate( if (buf->suboffsets == NULL) buf->suboffsets = __Pyx_minusones; return 0; fail:; - __Pyx_ZeroBuffer(buf); + __Pyx_SafeReleaseBuffer(buf); return -1; } -static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) { - if (info->buf == NULL) return; - if (info->suboffsets == __Pyx_minusones) info->suboffsets = NULL; - __Pyx_ReleaseBuffer(info); -} /* GetModuleGlobalName */ static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name) { 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); + if (likely(result)) { + Py_INCREF(result); + } else if (unlikely(PyErr_Occurred())) { + result = NULL; + } else { +#else result = PyDict_GetItem(__pyx_d, name); if (likely(result)) { Py_INCREF(result); } else { +#endif #else result = PyObject_GetItem(__pyx_d, name); if (!result) { @@ -5490,7 +5834,7 @@ static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) { } /* PyErrFetchRestore */ - #if CYTHON_FAST_THREAD_STATE + #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; @@ -5514,7 +5858,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject #endif /* PyObjectCall */ - #if CYTHON_COMPILING_IN_CPYTHON + #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; @@ -5534,7 +5878,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg #endif /* RaiseException */ - #if PY_MAJOR_VERSION < 3 + #if PY_MAJOR_VERSION < 3 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, CYTHON_UNUSED PyObject *cause) { __Pyx_PyThreadState_declare @@ -5649,11 +5993,7 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject "raise: exception class must be a subclass of BaseException"); goto bad; } -#if PY_VERSION_HEX >= 0x03030000 if (cause) { -#else - if (cause && cause != Py_None) { -#endif PyObject *fixed_cause; if (cause == Py_None) { fixed_cause = NULL; @@ -5681,7 +6021,7 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject PyErr_Restore(tmp_type, tmp_value, tb); Py_XDECREF(tmp_tb); #else - PyThreadState *tstate = PyThreadState_GET(); + PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject* tmp_tb = tstate->curexc_traceback; if (tb != tmp_tb) { Py_INCREF(tb); @@ -5696,6 +6036,228 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject } #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))); + 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)meth)) (self, args, nargs, NULL); + } else { + return (*((__Pyx_PyCFunctionFast)meth)) (self, args, nargs); + } +} +#endif + +/* PyFunctionFastCall */ + #if CYTHON_FAST_PYCALL +#include "frameobject.h" +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 = f->f_localsplus; + 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, int 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, nargs, + k, (int)nk, + d, (int)nd, kwdefs, closure); +#else + result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, + args, 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 + +/* 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()) { + PyObject* args = PyTuple_Pack(1, key); + if (likely(args)) + PyErr_SetObject(PyExc_KeyError, args); + Py_XDECREF(args); + } + return NULL; + } + Py_INCREF(value); + return value; +} +#endif + /* RaiseTooManyValuesToUnpack */ static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { PyErr_Format(PyExc_ValueError, @@ -5720,7 +6282,7 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject PyErr_SetString(PyExc_SystemError, "Missing type object"); return 0; } - if (likely(PyObject_TypeCheck(obj, type))) + 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); @@ -5730,21 +6292,36 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject /* SaveResetException */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { + #if PY_VERSION_HEX >= 0x030700A2 + *type = tstate->exc_state.exc_type; + *value = tstate->exc_state.exc_value; + *tb = tstate->exc_state.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 PY_VERSION_HEX >= 0x030700A2 + tmp_type = tstate->exc_state.exc_type; + tmp_value = tstate->exc_state.exc_value; + tmp_tb = tstate->exc_state.exc_traceback; + tstate->exc_state.exc_type = type; + tstate->exc_state.exc_value = value; + tstate->exc_state.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); @@ -5753,11 +6330,26 @@ static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject /* 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; - return PyErr_GivenExceptionMatches(exc_type, err); + if (unlikely(PyTuple_Check(err))) + return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err); + return __Pyx_PyErr_GivenExceptionMatches(exc_type, err); } #endif @@ -5799,12 +6391,21 @@ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) *value = local_value; *tb = local_tb; #if CYTHON_FAST_THREAD_STATE + #if PY_VERSION_HEX >= 0x030700A2 + tmp_type = tstate->exc_state.exc_type; + tmp_value = tstate->exc_state.exc_value; + tmp_tb = tstate->exc_state.exc_traceback; + tstate->exc_state.exc_type = local_type; + tstate->exc_state.exc_value = local_value; + tstate->exc_state.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); @@ -5829,7 +6430,7 @@ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) PyObject *global_dict = 0; PyObject *empty_dict = 0; PyObject *list; - #if PY_VERSION_HEX < 0x03030000 + #if PY_MAJOR_VERSION < 3 PyObject *py_import; py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import); if (!py_import) @@ -5853,17 +6454,8 @@ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) #if PY_MAJOR_VERSION >= 3 if (level == -1) { if (strchr(__Pyx_MODULE_NAME, '.')) { - #if PY_VERSION_HEX < 0x03030000 - PyObject *py_level = PyInt_FromLong(1); - if (!py_level) - goto bad; - module = PyObject_CallFunctionObjArgs(py_import, - name, global_dict, empty_dict, list, py_level, NULL); - Py_DECREF(py_level); - #else module = PyImport_ImportModuleLevelObject( name, global_dict, empty_dict, list, 1); - #endif if (!module) { if (!PyErr_ExceptionMatches(PyExc_ImportError)) goto bad; @@ -5874,7 +6466,7 @@ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) } #endif if (!module) { - #if PY_VERSION_HEX < 0x03030000 + #if PY_MAJOR_VERSION < 3 PyObject *py_level = PyInt_FromLong(level); if (!py_level) goto bad; @@ -5888,7 +6480,7 @@ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) } } bad: - #if PY_VERSION_HEX < 0x03030000 + #if PY_MAJOR_VERSION < 3 Py_XDECREF(py_import); #endif Py_XDECREF(empty_list); @@ -5896,6 +6488,46 @@ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) return module; } +/* CLineInTraceback */ + #ifndef CYTHON_CLINE_IN_TRACEBACK +static int __Pyx_CLineForTraceback(CYTHON_UNUSED 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)) { + use_cline = __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 (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; @@ -6036,18 +6668,22 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = 0; PyFrameObject *py_frame = 0; - py_code = __pyx_find_code_object(c_line ? c_line : py_line); + 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); + __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); } py_frame = PyFrame_New( - PyThreadState_GET(), /*PyThreadState *tstate,*/ - py_code, /*PyCodeObject *code,*/ - __pyx_d, /*PyObject *globals,*/ - 0 /*PyObject *locals*/ + 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); @@ -6060,7 +6696,7 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, #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 (PyObject_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pw_5numpy_7ndarray_1__getbuffer__(obj, view, flags); + if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pw_5numpy_7ndarray_1__getbuffer__(obj, view, flags); PyErr_Format(PyExc_TypeError, "'%.200s' does not have the buffer interface", Py_TYPE(obj)->tp_name); return -1; } @@ -6071,9 +6707,10 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { PyBuffer_Release(view); return; } - if (PyObject_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) { __pyx_pw_5numpy_7ndarray_3__releasebuffer__(obj, view); return; } - Py_DECREF(obj); + 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 @@ -6881,6 +7518,78 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { return (long) -1; } +/* 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 CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) { + if (likely(err == exc_type)) return 1; + if (likely(PyExceptionClass_Check(err))) { + return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type); + } + return PyErr_GivenExceptionMatches(err, exc_type); +} +static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) { + if (likely(err == exc_type1 || err == exc_type2)) return 1; + if (likely(PyExceptionClass_Check(err))) { + return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2); + } + return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2)); +} +#endif + /* CheckBinaryVersion */ static int __Pyx_check_binary_version(void) { char ctversion[4], rtversion[4]; @@ -7006,6 +7715,8 @@ static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class #endif if (!*t->p) return -1; + if (PyObject_Hash(*t->p) == -1) + return -1; ++t; } return 0; @@ -7014,50 +7725,57 @@ static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class 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 char* __Pyx_PyObject_AsString(PyObject* o) { +static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) { Py_ssize_t ignore; return __Pyx_PyObject_AsStringAndSize(o, &ignore); } -static CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { -#if CYTHON_COMPILING_IN_CPYTHON && (__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)) { -#if PY_VERSION_HEX < 0x03030000 - 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 || __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; - } + { + 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; + *length = PyBytes_GET_SIZE(defenc); + return defenc_c; +} #else - if (__Pyx_PyUnicode_READY(o) == -1) return NULL; +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 (PyUnicode_IS_ASCII(o)) { - *length = PyUnicode_GET_LENGTH(o); - return PyUnicode_AsUTF8(o); - } else { - PyUnicode_AsASCIIString(o); - return NULL; - } + 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); + 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)) @@ -7081,6 +7799,26 @@ static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { if (is_true | (x == Py_False) | (x == Py_None)) return is_true; else return PyObject_IsTrue(x); } +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; @@ -7088,9 +7826,9 @@ static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { const char *name = NULL; PyObject *res = NULL; #if PY_MAJOR_VERSION < 3 - if (PyInt_Check(x) || PyLong_Check(x)) + if (likely(PyInt_Check(x) || PyLong_Check(x))) #else - if (PyLong_Check(x)) + if (likely(PyLong_Check(x))) #endif return __Pyx_NewRef(x); #if CYTHON_USE_TYPE_SLOTS @@ -7098,32 +7836,30 @@ static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { #if PY_MAJOR_VERSION < 3 if (m && m->nb_int) { name = "int"; - res = PyNumber_Int(x); + res = m->nb_int(x); } else if (m && m->nb_long) { name = "long"; - res = PyNumber_Long(x); + res = m->nb_long(x); } #else - if (m && m->nb_int) { + if (likely(m && m->nb_int)) { name = "int"; - res = PyNumber_Long(x); + res = m->nb_int(x); } #endif #else - res = PyNumber_Int(x); + if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { + res = PyNumber_Int(x); + } #endif - if (res) { + if (likely(res)) { #if PY_MAJOR_VERSION < 3 - if (!PyInt_Check(res) && !PyLong_Check(res)) { + if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) { #else - if (!PyLong_Check(res)) { + if (unlikely(!PyLong_CheckExact(res))) { #endif - PyErr_Format(PyExc_TypeError, - "__%.4s__ returned non-%.4s (type %.200s)", - name, name, Py_TYPE(res)->tp_name); - Py_DECREF(res); - return NULL; + return __Pyx_PyNumber_IntOrLongWrongResultType(res, name); } } else if (!PyErr_Occurred()) { @@ -7194,6 +7930,9 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { 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); } diff --git a/tierpsy/gui/MWTrackerViewer.py b/tierpsy/gui/MWTrackerViewer.py index 42d4ccf7..a8c1a749 100755 --- a/tierpsy/gui/MWTrackerViewer.py +++ b/tierpsy/gui/MWTrackerViewer.py @@ -719,9 +719,10 @@ def draw_boxes(self, painter, row_id, row_data, is_current_index): painter.fillRect(x + offset, y + offset, b_size, b_size, QBrush(label_color)) -class PlotComunicator(FeatureReaderBase, ROIManager): +class PlotCommunicator(FeatureReaderBase, ROIManager): def __init__(self, ui=''): super().__init__(ui) + self.ui.pushButton_plot.setEnabled(False) self.ui.pushButton_plot.clicked.connect(self.show_plot) self.plotter = None @@ -748,6 +749,8 @@ def show_plot(self): self.xy_units, self.fps, parent = self) + + self.plotter.setWindowFlags(self.plotter.windowFlags() | Qt.WindowStaysOnTopHint) self.plotter.show() self.update_plot() @@ -756,7 +759,7 @@ def update_plot(self): if self.plotter: self.plotter.plot(self.current_worm_index, self.feat_column) -class MWTrackerViewer_GUI( MarkersDrawer, PlotComunicator, +class MWTrackerViewer_GUI( MarkersDrawer, PlotCommunicator, ContourDrawer, BlobLabeler, IntensityLabeler, TrajectoryEditor): def __init__(self, ui='', argv=''): diff --git a/tierpsy/gui/PlotFeatures.py b/tierpsy/gui/PlotFeatures.py index 8ca36bf8..4118995b 100644 --- a/tierpsy/gui/PlotFeatures.py +++ b/tierpsy/gui/PlotFeatures.py @@ -6,6 +6,7 @@ import pandas as pd from PyQt5.QtWidgets import QDialog, QApplication, QPushButton, QComboBox, QVBoxLayout, QHBoxLayout, QFileDialog +from PyQt5.QtCore import Qt from matplotlib.backends.backend_qt5agg import FigureCanvas from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar @@ -28,7 +29,7 @@ def __init__(self, parent = None): super().__init__(parent) - #self.setWindowFlags(Qt.WindowStaysOnTopHint) + self.plot_funcs = OrderedDict ([ ('Single Trajectory, Time Series', self._plot_single_timeseries), ('All Trajectories, Time Series', self._plot_all_timeseries), @@ -61,7 +62,7 @@ def __init__(self, self.button_save_fig.clicked.connect(self.save_fig) # a figure instance to plot on - self.figure = Figure(figsize=(8, 4)) + self.figure = Figure(figsize=(6, 3)) # this is the Canvas Widget that displays the `figure` # it takes the `figure` instance as a parameter to __init__ @@ -171,9 +172,7 @@ def _plot_all_timeseries(self, feature): self.timeseries_data['timestamp_s'] = self.timeseries_data['timestamp']/self.fps #self._ax.plot(feat_val['timestamp'], feat_val[feature]) for _, worm_data in self.traj_worm_index_grouped: - valid_index = worm_data['skeleton_id'] - valid_index = valid_index[valid_index>=0] - feat_val = self.timeseries_data.loc[valid_index] + feat_val = self.timeseries_data.loc[worm_data.index] self._ax.plot(feat_val['timestamp_s'], feat_val[feature], alpha=0.4) @@ -194,10 +193,7 @@ def _plot_all_timeseries(self, feature): def _plot_single_histogram(self, worm_index, feature): worm_data = self.traj_worm_index_grouped.get_group(worm_index) - valid_index = worm_data['skeleton_id'] - valid_index = valid_index[valid_index>=0] - - feat_val = self.timeseries_data.loc[valid_index].dropna() + feat_val = self.timeseries_data.loc[worm_data.index].dropna() self._ax.clear() diff --git a/tierpsy/summary/collect.py b/tierpsy/summary/collect.py index da27a9bc..42ad684a 100644 --- a/tierpsy/summary/collect.py +++ b/tierpsy/summary/collect.py @@ -7,6 +7,7 @@ import os import glob import datetime +import tables import pandas as pd from tierpsy.helper.misc import TimeCounter, print_flush @@ -82,13 +83,13 @@ def _displayProgress(n): df = summary_func(fname) df.insert(0, 'file_id', ifile) all_summaries.append(df) - except: + except (IOError, KeyError, tables.exceptions.HDF5ExtError, tables.exceptions.NoSuchNodeError): continue df_files.loc[ifile, 'is_good'] = True _displayProgress(ifile) - all_summaries = pd.concat(all_summaries, ignore_index=True) + all_summaries = pd.concat(all_summaries, ignore_index=True, sort=False) f1 = os.path.join(root_dir, 'filenames_{}.csv'.format(save_base_name)) @@ -110,7 +111,8 @@ def _displayProgress(n): is_manual_index = False #feature_type = 'tierpsy' feature_type = 'openworm' - summary_type = 'plate_augmented' + #summary_type = 'plate_augmented' + summary_type = 'plate' fold_args = dict( n_folds = 2, From 49370970b20f3e0a3f5f8f06cf17690061f2fc43 Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Wed, 6 Jun 2018 19:10:15 +0100 Subject: [PATCH 14/37] bug --- tierpsy/__init__.py | 47 ++++++++++++++++++++------------------------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/tierpsy/__init__.py b/tierpsy/__init__.py index bc45fab2..fa802431 100755 --- a/tierpsy/__init__.py +++ b/tierpsy/__init__.py @@ -12,6 +12,12 @@ #I want to be sure tierpsy loads tensorflow flow backend os.environ['KERAS_BACKEND']='tensorflow' +os.environ['QT_PLUGIN_PATH']="" #https://stackoverflow.com/questions/25188153/this-application-failed-to-start-because-it-could-not-find-or-load-the-qt-platfo + +# force qt5 to be the backend of matplotlib. +import matplotlib +matplotlib.use('Qt5Agg') + try: # PyInstaller creates a temp folder and stores path in _MEIPASS base_path = sys._MEIPASS @@ -27,33 +33,22 @@ #this will be true if it is a pyinstaller "frozen" binary IS_FROZEN = getattr(sys, 'frozen', False) if IS_FROZEN: - os.environ['QT_PLUGIN_PATH']="" #https://stackoverflow.com/questions/25188153/this-application-failed-to-start-because-it-could-not-find-or-load-the-qt-platfo - - # force qt5 to be the backend of matplotlib. - import matplotlib - matplotlib.use('Qt5Agg') - - + #if IS_FROZEN: + if os.name == 'nt': + # load dll for numpy in windows + import ctypes -#if IS_FROZEN: -if os.name == 'nt': - # load dll for numpy in windows - import ctypes + # Override dll search path. + python_dir = os.path.split(sys.executable)[0] + ctypes.windll.kernel32.SetDllDirectoryW( + os.path.join(python_dir, 'Library', 'bin')) - # Override dll search path. - python_dir = os.path.split(sys.executable)[0] - ctypes.windll.kernel32.SetDllDirectoryW( - os.path.join(python_dir, 'Library', 'bin')) + # Init code to load external dll + ctypes.CDLL('mkl_avx2.dll') + ctypes.CDLL('mkl_def.dll') + ctypes.CDLL('mkl_vml_avx2.dll') + ctypes.CDLL('mkl_vml_def.dll') - # Init code to load external dll - ctypes.CDLL('mkl_avx2.dll') - ctypes.CDLL('mkl_def.dll') - ctypes.CDLL('mkl_vml_avx2.dll') - ctypes.CDLL('mkl_vml_def.dll') + # Restore dll search path. + ctypes.windll.kernel32.SetDllDirectoryW(sys._MEIPASS) - # Restore dll search path. - ctypes.windll.kernel32.SetDllDirectoryW(sys._MEIPASS) -else: - if sys.platform == 'darwin': - # add homebrew directory to the path - os.environ["PATH"] += os.pathsep + '/usr/local/bin' From 49790fbe0a1a0a40d688cd216535d3bd43df5050 Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Thu, 7 Jun 2018 18:01:40 +0100 Subject: [PATCH 15/37] test to create binaries --- create_binaries/TierpsyTracker.spec | 31 +- create_binaries/_test/test.avi | Bin 0 -> 591262 bytes create_binaries/_test/test.h5 | Bin 0 -> 1024 bytes create_binaries/_test/test.sh | 6 +- create_binaries/_test/test_pyinstaller.py | 5 + create_binaries/_test/test_pyinstaller.spec | 17 +- create_binaries/issues.txt | 9 + .../stage_aligment/get_mask_diff_var.c | 432 +++++++++--------- 8 files changed, 272 insertions(+), 228 deletions(-) create mode 100755 create_binaries/_test/test.avi create mode 100644 create_binaries/_test/test.h5 diff --git a/create_binaries/TierpsyTracker.spec b/create_binaries/TierpsyTracker.spec index 7991a779..ce2b4155 100644 --- a/create_binaries/TierpsyTracker.spec +++ b/create_binaries/TierpsyTracker.spec @@ -1,5 +1,5 @@ # -*- mode: python -*- -DEBUG = False +DEBUG = True #hidden imports needed for tierpsy. Each step is loaded dyniamically so I need to give the hint to pyinstaller @@ -11,11 +11,13 @@ print(hidden_tierspy) import os import sys +import glob from PyInstaller.compat import is_win, is_darwin, is_linux import tierpsy import open_worm_analysis_toolbox +import tierpsy_features from tierpsy.helper.misc import FFMPEG_CMD, FFPROBE_CMD from tierpsy.gui import SelectApp @@ -26,8 +28,7 @@ DST_BUILD=os.path.abspath('.') CREATE_CONSOLE= is_win #make a separated console only in windows. I have to do this due to a problem with pyinstaller -#get additional files for openworm -#openworm additional files +#get additional files for openworm additional files open_worm_path = os.path.dirname(open_worm_analysis_toolbox.__file__) ow_feat = os.path.join('features', 'feature_metadata', 'features_list.csv') @@ -38,6 +39,15 @@ ow_eigen = os.path.join('features', 'master_eigen_worms_N2.mat') ow_eigen_src = os.path.join(open_worm_path, ow_eigen) ow_eigen_dst = os.path.join('open_worm_analysis_toolbox', ow_eigen) +#get additional files for tierpsy_features +tierpsy_feat = os.path.join('features', 'feature_metadata', 'features_list.csv') +ow_feat_src = os.path.join(open_worm_path, ow_feat) +ow_feat_dst = os.path.join('open_worm_analysis_toolbox', ow_feat) + + +tierpsy_features_path = os.path.dirname(tierpsy_features.__file__) + + #add ffmpeg and ffprobe ffmpeg_src = FFMPEG_CMD ffmpeg_dst = os.path.join('extras', os.path.basename(FFMPEG_CMD)) @@ -57,6 +67,14 @@ added_datas = [(ow_feat_dst, ow_feat_src, 'DATA'), (ffmpeg_dst, ffmpeg_src, 'DATA'), (ffprobe_dst, ffprobe_src, 'DATA')] +tierpsy_features_root = tierpsy_features_path.partition('tierpsy_features')[0] +for fname_src in glob.glob(os.path.join(tierpsy_features_path, 'extras', '**', '*'), recursive=True): + if os.path.basename(fname_src).startswith('.'): + continue + fname_dst = fname_src.replace(tierpsy_features_root, '') + added_datas.append((fname_dst, fname_src, 'DATA')) + + #I add the file separator at the end, it makes my life easier later on tierpsy_path = os.path.dirname(tierpsy.__file__) tierpsy_path += os.sep @@ -96,7 +114,9 @@ a = Analysis([SRC_SCRIPT_PATH], pathex=[DST_BUILD], binaries=None, datas = None, - hiddenimports=['h5py.defs', 'h5py.utils', 'h5py.h5ac', 'h5py._proxy', + hiddenimports=[ + 'ipywidgets', + 'h5py.defs', 'h5py.utils', 'h5py.h5ac', 'h5py._proxy', 'scipy._lib.messagestream', 'cytoolz.utils', 'pandas._libs.tslibs.np_datetime', 'pandas._libs.tslibs.nattype', 'pandas._libs.skiplist', @@ -153,7 +173,7 @@ else: name='TierpsyTracker', debug=False, strip=False, - upx=False, + upx=True, console=True ) coll = COLLECT(exe, @@ -163,3 +183,4 @@ else: strip=False, upx=False, name='TierpsyTracker') + diff --git a/create_binaries/_test/test.avi b/create_binaries/_test/test.avi new file mode 100755 index 0000000000000000000000000000000000000000..f4a3dbbbc33ffae1943914e2dd73dfba3d95c5be GIT binary patch literal 591262 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
    L5YBgNu~U-$ZoD1h4JJm=*1S}9 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%0DKK|L0@&|<6%@5*VJA|=QBfGDA!@MA{a6V}Gxh0P zI-flJqnGXQ!y)Bxy68xHZEneEC+!U#LfbOYrwfSd_Z9-}V+x`}ilUpftuo%xbjdcE zS#h1-@WREgv{GOLcc6V7`qo^4zQkgSk<}ceDELV?3kepG=1qEfg#_Dbm7_n&t;DDf z!q!?>tBL-00)Y;jk7)FeEIEXCNb4!P?jTc=3o0*G0M2Np3u?e}BX-3vb=FVWqdKAh z(UG6arBdlkmX)L^tR3$xVg=M3b2{#iW4r*)zR{+X60?))1z)NMR30qd8f6kVudfrv zfxbFp(cQpKCKGx`;InVR5v;Rhxc1OmaOVU9OcPU(%f_P-v@F2KbDw zr)rW{_%dmfv70g zX@Qe8f&RWZ>)8bEG4Gio^;ucAzPsdn3+Fm){sJ&aYsgf2TZ`<}0ezdivs+&@_*!BS zOxeJHrOBv>J=g*IL0w~}DeYoq-_pT?;XHN8B89|Fm*bNwi@|V{RjaVCHy?Y+R-hFj z$bh5?xr_!^Z~#fYFpP*ojUnj(Jc45bPYA!V#wL%>&s4zUS&qbj<2c(;IGsNTs;=Hi zV7U+TF02voVC+CrWY9kV8kgn+Rk{1C(B@3N?%1kl&9lnH&fA`E=gb=?&;&Qw;L4?? z-zHBK)>s;Dtu^A)v@+kOPiQKsF_+e==;iI(;m5|Xle6mkA-=@J4E7&8a)pe zlohQ9K};AYoqBq_iDgx@L?U#H9ebUAnK`O+0NuPR)*Bs+8)+>uLj|yu{=V&B(8C{2 zSAHiVX_)79gm9dJ7&#hmTulmDdm){(A5g^yvZbi);0vg(zhEf^(+QK14}czSV;Ko7;DgNbRu z-mS7!Mx_e}W=?IBe&8Ow8h7dCZ~Nt9F*-`A)E#~>+O5IiF*lGDID_(Nh#e!aiYneg z1qugbMK$Tk)bhJW?%uC#|Aq4UhmI+nop4yuj#e2}&WS<=4g>l$M#`cD)a2ba&MeRLZXA1p*tL1_KNE*96vo>>JAd# zsvGckF2{oIkJY;Zbr5}Xbo?6X<+`8i4b{Q~c>!xfGeqg-Z6-x&5p(3SSacr=oLYx(}bw%@lW6-up4!tkO|;82O9k$-=4-U#TJ@guyIIY?!@@;uIbTun>`h^5?;tH_(b`+; z&NT$hyBrNPr(%ovCVta^FWo8seK-2-;nv(HPFMpKIqFydh%B^VH5vjqm!9c~XO; z69^=|QEC1dY#C@e5)~q*rLbO17Kpj}UAI)?M7=MmidrnYwFI(z3hE9w z=UUE6YzwPH&;f031tk*WXamloXF<%Cf1PUVH|%ZL(Gr*6Kb#wmUZiKTe3xD0QP2)G z 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 z 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 literal 0 HcmV?d00001 diff --git a/create_binaries/_test/test.h5 b/create_binaries/_test/test.h5 new file mode 100644 index 0000000000000000000000000000000000000000..3a3862d64647c65e1f322a0b67cadd8dd2e74847 GIT binary patch literal 1024 zcmeD5aB<`1lHy_j0S*oZ76t(@6Gr@p0-yvK!1+)G2~e65N_Rl%6-*EYBLf=)NKOJO zE&w%Off*w304g35gol8Kt78Bt2qK{2zyYOCK+_qN3r=ewHdrxC zkOEo|nqJYb?CI|ZHW!p-VCoI^41he4dJ8bk2+Uz1^#PF~j!r(V V!SQbXLB5V5@woIG=^29c0RWLbI#2)r literal 0 HcmV?d00001 diff --git a/create_binaries/_test/test.sh b/create_binaries/_test/test.sh index 6beda2d8..f35cc5bf 100755 --- a/create_binaries/_test/test.sh +++ b/create_binaries/_test/test.sh @@ -6,5 +6,7 @@ pyinstaller --noconfirm --clean \ --hidden-import=h5py.utils \ --hidden-import=h5py.h5ac \ --hidden-import='h5py._proxy' \ ---onefile \ -test_pyinstaller.py \ No newline at end of file +--onedir \ +test_pyinstaller.py + +cp test.avi ./dist/test_pyinstaller \ No newline at end of file diff --git a/create_binaries/_test/test_pyinstaller.py b/create_binaries/_test/test_pyinstaller.py index 7ef00efb..71523b00 100644 --- a/create_binaries/_test/test_pyinstaller.py +++ b/create_binaries/_test/test_pyinstaller.py @@ -24,6 +24,11 @@ print(cv2.__version__) + vid = cv2.VideoCapture('test.avi') + ret, image = vid.read() + print('Img size', image.shape) + vid.release() + inputFiles = "test.h5" with h5py.File(inputFiles, 'w') as inputFileOpen: print('good h5py') diff --git a/create_binaries/_test/test_pyinstaller.spec b/create_binaries/_test/test_pyinstaller.spec index a16a45ef..3572e9f1 100644 --- a/create_binaries/_test/test_pyinstaller.spec +++ b/create_binaries/_test/test_pyinstaller.spec @@ -4,7 +4,7 @@ block_cipher = None a = Analysis(['test_pyinstaller.py'], - pathex=['/Users/ajaver/Documents/GitHub/Multiworm_Tracking/create_binaries/test'], + pathex=['/Users/avelinojaver/Documents/GitHub/tierpsy-tracker/create_binaries/_test'], binaries=[], datas=[], hiddenimports=['h5py.defs', 'h5py.utils', 'h5py.h5ac', 'h5py._proxy'], @@ -13,16 +13,23 @@ a = Analysis(['test_pyinstaller.py'], excludes=['PyQt4', 'PyQt4.QtCore', 'PyQt4.QtGui'], win_no_prefer_redirects=False, win_private_assemblies=False, - cipher=block_cipher) + cipher=block_cipher, + noarchive=False) pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE(pyz, a.scripts, - a.binaries, - a.zipfiles, - a.datas, + [], + exclude_binaries=True, name='test_pyinstaller', debug=False, strip=False, upx=True, console=True ) +coll = COLLECT(exe, + a.binaries, + a.zipfiles, + a.datas, + strip=False, + upx=True, + name='test_pyinstaller') diff --git a/create_binaries/issues.txt b/create_binaries/issues.txt index a2ee21ad..d7747ab7 100644 --- a/create_binaries/issues.txt +++ b/create_binaries/issues.txt @@ -1,3 +1,12 @@ +* There is still problems with pyqt5... +It seems pyinstaller cannot work with the anaconda pyqt5 version. Luckly there are pip installers for all teh libraries. Execute before running. + +pip install numpy matplotlib tables pandas pyqt5 h5py scipy scikit-learn scikit-image seaborn xlrd cython statsmodels numba keras tensorflow opencv-python-headless +pip install https://github.com/pyinstaller/pyinstaller/tarball/develop + +* the pip version of pytables and h5py are not compatible in python 3.5, but they are compatible for 3.6 + + * Version 3.2 does not import correctly pyqt5 in OSX (https://github.com/pyinstaller/pyinstaller/issues/1874). I had to download and install (python setup.py install) the development version (http://www.pyinstaller.org/). * Got some issue related with different versions of libfreetype.6.dylib. diff --git a/tierpsy/analysis/stage_aligment/get_mask_diff_var.c b/tierpsy/analysis/stage_aligment/get_mask_diff_var.c index 47152043..25362d85 100644 --- a/tierpsy/analysis/stage_aligment/get_mask_diff_var.c +++ b/tierpsy/analysis/stage_aligment/get_mask_diff_var.c @@ -845,7 +845,7 @@ typedef struct { } __Pyx_BufFmt_Context; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":730 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":730 * # in Cython to enable them only on the right systems. * * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<< @@ -854,7 +854,7 @@ typedef struct { */ typedef npy_int8 __pyx_t_5numpy_int8_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":731 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":731 * * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< @@ -863,7 +863,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; */ typedef npy_int16 __pyx_t_5numpy_int16_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":732 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":732 * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<< @@ -872,7 +872,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; */ typedef npy_int32 __pyx_t_5numpy_int32_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":733 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":733 * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<< @@ -881,7 +881,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; */ typedef npy_int64 __pyx_t_5numpy_int64_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":737 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":737 * #ctypedef npy_int128 int128_t * * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< @@ -890,7 +890,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; */ typedef npy_uint8 __pyx_t_5numpy_uint8_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":738 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":738 * * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< @@ -899,7 +899,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; */ typedef npy_uint16 __pyx_t_5numpy_uint16_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":739 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":739 * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<< @@ -908,7 +908,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; */ typedef npy_uint32 __pyx_t_5numpy_uint32_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":740 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":740 * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<< @@ -917,7 +917,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; */ typedef npy_uint64 __pyx_t_5numpy_uint64_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":744 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":744 * #ctypedef npy_uint128 uint128_t * * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< @@ -926,7 +926,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; */ typedef npy_float32 __pyx_t_5numpy_float32_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":745 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":745 * * ctypedef npy_float32 float32_t * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< @@ -935,7 +935,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; */ typedef npy_float64 __pyx_t_5numpy_float64_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":754 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":754 * # The int types are mapped a bit surprising -- * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t # <<<<<<<<<<<<<< @@ -944,7 +944,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; */ typedef npy_long __pyx_t_5numpy_int_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":755 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":755 * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t * ctypedef npy_longlong long_t # <<<<<<<<<<<<<< @@ -953,7 +953,7 @@ typedef npy_long __pyx_t_5numpy_int_t; */ typedef npy_longlong __pyx_t_5numpy_long_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":756 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":756 * ctypedef npy_long int_t * ctypedef npy_longlong long_t * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<< @@ -962,7 +962,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; */ typedef npy_longlong __pyx_t_5numpy_longlong_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":758 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":758 * ctypedef npy_longlong longlong_t * * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< @@ -971,7 +971,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; */ typedef npy_ulong __pyx_t_5numpy_uint_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":759 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":759 * * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< @@ -980,7 +980,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; */ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":760 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":760 * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<< @@ -989,7 +989,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; */ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":762 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":762 * ctypedef npy_ulonglong ulonglong_t * * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< @@ -998,7 +998,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; */ typedef npy_intp __pyx_t_5numpy_intp_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":763 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":763 * * ctypedef npy_intp intp_t * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< @@ -1007,7 +1007,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; */ typedef npy_uintp __pyx_t_5numpy_uintp_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":765 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":765 * ctypedef npy_uintp uintp_t * * ctypedef npy_double float_t # <<<<<<<<<<<<<< @@ -1016,7 +1016,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; */ typedef npy_double __pyx_t_5numpy_float_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":766 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":766 * * ctypedef npy_double float_t * ctypedef npy_double double_t # <<<<<<<<<<<<<< @@ -1025,7 +1025,7 @@ typedef npy_double __pyx_t_5numpy_float_t; */ typedef npy_double __pyx_t_5numpy_double_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":767 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":767 * ctypedef npy_double float_t * ctypedef npy_double double_t * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<< @@ -1060,7 +1060,7 @@ static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(do /*--- Type declarations ---*/ -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":769 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":769 * ctypedef npy_longdouble longdouble_t * * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< @@ -1069,7 +1069,7 @@ static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(do */ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":770 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":770 * * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< @@ -1078,7 +1078,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; */ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":771 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":771 * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<< @@ -1087,7 +1087,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; */ typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":773 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":773 * ctypedef npy_clongdouble clongdouble_t * * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< @@ -2050,7 +2050,7 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_14stage_aligment_17get_mask_diff_va return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 * # experimental exception made for __getbuffer__ and __releasebuffer__ * # -- the details of this may change. * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< @@ -2098,7 +2098,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(__pyx_v_info->obj); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":222 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":222 * * cdef int i, ndim * cdef int endian_detector = 1 # <<<<<<<<<<<<<< @@ -2107,7 +2107,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_endian_detector = 1; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":223 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":223 * cdef int i, ndim * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< @@ -2116,7 +2116,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":225 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":225 * cdef bint little_endian = ((&endian_detector)[0] != 0) * * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< @@ -2125,7 +2125,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -2139,7 +2139,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P goto __pyx_L4_bool_binop_done; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":228 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":228 * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< @@ -2150,7 +2150,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -2159,7 +2159,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ if (unlikely(__pyx_t_1)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< @@ -2172,7 +2172,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 229, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -2181,7 +2181,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -2195,7 +2195,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P goto __pyx_L7_bool_binop_done; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":232 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":232 * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< @@ -2206,7 +2206,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = __pyx_t_2; __pyx_L7_bool_binop_done:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -2215,7 +2215,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ if (unlikely(__pyx_t_1)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< @@ -2228,7 +2228,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 233, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -2237,7 +2237,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":235 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":235 * raise ValueError(u"ndarray is not Fortran contiguous") * * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< @@ -2246,7 +2246,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":236 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":236 * * info.buf = PyArray_DATA(self) * info.ndim = ndim # <<<<<<<<<<<<<< @@ -2255,7 +2255,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->ndim = __pyx_v_ndim; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 * info.buf = PyArray_DATA(self) * info.ndim = ndim * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -2265,7 +2265,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":240 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":240 * # 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) # <<<<<<<<<<<<<< @@ -2274,7 +2274,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->strides = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * 2) * ((size_t)__pyx_v_ndim)))); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":241 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":241 * # This is allocated as one block, strides first. * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim # <<<<<<<<<<<<<< @@ -2283,7 +2283,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":242 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":242 * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim * for i in range(ndim): # <<<<<<<<<<<<<< @@ -2295,7 +2295,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":243 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":243 * info.shape = info.strides + ndim * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] # <<<<<<<<<<<<<< @@ -2304,7 +2304,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(__pyx_v_self)[__pyx_v_i]); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":244 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":244 * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] * info.shape[i] = PyArray_DIMS(self)[i] # <<<<<<<<<<<<<< @@ -2314,7 +2314,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 * info.buf = PyArray_DATA(self) * info.ndim = ndim * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -2324,7 +2324,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P goto __pyx_L9; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":246 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":246 * info.shape[i] = PyArray_DIMS(self)[i] * else: * info.strides = PyArray_STRIDES(self) # <<<<<<<<<<<<<< @@ -2334,7 +2334,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P /*else*/ { __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":247 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":247 * else: * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) # <<<<<<<<<<<<<< @@ -2345,7 +2345,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P } __pyx_L9:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":248 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":248 * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL # <<<<<<<<<<<<<< @@ -2354,7 +2354,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->suboffsets = NULL; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":249 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":249 * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) # <<<<<<<<<<<<<< @@ -2363,7 +2363,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":250 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":250 * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< @@ -2372,7 +2372,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":253 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":253 * * cdef int t * cdef char* f = NULL # <<<<<<<<<<<<<< @@ -2381,7 +2381,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_f = NULL; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":254 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":254 * cdef int t * cdef char* f = NULL * cdef dtype descr = self.descr # <<<<<<<<<<<<<< @@ -2393,7 +2393,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); __pyx_t_3 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":257 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":257 * cdef int offset * * info.obj = self # <<<<<<<<<<<<<< @@ -2406,7 +2406,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = ((PyObject *)__pyx_v_self); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 * info.obj = self * * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< @@ -2416,7 +2416,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = ((!(PyDataType_HASFIELDS(__pyx_v_descr) != 0)) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":260 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":260 * * if not PyDataType_HASFIELDS(descr): * t = descr.type_num # <<<<<<<<<<<<<< @@ -2426,7 +2426,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_4 = __pyx_v_descr->type_num; __pyx_v_t = __pyx_t_4; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -2446,7 +2446,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P } __pyx_L15_next_or:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":262 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":262 * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< @@ -2463,7 +2463,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = __pyx_t_2; __pyx_L14_bool_binop_done:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -2472,7 +2472,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ if (unlikely(__pyx_t_1)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< @@ -2485,7 +2485,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 263, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -2494,7 +2494,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":264 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":264 * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" # <<<<<<<<<<<<<< @@ -2506,7 +2506,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"b"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":265 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":265 * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" # <<<<<<<<<<<<<< @@ -2517,7 +2517,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"B"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":266 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":266 * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" # <<<<<<<<<<<<<< @@ -2528,7 +2528,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"h"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":267 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":267 * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" # <<<<<<<<<<<<<< @@ -2539,7 +2539,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"H"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":268 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":268 * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" # <<<<<<<<<<<<<< @@ -2550,7 +2550,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"i"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":269 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":269 * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" # <<<<<<<<<<<<<< @@ -2561,7 +2561,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"I"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":270 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":270 * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" # <<<<<<<<<<<<<< @@ -2572,7 +2572,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"l"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":271 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":271 * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" # <<<<<<<<<<<<<< @@ -2583,7 +2583,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"L"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":272 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":272 * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" # <<<<<<<<<<<<<< @@ -2594,7 +2594,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"q"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":273 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":273 * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" # <<<<<<<<<<<<<< @@ -2605,7 +2605,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Q"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":274 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":274 * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" # <<<<<<<<<<<<<< @@ -2616,7 +2616,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"f"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":275 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":275 * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" # <<<<<<<<<<<<<< @@ -2627,7 +2627,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"d"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":276 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":276 * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" # <<<<<<<<<<<<<< @@ -2638,7 +2638,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"g"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":277 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":277 * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" # <<<<<<<<<<<<<< @@ -2649,7 +2649,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zf"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":278 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":278 * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" # <<<<<<<<<<<<<< @@ -2660,7 +2660,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zd"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":279 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":279 * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" # <<<<<<<<<<<<<< @@ -2671,7 +2671,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zg"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":280 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":280 * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" * elif t == NPY_OBJECT: f = "O" # <<<<<<<<<<<<<< @@ -2683,7 +2683,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P break; default: - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":282 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":282 * elif t == NPY_OBJECT: f = "O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< @@ -2704,7 +2704,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P break; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":283 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":283 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f # <<<<<<<<<<<<<< @@ -2713,7 +2713,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->format = __pyx_v_f; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":284 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":284 * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f * return # <<<<<<<<<<<<<< @@ -2723,7 +2723,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_r = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 * info.obj = self * * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< @@ -2732,7 +2732,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":286 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":286 * return * else: * info.format = PyObject_Malloc(_buffer_format_string_len) # <<<<<<<<<<<<<< @@ -2742,7 +2742,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P /*else*/ { __pyx_v_info->format = ((char *)PyObject_Malloc(0xFF)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":287 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":287 * else: * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment # <<<<<<<<<<<<<< @@ -2751,7 +2751,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ (__pyx_v_info->format[0]) = '^'; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":288 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":288 * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 # <<<<<<<<<<<<<< @@ -2760,7 +2760,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_offset = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":289 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":289 * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 * f = _util_dtypestring(descr, info.format + 1, # <<<<<<<<<<<<<< @@ -2770,7 +2770,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_8 = __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_8 == ((char *)NULL))) __PYX_ERR(1, 289, __pyx_L1_error) __pyx_v_f = __pyx_t_8; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":292 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":292 * info.format + _buffer_format_string_len, * &offset) * f[0] = c'\0' # Terminate format string # <<<<<<<<<<<<<< @@ -2780,7 +2780,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P (__pyx_v_f[0]) = '\x00'; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 * # experimental exception made for __getbuffer__ and __releasebuffer__ * # -- the details of this may change. * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< @@ -2812,7 +2812,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< @@ -2836,7 +2836,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s int __pyx_t_1; __Pyx_RefNannySetupContext("__releasebuffer__", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< @@ -2846,7 +2846,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __pyx_t_1 = (PyArray_HASFIELDS(__pyx_v_self) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":296 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":296 * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) # <<<<<<<<<<<<<< @@ -2855,7 +2855,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ PyObject_Free(__pyx_v_info->format); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< @@ -2864,7 +2864,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -2874,7 +2874,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":298 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":298 * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): * PyObject_Free(info.strides) # <<<<<<<<<<<<<< @@ -2883,7 +2883,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ PyObject_Free(__pyx_v_info->strides); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -2892,7 +2892,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< @@ -2904,7 +2904,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __Pyx_RefNannyFinishContext(); } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< @@ -2918,7 +2918,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":776 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":776 * * cdef inline object PyArray_MultiIterNew1(a): * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< @@ -2932,7 +2932,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< @@ -2951,7 +2951,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< @@ -2965,7 +2965,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":779 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":779 * * cdef inline object PyArray_MultiIterNew2(a, b): * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< @@ -2979,7 +2979,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< @@ -2998,7 +2998,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< @@ -3012,7 +3012,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":782 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":782 * * cdef inline object PyArray_MultiIterNew3(a, b, c): * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< @@ -3026,7 +3026,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< @@ -3045,7 +3045,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< @@ -3059,7 +3059,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":785 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":785 * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< @@ -3073,7 +3073,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< @@ -3092,7 +3092,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< @@ -3106,7 +3106,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":788 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":788 * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<< @@ -3120,7 +3120,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< @@ -3139,7 +3139,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< @@ -3153,7 +3153,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ int __pyx_t_1; __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< @@ -3163,7 +3163,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":792 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":792 * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): * return d.subarray.shape # <<<<<<<<<<<<<< @@ -3175,7 +3175,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< @@ -3184,7 +3184,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":794 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":794 * return d.subarray.shape * else: * return () # <<<<<<<<<<<<<< @@ -3198,7 +3198,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ goto __pyx_L0; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< @@ -3213,7 +3213,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< @@ -3242,7 +3242,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx char *__pyx_t_9; __Pyx_RefNannySetupContext("_util_dtypestring", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":801 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":801 * * cdef dtype child * cdef int endian_detector = 1 # <<<<<<<<<<<<<< @@ -3251,7 +3251,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_endian_detector = 1; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":802 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":802 * cdef dtype child * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< @@ -3260,7 +3260,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< @@ -3283,7 +3283,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); __pyx_t_3 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":806 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":806 * * for childname in descr.names: * fields = descr.fields[childname] # <<<<<<<<<<<<<< @@ -3300,7 +3300,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":807 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":807 * for childname in descr.names: * fields = descr.fields[childname] * child, new_offset = fields # <<<<<<<<<<<<<< @@ -3335,7 +3335,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); __pyx_t_4 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< @@ -3352,7 +3352,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); if (unlikely(__pyx_t_6)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< @@ -3365,7 +3365,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 810, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< @@ -3374,7 +3374,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -3394,7 +3394,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __pyx_L8_next_or:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":813 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":813 * * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< @@ -3411,7 +3411,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = __pyx_t_7; __pyx_L7_bool_binop_done:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -3420,7 +3420,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ if (unlikely(__pyx_t_6)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< @@ -3433,7 +3433,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 814, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -3442,7 +3442,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":824 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":824 * * # Output padding bytes * while offset[0] < new_offset: # <<<<<<<<<<<<<< @@ -3458,7 +3458,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_6) break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":825 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":825 * # Output padding bytes * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< @@ -3467,7 +3467,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ (__pyx_v_f[0]) = 0x78; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":826 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":826 * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte * f += 1 # <<<<<<<<<<<<<< @@ -3476,7 +3476,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_f = (__pyx_v_f + 1); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":827 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":827 * f[0] = 120 # "x"; pad byte * f += 1 * offset[0] += 1 # <<<<<<<<<<<<<< @@ -3487,7 +3487,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":829 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":829 * offset[0] += 1 * * offset[0] += child.itemsize # <<<<<<<<<<<<<< @@ -3497,7 +3497,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_8 = 0; (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< @@ -3507,7 +3507,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); if (__pyx_t_6) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":832 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":832 * * if not PyDataType_HASFIELDS(child): * t = child.type_num # <<<<<<<<<<<<<< @@ -3519,7 +3519,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); __pyx_t_4 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< @@ -3529,7 +3529,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); if (unlikely(__pyx_t_6)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< @@ -3542,7 +3542,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 834, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< @@ -3551,7 +3551,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":837 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":837 * * # Until ticket #99 is fixed, use integers to avoid warnings * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< @@ -3569,7 +3569,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":838 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":838 * # 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" # <<<<<<<<<<<<<< @@ -3587,7 +3587,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":839 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":839 * if t == NPY_BYTE: f[0] = 98 #"b" * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< @@ -3605,7 +3605,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":840 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":840 * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< @@ -3623,7 +3623,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":841 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":841 * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< @@ -3641,7 +3641,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":842 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":842 * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< @@ -3659,7 +3659,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":843 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":843 * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< @@ -3677,7 +3677,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":844 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":844 * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< @@ -3695,7 +3695,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":845 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":845 * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< @@ -3713,7 +3713,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":846 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":846 * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< @@ -3731,7 +3731,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":847 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":847 * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< @@ -3749,7 +3749,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":848 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":848 * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< @@ -3767,7 +3767,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":849 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":849 * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< @@ -3785,7 +3785,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":850 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":850 * 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 # <<<<<<<<<<<<<< @@ -3805,7 +3805,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":851 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":851 * 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 # <<<<<<<<<<<<<< @@ -3825,7 +3825,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":852 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":852 * 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 # <<<<<<<<<<<<<< @@ -3845,7 +3845,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":853 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":853 * 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" # <<<<<<<<<<<<<< @@ -3863,7 +3863,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":855 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":855 * elif t == NPY_OBJECT: f[0] = 79 #"O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< @@ -3882,7 +3882,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __pyx_L15:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":856 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":856 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * f += 1 # <<<<<<<<<<<<<< @@ -3891,7 +3891,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_f = (__pyx_v_f + 1); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< @@ -3901,7 +3901,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L13; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":860 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":860 * # Cython ignores struct boundary information ("T{...}"), * # so don't output it * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< @@ -3914,7 +3914,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __pyx_L13:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< @@ -3924,7 +3924,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":861 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":861 * # so don't output it * f = _util_dtypestring(child, f, end, offset) * return f # <<<<<<<<<<<<<< @@ -3934,7 +3934,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_r = __pyx_v_f; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< @@ -3959,7 +3959,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 * * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< @@ -3974,7 +3974,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a int __pyx_t_2; __Pyx_RefNannySetupContext("set_array_base", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 * cdef inline void set_array_base(ndarray arr, object base): * cdef PyObject* baseptr * if base is None: # <<<<<<<<<<<<<< @@ -3985,7 +3985,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":980 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":980 * cdef PyObject* baseptr * if base is None: * baseptr = NULL # <<<<<<<<<<<<<< @@ -3994,7 +3994,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ __pyx_v_baseptr = NULL; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 * cdef inline void set_array_base(ndarray arr, object base): * cdef PyObject* baseptr * if base is None: # <<<<<<<<<<<<<< @@ -4004,7 +4004,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a goto __pyx_L3; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":982 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":982 * baseptr = NULL * else: * Py_INCREF(base) # important to do this before decref below! # <<<<<<<<<<<<<< @@ -4014,7 +4014,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a /*else*/ { Py_INCREF(__pyx_v_base); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":983 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":983 * else: * Py_INCREF(base) # important to do this before decref below! * baseptr = base # <<<<<<<<<<<<<< @@ -4025,7 +4025,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a } __pyx_L3:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":984 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":984 * Py_INCREF(base) # important to do this before decref below! * baseptr = base * Py_XDECREF(arr.base) # <<<<<<<<<<<<<< @@ -4034,7 +4034,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ Py_XDECREF(__pyx_v_arr->base); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":985 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":985 * baseptr = base * Py_XDECREF(arr.base) * arr.base = baseptr # <<<<<<<<<<<<<< @@ -4043,7 +4043,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ __pyx_v_arr->base = __pyx_v_baseptr; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 * * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< @@ -4055,7 +4055,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a __Pyx_RefNannyFinishContext(); } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< @@ -4069,7 +4069,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py int __pyx_t_1; __Pyx_RefNannySetupContext("get_array_base", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 * * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: # <<<<<<<<<<<<<< @@ -4079,7 +4079,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py __pyx_t_1 = ((__pyx_v_arr->base == NULL) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":989 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":989 * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: * return None # <<<<<<<<<<<<<< @@ -4090,7 +4090,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 * * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: # <<<<<<<<<<<<<< @@ -4099,7 +4099,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":991 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":991 * return None * else: * return arr.base # <<<<<<<<<<<<<< @@ -4113,7 +4113,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py goto __pyx_L0; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< @@ -4128,7 +4128,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< @@ -4149,7 +4149,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_array", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -4165,7 +4165,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":998 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":998 * cdef inline int import_array() except -1: * try: * _import_array() # <<<<<<<<<<<<<< @@ -4174,7 +4174,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { */ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 998, __pyx_L3_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -4188,7 +4188,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":999 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":999 * try: * _import_array() * except Exception: # <<<<<<<<<<<<<< @@ -4203,7 +4203,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 * _import_array() * except Exception: * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< @@ -4219,7 +4219,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -4234,7 +4234,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __pyx_L8_try_end:; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< @@ -4257,7 +4257,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< @@ -4278,7 +4278,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_umath", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -4294,7 +4294,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1004 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1004 * cdef inline int import_umath() except -1: * try: * _import_umath() # <<<<<<<<<<<<<< @@ -4303,7 +4303,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { */ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1004, __pyx_L3_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -4317,7 +4317,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1005 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1005 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< @@ -4332,7 +4332,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< @@ -4348,7 +4348,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -4363,7 +4363,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __pyx_L8_try_end:; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< @@ -4386,7 +4386,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< @@ -4407,7 +4407,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_ufunc", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -4423,7 +4423,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1010 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1010 * cdef inline int import_ufunc() except -1: * try: * _import_umath() # <<<<<<<<<<<<<< @@ -4432,7 +4432,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { */ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1010, __pyx_L3_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -4446,7 +4446,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1011 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1011 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< @@ -4460,7 +4460,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< @@ -4474,7 +4474,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -4489,7 +4489,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __pyx_L8_try_end:; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< @@ -4599,7 +4599,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< @@ -4610,7 +4610,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple_); __Pyx_GIVEREF(__pyx_tuple_); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< @@ -4621,7 +4621,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__2); __Pyx_GIVEREF(__pyx_tuple__2); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< @@ -4632,7 +4632,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__3); __Pyx_GIVEREF(__pyx_tuple__3); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< @@ -4643,7 +4643,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__4); __Pyx_GIVEREF(__pyx_tuple__4); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< @@ -4654,7 +4654,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__5); __Pyx_GIVEREF(__pyx_tuple__5); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< @@ -4665,7 +4665,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__6); __Pyx_GIVEREF(__pyx_tuple__6); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 * _import_array() * except Exception: * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< @@ -4676,7 +4676,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__7); __Pyx_GIVEREF(__pyx_tuple__7); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< @@ -4687,7 +4687,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__8); __Pyx_GIVEREF(__pyx_tuple__8); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< @@ -5005,7 +5005,7 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< From ecb17fc06fb97caece6e4a7ba18340ceebc19c41 Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Thu, 7 Jun 2018 18:11:39 +0100 Subject: [PATCH 16/37] . --- .gitignore | 2 + tierpsy/analysis/feat_init/__init__.py | 2 +- .../cython_files/cleanWorm_cython.c | 432 +++++++++--------- .../cleanWorm_cython.cpython-35m-darwin.so | Bin 105420 -> 105420 bytes .../cython_files/linearSkeleton_cython.c | 432 +++++++++--------- ...inearSkeleton_cython.cpython-35m-darwin.so | Bin 212508 -> 212508 bytes .../cython_files/segWorm_cython.c | 432 +++++++++--------- .../segWorm_cython.cpython-35m-darwin.so | Bin 77004 -> 77004 bytes 8 files changed, 651 insertions(+), 649 deletions(-) diff --git a/.gitignore b/.gitignore index 2501d5e8..327ddcbc 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,5 @@ Gemfile* *.o tierpsy/extras/unet_RMSprop-5-04999-0.3997.h5 +*.so +*.so diff --git a/tierpsy/analysis/feat_init/__init__.py b/tierpsy/analysis/feat_init/__init__.py index 2262fa9a..043020e7 100755 --- a/tierpsy/analysis/feat_init/__init__.py +++ b/tierpsy/analysis/feat_init/__init__.py @@ -5,7 +5,7 @@ def args_(fn, param): main_func = smooth_skeletons_table requirements = ['SKE_CREATE'] - is_WT2 = param.p_dict['analysis_type'] == 'WT2' + is_WT2 = param.is_WT2 #arguments used by AnalysisPoints.py return { 'func': main_func, diff --git a/tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.c b/tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.c index 54654ed0..d6b8a57e 100644 --- a/tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.c +++ b/tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.c @@ -846,7 +846,7 @@ typedef struct { } __Pyx_BufFmt_Context; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":730 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":730 * # in Cython to enable them only on the right systems. * * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<< @@ -855,7 +855,7 @@ typedef struct { */ typedef npy_int8 __pyx_t_5numpy_int8_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":731 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":731 * * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< @@ -864,7 +864,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; */ typedef npy_int16 __pyx_t_5numpy_int16_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":732 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":732 * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<< @@ -873,7 +873,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; */ typedef npy_int32 __pyx_t_5numpy_int32_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":733 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":733 * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<< @@ -882,7 +882,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; */ typedef npy_int64 __pyx_t_5numpy_int64_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":737 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":737 * #ctypedef npy_int128 int128_t * * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< @@ -891,7 +891,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; */ typedef npy_uint8 __pyx_t_5numpy_uint8_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":738 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":738 * * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< @@ -900,7 +900,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; */ typedef npy_uint16 __pyx_t_5numpy_uint16_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":739 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":739 * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<< @@ -909,7 +909,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; */ typedef npy_uint32 __pyx_t_5numpy_uint32_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":740 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":740 * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<< @@ -918,7 +918,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; */ typedef npy_uint64 __pyx_t_5numpy_uint64_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":744 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":744 * #ctypedef npy_uint128 uint128_t * * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< @@ -927,7 +927,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; */ typedef npy_float32 __pyx_t_5numpy_float32_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":745 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":745 * * ctypedef npy_float32 float32_t * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< @@ -936,7 +936,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; */ typedef npy_float64 __pyx_t_5numpy_float64_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":754 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":754 * # The int types are mapped a bit surprising -- * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t # <<<<<<<<<<<<<< @@ -945,7 +945,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; */ typedef npy_long __pyx_t_5numpy_int_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":755 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":755 * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t * ctypedef npy_longlong long_t # <<<<<<<<<<<<<< @@ -954,7 +954,7 @@ typedef npy_long __pyx_t_5numpy_int_t; */ typedef npy_longlong __pyx_t_5numpy_long_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":756 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":756 * ctypedef npy_long int_t * ctypedef npy_longlong long_t * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<< @@ -963,7 +963,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; */ typedef npy_longlong __pyx_t_5numpy_longlong_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":758 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":758 * ctypedef npy_longlong longlong_t * * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< @@ -972,7 +972,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; */ typedef npy_ulong __pyx_t_5numpy_uint_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":759 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":759 * * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< @@ -981,7 +981,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; */ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":760 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":760 * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<< @@ -990,7 +990,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; */ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":762 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":762 * ctypedef npy_ulonglong ulonglong_t * * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< @@ -999,7 +999,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; */ typedef npy_intp __pyx_t_5numpy_intp_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":763 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":763 * * ctypedef npy_intp intp_t * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< @@ -1008,7 +1008,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; */ typedef npy_uintp __pyx_t_5numpy_uintp_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":765 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":765 * ctypedef npy_uintp uintp_t * * ctypedef npy_double float_t # <<<<<<<<<<<<<< @@ -1017,7 +1017,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; */ typedef npy_double __pyx_t_5numpy_float_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":766 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":766 * * ctypedef npy_double float_t * ctypedef npy_double double_t # <<<<<<<<<<<<<< @@ -1026,7 +1026,7 @@ typedef npy_double __pyx_t_5numpy_float_t; */ typedef npy_double __pyx_t_5numpy_double_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":767 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":767 * ctypedef npy_double float_t * ctypedef npy_double double_t * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<< @@ -1061,7 +1061,7 @@ static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(do /*--- Type declarations ---*/ -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":769 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":769 * ctypedef npy_longdouble longdouble_t * * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< @@ -1070,7 +1070,7 @@ static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(do */ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":770 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":770 * * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< @@ -1079,7 +1079,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; */ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":771 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":771 * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<< @@ -1088,7 +1088,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; */ typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":773 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":773 * ctypedef npy_clongdouble clongdouble_t * * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< @@ -5437,7 +5437,7 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 * # experimental exception made for __getbuffer__ and __releasebuffer__ * # -- the details of this may change. * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< @@ -5487,7 +5487,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __Pyx_GIVEREF(__pyx_v_info->obj); __Pyx_TraceCall("__getbuffer__", __pyx_f[1], 215, 0, __PYX_ERR(1, 215, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":222 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":222 * * cdef int i, ndim * cdef int endian_detector = 1 # <<<<<<<<<<<<<< @@ -5496,7 +5496,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_endian_detector = 1; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":223 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":223 * cdef int i, ndim * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< @@ -5505,7 +5505,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":225 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":225 * cdef bint little_endian = ((&endian_detector)[0] != 0) * * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< @@ -5514,7 +5514,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -5528,7 +5528,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P goto __pyx_L4_bool_binop_done; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":228 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":228 * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< @@ -5539,7 +5539,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -5548,7 +5548,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ if (unlikely(__pyx_t_1)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< @@ -5561,7 +5561,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 229, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -5570,7 +5570,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -5584,7 +5584,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P goto __pyx_L7_bool_binop_done; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":232 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":232 * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< @@ -5595,7 +5595,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = __pyx_t_2; __pyx_L7_bool_binop_done:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -5604,7 +5604,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ if (unlikely(__pyx_t_1)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< @@ -5617,7 +5617,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 233, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -5626,7 +5626,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":235 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":235 * raise ValueError(u"ndarray is not Fortran contiguous") * * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< @@ -5635,7 +5635,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":236 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":236 * * info.buf = PyArray_DATA(self) * info.ndim = ndim # <<<<<<<<<<<<<< @@ -5644,7 +5644,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->ndim = __pyx_v_ndim; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 * info.buf = PyArray_DATA(self) * info.ndim = ndim * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -5654,7 +5654,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":240 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":240 * # 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) # <<<<<<<<<<<<<< @@ -5663,7 +5663,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->strides = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * 2) * ((size_t)__pyx_v_ndim)))); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":241 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":241 * # This is allocated as one block, strides first. * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim # <<<<<<<<<<<<<< @@ -5672,7 +5672,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":242 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":242 * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim * for i in range(ndim): # <<<<<<<<<<<<<< @@ -5684,7 +5684,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":243 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":243 * info.shape = info.strides + ndim * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] # <<<<<<<<<<<<<< @@ -5693,7 +5693,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(__pyx_v_self)[__pyx_v_i]); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":244 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":244 * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] * info.shape[i] = PyArray_DIMS(self)[i] # <<<<<<<<<<<<<< @@ -5703,7 +5703,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 * info.buf = PyArray_DATA(self) * info.ndim = ndim * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -5713,7 +5713,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P goto __pyx_L9; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":246 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":246 * info.shape[i] = PyArray_DIMS(self)[i] * else: * info.strides = PyArray_STRIDES(self) # <<<<<<<<<<<<<< @@ -5723,7 +5723,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P /*else*/ { __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":247 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":247 * else: * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) # <<<<<<<<<<<<<< @@ -5734,7 +5734,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P } __pyx_L9:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":248 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":248 * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL # <<<<<<<<<<<<<< @@ -5743,7 +5743,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->suboffsets = NULL; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":249 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":249 * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) # <<<<<<<<<<<<<< @@ -5752,7 +5752,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":250 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":250 * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< @@ -5761,7 +5761,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":253 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":253 * * cdef int t * cdef char* f = NULL # <<<<<<<<<<<<<< @@ -5770,7 +5770,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_f = NULL; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":254 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":254 * cdef int t * cdef char* f = NULL * cdef dtype descr = self.descr # <<<<<<<<<<<<<< @@ -5782,7 +5782,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); __pyx_t_3 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":257 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":257 * cdef int offset * * info.obj = self # <<<<<<<<<<<<<< @@ -5795,7 +5795,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = ((PyObject *)__pyx_v_self); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 * info.obj = self * * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< @@ -5805,7 +5805,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = ((!(PyDataType_HASFIELDS(__pyx_v_descr) != 0)) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":260 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":260 * * if not PyDataType_HASFIELDS(descr): * t = descr.type_num # <<<<<<<<<<<<<< @@ -5815,7 +5815,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_4 = __pyx_v_descr->type_num; __pyx_v_t = __pyx_t_4; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -5835,7 +5835,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P } __pyx_L15_next_or:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":262 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":262 * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< @@ -5852,7 +5852,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = __pyx_t_2; __pyx_L14_bool_binop_done:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -5861,7 +5861,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ if (unlikely(__pyx_t_1)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< @@ -5874,7 +5874,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 263, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -5883,7 +5883,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":264 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":264 * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" # <<<<<<<<<<<<<< @@ -5895,7 +5895,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"b"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":265 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":265 * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" # <<<<<<<<<<<<<< @@ -5906,7 +5906,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"B"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":266 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":266 * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" # <<<<<<<<<<<<<< @@ -5917,7 +5917,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"h"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":267 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":267 * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" # <<<<<<<<<<<<<< @@ -5928,7 +5928,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"H"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":268 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":268 * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" # <<<<<<<<<<<<<< @@ -5939,7 +5939,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"i"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":269 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":269 * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" # <<<<<<<<<<<<<< @@ -5950,7 +5950,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"I"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":270 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":270 * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" # <<<<<<<<<<<<<< @@ -5961,7 +5961,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"l"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":271 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":271 * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" # <<<<<<<<<<<<<< @@ -5972,7 +5972,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"L"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":272 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":272 * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" # <<<<<<<<<<<<<< @@ -5983,7 +5983,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"q"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":273 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":273 * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" # <<<<<<<<<<<<<< @@ -5994,7 +5994,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Q"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":274 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":274 * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" # <<<<<<<<<<<<<< @@ -6005,7 +6005,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"f"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":275 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":275 * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" # <<<<<<<<<<<<<< @@ -6016,7 +6016,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"d"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":276 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":276 * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" # <<<<<<<<<<<<<< @@ -6027,7 +6027,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"g"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":277 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":277 * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" # <<<<<<<<<<<<<< @@ -6038,7 +6038,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zf"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":278 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":278 * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" # <<<<<<<<<<<<<< @@ -6049,7 +6049,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zd"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":279 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":279 * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" # <<<<<<<<<<<<<< @@ -6060,7 +6060,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zg"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":280 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":280 * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" * elif t == NPY_OBJECT: f = "O" # <<<<<<<<<<<<<< @@ -6072,7 +6072,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P break; default: - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":282 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":282 * elif t == NPY_OBJECT: f = "O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< @@ -6093,7 +6093,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P break; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":283 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":283 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f # <<<<<<<<<<<<<< @@ -6102,7 +6102,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->format = __pyx_v_f; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":284 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":284 * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f * return # <<<<<<<<<<<<<< @@ -6112,7 +6112,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_r = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 * info.obj = self * * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< @@ -6121,7 +6121,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":286 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":286 * return * else: * info.format = PyObject_Malloc(_buffer_format_string_len) # <<<<<<<<<<<<<< @@ -6131,7 +6131,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P /*else*/ { __pyx_v_info->format = ((char *)PyObject_Malloc(0xFF)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":287 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":287 * else: * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment # <<<<<<<<<<<<<< @@ -6140,7 +6140,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ (__pyx_v_info->format[0]) = '^'; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":288 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":288 * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 # <<<<<<<<<<<<<< @@ -6149,7 +6149,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_offset = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":289 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":289 * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 * f = _util_dtypestring(descr, info.format + 1, # <<<<<<<<<<<<<< @@ -6159,7 +6159,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_8 = __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_8 == ((char *)NULL))) __PYX_ERR(1, 289, __pyx_L1_error) __pyx_v_f = __pyx_t_8; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":292 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":292 * info.format + _buffer_format_string_len, * &offset) * f[0] = c'\0' # Terminate format string # <<<<<<<<<<<<<< @@ -6169,7 +6169,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P (__pyx_v_f[0]) = '\x00'; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 * # experimental exception made for __getbuffer__ and __releasebuffer__ * # -- the details of this may change. * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< @@ -6202,7 +6202,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< @@ -6228,7 +6228,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __Pyx_RefNannySetupContext("__releasebuffer__", 0); __Pyx_TraceCall("__releasebuffer__", __pyx_f[1], 294, 0, __PYX_ERR(1, 294, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< @@ -6238,7 +6238,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __pyx_t_1 = (PyArray_HASFIELDS(__pyx_v_self) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":296 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":296 * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) # <<<<<<<<<<<<<< @@ -6247,7 +6247,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ PyObject_Free(__pyx_v_info->format); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< @@ -6256,7 +6256,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -6266,7 +6266,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":298 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":298 * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): * PyObject_Free(info.strides) # <<<<<<<<<<<<<< @@ -6275,7 +6275,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ PyObject_Free(__pyx_v_info->strides); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -6284,7 +6284,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< @@ -6301,7 +6301,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __Pyx_RefNannyFinishContext(); } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< @@ -6317,7 +6317,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); __Pyx_TraceCall("PyArray_MultiIterNew1", __pyx_f[1], 775, 0, __PYX_ERR(1, 775, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":776 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":776 * * cdef inline object PyArray_MultiIterNew1(a): * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< @@ -6331,7 +6331,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< @@ -6351,7 +6351,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< @@ -6367,7 +6367,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); __Pyx_TraceCall("PyArray_MultiIterNew2", __pyx_f[1], 778, 0, __PYX_ERR(1, 778, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":779 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":779 * * cdef inline object PyArray_MultiIterNew2(a, b): * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< @@ -6381,7 +6381,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< @@ -6401,7 +6401,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< @@ -6417,7 +6417,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); __Pyx_TraceCall("PyArray_MultiIterNew3", __pyx_f[1], 781, 0, __PYX_ERR(1, 781, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":782 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":782 * * cdef inline object PyArray_MultiIterNew3(a, b, c): * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< @@ -6431,7 +6431,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< @@ -6451,7 +6451,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< @@ -6467,7 +6467,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); __Pyx_TraceCall("PyArray_MultiIterNew4", __pyx_f[1], 784, 0, __PYX_ERR(1, 784, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":785 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":785 * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< @@ -6481,7 +6481,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< @@ -6501,7 +6501,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< @@ -6517,7 +6517,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); __Pyx_TraceCall("PyArray_MultiIterNew5", __pyx_f[1], 787, 0, __PYX_ERR(1, 787, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":788 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":788 * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<< @@ -6531,7 +6531,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< @@ -6551,7 +6551,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< @@ -6567,7 +6567,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); __Pyx_TraceCall("PyDataType_SHAPE", __pyx_f[1], 790, 0, __PYX_ERR(1, 790, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< @@ -6577,7 +6577,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":792 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":792 * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): * return d.subarray.shape # <<<<<<<<<<<<<< @@ -6589,7 +6589,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< @@ -6598,7 +6598,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":794 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":794 * return d.subarray.shape * else: * return () # <<<<<<<<<<<<<< @@ -6612,7 +6612,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ goto __pyx_L0; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< @@ -6631,7 +6631,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< @@ -6662,7 +6662,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_RefNannySetupContext("_util_dtypestring", 0); __Pyx_TraceCall("_util_dtypestring", __pyx_f[1], 796, 0, __PYX_ERR(1, 796, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":801 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":801 * * cdef dtype child * cdef int endian_detector = 1 # <<<<<<<<<<<<<< @@ -6671,7 +6671,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_endian_detector = 1; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":802 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":802 * cdef dtype child * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< @@ -6680,7 +6680,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< @@ -6703,7 +6703,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); __pyx_t_3 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":806 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":806 * * for childname in descr.names: * fields = descr.fields[childname] # <<<<<<<<<<<<<< @@ -6720,7 +6720,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":807 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":807 * for childname in descr.names: * fields = descr.fields[childname] * child, new_offset = fields # <<<<<<<<<<<<<< @@ -6755,7 +6755,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); __pyx_t_4 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< @@ -6772,7 +6772,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); if (unlikely(__pyx_t_6)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< @@ -6785,7 +6785,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 810, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< @@ -6794,7 +6794,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -6814,7 +6814,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __pyx_L8_next_or:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":813 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":813 * * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< @@ -6831,7 +6831,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = __pyx_t_7; __pyx_L7_bool_binop_done:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -6840,7 +6840,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ if (unlikely(__pyx_t_6)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< @@ -6853,7 +6853,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 814, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -6862,7 +6862,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":824 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":824 * * # Output padding bytes * while offset[0] < new_offset: # <<<<<<<<<<<<<< @@ -6878,7 +6878,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_6) break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":825 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":825 * # Output padding bytes * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< @@ -6887,7 +6887,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ (__pyx_v_f[0]) = 0x78; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":826 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":826 * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte * f += 1 # <<<<<<<<<<<<<< @@ -6896,7 +6896,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_f = (__pyx_v_f + 1); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":827 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":827 * f[0] = 120 # "x"; pad byte * f += 1 * offset[0] += 1 # <<<<<<<<<<<<<< @@ -6907,7 +6907,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":829 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":829 * offset[0] += 1 * * offset[0] += child.itemsize # <<<<<<<<<<<<<< @@ -6917,7 +6917,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_8 = 0; (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< @@ -6927,7 +6927,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); if (__pyx_t_6) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":832 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":832 * * if not PyDataType_HASFIELDS(child): * t = child.type_num # <<<<<<<<<<<<<< @@ -6939,7 +6939,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); __pyx_t_4 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< @@ -6949,7 +6949,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); if (unlikely(__pyx_t_6)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< @@ -6962,7 +6962,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 834, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< @@ -6971,7 +6971,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":837 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":837 * * # Until ticket #99 is fixed, use integers to avoid warnings * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< @@ -6989,7 +6989,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":838 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":838 * # 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" # <<<<<<<<<<<<<< @@ -7007,7 +7007,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":839 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":839 * if t == NPY_BYTE: f[0] = 98 #"b" * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< @@ -7025,7 +7025,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":840 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":840 * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< @@ -7043,7 +7043,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":841 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":841 * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< @@ -7061,7 +7061,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":842 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":842 * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< @@ -7079,7 +7079,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":843 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":843 * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< @@ -7097,7 +7097,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":844 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":844 * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< @@ -7115,7 +7115,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":845 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":845 * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< @@ -7133,7 +7133,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":846 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":846 * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< @@ -7151,7 +7151,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":847 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":847 * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< @@ -7169,7 +7169,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":848 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":848 * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< @@ -7187,7 +7187,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":849 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":849 * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< @@ -7205,7 +7205,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":850 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":850 * 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 # <<<<<<<<<<<<<< @@ -7225,7 +7225,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":851 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":851 * 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 # <<<<<<<<<<<<<< @@ -7245,7 +7245,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":852 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":852 * 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 # <<<<<<<<<<<<<< @@ -7265,7 +7265,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":853 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":853 * 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" # <<<<<<<<<<<<<< @@ -7283,7 +7283,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":855 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":855 * elif t == NPY_OBJECT: f[0] = 79 #"O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< @@ -7302,7 +7302,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __pyx_L15:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":856 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":856 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * f += 1 # <<<<<<<<<<<<<< @@ -7311,7 +7311,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_f = (__pyx_v_f + 1); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< @@ -7321,7 +7321,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L13; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":860 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":860 * # Cython ignores struct boundary information ("T{...}"), * # so don't output it * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< @@ -7334,7 +7334,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __pyx_L13:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< @@ -7344,7 +7344,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":861 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":861 * # so don't output it * f = _util_dtypestring(child, f, end, offset) * return f # <<<<<<<<<<<<<< @@ -7354,7 +7354,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_r = __pyx_v_f; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< @@ -7380,7 +7380,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 * * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< @@ -7397,7 +7397,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a __Pyx_RefNannySetupContext("set_array_base", 0); __Pyx_TraceCall("set_array_base", __pyx_f[1], 977, 0, __PYX_ERR(1, 977, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 * cdef inline void set_array_base(ndarray arr, object base): * cdef PyObject* baseptr * if base is None: # <<<<<<<<<<<<<< @@ -7408,7 +7408,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":980 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":980 * cdef PyObject* baseptr * if base is None: * baseptr = NULL # <<<<<<<<<<<<<< @@ -7417,7 +7417,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ __pyx_v_baseptr = NULL; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 * cdef inline void set_array_base(ndarray arr, object base): * cdef PyObject* baseptr * if base is None: # <<<<<<<<<<<<<< @@ -7427,7 +7427,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a goto __pyx_L3; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":982 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":982 * baseptr = NULL * else: * Py_INCREF(base) # important to do this before decref below! # <<<<<<<<<<<<<< @@ -7437,7 +7437,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a /*else*/ { Py_INCREF(__pyx_v_base); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":983 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":983 * else: * Py_INCREF(base) # important to do this before decref below! * baseptr = base # <<<<<<<<<<<<<< @@ -7448,7 +7448,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a } __pyx_L3:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":984 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":984 * Py_INCREF(base) # important to do this before decref below! * baseptr = base * Py_XDECREF(arr.base) # <<<<<<<<<<<<<< @@ -7457,7 +7457,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ Py_XDECREF(__pyx_v_arr->base); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":985 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":985 * baseptr = base * Py_XDECREF(arr.base) * arr.base = baseptr # <<<<<<<<<<<<<< @@ -7466,7 +7466,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ __pyx_v_arr->base = __pyx_v_baseptr; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 * * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< @@ -7483,7 +7483,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a __Pyx_RefNannyFinishContext(); } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< @@ -7499,7 +7499,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py __Pyx_RefNannySetupContext("get_array_base", 0); __Pyx_TraceCall("get_array_base", __pyx_f[1], 987, 0, __PYX_ERR(1, 987, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 * * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: # <<<<<<<<<<<<<< @@ -7509,7 +7509,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py __pyx_t_1 = ((__pyx_v_arr->base == NULL) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":989 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":989 * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: * return None # <<<<<<<<<<<<<< @@ -7520,7 +7520,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 * * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: # <<<<<<<<<<<<<< @@ -7529,7 +7529,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":991 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":991 * return None * else: * return arr.base # <<<<<<<<<<<<<< @@ -7543,7 +7543,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py goto __pyx_L0; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< @@ -7562,7 +7562,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< @@ -7585,7 +7585,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __Pyx_RefNannySetupContext("import_array", 0); __Pyx_TraceCall("import_array", __pyx_f[1], 996, 0, __PYX_ERR(1, 996, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -7601,7 +7601,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":998 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":998 * cdef inline int import_array() except -1: * try: * _import_array() # <<<<<<<<<<<<<< @@ -7610,7 +7610,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { */ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 998, __pyx_L3_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -7624,7 +7624,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":999 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":999 * try: * _import_array() * except Exception: # <<<<<<<<<<<<<< @@ -7639,7 +7639,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 * _import_array() * except Exception: * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< @@ -7655,7 +7655,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -7670,7 +7670,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __pyx_L8_try_end:; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< @@ -7694,7 +7694,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< @@ -7717,7 +7717,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __Pyx_RefNannySetupContext("import_umath", 0); __Pyx_TraceCall("import_umath", __pyx_f[1], 1002, 0, __PYX_ERR(1, 1002, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -7733,7 +7733,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1004 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1004 * cdef inline int import_umath() except -1: * try: * _import_umath() # <<<<<<<<<<<<<< @@ -7742,7 +7742,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { */ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1004, __pyx_L3_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -7756,7 +7756,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1005 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1005 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< @@ -7771,7 +7771,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< @@ -7787,7 +7787,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -7802,7 +7802,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __pyx_L8_try_end:; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< @@ -7826,7 +7826,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< @@ -7849,7 +7849,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __Pyx_RefNannySetupContext("import_ufunc", 0); __Pyx_TraceCall("import_ufunc", __pyx_f[1], 1008, 0, __PYX_ERR(1, 1008, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -7865,7 +7865,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1010 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1010 * cdef inline int import_ufunc() except -1: * try: * _import_umath() # <<<<<<<<<<<<<< @@ -7874,7 +7874,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { */ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1010, __pyx_L3_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -7888,7 +7888,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1011 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1011 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< @@ -7902,7 +7902,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< @@ -7916,7 +7916,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -7931,7 +7931,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __pyx_L8_try_end:; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< @@ -8123,7 +8123,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_slice__10); __Pyx_GIVEREF(__pyx_slice__10); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< @@ -8134,7 +8134,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__11); __Pyx_GIVEREF(__pyx_tuple__11); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< @@ -8145,7 +8145,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__12); __Pyx_GIVEREF(__pyx_tuple__12); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< @@ -8156,7 +8156,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__13); __Pyx_GIVEREF(__pyx_tuple__13); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< @@ -8167,7 +8167,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__14); __Pyx_GIVEREF(__pyx_tuple__14); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< @@ -8178,7 +8178,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__15); __Pyx_GIVEREF(__pyx_tuple__15); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< @@ -8189,7 +8189,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__16); __Pyx_GIVEREF(__pyx_tuple__16); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 * _import_array() * except Exception: * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< @@ -8200,7 +8200,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__17); __Pyx_GIVEREF(__pyx_tuple__17); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< @@ -8211,7 +8211,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__18); __Pyx_GIVEREF(__pyx_tuple__18); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< @@ -8600,7 +8600,7 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< diff --git a/tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.cpython-35m-darwin.so b/tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.cpython-35m-darwin.so index da5806d3e9d2a1594bd774311fee8b824a13c987..1856156e50bda86015e78e58e5372d5c9ca23da5 100755 GIT binary patch delta 21 dcmX@Jo$btawuUW?Gpv{o8c1%RZN+Gq2moh>2u1(^ delta 21 dcmX@Jo$btawuUW?Gpv}OE)(BA+ltXJ5dds#2;Kky diff --git a/tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.c b/tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.c index 1f04765d..58957942 100644 --- a/tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.c +++ b/tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.c @@ -846,7 +846,7 @@ typedef struct { } __Pyx_BufFmt_Context; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":730 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":730 * # in Cython to enable them only on the right systems. * * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<< @@ -855,7 +855,7 @@ typedef struct { */ typedef npy_int8 __pyx_t_5numpy_int8_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":731 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":731 * * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< @@ -864,7 +864,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; */ typedef npy_int16 __pyx_t_5numpy_int16_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":732 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":732 * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<< @@ -873,7 +873,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; */ typedef npy_int32 __pyx_t_5numpy_int32_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":733 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":733 * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<< @@ -882,7 +882,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; */ typedef npy_int64 __pyx_t_5numpy_int64_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":737 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":737 * #ctypedef npy_int128 int128_t * * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< @@ -891,7 +891,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; */ typedef npy_uint8 __pyx_t_5numpy_uint8_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":738 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":738 * * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< @@ -900,7 +900,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; */ typedef npy_uint16 __pyx_t_5numpy_uint16_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":739 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":739 * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<< @@ -909,7 +909,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; */ typedef npy_uint32 __pyx_t_5numpy_uint32_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":740 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":740 * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<< @@ -918,7 +918,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; */ typedef npy_uint64 __pyx_t_5numpy_uint64_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":744 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":744 * #ctypedef npy_uint128 uint128_t * * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< @@ -927,7 +927,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; */ typedef npy_float32 __pyx_t_5numpy_float32_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":745 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":745 * * ctypedef npy_float32 float32_t * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< @@ -936,7 +936,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; */ typedef npy_float64 __pyx_t_5numpy_float64_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":754 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":754 * # The int types are mapped a bit surprising -- * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t # <<<<<<<<<<<<<< @@ -945,7 +945,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; */ typedef npy_long __pyx_t_5numpy_int_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":755 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":755 * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t * ctypedef npy_longlong long_t # <<<<<<<<<<<<<< @@ -954,7 +954,7 @@ typedef npy_long __pyx_t_5numpy_int_t; */ typedef npy_longlong __pyx_t_5numpy_long_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":756 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":756 * ctypedef npy_long int_t * ctypedef npy_longlong long_t * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<< @@ -963,7 +963,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; */ typedef npy_longlong __pyx_t_5numpy_longlong_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":758 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":758 * ctypedef npy_longlong longlong_t * * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< @@ -972,7 +972,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; */ typedef npy_ulong __pyx_t_5numpy_uint_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":759 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":759 * * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< @@ -981,7 +981,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; */ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":760 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":760 * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<< @@ -990,7 +990,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; */ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":762 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":762 * ctypedef npy_ulonglong ulonglong_t * * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< @@ -999,7 +999,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; */ typedef npy_intp __pyx_t_5numpy_intp_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":763 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":763 * * ctypedef npy_intp intp_t * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< @@ -1008,7 +1008,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; */ typedef npy_uintp __pyx_t_5numpy_uintp_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":765 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":765 * ctypedef npy_uintp uintp_t * * ctypedef npy_double float_t # <<<<<<<<<<<<<< @@ -1017,7 +1017,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; */ typedef npy_double __pyx_t_5numpy_float_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":766 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":766 * * ctypedef npy_double float_t * ctypedef npy_double double_t # <<<<<<<<<<<<<< @@ -1026,7 +1026,7 @@ typedef npy_double __pyx_t_5numpy_float_t; */ typedef npy_double __pyx_t_5numpy_double_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":767 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":767 * ctypedef npy_double float_t * ctypedef npy_double double_t * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<< @@ -1061,7 +1061,7 @@ static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(do /*--- Type declarations ---*/ -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":769 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":769 * ctypedef npy_longdouble longdouble_t * * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< @@ -1070,7 +1070,7 @@ static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(do */ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":770 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":770 * * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< @@ -1079,7 +1079,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; */ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":771 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":771 * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<< @@ -1088,7 +1088,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; */ typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":773 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":773 * ctypedef npy_clongdouble clongdouble_t * * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< @@ -14643,7 +14643,7 @@ static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cyth return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 * # experimental exception made for __getbuffer__ and __releasebuffer__ * # -- the details of this may change. * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< @@ -14691,7 +14691,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(__pyx_v_info->obj); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":222 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":222 * * cdef int i, ndim * cdef int endian_detector = 1 # <<<<<<<<<<<<<< @@ -14700,7 +14700,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_endian_detector = 1; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":223 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":223 * cdef int i, ndim * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< @@ -14709,7 +14709,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":225 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":225 * cdef bint little_endian = ((&endian_detector)[0] != 0) * * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< @@ -14718,7 +14718,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -14732,7 +14732,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P goto __pyx_L4_bool_binop_done; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":228 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":228 * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< @@ -14743,7 +14743,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -14752,7 +14752,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ if (unlikely(__pyx_t_1)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< @@ -14765,7 +14765,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 229, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -14774,7 +14774,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -14788,7 +14788,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P goto __pyx_L7_bool_binop_done; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":232 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":232 * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< @@ -14799,7 +14799,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = __pyx_t_2; __pyx_L7_bool_binop_done:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -14808,7 +14808,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ if (unlikely(__pyx_t_1)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< @@ -14821,7 +14821,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 233, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -14830,7 +14830,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":235 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":235 * raise ValueError(u"ndarray is not Fortran contiguous") * * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< @@ -14839,7 +14839,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":236 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":236 * * info.buf = PyArray_DATA(self) * info.ndim = ndim # <<<<<<<<<<<<<< @@ -14848,7 +14848,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->ndim = __pyx_v_ndim; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 * info.buf = PyArray_DATA(self) * info.ndim = ndim * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -14858,7 +14858,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":240 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":240 * # 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) # <<<<<<<<<<<<<< @@ -14867,7 +14867,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->strides = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * 2) * ((size_t)__pyx_v_ndim)))); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":241 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":241 * # This is allocated as one block, strides first. * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim # <<<<<<<<<<<<<< @@ -14876,7 +14876,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":242 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":242 * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim * for i in range(ndim): # <<<<<<<<<<<<<< @@ -14888,7 +14888,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":243 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":243 * info.shape = info.strides + ndim * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] # <<<<<<<<<<<<<< @@ -14897,7 +14897,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(__pyx_v_self)[__pyx_v_i]); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":244 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":244 * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] * info.shape[i] = PyArray_DIMS(self)[i] # <<<<<<<<<<<<<< @@ -14907,7 +14907,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 * info.buf = PyArray_DATA(self) * info.ndim = ndim * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -14917,7 +14917,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P goto __pyx_L9; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":246 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":246 * info.shape[i] = PyArray_DIMS(self)[i] * else: * info.strides = PyArray_STRIDES(self) # <<<<<<<<<<<<<< @@ -14927,7 +14927,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P /*else*/ { __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":247 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":247 * else: * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) # <<<<<<<<<<<<<< @@ -14938,7 +14938,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P } __pyx_L9:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":248 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":248 * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL # <<<<<<<<<<<<<< @@ -14947,7 +14947,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->suboffsets = NULL; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":249 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":249 * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) # <<<<<<<<<<<<<< @@ -14956,7 +14956,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":250 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":250 * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< @@ -14965,7 +14965,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":253 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":253 * * cdef int t * cdef char* f = NULL # <<<<<<<<<<<<<< @@ -14974,7 +14974,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_f = NULL; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":254 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":254 * cdef int t * cdef char* f = NULL * cdef dtype descr = self.descr # <<<<<<<<<<<<<< @@ -14986,7 +14986,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); __pyx_t_3 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":257 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":257 * cdef int offset * * info.obj = self # <<<<<<<<<<<<<< @@ -14999,7 +14999,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = ((PyObject *)__pyx_v_self); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 * info.obj = self * * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< @@ -15009,7 +15009,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = ((!(PyDataType_HASFIELDS(__pyx_v_descr) != 0)) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":260 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":260 * * if not PyDataType_HASFIELDS(descr): * t = descr.type_num # <<<<<<<<<<<<<< @@ -15019,7 +15019,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_4 = __pyx_v_descr->type_num; __pyx_v_t = __pyx_t_4; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -15039,7 +15039,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P } __pyx_L15_next_or:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":262 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":262 * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< @@ -15056,7 +15056,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = __pyx_t_2; __pyx_L14_bool_binop_done:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -15065,7 +15065,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ if (unlikely(__pyx_t_1)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< @@ -15078,7 +15078,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 263, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -15087,7 +15087,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":264 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":264 * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" # <<<<<<<<<<<<<< @@ -15099,7 +15099,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"b"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":265 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":265 * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" # <<<<<<<<<<<<<< @@ -15110,7 +15110,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"B"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":266 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":266 * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" # <<<<<<<<<<<<<< @@ -15121,7 +15121,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"h"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":267 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":267 * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" # <<<<<<<<<<<<<< @@ -15132,7 +15132,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"H"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":268 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":268 * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" # <<<<<<<<<<<<<< @@ -15143,7 +15143,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"i"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":269 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":269 * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" # <<<<<<<<<<<<<< @@ -15154,7 +15154,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"I"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":270 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":270 * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" # <<<<<<<<<<<<<< @@ -15165,7 +15165,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"l"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":271 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":271 * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" # <<<<<<<<<<<<<< @@ -15176,7 +15176,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"L"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":272 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":272 * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" # <<<<<<<<<<<<<< @@ -15187,7 +15187,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"q"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":273 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":273 * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" # <<<<<<<<<<<<<< @@ -15198,7 +15198,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Q"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":274 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":274 * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" # <<<<<<<<<<<<<< @@ -15209,7 +15209,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"f"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":275 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":275 * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" # <<<<<<<<<<<<<< @@ -15220,7 +15220,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"d"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":276 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":276 * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" # <<<<<<<<<<<<<< @@ -15231,7 +15231,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"g"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":277 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":277 * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" # <<<<<<<<<<<<<< @@ -15242,7 +15242,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zf"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":278 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":278 * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" # <<<<<<<<<<<<<< @@ -15253,7 +15253,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zd"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":279 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":279 * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" # <<<<<<<<<<<<<< @@ -15264,7 +15264,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zg"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":280 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":280 * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" * elif t == NPY_OBJECT: f = "O" # <<<<<<<<<<<<<< @@ -15276,7 +15276,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P break; default: - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":282 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":282 * elif t == NPY_OBJECT: f = "O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< @@ -15297,7 +15297,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P break; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":283 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":283 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f # <<<<<<<<<<<<<< @@ -15306,7 +15306,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->format = __pyx_v_f; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":284 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":284 * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f * return # <<<<<<<<<<<<<< @@ -15316,7 +15316,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_r = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 * info.obj = self * * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< @@ -15325,7 +15325,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":286 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":286 * return * else: * info.format = PyObject_Malloc(_buffer_format_string_len) # <<<<<<<<<<<<<< @@ -15335,7 +15335,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P /*else*/ { __pyx_v_info->format = ((char *)PyObject_Malloc(0xFF)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":287 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":287 * else: * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment # <<<<<<<<<<<<<< @@ -15344,7 +15344,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ (__pyx_v_info->format[0]) = '^'; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":288 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":288 * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 # <<<<<<<<<<<<<< @@ -15353,7 +15353,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_offset = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":289 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":289 * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 * f = _util_dtypestring(descr, info.format + 1, # <<<<<<<<<<<<<< @@ -15363,7 +15363,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_8 = __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_8 == ((char *)NULL))) __PYX_ERR(1, 289, __pyx_L1_error) __pyx_v_f = __pyx_t_8; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":292 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":292 * info.format + _buffer_format_string_len, * &offset) * f[0] = c'\0' # Terminate format string # <<<<<<<<<<<<<< @@ -15373,7 +15373,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P (__pyx_v_f[0]) = '\x00'; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 * # experimental exception made for __getbuffer__ and __releasebuffer__ * # -- the details of this may change. * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< @@ -15405,7 +15405,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< @@ -15429,7 +15429,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s int __pyx_t_1; __Pyx_RefNannySetupContext("__releasebuffer__", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< @@ -15439,7 +15439,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __pyx_t_1 = (PyArray_HASFIELDS(__pyx_v_self) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":296 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":296 * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) # <<<<<<<<<<<<<< @@ -15448,7 +15448,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ PyObject_Free(__pyx_v_info->format); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< @@ -15457,7 +15457,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -15467,7 +15467,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":298 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":298 * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): * PyObject_Free(info.strides) # <<<<<<<<<<<<<< @@ -15476,7 +15476,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ PyObject_Free(__pyx_v_info->strides); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -15485,7 +15485,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< @@ -15497,7 +15497,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __Pyx_RefNannyFinishContext(); } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< @@ -15511,7 +15511,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":776 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":776 * * cdef inline object PyArray_MultiIterNew1(a): * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< @@ -15525,7 +15525,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< @@ -15544,7 +15544,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< @@ -15558,7 +15558,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":779 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":779 * * cdef inline object PyArray_MultiIterNew2(a, b): * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< @@ -15572,7 +15572,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< @@ -15591,7 +15591,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< @@ -15605,7 +15605,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":782 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":782 * * cdef inline object PyArray_MultiIterNew3(a, b, c): * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< @@ -15619,7 +15619,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< @@ -15638,7 +15638,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< @@ -15652,7 +15652,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":785 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":785 * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< @@ -15666,7 +15666,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< @@ -15685,7 +15685,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< @@ -15699,7 +15699,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":788 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":788 * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<< @@ -15713,7 +15713,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< @@ -15732,7 +15732,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< @@ -15746,7 +15746,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ int __pyx_t_1; __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< @@ -15756,7 +15756,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":792 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":792 * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): * return d.subarray.shape # <<<<<<<<<<<<<< @@ -15768,7 +15768,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< @@ -15777,7 +15777,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":794 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":794 * return d.subarray.shape * else: * return () # <<<<<<<<<<<<<< @@ -15791,7 +15791,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ goto __pyx_L0; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< @@ -15806,7 +15806,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< @@ -15835,7 +15835,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx char *__pyx_t_9; __Pyx_RefNannySetupContext("_util_dtypestring", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":801 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":801 * * cdef dtype child * cdef int endian_detector = 1 # <<<<<<<<<<<<<< @@ -15844,7 +15844,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_endian_detector = 1; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":802 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":802 * cdef dtype child * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< @@ -15853,7 +15853,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< @@ -15876,7 +15876,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); __pyx_t_3 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":806 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":806 * * for childname in descr.names: * fields = descr.fields[childname] # <<<<<<<<<<<<<< @@ -15893,7 +15893,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":807 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":807 * for childname in descr.names: * fields = descr.fields[childname] * child, new_offset = fields # <<<<<<<<<<<<<< @@ -15928,7 +15928,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); __pyx_t_4 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< @@ -15945,7 +15945,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); if (unlikely(__pyx_t_6)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< @@ -15958,7 +15958,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 810, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< @@ -15967,7 +15967,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -15987,7 +15987,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __pyx_L8_next_or:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":813 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":813 * * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< @@ -16004,7 +16004,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = __pyx_t_7; __pyx_L7_bool_binop_done:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -16013,7 +16013,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ if (unlikely(__pyx_t_6)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< @@ -16026,7 +16026,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 814, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -16035,7 +16035,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":824 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":824 * * # Output padding bytes * while offset[0] < new_offset: # <<<<<<<<<<<<<< @@ -16051,7 +16051,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_6) break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":825 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":825 * # Output padding bytes * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< @@ -16060,7 +16060,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ (__pyx_v_f[0]) = 0x78; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":826 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":826 * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte * f += 1 # <<<<<<<<<<<<<< @@ -16069,7 +16069,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_f = (__pyx_v_f + 1); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":827 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":827 * f[0] = 120 # "x"; pad byte * f += 1 * offset[0] += 1 # <<<<<<<<<<<<<< @@ -16080,7 +16080,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":829 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":829 * offset[0] += 1 * * offset[0] += child.itemsize # <<<<<<<<<<<<<< @@ -16090,7 +16090,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_8 = 0; (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< @@ -16100,7 +16100,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); if (__pyx_t_6) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":832 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":832 * * if not PyDataType_HASFIELDS(child): * t = child.type_num # <<<<<<<<<<<<<< @@ -16112,7 +16112,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); __pyx_t_4 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< @@ -16122,7 +16122,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); if (unlikely(__pyx_t_6)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< @@ -16135,7 +16135,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 834, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< @@ -16144,7 +16144,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":837 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":837 * * # Until ticket #99 is fixed, use integers to avoid warnings * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< @@ -16162,7 +16162,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":838 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":838 * # 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" # <<<<<<<<<<<<<< @@ -16180,7 +16180,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":839 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":839 * if t == NPY_BYTE: f[0] = 98 #"b" * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< @@ -16198,7 +16198,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":840 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":840 * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< @@ -16216,7 +16216,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":841 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":841 * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< @@ -16234,7 +16234,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":842 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":842 * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< @@ -16252,7 +16252,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":843 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":843 * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< @@ -16270,7 +16270,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":844 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":844 * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< @@ -16288,7 +16288,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":845 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":845 * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< @@ -16306,7 +16306,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":846 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":846 * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< @@ -16324,7 +16324,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":847 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":847 * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< @@ -16342,7 +16342,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":848 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":848 * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< @@ -16360,7 +16360,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":849 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":849 * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< @@ -16378,7 +16378,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":850 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":850 * 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 # <<<<<<<<<<<<<< @@ -16398,7 +16398,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":851 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":851 * 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 # <<<<<<<<<<<<<< @@ -16418,7 +16418,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":852 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":852 * 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 # <<<<<<<<<<<<<< @@ -16438,7 +16438,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":853 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":853 * 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" # <<<<<<<<<<<<<< @@ -16456,7 +16456,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":855 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":855 * elif t == NPY_OBJECT: f[0] = 79 #"O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< @@ -16475,7 +16475,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __pyx_L15:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":856 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":856 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * f += 1 # <<<<<<<<<<<<<< @@ -16484,7 +16484,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_f = (__pyx_v_f + 1); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< @@ -16494,7 +16494,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L13; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":860 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":860 * # Cython ignores struct boundary information ("T{...}"), * # so don't output it * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< @@ -16507,7 +16507,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __pyx_L13:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< @@ -16517,7 +16517,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":861 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":861 * # so don't output it * f = _util_dtypestring(child, f, end, offset) * return f # <<<<<<<<<<<<<< @@ -16527,7 +16527,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_r = __pyx_v_f; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< @@ -16552,7 +16552,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 * * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< @@ -16567,7 +16567,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a int __pyx_t_2; __Pyx_RefNannySetupContext("set_array_base", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 * cdef inline void set_array_base(ndarray arr, object base): * cdef PyObject* baseptr * if base is None: # <<<<<<<<<<<<<< @@ -16578,7 +16578,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":980 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":980 * cdef PyObject* baseptr * if base is None: * baseptr = NULL # <<<<<<<<<<<<<< @@ -16587,7 +16587,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ __pyx_v_baseptr = NULL; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 * cdef inline void set_array_base(ndarray arr, object base): * cdef PyObject* baseptr * if base is None: # <<<<<<<<<<<<<< @@ -16597,7 +16597,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a goto __pyx_L3; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":982 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":982 * baseptr = NULL * else: * Py_INCREF(base) # important to do this before decref below! # <<<<<<<<<<<<<< @@ -16607,7 +16607,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a /*else*/ { Py_INCREF(__pyx_v_base); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":983 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":983 * else: * Py_INCREF(base) # important to do this before decref below! * baseptr = base # <<<<<<<<<<<<<< @@ -16618,7 +16618,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a } __pyx_L3:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":984 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":984 * Py_INCREF(base) # important to do this before decref below! * baseptr = base * Py_XDECREF(arr.base) # <<<<<<<<<<<<<< @@ -16627,7 +16627,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ Py_XDECREF(__pyx_v_arr->base); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":985 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":985 * baseptr = base * Py_XDECREF(arr.base) * arr.base = baseptr # <<<<<<<<<<<<<< @@ -16636,7 +16636,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ __pyx_v_arr->base = __pyx_v_baseptr; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 * * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< @@ -16648,7 +16648,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a __Pyx_RefNannyFinishContext(); } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< @@ -16662,7 +16662,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py int __pyx_t_1; __Pyx_RefNannySetupContext("get_array_base", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 * * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: # <<<<<<<<<<<<<< @@ -16672,7 +16672,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py __pyx_t_1 = ((__pyx_v_arr->base == NULL) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":989 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":989 * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: * return None # <<<<<<<<<<<<<< @@ -16683,7 +16683,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 * * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: # <<<<<<<<<<<<<< @@ -16692,7 +16692,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":991 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":991 * return None * else: * return arr.base # <<<<<<<<<<<<<< @@ -16706,7 +16706,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py goto __pyx_L0; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< @@ -16721,7 +16721,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< @@ -16742,7 +16742,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_array", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -16758,7 +16758,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":998 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":998 * cdef inline int import_array() except -1: * try: * _import_array() # <<<<<<<<<<<<<< @@ -16767,7 +16767,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { */ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 998, __pyx_L3_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -16781,7 +16781,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":999 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":999 * try: * _import_array() * except Exception: # <<<<<<<<<<<<<< @@ -16796,7 +16796,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 * _import_array() * except Exception: * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< @@ -16812,7 +16812,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -16827,7 +16827,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __pyx_L8_try_end:; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< @@ -16850,7 +16850,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< @@ -16871,7 +16871,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_umath", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -16887,7 +16887,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1004 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1004 * cdef inline int import_umath() except -1: * try: * _import_umath() # <<<<<<<<<<<<<< @@ -16896,7 +16896,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { */ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1004, __pyx_L3_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -16910,7 +16910,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1005 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1005 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< @@ -16925,7 +16925,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< @@ -16941,7 +16941,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -16956,7 +16956,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __pyx_L8_try_end:; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< @@ -16979,7 +16979,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< @@ -17000,7 +17000,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_ufunc", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -17016,7 +17016,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1010 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1010 * cdef inline int import_ufunc() except -1: * try: * _import_umath() # <<<<<<<<<<<<<< @@ -17025,7 +17025,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { */ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1010, __pyx_L3_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -17039,7 +17039,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1011 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1011 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< @@ -17053,7 +17053,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< @@ -17067,7 +17067,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -17082,7 +17082,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __pyx_L8_try_end:; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< @@ -17385,7 +17385,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_slice__7); __Pyx_GIVEREF(__pyx_slice__7); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< @@ -17396,7 +17396,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__8); __Pyx_GIVEREF(__pyx_tuple__8); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< @@ -17407,7 +17407,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__9); __Pyx_GIVEREF(__pyx_tuple__9); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< @@ -17418,7 +17418,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__10); __Pyx_GIVEREF(__pyx_tuple__10); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< @@ -17429,7 +17429,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__11); __Pyx_GIVEREF(__pyx_tuple__11); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< @@ -17440,7 +17440,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__12); __Pyx_GIVEREF(__pyx_tuple__12); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< @@ -17451,7 +17451,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__13); __Pyx_GIVEREF(__pyx_tuple__13); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 * _import_array() * except Exception: * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< @@ -17462,7 +17462,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__14); __Pyx_GIVEREF(__pyx_tuple__14); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< @@ -17473,7 +17473,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__15); __Pyx_GIVEREF(__pyx_tuple__15); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< @@ -17965,7 +17965,7 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< diff --git a/tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.cpython-35m-darwin.so b/tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.cpython-35m-darwin.so index cea2bcda49e1f857a42f90d388e35ccc620e6698..e1f6ca9a919b12eab3498e35d100be639999c186 100755 GIT binary patch delta 23 fcmbR9hiA?oo`x32EldY`n2#DrZa>_^6uA)qgDeVj delta 23 fcmbR9hiA?oo`x32EldY`m|rXt-+s7obj); __Pyx_TraceCall("__getbuffer__", __pyx_f[1], 215, 0, __PYX_ERR(1, 215, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":222 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":222 * * cdef int i, ndim * cdef int endian_detector = 1 # <<<<<<<<<<<<<< @@ -3781,7 +3781,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_endian_detector = 1; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":223 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":223 * cdef int i, ndim * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< @@ -3790,7 +3790,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":225 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":225 * cdef bint little_endian = ((&endian_detector)[0] != 0) * * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< @@ -3799,7 +3799,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -3813,7 +3813,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P goto __pyx_L4_bool_binop_done; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":228 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":228 * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< @@ -3824,7 +3824,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -3833,7 +3833,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ if (unlikely(__pyx_t_1)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< @@ -3846,7 +3846,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 229, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -3855,7 +3855,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -3869,7 +3869,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P goto __pyx_L7_bool_binop_done; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":232 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":232 * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< @@ -3880,7 +3880,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = __pyx_t_2; __pyx_L7_bool_binop_done:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -3889,7 +3889,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ if (unlikely(__pyx_t_1)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< @@ -3902,7 +3902,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 233, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -3911,7 +3911,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":235 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":235 * raise ValueError(u"ndarray is not Fortran contiguous") * * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< @@ -3920,7 +3920,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":236 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":236 * * info.buf = PyArray_DATA(self) * info.ndim = ndim # <<<<<<<<<<<<<< @@ -3929,7 +3929,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->ndim = __pyx_v_ndim; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 * info.buf = PyArray_DATA(self) * info.ndim = ndim * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -3939,7 +3939,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":240 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":240 * # 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) # <<<<<<<<<<<<<< @@ -3948,7 +3948,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->strides = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * 2) * ((size_t)__pyx_v_ndim)))); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":241 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":241 * # This is allocated as one block, strides first. * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim # <<<<<<<<<<<<<< @@ -3957,7 +3957,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":242 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":242 * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim * for i in range(ndim): # <<<<<<<<<<<<<< @@ -3969,7 +3969,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":243 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":243 * info.shape = info.strides + ndim * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] # <<<<<<<<<<<<<< @@ -3978,7 +3978,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(__pyx_v_self)[__pyx_v_i]); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":244 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":244 * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] * info.shape[i] = PyArray_DIMS(self)[i] # <<<<<<<<<<<<<< @@ -3988,7 +3988,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 * info.buf = PyArray_DATA(self) * info.ndim = ndim * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -3998,7 +3998,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P goto __pyx_L9; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":246 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":246 * info.shape[i] = PyArray_DIMS(self)[i] * else: * info.strides = PyArray_STRIDES(self) # <<<<<<<<<<<<<< @@ -4008,7 +4008,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P /*else*/ { __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":247 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":247 * else: * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) # <<<<<<<<<<<<<< @@ -4019,7 +4019,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P } __pyx_L9:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":248 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":248 * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL # <<<<<<<<<<<<<< @@ -4028,7 +4028,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->suboffsets = NULL; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":249 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":249 * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) # <<<<<<<<<<<<<< @@ -4037,7 +4037,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":250 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":250 * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< @@ -4046,7 +4046,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":253 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":253 * * cdef int t * cdef char* f = NULL # <<<<<<<<<<<<<< @@ -4055,7 +4055,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_f = NULL; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":254 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":254 * cdef int t * cdef char* f = NULL * cdef dtype descr = self.descr # <<<<<<<<<<<<<< @@ -4067,7 +4067,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); __pyx_t_3 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":257 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":257 * cdef int offset * * info.obj = self # <<<<<<<<<<<<<< @@ -4080,7 +4080,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = ((PyObject *)__pyx_v_self); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 * info.obj = self * * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< @@ -4090,7 +4090,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = ((!(PyDataType_HASFIELDS(__pyx_v_descr) != 0)) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":260 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":260 * * if not PyDataType_HASFIELDS(descr): * t = descr.type_num # <<<<<<<<<<<<<< @@ -4100,7 +4100,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_4 = __pyx_v_descr->type_num; __pyx_v_t = __pyx_t_4; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -4120,7 +4120,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P } __pyx_L15_next_or:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":262 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":262 * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< @@ -4137,7 +4137,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = __pyx_t_2; __pyx_L14_bool_binop_done:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -4146,7 +4146,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ if (unlikely(__pyx_t_1)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< @@ -4159,7 +4159,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 263, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -4168,7 +4168,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":264 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":264 * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" # <<<<<<<<<<<<<< @@ -4180,7 +4180,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"b"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":265 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":265 * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" # <<<<<<<<<<<<<< @@ -4191,7 +4191,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"B"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":266 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":266 * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" # <<<<<<<<<<<<<< @@ -4202,7 +4202,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"h"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":267 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":267 * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" # <<<<<<<<<<<<<< @@ -4213,7 +4213,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"H"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":268 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":268 * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" # <<<<<<<<<<<<<< @@ -4224,7 +4224,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"i"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":269 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":269 * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" # <<<<<<<<<<<<<< @@ -4235,7 +4235,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"I"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":270 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":270 * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" # <<<<<<<<<<<<<< @@ -4246,7 +4246,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"l"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":271 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":271 * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" # <<<<<<<<<<<<<< @@ -4257,7 +4257,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"L"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":272 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":272 * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" # <<<<<<<<<<<<<< @@ -4268,7 +4268,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"q"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":273 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":273 * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" # <<<<<<<<<<<<<< @@ -4279,7 +4279,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Q"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":274 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":274 * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" # <<<<<<<<<<<<<< @@ -4290,7 +4290,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"f"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":275 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":275 * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" # <<<<<<<<<<<<<< @@ -4301,7 +4301,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"d"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":276 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":276 * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" # <<<<<<<<<<<<<< @@ -4312,7 +4312,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"g"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":277 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":277 * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" # <<<<<<<<<<<<<< @@ -4323,7 +4323,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zf"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":278 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":278 * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" # <<<<<<<<<<<<<< @@ -4334,7 +4334,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zd"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":279 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":279 * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" # <<<<<<<<<<<<<< @@ -4345,7 +4345,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zg"); break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":280 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":280 * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" * elif t == NPY_OBJECT: f = "O" # <<<<<<<<<<<<<< @@ -4357,7 +4357,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P break; default: - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":282 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":282 * elif t == NPY_OBJECT: f = "O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< @@ -4378,7 +4378,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P break; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":283 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":283 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f # <<<<<<<<<<<<<< @@ -4387,7 +4387,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->format = __pyx_v_f; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":284 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":284 * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f * return # <<<<<<<<<<<<<< @@ -4397,7 +4397,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_r = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 * info.obj = self * * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< @@ -4406,7 +4406,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":286 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":286 * return * else: * info.format = PyObject_Malloc(_buffer_format_string_len) # <<<<<<<<<<<<<< @@ -4416,7 +4416,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P /*else*/ { __pyx_v_info->format = ((char *)PyObject_Malloc(0xFF)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":287 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":287 * else: * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment # <<<<<<<<<<<<<< @@ -4425,7 +4425,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ (__pyx_v_info->format[0]) = '^'; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":288 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":288 * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 # <<<<<<<<<<<<<< @@ -4434,7 +4434,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_offset = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":289 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":289 * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 * f = _util_dtypestring(descr, info.format + 1, # <<<<<<<<<<<<<< @@ -4444,7 +4444,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_8 = __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_8 == ((char *)NULL))) __PYX_ERR(1, 289, __pyx_L1_error) __pyx_v_f = __pyx_t_8; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":292 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":292 * info.format + _buffer_format_string_len, * &offset) * f[0] = c'\0' # Terminate format string # <<<<<<<<<<<<<< @@ -4454,7 +4454,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P (__pyx_v_f[0]) = '\x00'; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 * # experimental exception made for __getbuffer__ and __releasebuffer__ * # -- the details of this may change. * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< @@ -4487,7 +4487,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< @@ -4513,7 +4513,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __Pyx_RefNannySetupContext("__releasebuffer__", 0); __Pyx_TraceCall("__releasebuffer__", __pyx_f[1], 294, 0, __PYX_ERR(1, 294, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< @@ -4523,7 +4523,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __pyx_t_1 = (PyArray_HASFIELDS(__pyx_v_self) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":296 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":296 * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) # <<<<<<<<<<<<<< @@ -4532,7 +4532,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ PyObject_Free(__pyx_v_info->format); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< @@ -4541,7 +4541,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -4551,7 +4551,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":298 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":298 * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): * PyObject_Free(info.strides) # <<<<<<<<<<<<<< @@ -4560,7 +4560,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ PyObject_Free(__pyx_v_info->strides); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -4569,7 +4569,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< @@ -4586,7 +4586,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __Pyx_RefNannyFinishContext(); } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< @@ -4602,7 +4602,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); __Pyx_TraceCall("PyArray_MultiIterNew1", __pyx_f[1], 775, 0, __PYX_ERR(1, 775, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":776 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":776 * * cdef inline object PyArray_MultiIterNew1(a): * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< @@ -4616,7 +4616,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< @@ -4636,7 +4636,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< @@ -4652,7 +4652,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); __Pyx_TraceCall("PyArray_MultiIterNew2", __pyx_f[1], 778, 0, __PYX_ERR(1, 778, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":779 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":779 * * cdef inline object PyArray_MultiIterNew2(a, b): * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< @@ -4666,7 +4666,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< @@ -4686,7 +4686,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< @@ -4702,7 +4702,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); __Pyx_TraceCall("PyArray_MultiIterNew3", __pyx_f[1], 781, 0, __PYX_ERR(1, 781, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":782 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":782 * * cdef inline object PyArray_MultiIterNew3(a, b, c): * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< @@ -4716,7 +4716,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< @@ -4736,7 +4736,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< @@ -4752,7 +4752,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); __Pyx_TraceCall("PyArray_MultiIterNew4", __pyx_f[1], 784, 0, __PYX_ERR(1, 784, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":785 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":785 * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< @@ -4766,7 +4766,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< @@ -4786,7 +4786,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< @@ -4802,7 +4802,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); __Pyx_TraceCall("PyArray_MultiIterNew5", __pyx_f[1], 787, 0, __PYX_ERR(1, 787, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":788 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":788 * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<< @@ -4816,7 +4816,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< @@ -4836,7 +4836,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< @@ -4852,7 +4852,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); __Pyx_TraceCall("PyDataType_SHAPE", __pyx_f[1], 790, 0, __PYX_ERR(1, 790, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< @@ -4862,7 +4862,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":792 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":792 * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): * return d.subarray.shape # <<<<<<<<<<<<<< @@ -4874,7 +4874,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< @@ -4883,7 +4883,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":794 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":794 * return d.subarray.shape * else: * return () # <<<<<<<<<<<<<< @@ -4897,7 +4897,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ goto __pyx_L0; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< @@ -4916,7 +4916,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< @@ -4947,7 +4947,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_RefNannySetupContext("_util_dtypestring", 0); __Pyx_TraceCall("_util_dtypestring", __pyx_f[1], 796, 0, __PYX_ERR(1, 796, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":801 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":801 * * cdef dtype child * cdef int endian_detector = 1 # <<<<<<<<<<<<<< @@ -4956,7 +4956,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_endian_detector = 1; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":802 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":802 * cdef dtype child * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< @@ -4965,7 +4965,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< @@ -4988,7 +4988,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); __pyx_t_3 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":806 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":806 * * for childname in descr.names: * fields = descr.fields[childname] # <<<<<<<<<<<<<< @@ -5005,7 +5005,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":807 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":807 * for childname in descr.names: * fields = descr.fields[childname] * child, new_offset = fields # <<<<<<<<<<<<<< @@ -5040,7 +5040,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); __pyx_t_4 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< @@ -5057,7 +5057,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); if (unlikely(__pyx_t_6)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< @@ -5070,7 +5070,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 810, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< @@ -5079,7 +5079,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -5099,7 +5099,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __pyx_L8_next_or:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":813 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":813 * * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< @@ -5116,7 +5116,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = __pyx_t_7; __pyx_L7_bool_binop_done:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -5125,7 +5125,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ if (unlikely(__pyx_t_6)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< @@ -5138,7 +5138,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 814, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -5147,7 +5147,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":824 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":824 * * # Output padding bytes * while offset[0] < new_offset: # <<<<<<<<<<<<<< @@ -5163,7 +5163,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_6) break; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":825 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":825 * # Output padding bytes * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< @@ -5172,7 +5172,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ (__pyx_v_f[0]) = 0x78; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":826 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":826 * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte * f += 1 # <<<<<<<<<<<<<< @@ -5181,7 +5181,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_f = (__pyx_v_f + 1); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":827 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":827 * f[0] = 120 # "x"; pad byte * f += 1 * offset[0] += 1 # <<<<<<<<<<<<<< @@ -5192,7 +5192,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":829 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":829 * offset[0] += 1 * * offset[0] += child.itemsize # <<<<<<<<<<<<<< @@ -5202,7 +5202,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_8 = 0; (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< @@ -5212,7 +5212,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); if (__pyx_t_6) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":832 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":832 * * if not PyDataType_HASFIELDS(child): * t = child.type_num # <<<<<<<<<<<<<< @@ -5224,7 +5224,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); __pyx_t_4 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< @@ -5234,7 +5234,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); if (unlikely(__pyx_t_6)) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< @@ -5247,7 +5247,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 834, __pyx_L1_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< @@ -5256,7 +5256,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":837 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":837 * * # Until ticket #99 is fixed, use integers to avoid warnings * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< @@ -5274,7 +5274,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":838 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":838 * # 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" # <<<<<<<<<<<<<< @@ -5292,7 +5292,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":839 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":839 * if t == NPY_BYTE: f[0] = 98 #"b" * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< @@ -5310,7 +5310,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":840 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":840 * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< @@ -5328,7 +5328,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":841 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":841 * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< @@ -5346,7 +5346,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":842 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":842 * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< @@ -5364,7 +5364,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":843 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":843 * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< @@ -5382,7 +5382,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":844 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":844 * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< @@ -5400,7 +5400,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":845 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":845 * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< @@ -5418,7 +5418,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":846 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":846 * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< @@ -5436,7 +5436,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":847 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":847 * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< @@ -5454,7 +5454,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":848 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":848 * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< @@ -5472,7 +5472,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":849 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":849 * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< @@ -5490,7 +5490,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":850 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":850 * 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 # <<<<<<<<<<<<<< @@ -5510,7 +5510,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":851 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":851 * 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 # <<<<<<<<<<<<<< @@ -5530,7 +5530,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":852 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":852 * 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 # <<<<<<<<<<<<<< @@ -5550,7 +5550,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":853 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":853 * 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" # <<<<<<<<<<<<<< @@ -5568,7 +5568,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":855 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":855 * elif t == NPY_OBJECT: f[0] = 79 #"O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< @@ -5587,7 +5587,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __pyx_L15:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":856 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":856 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * f += 1 # <<<<<<<<<<<<<< @@ -5596,7 +5596,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_f = (__pyx_v_f + 1); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< @@ -5606,7 +5606,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L13; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":860 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":860 * # Cython ignores struct boundary information ("T{...}"), * # so don't output it * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< @@ -5619,7 +5619,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __pyx_L13:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< @@ -5629,7 +5629,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":861 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":861 * # so don't output it * f = _util_dtypestring(child, f, end, offset) * return f # <<<<<<<<<<<<<< @@ -5639,7 +5639,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_r = __pyx_v_f; goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< @@ -5665,7 +5665,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 * * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< @@ -5682,7 +5682,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a __Pyx_RefNannySetupContext("set_array_base", 0); __Pyx_TraceCall("set_array_base", __pyx_f[1], 977, 0, __PYX_ERR(1, 977, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 * cdef inline void set_array_base(ndarray arr, object base): * cdef PyObject* baseptr * if base is None: # <<<<<<<<<<<<<< @@ -5693,7 +5693,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":980 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":980 * cdef PyObject* baseptr * if base is None: * baseptr = NULL # <<<<<<<<<<<<<< @@ -5702,7 +5702,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ __pyx_v_baseptr = NULL; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 * cdef inline void set_array_base(ndarray arr, object base): * cdef PyObject* baseptr * if base is None: # <<<<<<<<<<<<<< @@ -5712,7 +5712,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a goto __pyx_L3; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":982 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":982 * baseptr = NULL * else: * Py_INCREF(base) # important to do this before decref below! # <<<<<<<<<<<<<< @@ -5722,7 +5722,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a /*else*/ { Py_INCREF(__pyx_v_base); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":983 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":983 * else: * Py_INCREF(base) # important to do this before decref below! * baseptr = base # <<<<<<<<<<<<<< @@ -5733,7 +5733,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a } __pyx_L3:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":984 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":984 * Py_INCREF(base) # important to do this before decref below! * baseptr = base * Py_XDECREF(arr.base) # <<<<<<<<<<<<<< @@ -5742,7 +5742,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ Py_XDECREF(__pyx_v_arr->base); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":985 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":985 * baseptr = base * Py_XDECREF(arr.base) * arr.base = baseptr # <<<<<<<<<<<<<< @@ -5751,7 +5751,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ __pyx_v_arr->base = __pyx_v_baseptr; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 * * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< @@ -5768,7 +5768,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a __Pyx_RefNannyFinishContext(); } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< @@ -5784,7 +5784,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py __Pyx_RefNannySetupContext("get_array_base", 0); __Pyx_TraceCall("get_array_base", __pyx_f[1], 987, 0, __PYX_ERR(1, 987, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 * * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: # <<<<<<<<<<<<<< @@ -5794,7 +5794,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py __pyx_t_1 = ((__pyx_v_arr->base == NULL) != 0); if (__pyx_t_1) { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":989 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":989 * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: * return None # <<<<<<<<<<<<<< @@ -5805,7 +5805,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 * * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: # <<<<<<<<<<<<<< @@ -5814,7 +5814,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py */ } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":991 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":991 * return None * else: * return arr.base # <<<<<<<<<<<<<< @@ -5828,7 +5828,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py goto __pyx_L0; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< @@ -5847,7 +5847,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< @@ -5870,7 +5870,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __Pyx_RefNannySetupContext("import_array", 0); __Pyx_TraceCall("import_array", __pyx_f[1], 996, 0, __PYX_ERR(1, 996, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -5886,7 +5886,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":998 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":998 * cdef inline int import_array() except -1: * try: * _import_array() # <<<<<<<<<<<<<< @@ -5895,7 +5895,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { */ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 998, __pyx_L3_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -5909,7 +5909,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":999 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":999 * try: * _import_array() * except Exception: # <<<<<<<<<<<<<< @@ -5924,7 +5924,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 * _import_array() * except Exception: * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< @@ -5940,7 +5940,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -5955,7 +5955,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __pyx_L8_try_end:; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< @@ -5979,7 +5979,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< @@ -6002,7 +6002,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __Pyx_RefNannySetupContext("import_umath", 0); __Pyx_TraceCall("import_umath", __pyx_f[1], 1002, 0, __PYX_ERR(1, 1002, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -6018,7 +6018,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1004 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1004 * cdef inline int import_umath() except -1: * try: * _import_umath() # <<<<<<<<<<<<<< @@ -6027,7 +6027,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { */ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1004, __pyx_L3_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -6041,7 +6041,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1005 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1005 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< @@ -6056,7 +6056,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< @@ -6072,7 +6072,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -6087,7 +6087,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __pyx_L8_try_end:; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< @@ -6111,7 +6111,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { return __pyx_r; } -/* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 +/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< @@ -6134,7 +6134,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __Pyx_RefNannySetupContext("import_ufunc", 0); __Pyx_TraceCall("import_ufunc", __pyx_f[1], 1008, 0, __PYX_ERR(1, 1008, __pyx_L1_error)); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -6150,7 +6150,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1010 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1010 * cdef inline int import_ufunc() except -1: * try: * _import_umath() # <<<<<<<<<<<<<< @@ -6159,7 +6159,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { */ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1010, __pyx_L3_error) - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -6173,7 +6173,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1011 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1011 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< @@ -6187,7 +6187,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< @@ -6201,7 +6201,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -6216,7 +6216,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __pyx_L8_try_end:; } - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< @@ -6350,7 +6350,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< @@ -6361,7 +6361,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__3); __Pyx_GIVEREF(__pyx_tuple__3); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< @@ -6372,7 +6372,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__4); __Pyx_GIVEREF(__pyx_tuple__4); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< @@ -6383,7 +6383,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__5); __Pyx_GIVEREF(__pyx_tuple__5); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< @@ -6394,7 +6394,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__6); __Pyx_GIVEREF(__pyx_tuple__6); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< @@ -6405,7 +6405,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__7); __Pyx_GIVEREF(__pyx_tuple__7); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< @@ -6416,7 +6416,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__8); __Pyx_GIVEREF(__pyx_tuple__8); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 * _import_array() * except Exception: * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< @@ -6427,7 +6427,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__9); __Pyx_GIVEREF(__pyx_tuple__9); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< @@ -6438,7 +6438,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__10); __Pyx_GIVEREF(__pyx_tuple__10); - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< @@ -6784,7 +6784,7 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "../../../miniconda3/envs/tierpsy_bin/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 + /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< diff --git a/tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.cpython-35m-darwin.so b/tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.cpython-35m-darwin.so index ed49cd1de9c5ece45ad8a5d3d1c0d44b19d21ad7..1c0f8f646c92a655c3a81a70b27bb8c25d475083 100755 GIT binary patch delta 18 acmX?eljY1!mJJp+n2#AqZnnNLF$4fu%Lvc_ delta 18 acmX?eljY1!mJJp+m|rdv-)wzjVh8|T5ea7i From 743715a6ee304451b034538de44d5bc1a5ae8697 Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Thu, 7 Jun 2018 18:14:49 +0100 Subject: [PATCH 17/37] change how to access to the WT2 flag we can have different analysis_types, that follow a similar WT2 sequence --- tierpsy/analysis/compress/__init__.py | 2 +- tierpsy/analysis/feat_create/__init__.py | 9 +- tierpsy/analysis/int_profile/__init__.py | 2 +- tierpsy/analysis/ske_pharynx/__init__.py | 10 ++ tierpsy/analysis/traj_join/__init__.py | 2 +- .../traj_join/joinBlobsTrajectories.py | 4 +- tierpsy/helper/params/docs_analysis_points.py | 126 +++++++++--------- tierpsy/helper/params/docs_tracker_param.py | 8 +- tierpsy/helper/params/tracker_param.py | 23 +++- tierpsy/processing/ProcessLocal.py | 4 +- 10 files changed, 110 insertions(+), 80 deletions(-) create mode 100644 tierpsy/analysis/ske_pharynx/__init__.py diff --git a/tierpsy/analysis/compress/__init__.py b/tierpsy/analysis/compress/__init__.py index 502eb037..9e2240dc 100755 --- a/tierpsy/analysis/compress/__init__.py +++ b/tierpsy/analysis/compress/__init__.py @@ -6,7 +6,7 @@ def args_(fn, param): #step requirements requirements = [('can_read_video', partial(isGoodVideo, fn['original_video']))] - if param.p_dict['analysis_type'] == 'WT2': + if param.is_WT2: from ..compress_add_data import storeAdditionalDataSW, hasAdditionalFiles #if a shaffer single worm video does not have the additional files (info.xml log.csv) do not even execute the compression requirements += [('has_additional_files', partial(hasAdditionalFiles, fn['original_video']))] diff --git a/tierpsy/analysis/feat_create/__init__.py b/tierpsy/analysis/feat_create/__init__.py index e400e567..c5147ed0 100755 --- a/tierpsy/analysis/feat_create/__init__.py +++ b/tierpsy/analysis/feat_create/__init__.py @@ -1,11 +1,12 @@ from .obtainFeatures import getWormFeaturesFilt from ..ske_filt import get_feat_filt_param -def _get_feats_param(p): +def _get_feats_param(param): + p = param.p_dict return { 'feat_filt_param': get_feat_filt_param(p), 'split_traj_time' : p['split_traj_time'], - 'is_single_worm': p['analysis_type'] == 'WT2' + 'is_single_worm': param.is_WT2 } @@ -14,7 +15,7 @@ def args_(fn, param): # getWormFeatures main_func = getWormFeaturesFilt requirements = ['SKE_CREATE'] - if param.p_dict['analysis_type'] == 'WT2': + if param.is_WT2: from functools import partial from ..contour_orient import ventral_orient_wrapper from ..stage_aligment import isGoodStageAligment @@ -27,7 +28,7 @@ def args_(fn, param): return { 'func': main_func, 'argkws': {'skeletons_file': fn['skeletons'], 'features_file': fn['features'], - **_get_feats_param(param.p_dict), + **_get_feats_param(param), 'use_skel_filter': True, 'use_manual_join': False }, 'input_files' : [fn['skeletons']], diff --git a/tierpsy/analysis/int_profile/__init__.py b/tierpsy/analysis/int_profile/__init__.py index f6823365..276b0998 100644 --- a/tierpsy/analysis/int_profile/__init__.py +++ b/tierpsy/analysis/int_profile/__init__.py @@ -19,7 +19,7 @@ def args_(fn, param): requirements = ['SKE_CREATE'] main_func = getIntensityProfile - if p['analysis_type'] == 'WT2': + if param.is_WT2: from functools import partial from ..contour_orient import ventral_orient_wrapper main_func = partial(ventral_orient_wrapper, main_func, fn['skeletons'], param.p_dict['ventral_side']) diff --git a/tierpsy/analysis/ske_pharynx/__init__.py b/tierpsy/analysis/ske_pharynx/__init__.py new file mode 100644 index 00000000..85ed41eb --- /dev/null +++ b/tierpsy/analysis/ske_pharynx/__init__.py @@ -0,0 +1,10 @@ +from .orient_pharinx import orient_pharinx + +def args_(fn, param): + return { + 'func': orient_pharinx, + 'argkws': {'masked_file': fn['masked_image'], 'skeletons_file': fn['skeletons']}, + 'input_files' : [fn['skeletons'], fn['masked_image']], + 'output_files': [fn['skeletons']], + 'requirements' : ['SKE_CREATE'], + } \ No newline at end of file diff --git a/tierpsy/analysis/traj_join/__init__.py b/tierpsy/analysis/traj_join/__init__.py index 87a18e01..b2046c97 100644 --- a/tierpsy/analysis/traj_join/__init__.py +++ b/tierpsy/analysis/traj_join/__init__.py @@ -9,7 +9,7 @@ def args_(fn, param): 'min_track_size': 0, 'max_frames_gap': p['traj_max_frames_gap'], 'area_ratio_lim': p['traj_area_ratio_lim'], - 'analysis_type': p['analysis_type'] + 'is_one_worm': param.is_one_worm } #arguments used by AnalysisPoints.py diff --git a/tierpsy/analysis/traj_join/joinBlobsTrajectories.py b/tierpsy/analysis/traj_join/joinBlobsTrajectories.py index 257646f9..84ff765f 100644 --- a/tierpsy/analysis/traj_join/joinBlobsTrajectories.py +++ b/tierpsy/analysis/traj_join/joinBlobsTrajectories.py @@ -371,7 +371,7 @@ def _joinDict2Index(worm_index, relations_dict, valid_indexes): def joinBlobsTrajectories(trajectories_file, - analysis_type, + is_one_worm, max_allowed_dist, area_ratio_lim, min_track_size, @@ -383,7 +383,7 @@ def joinBlobsTrajectories(trajectories_file, assignBlobTraj(trajectories_file, max_allowed_dist, area_ratio_lim) - if analysis_type == 'WT2' or analysis_type=='WORM_SINGLE': + if is_one_worm: correctSingleWormCase(trajectories_file) else: joinGapsTrajectories(trajectories_file, min_track_size, max_frames_gap, area_ratio_lim) diff --git a/tierpsy/helper/params/docs_analysis_points.py b/tierpsy/helper/params/docs_analysis_points.py index 790c9555..4aae8449 100644 --- a/tierpsy/helper/params/docs_analysis_points.py +++ b/tierpsy/helper/params/docs_analysis_points.py @@ -1,72 +1,76 @@ + +deprecated_analysis_alias = {'WORM':'OPENWORM', 'WORM_SINGLE':'OPENWORM', 'WT2':'OPENWORM_WT2', 'MANUAL':'OPENWORM_MANUAL', 'TEST':'TIERPSY_AEX'} +dlft_analysis_type = 'TIERPSY' + ''' Dictionary of the analysis points that will be executed for a given analysis_point. If the point is not in the dictionary the points used will be the ones in DEFAULT. ''' -valid_analysis_points = ['WORM', 'WORM_SINGLE', 'WORM_RIG', 'WT2', 'PHARYNX', 'ZEBRAFISH', 'MANUAL', 'TEST'] dflt_analysis_points = { - 'DEFAULT': - ['COMPRESS', - 'TRAJ_CREATE', - 'TRAJ_JOIN', - 'SKE_INIT', - 'BLOB_FEATS', - 'SKE_CREATE', - 'SKE_FILT', - 'SKE_ORIENT', - 'INT_PROFILE', - 'INT_SKE_ORIENT', - 'FEAT_CREATE' - ], + 'BASE' : + ['COMPRESS', + 'TRAJ_CREATE', + 'TRAJ_JOIN', + 'SKE_INIT', + 'BLOB_FEATS', + 'SKE_CREATE', + 'SKE_FILT', + 'SKE_ORIENT', + 'INT_PROFILE', + 'INT_SKE_ORIENT' + ], + 'BASE_WT2' : + ['COMPRESS', + 'COMPRESS_ADD_DATA', + 'TRAJ_CREATE', + 'TRAJ_JOIN', + 'SKE_INIT', + 'BLOB_FEATS', + 'SKE_CREATE', + 'SKE_FILT', + 'SKE_ORIENT', + 'STAGE_ALIGMENT', + 'INT_PROFILE', + 'INT_SKE_ORIENT' + ], + + 'TIERPSY_FEATURES' : + ['FEAT_INIT', + 'FEAT_TIERPSY' + ], + + 'OPENWORM_FEATURES' : ['FEAT_CREATE'], + 'OPENWORM_MANUAL' : ['FEAT_MANUAL_CREATE'], + + 'PHARYNX' : + ['COMPRESS', + 'TRAJ_CREATE', + 'TRAJ_JOIN', + 'SKE_INIT', + 'BLOB_FEATS', + 'SKE_CREATE', + 'SKE_PHARYNX' + ] + } + +#get full sequence for openwom features +dflt_analysis_points['OPENWORM'] = dflt_analysis_points['BASE'] + dflt_analysis_points['OPENWORM_FEATURES'] +dflt_analysis_points['OPENWORM_WT2'] = dflt_analysis_points['BASE_WT2'] + dflt_analysis_points['OPENWORM_FEATURES'] + ['WCON_EXPORT'] + +#get full sequence for tierpsy features +dflt_analysis_points['TIERPSY'] = dflt_analysis_points['BASE'] + dflt_analysis_points['TIERPSY_FEATURES'] +dflt_analysis_points['TIERPSY_WT2'] = dflt_analysis_points['BASE_WT2'] + dflt_analysis_points['TIERPSY_FEATURES'] + +#the contour calculation is only valid for andrew's lab +dflt_analysis_points['TIERPSY_AEX'] = dflt_analysis_points['BASE'] + ['FOOD_CNT'] + dflt_analysis_points['TIERPSY_FEATURES'] - 'WORM_RIG': - ['COMPRESS', - 'TRAJ_CREATE', - 'TRAJ_JOIN', - 'SKE_INIT', - 'BLOB_FEATS', - 'SKE_CREATE', - 'SKE_FILT', - 'SKE_ORIENT', - 'INT_PROFILE', - 'INT_SKE_ORIENT', - 'FEAT_CREATE' - ], +#adding _SINGLE to analysis_type will force the data to be treated as a single worm +dflt_analysis_points['OPENWORM_SINGLE'] = dflt_analysis_points['OPENWORM'] +dflt_analysis_points['TIERPSY_SINGLE'] = dflt_analysis_points['TIERPSY'] +#only valid analysis points +valid_analysis_types = list(sorted(dflt_analysis_points.keys())) - 'WT2' : - ['COMPRESS', - 'COMPRESS_ADD_DATA', - 'TRAJ_CREATE', - 'TRAJ_JOIN', - 'SKE_INIT', - 'BLOB_FEATS', - 'SKE_CREATE', - 'SKE_FILT', - 'SKE_ORIENT', - 'STAGE_ALIGMENT', - 'INT_PROFILE', - 'INT_SKE_ORIENT', - 'FEAT_CREATE', - 'WCON_EXPORT' - ], - 'MANUAL': - ['FEAT_MANUAL_CREATE'], - 'TEST': - ['COMPRESS', - 'TRAJ_CREATE', - 'TRAJ_JOIN', - 'SKE_INIT', - 'BLOB_FEATS', - 'SKE_CREATE', - 'SKE_FILT', - 'SKE_ORIENT', - 'INT_PROFILE', - 'INT_SKE_ORIENT', - 'FOOD_CNT', - 'FEAT_INIT', - 'FEAT_TIERPSY' - ], -} diff --git a/tierpsy/helper/params/docs_tracker_param.py b/tierpsy/helper/params/docs_tracker_param.py index 86422642..3ad20dc4 100644 --- a/tierpsy/helper/params/docs_tracker_param.py +++ b/tierpsy/helper/params/docs_tracker_param.py @@ -2,12 +2,12 @@ List of default values and description of the tracker parameters. ''' -from .docs_analysis_points import valid_analysis_points +from .docs_analysis_points import valid_analysis_types, dlft_analysis_type from .helper import repack_dflt_list dflt_param_list = [ ('analysis_type', - 'WORM', + dlft_analysis_type, 'Flag that defines the type of data expected and the consequent code that would be executed.' ), ('analysis_checkpoints', @@ -304,8 +304,6 @@ ), ] - - # #not tested (used for the zebra fish) # ('zf_num_segments', 12, 'Number of segments to use in tail model.'), # ('zf_min_angle', -90, 'The lowest angle to test for each segment. Angles are set relative to the angle of the previous segment.'), @@ -319,7 +317,7 @@ # ('zf_auto_detect_tail_length', True, 'Flag to determine whether zebrafish tail length detection is used. If set to True, values for zf_tail_length, zf_num_segments and zf_test_width are ignored.') valid_options = { - 'analysis_type': valid_analysis_points, + 'analysis_type': valid_analysis_types, 'ventral_side':['','clockwise','anticlockwise', 'unknown'], 'head_tail_int_method':['MEDIAN_INT', 'HEAD_BRIGHTER'] } diff --git a/tierpsy/helper/params/tracker_param.py b/tierpsy/helper/params/tracker_param.py index c390db8b..df7c16a7 100644 --- a/tierpsy/helper/params/tracker_param.py +++ b/tierpsy/helper/params/tracker_param.py @@ -11,7 +11,7 @@ #get default parameters files from tierpsy import DFLT_PARAMS_PATH, DFLT_PARAMS_FILES from .docs_tracker_param import default_param, info_param, valid_options -from .docs_analysis_points import dflt_analysis_points +from .docs_analysis_points import dflt_analysis_points, dlft_analysis_type, deprecated_analysis_alias #deprecated variables that will be ignored deprecated_fields = [ @@ -37,10 +37,11 @@ def get_dflt_sequence(analysis_type): assert analysis_type in valid_options['analysis_type'] + if analysis_type in dflt_analysis_points: analysis_checkpoints = dflt_analysis_points[analysis_type] else: - analysis_checkpoints = dflt_analysis_points['DEFAULT'] + analysis_checkpoints = dflt_analysis_points[dlft_analysis_type] return analysis_checkpoints @@ -68,6 +69,13 @@ def read_params(json_file=''): #special case of deprecated alias input_param['mask_min_area'] = param_in_file['min_area'] input_param['traj_min_area'] = param_in_file['min_area']/2 + if key == 'analysis_type': + #correct the name of a deprecated point + vv = input_param['analysis_type'] + if vv in deprecated_analysis_alias: + input_param['analysis_type'] = deprecated_analysis_alias[vv] + + elif key in input_param: input_param[key] = param_in_file[key] @@ -97,7 +105,16 @@ def __init__(self, json_file=''): json_file = os.path.join(DFLT_PARAMS_PATH, json_file) self.json_file = json_file - self.p_dict = read_params(json_file) + self.p_dict = read_params(json_file) + + @property + def is_WT2(self): + return self.p_dict['analysis_type'].endswih('WT2') + + @property + def is_one_worm(self): + analysis_type = self.p_dict['analysis_type'] + return analysis_type.endswith('WT2') or analysis_type.endswith('SINGLE') diff --git a/tierpsy/processing/ProcessLocal.py b/tierpsy/processing/ProcessLocal.py index 46c93697..67130d06 100644 --- a/tierpsy/processing/ProcessLocal.py +++ b/tierpsy/processing/ProcessLocal.py @@ -41,7 +41,7 @@ def __init__(self, main_file, masks_dir, results_dir, tmp_mask_dir='', self.json_file = json_file param = TrackerParams(json_file) - self.is_single_worm = param.p_dict['analysis_type'] == 'WT2' + self.is_WT2 = param.is_WT2 self.is_copy_video = is_copy_video self.copy_unfinished = copy_unfinished @@ -151,7 +151,7 @@ def _copyFinaltoTmp(self): def _getAddFilesForTmpSW(self): #patch to copy additional files for the case of Single Worm. For the moment I am copying, not cleaning. files2copy = [] - if self.is_single_worm and self.is_copy_video: + if self.is_WT2 and self.is_copy_video: try: info_file, stage_file = getAdditionalFiles(self.main_file) tmp_dir = os.path.split(self.tmp_main_file)[0] From cf0d581c3645e47516e7f850166fa1ad27cb8169 Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Thu, 7 Jun 2018 18:28:33 +0100 Subject: [PATCH 18/37] change version control Instead of only using the github sha, I am combining it with the version number. Seems to be the convension around... --- tierpsy/analysis/wcon_export/exportWCON.py | 20 +++++++----- tierpsy/processing/ProcessWorker.py | 6 ++-- tierpsy/processing/trackProvenance.py | 38 ++++++++-------------- tierpsy/version.py | 12 +++++++ 4 files changed, 39 insertions(+), 37 deletions(-) diff --git a/tierpsy/analysis/wcon_export/exportWCON.py b/tierpsy/analysis/wcon_export/exportWCON.py index d52a6a80..491f7c2c 100644 --- a/tierpsy/analysis/wcon_export/exportWCON.py +++ b/tierpsy/analysis/wcon_export/exportWCON.py @@ -64,21 +64,23 @@ def _order_metadata(metadata_dict): provenance_tracking = fid.get_node('/provenance_tracking/' + provenance_step).read() provenance_tracking = json.loads(provenance_tracking.decode('utf-8')) - commit_hash = provenance_tracking['commit_hash'] - if 'tierpsy' in commit_hash: - tierpsy_version = commit_hash['tierpsy'] + if 'commit_hash' in provenance_tracking: + #old name + pkgs_version = provenance_tracking['commit_hash'] else: - tierpsy_version = commit_hash['MWTracker'] + pkgs_version = provenance_tracking['pkgs_version'] + + if 'tierpsy' in pkgs_version: + tierpsy_version = pkgs_version['tierpsy'] + else: + tierpsy_version = pkgs_version['MWTracker'] MWTracker_ver = {"name":"tierpsy (https://github.com/ver228/tierpsy-tracker)", "version": tierpsy_version, "featureID":"@OMG"} - #open_worm_ver = {"name":"open_worm_analysis_toolbox (https://github.com/openworm/open-worm-analysis-toolbox)", - # "version":commit_hash['open_worm_analysis_toolbox'], - # "featureID":""} - - experiment_info["software"] = MWTracker_ver#[MWTracker_ver, open_worm_ver] + + experiment_info["software"] = MWTracker_ver return _order_metadata(experiment_info) diff --git a/tierpsy/processing/ProcessWorker.py b/tierpsy/processing/ProcessWorker.py index 8864e32b..c59e8f84 100644 --- a/tierpsy/processing/ProcessWorker.py +++ b/tierpsy/processing/ProcessWorker.py @@ -11,7 +11,7 @@ from tierpsy.helper.misc import print_flush from tierpsy.processing.AnalysisPoints import AnalysisPoints -from tierpsy.processing.trackProvenance import getGitCommitHash, execThisPoint +from tierpsy.processing.trackProvenance import getPackagesVersion, execThisPoint from tierpsy.processing.helper import get_real_script_path @@ -43,7 +43,7 @@ def execAllPoints(self): print_flush('%s No checkpoints given. It seems that there is a previous analysis finished. Exiting.' % base_name) return - commit_hash = getGitCommitHash() + pkgs_version = getPackagesVersion() print_flush('%s Starting checkpoint: %s' % (base_name, self.analysis_checkpoints[0])) initial_time = time.time() @@ -62,7 +62,7 @@ def execAllPoints(self): execThisPoint(current_point, **self.ap.getArgs(current_point), - commit_hash = commit_hash, + pkgs_versions = pkgs_version, cmd_original = self.cmd_original) time_str = str(datetime.timedelta(seconds = round(time.time() -initial_time))) diff --git a/tierpsy/processing/trackProvenance.py b/tierpsy/processing/trackProvenance.py index 3d0efacf..913c6757 100755 --- a/tierpsy/processing/trackProvenance.py +++ b/tierpsy/processing/trackProvenance.py @@ -1,32 +1,20 @@ import os import json import tables -import git +import importlib +def getPackagesVersion(): + pkgs_versions = {} + for pkg in ['tierpsy', 'open_worm_analysis_toolbox', 'tierpsy_features']: + try: + mod = importlib(pkg) + ver = mod.__version__ + except: + ver = '' + pkgs_versions[pkg] = ver -def getVersion(main_package): - git_file = os.path.join( - (os.sep).join( - (main_package.__file__).split( - os.sep)[ - 0:-2]), - '.git') - try: - repo = git.Repo(git_file) - return repo.commit('HEAD').hexsha - except git.exc.NoSuchPathError: - return main_package.__version__ - -def getGitCommitHash(): - import tierpsy - import open_worm_analysis_toolbox - - commits_hash = { - 'tierpsy': getVersion(tierpsy), - 'open_worm_analysis_toolbox': getVersion(open_worm_analysis_toolbox)} - - return commits_hash + return pkgs_versions def execThisPoint( @@ -34,7 +22,7 @@ def execThisPoint( func, argkws, provenance_file, - commit_hash, + pkgs_versions, cmd_original): # execute the function func(**argkws) @@ -46,7 +34,7 @@ def execThisPoint( variables2save = { 'func_name': func.__name__, 'func_arguments': json.dumps(argkws), - 'commit_hash': commit_hash, + 'pkgs_versions': pkgs_versions, 'cmd_original': cmd_original} variables2save = bytes(json.dumps(variables2save), 'utf-8') diff --git a/tierpsy/version.py b/tierpsy/version.py index 2c2b4ab4..f0976cd2 100755 --- a/tierpsy/version.py +++ b/tierpsy/version.py @@ -1,5 +1,17 @@ # # -*- coding: utf-8 -*- __version__ = '1.5.0-alpha' + +try: + import os + import subprocess + + cwd = os.path.dirname(os.path.abspath(__file__)) + sha = subprocess.check_output(['git', 'rev-parse', 'HEAD'], cwd=cwd).decode('ascii').strip() + __version__ += '+' + sha[:7] +except Exception: + raise Exception + pass + ''' 1.5.0-alpha - Add tierpsy features as FEAT_INIT, FEAT_TIERPSY. From fd9ae2df516145024c5d6de30a8e0f0547b36c88 Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Thu, 7 Jun 2018 18:28:51 +0100 Subject: [PATCH 19/37] add the pharinx orientation as a new step --- .../analysis/ske_pharynx/orient_pharynx.py | 101 +++++++++--------- 1 file changed, 48 insertions(+), 53 deletions(-) diff --git a/tierpsy/analysis/ske_pharynx/orient_pharynx.py b/tierpsy/analysis/ske_pharynx/orient_pharynx.py index cd0a017a..5fd61e2f 100644 --- a/tierpsy/analysis/ske_pharynx/orient_pharynx.py +++ b/tierpsy/analysis/ske_pharynx/orient_pharynx.py @@ -23,7 +23,7 @@ DEBUG = False -def get_pharynx_orient(worm_img, min_blob_area):#, min_dist_btw_peaks=5): +def _pharynx_orient(worm_img, min_blob_area):#, min_dist_btw_peaks=5): #%% blur = cv2.GaussianBlur(worm_img,(5,5),0) @@ -77,7 +77,7 @@ def get_pharynx_orient(worm_img, min_blob_area):#, min_dist_btw_peaks=5): #%% return peaks_coords -def generateIndividualROIs(ROIs_generator): +def generateIndividualROIs(ROIs_generator, trajectories_data): for worms_in_frame in ROIs_generator: for worm_index, (worm_img, roi_corner) in worms_in_frame.items(): row_data = trajectories_data.loc[worm_index] @@ -89,18 +89,11 @@ def generateIndividualROIs(ROIs_generator): def _process_row(input_data): skeleton_id, worm_img, min_blob_area, roi_corner = input_data - peaks_coords = get_pharynx_orient(worm_img, min_blob_area) + peaks_coords = _pharynx_orient(worm_img, min_blob_area) peaks_coords += roi_corner output = skeleton_id, peaks_coords return output -def process_batch(batch_input): - output = list(p.map(_process_row, batch_input)) - skeletons_id, peaks_coords = map(np.array, zip(*output)) - - skeletons[skeletons_id, :, :] = peaks_coords - has_skeleton[skeletons_id] = True - def init_data(ske_file_id, tot_rows): #create and reference all the arrays field = 'skeleton' @@ -120,49 +113,51 @@ def init_data(ske_file_id, tot_rows): return skeletons, has_skeleton +def orient_pharinx(masked_file, skeletons_file = None, n_batch = 1): + if skeletons_file is None: + skeletons_file = masked_file.replace('MaskedVideos', 'Results').replace('.hdf5', '_skeletons.hdf5') + + base_name = get_base_name(masked_file) + progress_prefix = base_name + ' Calculating skeletons.' + + with pd.HDFStore(skeletons_file, 'r') as ske_file_id: + trajectories_data = ske_file_id['/trajectories_data'] + + frame_generator = generateMoviesROI(masked_file, + trajectories_data, + progress_prefix=progress_prefix) + ROIs_generator = generateIndividualROIs(frame_generator, trajectories_data) + + tot = 0 + with tables.File(skeletons_file, "r+") as ske_file_id: + tot_rows = len(trajectories_data) + skeletons, has_skeleton = init_data(ske_file_id, tot_rows) + + batch_input = [] + for input_data in ROIs_generator: + if n_batch <= 1: + #run a no parallelize version of the code and do not save the data into the hdf5 + _process_row(input_data) + tot += 1 + + else: + batch_input.append(input_data) + if len(batch_input) >= n_batch: + p = mp.Pool(processes=n_batch) + output = list(p.map(_process_row, batch_input)) + skeletons_id, peaks_coords = zip(*output) + skeletons_id, peaks_coords = map(np.array, zip(*output)) + + skeletons[skeletons_id, :, :] = peaks_coords + for ind in skeletons_id: + has_skeleton[ind] = True + + + batch_input = [] + tot += 1 + if __name__ == '__main__': filenames = glob.glob("/data2/shared/data/twoColour/MaskedVideos/*/*/*52.1g_X1.hdf5") - for masked_file in filenames: - skeletons_file = masked_file.replace('MaskedVideos', 'Results').replace('.hdf5', '_skeletons.hdf5') - - base_name = get_base_name(masked_file) - progress_prefix = base_name + ' Calculating skeletons.' - - with pd.HDFStore(skeletons_file, 'r') as ske_file_id: - trajectories_data = ske_file_id['/trajectories_data'] - - n_batch = 8 #mp.cpu_count() - - frame_generator = generateMoviesROI(masked_file, - trajectories_data, - progress_prefix=progress_prefix) - ROIs_generator = generateIndividualROIs(frame_generator) - - tot = 0 - with tables.File(skeletons_file, "r+") as ske_file_id: - tot_rows = len(trajectories_data) - skeletons, has_skeleton = init_data(ske_file_id, tot_rows) - - p = mp.Pool(processes=n_batch) - batch_input = [] - for input_data in ROIs_generator: - if DEBUG: - #run a no parallelize version of the code and do not save the data into the hdf5 - _process_row(input_data) - tot += 1 - - else: - batch_input.append(input_data) - if len(batch_input) >= n_batch: - output = list(p.map(_process_row, batch_input)) - skeletons_id, peaks_coords = zip(*output) - skeletons_id, peaks_coords = map(np.array, zip(*output)) - - skeletons[skeletons_id, :, :] = peaks_coords - for ind in skeletons_id: - has_skeleton[ind] = True - - - batch_input = [] - tot += 1 + for fname in filenames: + orient_pharinx(fname) \ No newline at end of file From 5a03cdf70a7bd444b7321d0c5737a8b448704398 Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Thu, 7 Jun 2018 20:48:45 +0100 Subject: [PATCH 20/37] . --- tierpsy/analysis/food_cnt/getFoodContourNN.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tierpsy/analysis/food_cnt/getFoodContourNN.py b/tierpsy/analysis/food_cnt/getFoodContourNN.py index f459cb4e..3f0364bf 100644 --- a/tierpsy/analysis/food_cnt/getFoodContourNN.py +++ b/tierpsy/analysis/food_cnt/getFoodContourNN.py @@ -19,7 +19,7 @@ from skimage.morphology import disk from tierpsy import AUX_FILES_DIR -RESIZING_SIZE = 512 #the network was trained with images of this size 512 +DFLT_RESIZING_SIZE = 512 #the network was trained with images of this size 512 MODEL_PATH = os.path.join(AUX_FILES_DIR, 'unet_RMSprop-5-04999-0.3997.h5') def _get_sizes(im_size, d4a_size= 24, n_conv_layers=4): @@ -154,7 +154,7 @@ def _flip_d(img_o, nn): return Y_pred -def get_food_prob(mask_file, model, max_bgnd_images = 2, _is_debug = False): +def get_food_prob(mask_file, model, max_bgnd_images = 2, _is_debug = False, resizing_size = DFLT_RESIZING_SIZE): ''' Predict the food probability for each pixel using a pretrained u-net model. ''' @@ -172,7 +172,7 @@ def get_food_prob(mask_file, model, max_bgnd_images = 2, _is_debug = False): bgnd = [np.squeeze(bgnd_o)] min_size = min(bgnd[0].shape) - resize_factor = min(RESIZING_SIZE, min_size)/min_size + resize_factor = min(resizing_size, min_size)/min_size dsize = tuple(int(x*resize_factor) for x in bgnd[0].shape[::-1]) bgnd_s = [cv2.resize(x, dsize) for x in bgnd] From 21f7d3621249268ad6bac88ab26c3d8673bfc414 Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Fri, 8 Jun 2018 17:01:52 +0100 Subject: [PATCH 21/37] bug --- tests/run_tests.py | 10 +-- tierpsy/__init__.py | 3 - tierpsy/analysis/compress/extractMetaData.py | 10 ++- .../analysis/feat_manual_create/__init__.py | 2 +- tierpsy/analysis/food_cnt/__init__.py | 15 ++-- tierpsy/analysis/food_cnt/getFoodContour.py | 30 ++++--- tierpsy/analysis/food_cnt/getFoodContourNN.py | 14 ++- tierpsy/analysis/ske_init/__init__.py | 13 +-- .../analysis/ske_init/filterTrajectModel.py | 10 +-- .../param_files/MULTIWORM_OPENWORM.json | 3 + .../extras/param_files/MULTIWORM_TIERPSY.json | 3 + tierpsy/extras/param_files/MULTI_RIG.json | 40 --------- .../extras/param_files/OPENWORM_MANUAL.json | 3 + .../param_files/SINGLE_WORM_OPENWORM.json | 3 + .../param_files/SINGLE_WORM_TIERPSY.json | 3 + .../extras/param_files/WT2_anticlockwise.json | 2 +- tierpsy/extras/param_files/WT2_clockwise.json | 2 +- .../param_files/{_TEST.json => _AEX_RIG.json} | 6 +- ...G_swimming.json => _AEX_RIG_swimming.json} | 9 +- ...rm_motel.json => _AEX_RIG_worm_motel.json} | 4 +- ...lmuscle.json => _FLUO_bodywallmuscle.json} | 2 +- ...rynx_3fps.json => _FLUO_pharynx_3fps.json} | 0 ...rynx_9fps.json => _FLUO_pharynx_9fps.json} | 0 ...LE_RIG_1.5x.json => _SINGLE_RIG_1.5x.json} | 0 tierpsy/extras/param_files/_TEST_WT2.json | 18 ---- tierpsy/extras/param_files/_TEST_loopbio.json | 16 +--- .../extras/param_files/_TEST_swimming.json | 44 ---------- tierpsy/gui/BatchProcessing.py | 9 +- tierpsy/gui/GetAllParameters.py | 9 +- tierpsy/gui/MWTrackerViewer.py | 3 +- tierpsy/gui/PlotFeatures.py | 8 +- tierpsy/helper/params/docs_tracker_param.py | 34 +++++--- tierpsy/helper/params/model_paths.py | 15 ++++ tierpsy/helper/params/models_path.py | 15 ++++ tierpsy/helper/params/tracker_param.py | 87 +++++++++++-------- tierpsy/processing/processMultipleFilesFun.py | 2 +- 36 files changed, 186 insertions(+), 261 deletions(-) create mode 100755 tierpsy/extras/param_files/MULTIWORM_OPENWORM.json create mode 100755 tierpsy/extras/param_files/MULTIWORM_TIERPSY.json delete mode 100644 tierpsy/extras/param_files/MULTI_RIG.json create mode 100755 tierpsy/extras/param_files/OPENWORM_MANUAL.json create mode 100755 tierpsy/extras/param_files/SINGLE_WORM_OPENWORM.json create mode 100755 tierpsy/extras/param_files/SINGLE_WORM_TIERPSY.json rename tierpsy/extras/param_files/{_TEST.json => _AEX_RIG.json} (91%) rename tierpsy/extras/param_files/{MULTI_RIG_swimming.json => _AEX_RIG_swimming.json} (84%) rename tierpsy/extras/param_files/{MULTI_RIG_worm_motel.json => _AEX_RIG_worm_motel.json} (77%) rename tierpsy/extras/param_files/{FLUO_bodywallmuscle.json => _FLUO_bodywallmuscle.json} (72%) rename tierpsy/extras/param_files/{FLUO_pharynx_3fps.json => _FLUO_pharynx_3fps.json} (100%) rename tierpsy/extras/param_files/{FLUO_pharynx_9fps.json => _FLUO_pharynx_9fps.json} (100%) rename tierpsy/extras/param_files/{SINGLE_RIG_1.5x.json => _SINGLE_RIG_1.5x.json} (100%) delete mode 100755 tierpsy/extras/param_files/_TEST_WT2.json delete mode 100644 tierpsy/extras/param_files/_TEST_swimming.json create mode 100644 tierpsy/helper/params/model_paths.py create mode 100644 tierpsy/helper/params/models_path.py diff --git a/tests/run_tests.py b/tests/run_tests.py index 54c685a8..7cfb2427 100644 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -109,7 +109,7 @@ def __init__(self, *args): '--pattern_include', '*.mjpg', '--json_file', - 'MULTI_RIG.json' + '_AEX_RIG.json' ] self.add_command(args) @@ -142,9 +142,7 @@ def __init__(self, *args): '--mask_dir_root', self.masked_files_dir, '--analysis_checkpoints', - 'FEAT_MANUAL_CREATE', - "--json_file", - 'MULTI_RIG.json' + 'FEAT_MANUAL_CREATE' ] self.add_command(args) @@ -168,7 +166,7 @@ def __init__(self, *args): '--pattern_include', '*.raw_hdf5', '--json_file', - 'MULTI_RIG.json' + '_AEX_RIG.json' ] self.add_command(args) @@ -208,7 +206,7 @@ def __init__(self, *args): '--results_dir_root', self.results_dir, '--json_file', - 'MULTI_RIG_worm_motel.json', + '_AEX_RIG_worm_motel.json', '--pattern_include', '*.mjpg' ] diff --git a/tierpsy/__init__.py b/tierpsy/__init__.py index fa802431..b0be7a61 100755 --- a/tierpsy/__init__.py +++ b/tierpsy/__init__.py @@ -12,8 +12,6 @@ #I want to be sure tierpsy loads tensorflow flow backend os.environ['KERAS_BACKEND']='tensorflow' -os.environ['QT_PLUGIN_PATH']="" #https://stackoverflow.com/questions/25188153/this-application-failed-to-start-because-it-could-not-find-or-load-the-qt-platfo - # force qt5 to be the backend of matplotlib. import matplotlib matplotlib.use('Qt5Agg') @@ -28,7 +26,6 @@ DFLT_PARAMS_PATH = os.path.join(AUX_FILES_DIR, 'param_files') DFLT_PARAMS_FILES = sorted([x for x in os.listdir(DFLT_PARAMS_PATH) if x.endswith('.json')]) -DFLT_FILTER_FILES = sorted([x for x in os.listdir(AUX_FILES_DIR) if x.endswith('.h5') and x.startswith('model')]) #this will be true if it is a pyinstaller "frozen" binary IS_FROZEN = getattr(sys, 'frozen', False) diff --git a/tierpsy/analysis/compress/extractMetaData.py b/tierpsy/analysis/compress/extractMetaData.py index 27ed380b..4c5eacfe 100755 --- a/tierpsy/analysis/compress/extractMetaData.py +++ b/tierpsy/analysis/compress/extractMetaData.py @@ -18,13 +18,17 @@ def dict2recarray(dat): '''convert into recarray (pytables friendly)''' - if len(dat) > 0: dtype = [(kk, dat[kk].dtype) for kk in dat] N = len(dat[dtype[0][0]]) recarray = np.recarray(N, dtype) - for kk in dat: - recarray[kk] = dat[kk] + for kk, val in dat.items(): + if len(val) == N: + #there is something weird with those fields. Apparently something got changed with ffprobe. + #I do not want to figure out what it is... + recarray[kk] = dat[kk] + + return recarray else: return np.array([]) diff --git a/tierpsy/analysis/feat_manual_create/__init__.py b/tierpsy/analysis/feat_manual_create/__init__.py index 676aaa98..74b4367f 100755 --- a/tierpsy/analysis/feat_manual_create/__init__.py +++ b/tierpsy/analysis/feat_manual_create/__init__.py @@ -6,7 +6,7 @@ def args_(fn, param): argkws_d ={ 'skeletons_file': fn['skeletons'], 'features_file': fn['feat_manual'], - **_get_feats_param(param.p_dict), + **_get_feats_param(param), 'use_skel_filter': True, 'use_manual_join': True, } diff --git a/tierpsy/analysis/food_cnt/__init__.py b/tierpsy/analysis/food_cnt/__init__.py index 55f6a924..5f2e4848 100755 --- a/tierpsy/analysis/food_cnt/__init__.py +++ b/tierpsy/analysis/food_cnt/__init__.py @@ -1,22 +1,23 @@ +from tierpsy.helper.params.models_path import DFLT_MODEL_FOOD_CONTOUR + from .getFoodContour import getFoodContour def args_(fn, param): requirements = ['SKE_INIT'] argkws = dict( - cnt_method = 'NN', - solidity_th=0.98, - batch_size = 100000, + mask_file = fn['masked_image'], + skeletons_file = fn['skeletons'], + use_nn_food_cnt = param.p_dict['use_nn_food_cnt'], + model_path = DFLT_MODEL_FOOD_CONTOUR, #i am putting this a separated paramters because by default i will not copy the pretrained model since it is too big + solidity_th = 0.98, _is_debug = False ) #arguments used by AnalysisPoints.py return { 'func': getFoodContour, - 'argkws': { - 'mask_file': fn['masked_image'], - 'skeletons_file': fn['skeletons'] - }, + 'argkws': argkws, 'input_files' : [fn['masked_image']], 'output_files': [fn['skeletons'], fn['masked_image']], 'requirements' : requirements diff --git a/tierpsy/analysis/food_cnt/getFoodContour.py b/tierpsy/analysis/food_cnt/getFoodContour.py index de513a76..37aee827 100644 --- a/tierpsy/analysis/food_cnt/getFoodContour.py +++ b/tierpsy/analysis/food_cnt/getFoodContour.py @@ -5,7 +5,7 @@ @author: ajaver """ - +import os import tables import numpy as np @@ -14,26 +14,29 @@ from tierpsy.helper.misc import TimeCounter, print_flush, get_base_name -def calculate_food_cnt(mask_file, method='NN', _is_debug=False, solidity_th=0.98): - - assert method in ['NN', 'MORPH'] - if method == 'NN': - food_cnt, food_prob,cnt_solidity = get_food_contour_nn(mask_file, _is_debug=_is_debug) + + +def calculate_food_cnt(mask_file, use_nn_food_cnt, model_path, _is_debug=False, solidity_th=0.98): + if use_nn_food_cnt: + if not os.path.exists(model_path): + warning.warn('The model to obtain the food contour was not found. Nothing to do here...\n If you dont have a valid model. You could try to set `food_method=MORPH` to use a different algorithm.') + return + + food_cnt, food_prob,cnt_solidity = get_food_contour_nn(mask_file, model_path, _is_debug=_is_debug) if cnt_solidity < solidity_th: food_cnt = np.zeros(0) - elif method == 'MORPH': - food_cnt = get_food_contour_morph(mask_file, _is_debug=_is_debug) else: - raise ValueError('Invalid method argument.') + food_cnt = get_food_contour_morph(mask_file, _is_debug=_is_debug) + return food_cnt def getFoodContour(mask_file, skeletons_file, - cnt_method = 'NN', + use_nn_food_cnt, + model_path, solidity_th=0.98, - batch_size = 100000, _is_debug = False ): base_name = get_base_name(mask_file) @@ -43,7 +46,8 @@ def getFoodContour(mask_file, food_cnt = calculate_food_cnt(mask_file, - method = cnt_method, + use_nn_food_cnt = use_nn_food_cnt, + model_path = model_path, solidity_th= solidity_th, _is_debug = _is_debug) @@ -62,5 +66,5 @@ def getFoodContour(mask_file, tab = fid.create_array('/', 'food_cnt_coord', obj=food_cnt) - tab._v_attrs['method'] = cnt_method + tab._v_attrs['use_nn_food_cnt'] = int(use_nn_food_cnt) diff --git a/tierpsy/analysis/food_cnt/getFoodContourNN.py b/tierpsy/analysis/food_cnt/getFoodContourNN.py index 3f0364bf..0a29654b 100644 --- a/tierpsy/analysis/food_cnt/getFoodContourNN.py +++ b/tierpsy/analysis/food_cnt/getFoodContourNN.py @@ -9,18 +9,19 @@ """ - - import tables import os import numpy as np import cv2 +from keras.models import load_model from skimage.morphology import disk from tierpsy import AUX_FILES_DIR + DFLT_RESIZING_SIZE = 512 #the network was trained with images of this size 512 -MODEL_PATH = os.path.join(AUX_FILES_DIR, 'unet_RMSprop-5-04999-0.3997.h5') + + def _get_sizes(im_size, d4a_size= 24, n_conv_layers=4): ''' Useful to determine the expected inputs and output sizes of a u-net. @@ -191,17 +192,14 @@ def get_food_prob(mask_file, model, max_bgnd_images = 2, _is_debug = False, resi return Y_pred, original_size, bgnd_s -def get_food_contour_nn(mask_file, model=None, _is_debug=False): +def get_food_contour_nn(mask_file, model_path, _is_debug=False): ''' Get the food contour using a pretrained u-net model. This function is faster if a preloaded model is given since it is very slow to load the model and tensorflow. ''' - - if model is None: - from keras.models import load_model - model = load_model(MODEL_PATH) + model = load_model(model_path) food_prob, original_size, bgnd_images = get_food_prob(mask_file, model, _is_debug=_is_debug) #bgnd_images are only used in debug mode diff --git a/tierpsy/analysis/ske_init/__init__.py b/tierpsy/analysis/ske_init/__init__.py index db83d34e..33de7a96 100644 --- a/tierpsy/analysis/ske_init/__init__.py +++ b/tierpsy/analysis/ske_init/__init__.py @@ -1,16 +1,7 @@ import os -from tierpsy import AUX_FILES_DIR +from tierpsy.helper.params.models_path import DFLT_MODEL_FILTER_WORMS from .processTrajectoryData import processTrajectoryData -def _correct_filter_model_name(filter_model_name): - if filter_model_name: - if not os.path.exists(filter_model_name): - #try to look for the file in the AUX_FILES_DIR - filter_model_name = os.path.join(AUX_FILES_DIR, filter_model_name) - assert os.path.exists(filter_model_name) - - return filter_model_name - def args_(fn, param): p = param.p_dict # getSmoothTrajectories @@ -26,7 +17,7 @@ def args_(fn, param): 'masked_image_file':fn['masked_image'], 'trajectories_file': fn['skeletons'], 'smoothed_traj_param': smoothed_traj_param, - 'filter_model_name' : _correct_filter_model_name(p['filter_model_name']) + 'filter_model_name' : DFLT_MODEL_FILTER_WORMS if param.use_nn_filter else '' #set the model if this flag is true } #arguments used by AnalysisPoints.py return { diff --git a/tierpsy/analysis/ske_init/filterTrajectModel.py b/tierpsy/analysis/ske_init/filterTrajectModel.py index c0e03811..71f1415c 100644 --- a/tierpsy/analysis/ske_init/filterTrajectModel.py +++ b/tierpsy/analysis/ske_init/filterTrajectModel.py @@ -3,9 +3,8 @@ import numpy as np import tables import os +from keras.models import load_model - -from tierpsy import AUX_FILES_DIR from tierpsy.analysis.ske_create.helperIterROI import generateMoviesROI, getROIFixSize from tierpsy.helper.params import read_fps @@ -53,8 +52,6 @@ def indentifyValidWorms(masked_file, frame_subsamplig - number of frames skipped. We do not need to calculate in every frame. A value of near the number of fps is sensible. ''' - from keras.models import load_model # I do a hidden import because the loading of keras is slow, and it will do everytime tierpsy is initialized - model = load_model(model_path) roi_size = model.input_shape[2] @@ -89,15 +86,12 @@ def indentifyValidWorms(masked_file, return valid_worms_indexes -def filterModelWorms(masked_image_file, trajectories_data, model_name, frame_subsampling = -1): - +def filterModelWorms(masked_image_file, trajectories_data, model_path, frame_subsampling = -1): if frame_subsampling ==-1: #use the expected number of frames per seconds as the subsampling period frame_subsampling = read_fps(masked_image_file) frame_subsampling = int(frame_subsampling) - - model_path = os.path.join(AUX_FILES_DIR, model_name) valid_worms = indentifyValidWorms(masked_image_file, trajectories_data, model_path, diff --git a/tierpsy/extras/param_files/MULTIWORM_OPENWORM.json b/tierpsy/extras/param_files/MULTIWORM_OPENWORM.json new file mode 100755 index 00000000..776c9dcd --- /dev/null +++ b/tierpsy/extras/param_files/MULTIWORM_OPENWORM.json @@ -0,0 +1,3 @@ +{ + "analysis_type" : "OPENWORM" +} \ No newline at end of file diff --git a/tierpsy/extras/param_files/MULTIWORM_TIERPSY.json b/tierpsy/extras/param_files/MULTIWORM_TIERPSY.json new file mode 100755 index 00000000..1a66842f --- /dev/null +++ b/tierpsy/extras/param_files/MULTIWORM_TIERPSY.json @@ -0,0 +1,3 @@ +{ + "analysis_type" : "TIERPSY" +} \ No newline at end of file diff --git a/tierpsy/extras/param_files/MULTI_RIG.json b/tierpsy/extras/param_files/MULTI_RIG.json deleted file mode 100644 index 1ba726c2..00000000 --- a/tierpsy/extras/param_files/MULTI_RIG.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "analysis_type": "WORM_RIG", - "compression_buff": 25, - "dilation_size": 9, - "expected_fps": 25, - "microns_per_pixel": 10.0, - "is_extract_metadata": false, - "filt_bad_seg_thresh": 0.8, - "filt_critical_alpha": 0.01, - "filt_max_area_ratio": 6, - "filt_max_width_ratio": 2.25, - "filt_min_displacement": 10, - "filter_model_name": "model_isworm_20170407_184845.h5", - "fps_filter": -1, - "int_avg_width_frac": 0.3, - "int_length_resampling": 131, - "int_max_gap_allowed_block": -1, - "int_width_resampling": 15, - "is_light_background": true, - "keep_border_data": false, - "mask_max_area": 100000000, - "mask_min_area": 50, - "max_gap_allowed_block": 10, - "min_box_width": 5, - "n_cores_used": 1, - "resampling_N": 49, - "roi_size": -1, - "save_int_maps": false, - "split_traj_time": 90, - "strel_size": 5, - "thresh_C": 15, - "thresh_block_size": 61, - "traj_area_ratio_lim": [ - 0.5, - 2.0 - ], - "traj_max_allowed_dist": 25, - "traj_min_area": 25, - "worm_bw_thresh_factor": 1.05 -} \ No newline at end of file diff --git a/tierpsy/extras/param_files/OPENWORM_MANUAL.json b/tierpsy/extras/param_files/OPENWORM_MANUAL.json new file mode 100755 index 00000000..823a5c46 --- /dev/null +++ b/tierpsy/extras/param_files/OPENWORM_MANUAL.json @@ -0,0 +1,3 @@ +{ + "analysis_type" : "OPENWORM_MANUAL" +} \ No newline at end of file diff --git a/tierpsy/extras/param_files/SINGLE_WORM_OPENWORM.json b/tierpsy/extras/param_files/SINGLE_WORM_OPENWORM.json new file mode 100755 index 00000000..8e2e7a28 --- /dev/null +++ b/tierpsy/extras/param_files/SINGLE_WORM_OPENWORM.json @@ -0,0 +1,3 @@ +{ + "analysis_type" : "OPENWORM_SINGLE" +} \ No newline at end of file diff --git a/tierpsy/extras/param_files/SINGLE_WORM_TIERPSY.json b/tierpsy/extras/param_files/SINGLE_WORM_TIERPSY.json new file mode 100755 index 00000000..20a42e0f --- /dev/null +++ b/tierpsy/extras/param_files/SINGLE_WORM_TIERPSY.json @@ -0,0 +1,3 @@ +{ + "analysis_type" : "TIERPSY_SINGLE" +} \ No newline at end of file diff --git a/tierpsy/extras/param_files/WT2_anticlockwise.json b/tierpsy/extras/param_files/WT2_anticlockwise.json index 8e5e46c1..cc9e5867 100755 --- a/tierpsy/extras/param_files/WT2_anticlockwise.json +++ b/tierpsy/extras/param_files/WT2_anticlockwise.json @@ -13,6 +13,6 @@ "strel_size":10, "int_save_maps": true, "filt_min_displacement":0, - "analysis_type" : "WT2", + "analysis_type" : "OPENWORM_WT2", "ventral_side" : "anticlockwise" } \ No newline at end of file diff --git a/tierpsy/extras/param_files/WT2_clockwise.json b/tierpsy/extras/param_files/WT2_clockwise.json index 1887df8b..d77b7c27 100755 --- a/tierpsy/extras/param_files/WT2_clockwise.json +++ b/tierpsy/extras/param_files/WT2_clockwise.json @@ -13,6 +13,6 @@ "strel_size":10, "int_save_maps": true, "filt_min_displacement":0, - "analysis_type" : "WT2", + "analysis_type" : "OPENWORM_WT2", "ventral_side" : "clockwise" } \ No newline at end of file diff --git a/tierpsy/extras/param_files/_TEST.json b/tierpsy/extras/param_files/_AEX_RIG.json similarity index 91% rename from tierpsy/extras/param_files/_TEST.json rename to tierpsy/extras/param_files/_AEX_RIG.json index a902756a..ec23f734 100644 --- a/tierpsy/extras/param_files/_TEST.json +++ b/tierpsy/extras/param_files/_AEX_RIG.json @@ -1,5 +1,5 @@ { - "analysis_type": "TEST", + "analysis_type": "TIERPSY_AEX", "compression_buff": 25, "dilation_size": 9, "expected_fps": 25, @@ -10,7 +10,7 @@ "filt_max_area_ratio": 6, "filt_max_width_ratio": 2.25, "filt_min_displacement": 10, - "filter_model_name": "model_isworm_20170407_184845.h5", + "use_nn_filter": true, "fps_filter": -1, "int_avg_width_frac": 0.3, "int_length_resampling": 131, @@ -37,4 +37,4 @@ "traj_max_allowed_dist": 25, "traj_min_area": 25, "worm_bw_thresh_factor": 1.05 -} +} \ No newline at end of file diff --git a/tierpsy/extras/param_files/MULTI_RIG_swimming.json b/tierpsy/extras/param_files/_AEX_RIG_swimming.json similarity index 84% rename from tierpsy/extras/param_files/MULTI_RIG_swimming.json rename to tierpsy/extras/param_files/_AEX_RIG_swimming.json index 565569c4..6106cf02 100755 --- a/tierpsy/extras/param_files/MULTI_RIG_swimming.json +++ b/tierpsy/extras/param_files/_AEX_RIG_swimming.json @@ -1,5 +1,5 @@ { - "analysis_type": "WORM", + "analysis_type": "TIERPSY", "compression_buff": 25, "dilation_size": 9, "expected_fps": 25, @@ -9,9 +9,8 @@ "filt_max_area_ratio": 6, "filt_max_width_ratio": 2.25, "filt_min_displacement": 10, - "filter_model_name": "model_isworm_20170407_184845.h5", + "use_nn_filter": true, "fps_filter": -1, - "ignore_mask": false, "int_avg_width_frac": 0.3, "int_length_resampling": 131, "int_max_gap_allowed_block": -1, @@ -36,5 +35,7 @@ ], "traj_max_allowed_dist": 25, "traj_min_area": 25, - "worm_bw_thresh_factor": 1.15 + "worm_bw_thresh_factor": 1.15, + "feat_coords_smooth_window_s" : 0, + "feat_gap_to_interp_s" : 0 } \ No newline at end of file diff --git a/tierpsy/extras/param_files/MULTI_RIG_worm_motel.json b/tierpsy/extras/param_files/_AEX_RIG_worm_motel.json similarity index 77% rename from tierpsy/extras/param_files/MULTI_RIG_worm_motel.json rename to tierpsy/extras/param_files/_AEX_RIG_worm_motel.json index 8ea81c2a..ba27e45c 100755 --- a/tierpsy/extras/param_files/MULTI_RIG_worm_motel.json +++ b/tierpsy/extras/param_files/_AEX_RIG_worm_motel.json @@ -1,9 +1,9 @@ { - "analysis_type": "WORM", + "analysis_type": "TIERPSY", "mask_bgnd_buff_size": 25, "mask_bgnd_frame_gap": 250, "microns_per_pixel": 10.0, - "filter_model_name": "model_isworm_20170407_184845.h5", + "use_nn_filter": true, "is_extract_metadata": false, "compression_buff": 25, "dilation_size": 13, diff --git a/tierpsy/extras/param_files/FLUO_bodywallmuscle.json b/tierpsy/extras/param_files/_FLUO_bodywallmuscle.json similarity index 72% rename from tierpsy/extras/param_files/FLUO_bodywallmuscle.json rename to tierpsy/extras/param_files/_FLUO_bodywallmuscle.json index 87350ca6..28ae3af4 100644 --- a/tierpsy/extras/param_files/FLUO_bodywallmuscle.json +++ b/tierpsy/extras/param_files/_FLUO_bodywallmuscle.json @@ -1,4 +1,4 @@ -{"analysis_type": "WORM", "expected_fps": 9.0, "compression_buff": 9, "thresh_block_size": 31, "is_light_background": false, "thresh_C": 4, +{"analysis_type": "OPENWORM", "expected_fps": 9.0, "compression_buff": 9, "thresh_block_size": 31, "is_light_background": false, "thresh_C": 4, "mask_max_area": 100000, "dilation_size": 20, "strel_size": 15, "worm_bw_thresh_factor": 1.0, "filt_bad_seg_thresh": 0.5, "fps_filter":0, "traj_area_ratio_lim":[0.25,4], "traj_max_allowed_dist": 50, "mask_min_area": 400, "traj_min_area": 200, "min_box_width": 10, "int_avg_width_frac": 0.75, "int_save_maps": false, "max_gap_allowed_block": 4, "head_tail_int_method":"HEAD_BRIGHTER"} diff --git a/tierpsy/extras/param_files/FLUO_pharynx_3fps.json b/tierpsy/extras/param_files/_FLUO_pharynx_3fps.json similarity index 100% rename from tierpsy/extras/param_files/FLUO_pharynx_3fps.json rename to tierpsy/extras/param_files/_FLUO_pharynx_3fps.json diff --git a/tierpsy/extras/param_files/FLUO_pharynx_9fps.json b/tierpsy/extras/param_files/_FLUO_pharynx_9fps.json similarity index 100% rename from tierpsy/extras/param_files/FLUO_pharynx_9fps.json rename to tierpsy/extras/param_files/_FLUO_pharynx_9fps.json diff --git a/tierpsy/extras/param_files/SINGLE_RIG_1.5x.json b/tierpsy/extras/param_files/_SINGLE_RIG_1.5x.json similarity index 100% rename from tierpsy/extras/param_files/SINGLE_RIG_1.5x.json rename to tierpsy/extras/param_files/_SINGLE_RIG_1.5x.json diff --git a/tierpsy/extras/param_files/_TEST_WT2.json b/tierpsy/extras/param_files/_TEST_WT2.json deleted file mode 100755 index 7f9c5ccb..00000000 --- a/tierpsy/extras/param_files/_TEST_WT2.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "thresh_block_size": 61, - "thresh_C": 15, - "dilation_size": 10, - "min_area": 100, - "resampling_N": 49, - "expected_fps": 30.0, - "max_area": 100000, - "is_extract_metadata": true, - "keep_border_data": true, - "compression_buff": 1, - "worm_bw_thresh_factor":1.0, - "strel_size":10, - "int_save_maps": true, - "filt_min_displacement":0, - "analysis_type" : "WT2", - "analysis_checkpoints" : ["FEAT_INIT", "FEAT_TIERPSY"] -} \ No newline at end of file diff --git a/tierpsy/extras/param_files/_TEST_loopbio.json b/tierpsy/extras/param_files/_TEST_loopbio.json index aa4adaf9..985a37d4 100644 --- a/tierpsy/extras/param_files/_TEST_loopbio.json +++ b/tierpsy/extras/param_files/_TEST_loopbio.json @@ -1,19 +1,5 @@ { - "analysis_type": "TEST", - "analysis_checkpoints": [ - "COMPRESS", - "TRAJ_CREATE", - "TRAJ_JOIN", - "SKE_INIT", - "BLOB_FEATS", - "SKE_CREATE", - "SKE_FILT", - "SKE_ORIENT", - "INT_PROFILE", - "INT_SKE_ORIENT", - "FEAT_INIT", - "FEAT_TIERPSY" - ], + "analysis_type": "TIERPSY", "mask_min_area": 50, "mask_max_area": 1000, "thresh_C": 50, diff --git a/tierpsy/extras/param_files/_TEST_swimming.json b/tierpsy/extras/param_files/_TEST_swimming.json deleted file mode 100644 index 84e55198..00000000 --- a/tierpsy/extras/param_files/_TEST_swimming.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "analysis_type": "TEST", - "compression_buff": 25, - "dilation_size": 9, - "expected_fps": 25, - "microns_per_pixel": 10.0, - "is_extract_metadata": false, - "filt_bad_seg_thresh": 0.8, - "filt_critical_alpha": 0.01, - "filt_max_area_ratio": 6, - "filt_max_width_ratio": 2.25, - "filt_min_displacement": 10, - "filter_model_name": "model_isworm_20170407_184845.h5", - "fps_filter": -1, - "int_avg_width_frac": 0.3, - "int_length_resampling": 131, - "int_max_gap_allowed_block": -1, - "int_width_resampling": 15, - "is_light_background": true, - "keep_border_data": false, - "mask_max_area": 100000000, - "mask_min_area": 50, - "max_gap_allowed_block": 10, - "min_box_width": 5, - "n_cores_used": 1, - "resampling_N": 49, - "roi_size": -1, - "save_int_maps": false, - "split_traj_time": 90, - "strel_size": 5, - "thresh_C": 15, - "thresh_block_size": 61, - "traj_area_ratio_lim": [ - 0.5, - 2.0 - ], - "traj_max_allowed_dist": 25, - "traj_min_area": 25, - "worm_bw_thresh_factor": 1.05, - - "feat_coords_smooth_window_s" : 0.0, - "feat_gap_to_interp_s" : 0.1, - "feat_derivate_delta_time" : 0.1 -} \ No newline at end of file diff --git a/tierpsy/gui/BatchProcessing.py b/tierpsy/gui/BatchProcessing.py index d198bede..07ed6cab 100644 --- a/tierpsy/gui/BatchProcessing.py +++ b/tierpsy/gui/BatchProcessing.py @@ -246,9 +246,6 @@ def updateCheckpointsChange(self, index=0): if not analysis_checkpoints: analysis_checkpoints = get_dflt_sequence(param.p_dict['analysis_type']) - if analysis_checkpoints[-1] != 'FEAT_MANUAL_CREATE': - analysis_checkpoints.append('FEAT_MANUAL_CREATE') - self.analysis_checkpoints = analysis_checkpoints self.ui.p_force_start_point.clear() self.ui.p_force_start_point.addItems(self.analysis_checkpoints) @@ -260,11 +257,7 @@ def updateStartPointChange(self, index): self.mapper['force_start_point'], 0) - #Force to be able to select FEAT_MANUAL_CREATE only from p_force_start_point - if len(remaining_points) >= 1 and remaining_points[-1] == 'FEAT_MANUAL_CREATE': - remaining_points = remaining_points[:-1] - - + if self.mapper['force_start_point'] == 'COMPRESS': self.ui.pushButton_videosDir.setEnabled(True) diff --git a/tierpsy/gui/GetAllParameters.py b/tierpsy/gui/GetAllParameters.py index 626b3611..bac7a58a 100644 --- a/tierpsy/gui/GetAllParameters.py +++ b/tierpsy/gui/GetAllParameters.py @@ -8,7 +8,6 @@ from tierpsy.helper.params.tracker_param import info_param, default_param, valid_options -from tierpsy import DFLT_FILTER_FILES # i cannot really add this since i do not have a good way to get the data _feats2ignore = ['analysis_checkpoints'] @@ -37,11 +36,7 @@ def __init__(self, name, value=None, widget=None, elif isinstance(self.widget, QComboBox): if name in valid_options: self.widget.addItems(valid_options[name]) - elif name == 'filter_model_name': - self.widget.addItems([''] + DFLT_FILTER_FILES) - self.widget.setEditable(True) - - + if not isinstance(self.widget, QGridLayout): self.widget.setToolTip(info_param[name]) else: @@ -55,7 +50,7 @@ def __init__(self, name, value=None, widget=None, def _create(self, name, value): value_type = type(value) - if name in valid_options or name == 'filter_model_name': + if name in valid_options: widget = QComboBox() elif value_type is bool: diff --git a/tierpsy/gui/MWTrackerViewer.py b/tierpsy/gui/MWTrackerViewer.py index a8c1a749..fdb648b9 100755 --- a/tierpsy/gui/MWTrackerViewer.py +++ b/tierpsy/gui/MWTrackerViewer.py @@ -941,8 +941,9 @@ def change_feature(self): app = QApplication(sys.argv) main = MWTrackerViewer_GUI(argv=sys.argv) - mask_file = '/Users/avelinojaver/OneDrive - Imperial College London/tierpsy_examples/mutliworm_example/BRC20067_worms10_food1-10_Set2_Pos5_Ch2_02062017_121709.hdf5' + #mask_file = '/Users/avelinojaver/OneDrive - Imperial College London/tierpsy_examples/mutliworm_example/BRC20067_worms10_food1-10_Set2_Pos5_Ch2_02062017_121709.hdf5' #mask_file = '/Volumes/rescomp1/data/WormData/screenings/Pratheeban/First_Set/MaskedVideos/Old_Adult/16_07_22/W3_ELA_1.0_Ch1_22072016_131149.hdf5' + mask_file = '/Users/avelinojaver/Documents/GitHub/tierpsy-tracker/tests/data/AVI_VIDEOS/MaskedVideos/AVI_VIDEOS_1.hdf5' main.updateVideoFile(mask_file) main.show() diff --git a/tierpsy/gui/PlotFeatures.py b/tierpsy/gui/PlotFeatures.py index 4118995b..0209e80c 100644 --- a/tierpsy/gui/PlotFeatures.py +++ b/tierpsy/gui/PlotFeatures.py @@ -138,9 +138,6 @@ def feature_label(self, feature): def _plot_single_timeseries(self, worm_index, feature): worm_data = self.traj_worm_index_grouped.get_group(worm_index) - - #valid_index = worm_data['skeleton_id'] - #valid_index = valid_index[valid_index>=0] feat_val = self.timeseries_data.loc[worm_data.index] self._ax.clear() @@ -193,7 +190,7 @@ def _plot_all_timeseries(self, feature): def _plot_single_histogram(self, worm_index, feature): worm_data = self.traj_worm_index_grouped.get_group(worm_index) - feat_val = self.timeseries_data.loc[worm_data.index].dropna() + feat_val = self.timeseries_data.loc[worm_data.index] self._ax.clear() @@ -202,9 +199,10 @@ def _plot_single_histogram(self, worm_index, feature): self._ax.set_ylabel('Counts') self._ax.set_title('W: {}'.format(worm_index)) - counts, edges, _ = self._ax.hist(feat_val[feature]) + counts, edges, _ = self._ax.hist(feat_val[feature].dropna()) bins = edges[:-1] + (edges[1] - edges[0])/2 + self.figure.tight_layout() self._ax.figure.canvas.draw() diff --git a/tierpsy/helper/params/docs_tracker_param.py b/tierpsy/helper/params/docs_tracker_param.py index 3ad20dc4..b66afc53 100644 --- a/tierpsy/helper/params/docs_tracker_param.py +++ b/tierpsy/helper/params/docs_tracker_param.py @@ -5,6 +5,9 @@ from .docs_analysis_points import valid_analysis_types, dlft_analysis_type from .helper import repack_dflt_list + + + dflt_param_list = [ ('analysis_type', dlft_analysis_type, @@ -156,17 +159,6 @@ 'Area ratio between blob areas in different frames to be considered part of the same trajectory.' ), - ('n_cores_used', - 1, - ''' - EXPERIMENTAL. Number of core used. - Currently it is only suported by TRAJ_CREATE and it is only recommended at high particle densities. - '''), - - ('filter_model_name', - '', - 'Path to the NN Keras model used to filter worms from spurious particles. If it is empty this step will be skiped.' - ), ('roi_size', -1, @@ -292,16 +284,32 @@ ), ('feat_coords_smooth_window_s', 0.25, - 'Window (in number seconds) used to smooth each of the skeletons coordinates over time by Tierpsy Features.' + 'Window (in number seconds) used to smooth each of the skeletons coordinates over time by Tierpsy Features. Set to zero to deactivate the smoothing over time.' ), ('feat_gap_to_interp_s', 0.25, - 'Maximum time gap between missing skeletons be interpolated by Tierpsy Features.' + 'Maximum time gap between missing skeletons be interpolated by Tierpsy Features. Set to zero to deactivate the interpolation over time.' ), ('feat_derivate_delta_time', 1/3, 'Time window used to calculate the derivatives (including velocity) by Tierpsy Features.' ), + + ('n_cores_used', + 1, + ''' + EXPERIMENTAL. Number of core used. + Currently it is only suported by TRAJ_CREATE and it is only recommended at high particle densities. + '''), + + ('use_nn_filter', + False, + 'Set to True if you want to use a pretrained neural network model to filter worms. This model is optimized for AEX setup and might not work with other setups. If analysis_type is setup to _AEX the filter will be used by default.' + ), + ('use_nn_food_cnt', + True, + 'If true a pretrained neural network model is going to use in FOOD_CNT, else it will attempt to use morphological operations to calculate the food contour.' + ) ] # #not tested (used for the zebra fish) diff --git a/tierpsy/helper/params/model_paths.py b/tierpsy/helper/params/model_paths.py new file mode 100644 index 00000000..b0ee83a4 --- /dev/null +++ b/tierpsy/helper/params/model_paths.py @@ -0,0 +1,15 @@ +from tierpsy import AUX_FILES_DIR +import os +import warning + + +DFLT_MODEL_FILTER_WORMS = os.path.join(AUX_FILES_DIR, 'model_isworm_20170407_184845.h5') +if not os.path.exists(DFLT_MODEL_FILTER_WORMS): + warning.warn('The default model file to filter spurious particles was not found. This step will not be done.') + DFLT_MODEL_FILTER_WORMS = '' + +DFLT_MODEL_FOOD_CONTOUR = os.path.join(AUX_FILES_DIR, 'unet_RMSprop-5-04999-0.3997.h5') +if not os.path.exists(DFLT_MODEL_FOOD_CONTOUR): + warning.warn('The default model to obtain the food contour was not found. I would try a less accurate algorithm to calculate the contour.') + DFLT_MODEL_FOOD_CONTOUR = '' + diff --git a/tierpsy/helper/params/models_path.py b/tierpsy/helper/params/models_path.py new file mode 100644 index 00000000..708a8aed --- /dev/null +++ b/tierpsy/helper/params/models_path.py @@ -0,0 +1,15 @@ +from tierpsy import AUX_FILES_DIR +import os +import warnings + + +DFLT_MODEL_FILTER_WORMS = os.path.join(AUX_FILES_DIR, 'model_isworm_20170407_184845.h5') +if not os.path.exists(DFLT_MODEL_FILTER_WORMS): + warning.warn('The default model file to filter spurious particles was not found. This step will not be done.') + DFLT_MODEL_FILTER_WORMS = '' + +DFLT_MODEL_FOOD_CONTOUR = os.path.join(AUX_FILES_DIR, 'unet_RMSprop-5-04999-0.3997.h5') +if not os.path.exists(DFLT_MODEL_FOOD_CONTOUR): + warning.warn('The default model to obtain the food contour was not found. I would try a less accurate algorithm to calculate the contour.') + DFLT_MODEL_FOOD_CONTOUR = '' + diff --git a/tierpsy/helper/params/tracker_param.py b/tierpsy/helper/params/tracker_param.py index df7c16a7..bd9eed63 100644 --- a/tierpsy/helper/params/tracker_param.py +++ b/tierpsy/helper/params/tracker_param.py @@ -7,6 +7,7 @@ import json import os +import warnings #get default parameters files from tierpsy import DFLT_PARAMS_PATH, DFLT_PARAMS_FILES @@ -35,62 +36,65 @@ 'is_extract_metadata':'is_extract_timestamp', } + + def get_dflt_sequence(analysis_type): assert analysis_type in valid_options['analysis_type'] + analysis_checkpoints = dflt_analysis_points[analysis_type].copy() + return analysis_checkpoints - if analysis_type in dflt_analysis_points: - analysis_checkpoints = dflt_analysis_points[analysis_type] - else: - analysis_checkpoints = dflt_analysis_points[dlft_analysis_type] + +def fix_deprecated(param_in_file): + ''' + basically look for deprecated or changed names and corrected with the newest versions them. + ''' + corrected_params = {} + for key in param_in_file: + if key in deprecated_fields: + #ignore deprecated fields + continue + elif key in deprecated_alias: + #rename deprecated alias + corrected_params[deprecated_alias[key]] = param_in_file[key] - return analysis_checkpoints + elif key == 'min_area': + #special case of deprecated alias + corrected_params['mask_min_area'] = param_in_file['min_area'] + corrected_params['traj_min_area'] = param_in_file['min_area']/2 + elif key == 'analysis_type': + #correct the name of a deprecated analysis types + vv = param_in_file['analysis_type'] + corrected_params['analysis_type'] = deprecated_analysis_alias[vv] if vv in deprecated_analysis_alias else vv + + elif key == 'filter_model_name': + corrected_params['use_nn_filter'] = len(param_in_file['filter_model_name']) > 0 #set to true if it is not empty + else: + corrected_params[key] = param_in_file[key] + + return corrected_params def read_params(json_file=''): ''' - Read and clean input. + Read input, and assign defults for the missing values. ''' - - #basically look for deprecated or changed names and fix them. input_param = default_param.copy() if json_file: with open(json_file) as fid: param_in_file = json.load(fid) - - for key in param_in_file: + param_in_file = fix_deprecated(param_in_file) - if key in deprecated_fields: - #ignore deprecated fields - continue - elif key in deprecated_alias: - #rename deprecated alias - input_param[deprecated_alias[key]] = param_in_file[key] - - elif key == 'min_area': - #special case of deprecated alias - input_param['mask_min_area'] = param_in_file['min_area'] - input_param['traj_min_area'] = param_in_file['min_area']/2 - if key == 'analysis_type': - #correct the name of a deprecated point - vv = input_param['analysis_type'] - if vv in deprecated_analysis_alias: - input_param['analysis_type'] = deprecated_analysis_alias[vv] - - - - elif key in input_param: + for key in param_in_file: + if key in input_param: input_param[key] = param_in_file[key] else: - raise ValueError('Parameter {} is not a valid parameter. Change its value in file {}'.format(key, json_file)) + raise ValueError('Parameter "{}" is not a valid parameter. Change its value in file "{}"'.format(key, json_file)) - if key in valid_options: - if not param_in_file[key] in valid_options[key]: - raise ValueError('Parameter {} is not in the list of valid options {}'.format(param_in_file[key],valid_options[key])) - + if key in valid_options and (input_param[key] not in valid_options[key]): + raise ValueError('Parameter "{}" is not in the list of valid options {}'.format(param_in_file[key],valid_options[key])) if not input_param['analysis_checkpoints']: input_param['analysis_checkpoints'] = get_dflt_sequence(input_param['analysis_type']) - return input_param @@ -109,13 +113,22 @@ def __init__(self, json_file=''): @property def is_WT2(self): - return self.p_dict['analysis_type'].endswih('WT2') + return self.p_dict['analysis_type'].endswith('WT2') @property def is_one_worm(self): analysis_type = self.p_dict['analysis_type'] return analysis_type.endswith('WT2') or analysis_type.endswith('SINGLE') + @property + def use_nn_filter(self): + _use_nn_filter = self.p_dict['use_nn_filter'] + if not _use_nn_filter and 'AEX' in self.p_dict['analysis_type']: + warnings.warn('the use_filter_flag would be set to True since the analysis type contains AEX.') + _use_nn_filter = True + + return _use_nn_filter + if __name__=='__main__': diff --git a/tierpsy/processing/processMultipleFilesFun.py b/tierpsy/processing/processMultipleFilesFun.py index bd51498b..cbd56e2a 100644 --- a/tierpsy/processing/processMultipleFilesFun.py +++ b/tierpsy/processing/processMultipleFilesFun.py @@ -77,7 +77,7 @@ def processMultipleFilesFun( json_file = param.json_file if not analysis_checkpoints: - analysis_checkpoints = param.p_dict['analysis_checkpoints'].copy()#get_dflt_sequence(param.p_dict['analysis_type']) + analysis_checkpoints = param.p_dict['analysis_checkpoints'].copy() From 6a7914a6a2cf219671d5d6773f661021a23f56ad Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Fri, 8 Jun 2018 17:09:32 +0100 Subject: [PATCH 22/37] delete cython generated files from repo --- .gitignore | 7 + .../circCurvature.cp35-win_amd64.pyd | Bin 41984 -> 0 bytes .../circCurvature.cpython-35m-darwin.so | Bin 48648 -> 0 bytes .../cython_files/cleanWorm_cython.c | 12325 --------- .../cleanWorm_cython.cp35-win_amd64.pyd | Bin 65024 -> 0 bytes .../cleanWorm_cython.cpython-35m-darwin.so | Bin 105420 -> 0 bytes .../cython_files/curvspace.cp35-win_amd64.pyd | Bin 40960 -> 0 bytes .../curvspace.cpython-35m-darwin.so | Bin 48240 -> 0 bytes .../cython_files/linearSkeleton_cython.c | 21444 ---------------- .../linearSkeleton_cython.cp35-win_amd64.pyd | Bin 144384 -> 0 bytes ...inearSkeleton_cython.cpython-35m-darwin.so | Bin 212508 -> 0 bytes .../cython_files/segWorm_cython.c | 9856 ------- .../segWorm_cython.cp35-win_amd64.pyd | Bin 50176 -> 0 bytes .../segWorm_cython.cpython-35m-darwin.so | Bin 77004 -> 0 bytes .../stage_aligment/get_mask_diff_var.c | 7941 ------ 15 files changed, 7 insertions(+), 51566 deletions(-) delete mode 100755 tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.cp35-win_amd64.pyd delete mode 100755 tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.cpython-35m-darwin.so delete mode 100644 tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.c delete mode 100755 tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.cp35-win_amd64.pyd delete mode 100755 tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.cpython-35m-darwin.so delete mode 100644 tierpsy/analysis/ske_create/segWormPython/cython_files/curvspace.cp35-win_amd64.pyd delete mode 100755 tierpsy/analysis/ske_create/segWormPython/cython_files/curvspace.cpython-35m-darwin.so delete mode 100644 tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.c delete mode 100755 tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.cp35-win_amd64.pyd delete mode 100755 tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.cpython-35m-darwin.so delete mode 100644 tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.c delete mode 100755 tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.cp35-win_amd64.pyd delete mode 100755 tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.cpython-35m-darwin.so delete mode 100644 tierpsy/analysis/stage_aligment/get_mask_diff_var.c diff --git a/.gitignore b/.gitignore index 327ddcbc..8d94bf92 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,10 @@ Gemfile* tierpsy/extras/unet_RMSprop-5-04999-0.3997.h5 *.so *.so +*.pyd +*.so +*.pyd +tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.c +tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.c +tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.c +tierpsy/analysis/stage_aligment/get_mask_diff_var.c diff --git a/tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.cp35-win_amd64.pyd b/tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.cp35-win_amd64.pyd deleted file mode 100755 index be4c69d75dacbfff7e111dfbeee54e389863763a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41984 zcmeHwdtg-6x$mANlMG3Q9Ug-LK?j|f@QQ(e0s);N6WAjYj3hvmND`6>iRLk#2ZX1= zNh;%ZT70#(wU!Df?eX-`Rw-Jm2_Oj|^3W>2+IXbx#Q2D)2-bGr-?!G9$s|DSx#!$J z?!6t@vtHl&Uh7+Hee1C&g|}^$;w4E+z@urBv=z2hi^?xn|KfDpA3oX6{_LY(QY8xexrh9~A@WpJ+gCIFHy zNv90%aZ2=mtdcaZKlT4c>}B?;sgbX2WdbRA#vYj78UJvlqa&^6%MMLDFw#w{s<16ljSd-Rgjs}J9UK;F~N@*L`M z3VUP#6}Gj@4|lNSWK>duWfp@H^jXrB;0BA?wiE=+ih9PWewuqIJP{Vq+U`%vZSM)A zZusZ0!h26`v0JRx-{=B!5C0gMzT{_56)}q80Ok!qPGM^Sy2nToo>qCi<@+lu`!M|G9HjI?CE_fu7`pib`FZS8j@ zCMr&E`JqJzA49wmBDAyAS!{Un6S0_gL5q_Hs{J z?|mg4VvNcU?^pLL5k{=UL-~HRzj{CkmYSVGYkIHmEmZr|uN3vuwv&E& zmTC9*B-=20%g&}VjzqrDh0lTwzqu=ZJIxoz_Wn2P4npk zTD*T^l#wwpjQB=Gv#*S@-kX^FHmo*>tEU;7vD#LY_qR_y*|N{V8%a^eWmHfLpHt5$ zYLC+PwqGC0*Yyr38~6>{!l`zuuPf?N?Ny=ddTMo_MQA+Q=4q_W3C~+lGCG}KA6|n# zM)gtkm1tAVWKGpm{C7=5f3+6#4)td4AqZ80|0uLkm=SV3k3`_~???7uSA&Lju(VO*O z0YFjp#grY?AHd{8kXFRIP|~S?3^_!#Q~wBJWb&Q*$3<)}lp-m2wo@PdA=T_m&=KYS zeAPH_J@SLj1al-)r>MpmkxW#4b_FtynJ`=EVJRuls;F;jrsc~~UHvu93%OcB zZo3jHu~a~Zn(0$ac?yJ`r39)iGr@w>Qmd#ab*f#YmK=0h%5+mAEB6pJk6APALp7~4 zpv7(YC7DC{iseKT^s>TFLL49*?^4u+j2se8RSdm)C9lgjGPk`?k$-7S{edL;Kc2?N z%H6u&FC%sDXu4)weP9UivW6Fz`$hkkfj z;IBGN9qO_0ADLaUPI**A?=G>Fs!mJM#SFZs6O|)8u4jmRX=p&2_erRpmyj2Jom0?< z_ahQ3D-Hb&Y&Rm@*5y6=&oBhG9r`WVm2BU?MgKkxiHpHhI0!JIg^}S6JTU}1`xc_T zAKVKSq8qTbBbk>d>W5@B>YIV{I{BU_fG_+8ngZ=P2^~2Te3lYw6KW%mbh{3DWt695 zdGbT;y{i<}bbm9(fIyd~?t9h>EP?JDCw1-CIbQ8@=I(O_3%c=y>pR)Kc<9X_77_5sRfc5tM&q7uy+>CAm)sh{iJJpW8g|O0^S$cg~ z)BGEhD*a4EFt2^_7Yb6-HqRml*uQdb3hLF&vZec%IVbIte`6b|glEoBIy}khJVShkGq2r)kz-$0?;kNDV2pqODVS?T?rPXX{OJSQrnfO6mRG8P@$QpcTu{)jB060N4HtY zMLf44P08(0o&^{90Mpe-hM9owVLj7Lb%h1A68f>+UKQAGxLHc({_oTr+P(u0+#P>%-8rNVn7+ehr;Xm_8 zoX|^1uZQ{XXJf_^CG?cV`d0vM{;(bDRo~<@%651s)L+yiM<)a_e83GFg?+gvZF`S{ zUihadrwq;XOE9CTKMpg9hffhR>Jg0CnrQ)*0Lh%lNFC~Cr3|Qlv+k$8~nb=Z!4frq>opwu+3BwM;5*lmJ z&LuFkb2^#|fsbaqP(h#k5VT>pC`9yU03d2s&GbD)F={5Cef#qE@p|`zg!@s;ai~ez ze1NoddvqLP{xO^XmC(2vOl?YNMmd7sQHq+Uz=eTD9}CwJ3vVca{RSoP51u~_atMHI zkS_sT6FIJ{FTgeK8*ynFe}e@voN1AM5O9Ujg>o^iKa1rVP1^F~cD18Z{{)hxA=~D@ zMxU$Rt{%2+{GA!^|pe7&$k8T4gJ=Z~n~Y_tn}q zpK&$%>TD@*rM!u|ouIh6hpy@Gq`{%(WU;7p-0po0t)og*T zgp9r$HQ6524+X^B_C%fJ%bHt}7$^D0&vjEUM!);~*YHuzYc5wXZO}g`S>C?in}X^( z)O_uJNh)YP=^MTIJxT79H=mc}3TXqCCZKc=O7~*Gmx4>W!OUrU-l+{1ViEiiKZWPO zQtjtFvqZ>%e}<}G1lt@GTm{d<3G(x z3Oe_aG>j%`mc%)U{%NYd2sHv-hEDyBh`>grvjt&uP(KSP--tk$xl?})qOd3_sJ9>n zhX=z1^AnkkF@?iEa@%L=(@_rBVgEj~t(Gx-F%+0l#=cju?+W(4l6_aR@7LLP7yEvW zeLuy%A7kHJ+4tS-+sD3Z*mo(uckA|pCRsWEkSCUBysj9stL--RI7|TP?;(u_N6d*H zLv~?HIi7MHbA*=hpTN>zUyS{Mxn}~9)wdc3KBN^>S!8`H@5$FC$1Cc>uy1P1dNjL1 zGi3p1FV$a_ti=}%yw*GM2J)=W1b8#ua^Ae_$pZnnT1 zfnJxT1lD&;{vSdJHg#aO=aGnbtgo1t(0a+X3?rf$Muw?kwHrY$R#mMQ+EjC>VJ9tr z&ub<-qjV0VoZLE{0e5Mp&RYN;xE8ce(L}ZkE2LxE;v6h2za@M-a12`_sY(GQu@ zHq%n;l|r>sQHN-z6F}VS1GrhqdujDNC0GwvIi#NmC>r}P@?y*@RF65aFfu>a1#FsW z2I>gs+e-R2BHh;BoUN#xy*K&JgVvp#)^vuY-jXE<0->2vUCzY0R_7m0j6xA;CLu~b z6QwAJZ2dl_SS9!6@R(097h#mGg`zOZQVZD1Y4OJTLA0Sngxiy5dcKG>aSGb>C-Nr6 zdY-l`ax~LSDg#ZS(WnMVF8~-|0ci6qBCP7~ZbZ=E=C)_4*J2tmQzwPqZo)PUscgC} zbc;?ir9cmwX(vcg83wiIFlk}s*F`X3q8BCd9;~Wo+AY)l85Es{=ym=v1I54mW15N& z5EGae0nb{3HIS32VS+!ki4l1Z0p*)n!)c}5WfVC29t`#JCjBa1}s2@33Ao)(3 z>Fmvb3y{w=_%mo-5wiiL&fOX!0Y6n|WPS%$q1n}gcDbOl0G$)7<0*HbRB8LjH(50; zqo{f`{32ACr*|N=ag_3i65np0Wq-*)R$cZI+?x2_Nlw*x62(BJzJVQ=Fl`?3X7$yz zX|#eqE*BgN?}2tS(^hcpRQ30x0tN$WZ}nC5ACg6-9_hmlLRZkeK{H)LdDvEfcg1^A z#Pn!lMkdS?Ofd7*iZIf!t)1v1KX!lT8}vhCMhoNlQ=1xgsE5?IG?RHzl%u6!Vys;~ z0vkC)_JwVQkg;e3N%Iz+ z>igx`9@3ZIClq8n$YSl}U%7KnVgRV6_N|~+EhST84v|7JD}7#Gjm1|AxVjeZSN$1%uVc1P&`fu+_F^Vi8l2GpAazC+kqhdpDX4lKTU3s`*Ee0Q zV6D^fUV;*T%rWV8`AVxKr`h_HkOON;8|?4{o&V#)_;&4JaK_cBI4@Y=X}Bpkwv%MW zeiL>!*nZP$^B8G&(aQRa6JoQAd1p*}(rSiqRgh1`OmO(?nLyxDZI3>caFw)tb(* z93G5?PnrE#2PjnumcZUHNkWyNr6;@aoBF5Onc<(ufjyc#QCdT#BLSLr)|zJUCG+`< z3d1AF5HFl!nfx(pNA*)h{pwk=Huxt*Py~hJsdWX z!OfvzgVh@#Ttxq|^f3&nUx9nGqPh*fgxt4#6JQb8AGr$LXjZeTphRy(BF}*FEM&Y5 zzK&)pTfhu|c%*&$DJpb!a74rYx$zAEK_GS5=C8US;U;}(-7CF`9bd(T<}B7s9Vpcl z^Q>m`#$?U(YorcZEi`TWuhLBQR28jz8PK%PM?7TGfiP>)bChNTBc~x36_ts8fxgkI zbR_boqV8^?CTctDA59)Fvxle@SjXG}Dw=65F&WW95)wiS2_7n43K(?%i)ewNj4I+4 z#__orMcgJ7F&2v0OO&99Ql^NXBgGY=ks_+7s!+sl3J?#Oc72QFM+f4B2%L^)|IAGSyFd{F(;?D} z&|YBuNXb7ru-=^SzlNsq@w4ts^N)3^FJW0hlPvc1ehaYPvgmpb3!EG{Z%%c77L6%z zCvL{p@`Ci^wwQFeUsIT&Gbp&`03JULbDl)cEfW0TDym{{9Ko32pQp-O1ALD8@}S#(Yb z-nYM*`ZDIeyq7loCmoq#N%%%SJbP`vnIs$JWZASu$Oe&r(q-lT0UU$(VeRNkC3jQs zhGvQf4Vv(VL|p)szQ9XK=o}gVoodTgv>&a%^)?N2w`Te`s>cVZF{ttNJS0P=XW-o8 z)Qef=txRf6ozZbSW)Ncf6fPhwC!K=g#fjZ8kl1%QF(roBhYaEp#Av(=%#wU#v53mY zG_TCES#f;XX|qBo+E?8Kg#B$zYzqE1e@JpGd8Vg`Bsn;5%B{1hrP@x)ty2-ng*$XY z3C==u+d~WHXr?%D5;&*%vh3Zm~W+>ir{*TRgYS>5ht4u5JTkNKV&&h8CV-y!`~T>m|D!2@?qMl zpeB7n%}1v;j>izCmM>{RmfBI zuVIXF$~WUo0o@IiTN&rZ1{+ENX=YM1L8_h^wAVaqz1436;&*9-8|>47I+*j2{*Rys zy#;NM)<)9)f`Qwtq{rY|!$oSvm=22q1baL|jN&2vR<v_yYCfEV}5z$zJ>h42=wW|R~zMfK7u}N@}AbT^cje#_qB9S$AT-q zOM6ez*k-!YdmOQY3kv2E8Krk0Qd^c4@WeBU+LVPw=1iq?0j=((mi4;zq`OkNO&>=} zJ{EpO&um6+rQ@C4vj-R0akRQ12f%3H{5ZsCvN)F2S7QjJjuk3~vv(|PA+3|cdx9EW zJE-J+;eQ{?Ad+eCQIw&J(hy2#yrm5ADyk7&FtaC-B0zCVg!p#|g}NY1(Je5`dlnQ# zq>C^fVTst=vS5DCOE|`s_Y~^@_d60SH1E+}U(0Pv5pVg*CAStLGIN>TKQ*t(>Yq#) zXD*oUznVzoegq;pL_jEo>5AH-=WbvnwrC#({YY;8lC(f<1sCKH5|Ebn#7CIhvcMi} zvPRJKOrqM_{+7Jia_fp{+>hNu-cmhRQzrIFppj$Y>q!5ky$2Z$v|Udht{Aj@kkj(j zkTuh3Q!;Rn+ICLPhB0$yZ5$=P&>ot;2N|K&;m~w9_?VNk@z0F;z~43hqI}$H~?^w7vo)1?K zanRo@+?VR788UURLies@*0N?Mp}LaSkz31<$&9t_tPd;bo6R(Fbtqq+#qfwZebQki z9**kGW*9N%xfn^d+R%lbn2NPM!rOBtX%3#c#=?rhnFK}Os3)#`bzB| zh1mL_c*!!`66_bV;l!2>qgF8&eg*Tu93I9T#H`AR8b%&9MuF|Q4W z<}?dq4&VfO0_^x0*>PJQWB3=9F?PHeOan-6Jp~euye~G6aHtC~(HN8}O#H(fc?qNZ zs|nd;pJmPjANsrT29D+!?+!3(*!OIp>3JF`z<~A=hAv0opaDWd%C@VSv0=e$%lpVz z%Fu^Q9aLLAN`zEcld)$urLCn5+lQdgTSt&~+Mt0M!)YO?{eUV|?Z;{6yAl`}^a})? z*ODjEzK?MmKu{Wtlu{Zuwk{{DwH;irK<9`KQc0K+e~MzKibi4Ua@v}yjcq}0Bi3Se z^D4_O@3Glw!{i0DD^96!sK^>T%Z7U>ih4^rHE(G_?rBBEcy4gcssy99bh-5z0#{$Q zwVd<%67lW!-(sKjt*0vkO}^>87)m5`}= zr4adu;JTDN3am$ozI|rZ0{#_w$;na|r73ww{fYLOo63BJ@}Bu+bMpP!&RI1E zALeRe?G}R)zYIG79oTiE^n3$39OOX-iww+e=P15pTZ^X1ZPXEfPHsC!5x_XHnsLS} zFw}grBdYr#F44g3l;0h*L7 zUvVO4rj9_{Qp}$Ehex`b0VZv9w*_tF%Xg~j&b&8$*D0#CPrU_g?65o4w6F=yT&Tu_ z^7?Y3+~rWQMGuDs%dogY6^#WSvv&bd_|u#rV=`_?I76m0UT_9UDSjEUSSJ_)t5fVY zwa6NN5$3{>0Pl}hpb8d~X6g^B@#*Ub9Mb)k1Qr+2z&CC6V5aV{g{&_G&P`pj6x5mz zU}AoRJU`t?3|8>`HlM@5;fOz^y|-H-q4)20@L&lG+D`6W3{^dwk1x4^U8LQ=`(_SN z!~$?IjW_^bWrC4uU_{(6L%;e32pqz59M6+@w&8gO&l`B8MEX#G|G0O@k}+TL3Hn66 zK0ZD%5&shr#`iZ!jC>t|bJN!pfQ3i)lY9^_?i9pR@4Nc|0ww;i_8#9FBLVlK$B>>7 zgHlDz5Q#yYD)_{}_40BAq}M8l$49vRn}BW$o(J$eisuPDQbGd$kB_`rO8Z*WmSriIN)T6Ok zd7>1bC>nE6`^oow7q}pELch!h;4hQRI}rYtWM&sn+fF`91}hhIvHN0K`_VbcZl6tK zxx912ez(K9gxpU>MZ$^y5-t4QC67>feuyz)Ko01p-nAHJw*G!jX68`Db5 z=T_1RtwBTj^(E}kSpUamJp79YKM`R$*vFx={!S4#iEz!J@Gg@?Z2u8F|JhLO9G!{8&u zVG<(8eU7|m9v0X8Z1M}I0=+r0YtXSjLVjp@I5f5t@O%wAEbv#&mxARRmJ`eO2aaIA z#vYI9%o4`JZ!w93DLzQQ0DdBXoC`SaF_ftkrN!0kZCNs9K1aEH#nYCz=4zY!i>M4!WtUqA^^ug!PdOwETK_yXx9#F zU_NyBXU3XAG>-8R{?j}|A&`>~r5e{U)I}f#X9gVn5WR=ZxSxVmpl4UixH1-aWb*c)}uGWb@IGYY5KKpxx24kR4vAELLE(&W}@ zEcvFYHgll6VorsBJWeLkdgrrU+@JBitVypZ z9p~d6!GvQyf1n!bT5E5HX3A%3isziEGjZ#QV@OogyVB@P>n^K5ufUo~r{Z-Eyg|1Eg)+|*i8>L`LPbz5p8{2g=JyrzAJqgA; z0}HTo_OSa_TU6`Gugh6FGfViJ-w^iCvU)PYr>1zo@`0|Ye)RSoc}^{nb0(W>pJ zx`(QMkE+s?|3D2L@O_@eFoa?-*f@rX3`15F!zN((4PhvWV7P^0xC!b84=FJiG@cbk zjZXca@y*$vgV- zNOH2;g7y|I3!f+C+>F{Ep5%AyT@XZW8AZ1dwcaOm#XyJq0!+Ph z*vafJg;)9%vKbOJh zMd9xUd>_HD0=#W+1+!ICIWZVARv-xf`c*92g8KR@E(UeIbdHO7>(qaOZ?J_}0b*Yh zuFE+tWJ1_Xjw_3Bt>U;00F0>f08{|nFe!{s~4{ah6T(Rm$tw zSe+a3J(AIX7yI$dZO$9`!{@N(UHeehNjB?v;j4|B4Qjhg4 zWatN7tj!x&59QDi$dPc|TQr>!bEkoTi#QuG3o&;F5~Jgrml}sH-~T?KoWvYM4C5K1;g^yc-Bm#I`!4jI?n-S z8tU}=2Wv(%odmp~YJoEHI8_VkcIvOfw+>`F_07OAn=sr0k~c<4euS82x(6sQAq86* zDCO}=`H0OyC7?YG{Xm$b$QjH63~UtWU@us1z2ZDtCouP6fZ_cSsHki{?DuA}d)3&- zDo@bi^$R%ObX%`ee~KXS;SOSCuDhW5^-ot28`0S?>W4%kv|kgx9*5)@A5%N^L9D}m zfPUROUffxG3L=94LPCSqo!F_b0mu&l0^yRlaDB+>)PIa`5}&*_+E)Z;6hsJ#5cjFK z00_z)14lp*`H7hkISvd&1dh4>X|jo+{$YmtL43c3TAlhHR2mQBL}c>;!h{Ll^qYQE zB^=dDF{tV|s+$-p1>b*Qs2)S5$rqqHaC?-iAsp4j7*tnqR2r&w>i>psS^{+HixIp2 z0#u`sD+GMuN+!*fF{obUihY`)`W3$E@U>HKKy2OxsIvRH@^Vymz(sVmg`=uts8-?o zYKH1}s8o0Xs?YjSWpPv!Vo=THsIFkB#^RgC_fEYBl}ax_wWTa7;Ja5a0Y}B4I>XiX zDynwsPvHAqhAI=WstZtU>__zgM->2EM8GFGsx1uFxAFZxL-h_SHC}*fT0g1<9M!29 zRAn61T!tzS-#rY~{iw9&0#wUTE?V&GaZJF6kwaWzl>0lX06&B)LF{f+?s*SM*lrPV zphp~UKUkKtfv*i&Fw{**@il|0Urbqa45FES!jbnepyPyJ27bVX27~>f+Qvx4TSyz8lCzjhz$kFUaVq_^&k|+E6e07oHTB+fGHqG z^(>0t4#D=BS-}?Cl42WP4&IeTXYhD8SO=^@H!f!ucIBSMt>bQIu;LUhJvxK# zu*Je3NTWf0C#31rzl3kdg4pGVz~y2h0Isr#0+^J-N(`olIHrvZ)A}f; z6WDrI2-Ee1340-GPVkv-s{HorG>0<3iG08kUVkpDpNH=WjFbCOzl`d$RVwqvj-kKq zLH0#_v3tf45$3RmutrmOwNTq|`J;Fs+-1X2*)vQXCjiZ+X6z{O2Dt{MZ=47u}*@j z&t%nWMD^{E)W**J=;Yo?yG>R)$XD==Qut|FMyTus2#9ny95g@iF%DE5Oe9>vz@FbR zcpnA0;x|Z2?%Fui1b9+M7|3ZQZ${B*5LDlhTlI|BSHgchMt+9e_65`V??8l$Jp!@& ziQEAIvY$M``*)~}OSaU1#-XP?O8N^L+W^_Ae;>Q=Z3KTG5W!H>qgUt6U@ja!5tW6S zypmPb-^8jaQKF9liAqQsn2g!%eTeyx@f9Y(*`7>xSp{Rpk?=t<&b1@A(J!2I>MKyY z5w(F|$MJuF9MTK?U&Kf-xotQToIB8Lw=mS!f&zL?j9WQ=>LhCBmA~g5W`a|lVoE1D zeOWnAqY;pEXax|s+EUx|1BNGb4uMns7`A#7KrS()zHu29MH+V}0G}YiJ5g8t zT{nFn3$hUJT{2K++HeQg0dyBYdoA2>xSsJoF4z-|Q~v>ClYtLf=>-TZ z{59mz+pqLe46a%*<nck8Mzy^7<^!{KWj<#uAQV!BDu5{|(#CH9^ zgER=P;{>Zfuv1?t7(rK|mtAPt(r>_YQ3II+TRiuyW|D>Qp}AkMT^e_hQ*ADFsudL& zDKUw#LByPIgT6(yZXxwn&}9Ys|$kMZ!YFVU{DdaCDVXs5wSfJj|(*6ZpUXdx4ATGu*N@DE$Xc%B41NTw~| z+VFKL+!P(^yGm#-y`SZr1*0UL6mUgACTx)64eNqkn(0d{w4JkDSp!reilLHIyts=M zM>Haep^;}%EN4A!*@_l-s?S@tvG8fjE*9>v>_(^{pUz(t^=V5OVIgkR4s!$=B-Zdt z(5sKqJJvWG!|yzx+;;o&i@tswIX}Y72RK>LFs{V#)Adw5H=+dn^qjNDh zTh>nVUr`~wrSR2f@?DrHai3mpy&q(p>Pj4D9Vl!&?aNmJVIA&q(KlXQKZlnQ1B_u0 z^o#n6dYf5M@4zt-y&OiDsd}MJq%qNpG`bMQ>9&r8w$x6IAPRkg0PYh3^<+Zro8Q}j z5h3jsv=WAF)0eas1eqS@n(NW~@)G#hh%dyA9 zko}wh0f2LzK0;a)0h~($)3tRPpv-^`-~1=Gu7rbj0%Z7{pNZI)aE^O!Wq6t75vh8< zVq=GK6_E&;o}P{X!y~(XhHd#~*e^M;SvXoaor}F?@;?CALiy?tW~Q3yIcNprbClp7 zF#a(S3^U~O&|SiDa_c>mB3*4{uc!ph<1~Ozjv=EAguSVIu`;03fMJX*y_$j(4R*9( zJUEOI9zhHO2W<5?3fv6=DV&SC=U&+CS3ts{Z#R z`K)|{KMB7!Jx17!|}TMYb~fHM$EwgJ$G-ht`dAsrg`v!%|OAqX7UvT_;{OuX^6H zo0)144LfeU%_C3PfZ-?pq+OnX{#Jk?$5GWmuiMKL(A{7usVD4m)?q}-P8e$BktY$G z(}6EvhvAG|b{@}XH8wf>+!=Wo?)Kr^XUSR@=Nm$qed|{FUAbowz4n~?ih5A~en*X6 zzP3~Te*2^@^&sWL@)~heeV=77`1(x#b34ii=HMBdd~1hQ{{F#92hYf*pg2qi&~^f0 zMabNbOq-$SD%cztGJXxKl;PUT6H2g*DCsz3m(xs7B9mCzx6bCjQO-Jue4d=<&ymw` z0v}4akzOUnOE<(pjeP52In90)krl=tQC+#TOCDzE`3(wDT?syF*^1~Hc}3?L`Bq}3 zbYJ*o*4B?Q47q3HaqA}Q1R#zxnX>@6g2@UU-3s}*4p>d52;6~&WQQQxApk(trOuZ? zU|34n2fUDCMMPH--Eg&#IzkI{q!CB}xLfI~)OnQZ3|nZR*Jy}Wv>z!17Uk}L^`F1? zUm$1YAII0ib~y`nz0=X=;hu-%dOYMJRwMo&sY}zZ) zGP?YE*J+#Dha>;*Bw(O)f@TGX<1If@zrv!YoWUIy1ES90^A-sqCP{h1)0RFkCr^0Z z(v1+jwX!#!5P8(H4LMLu+PEF)t;pHI8xlDg_wt;lEG+_N$|J~eR2_Cyy$(nyjw;UZ zB9oMYITH${UwA2H4B*Fi=sh6Vpk&MI+d$*%^gs5do|%VU@(CKfbow9BP5Q{JUtgUY zeV-9;-rx{vaYTB-m3 zh#ePrpai&X$F&aJb_5Ri%P&!L9Cb{32{jyfotvmJ5937urG`_{0rg2bfJTOm_- zqN9;s3-Vr)?>mcEbASmpgKut8h;U;=gxet^+%n}XZmQ&jlIfBYO4jUDxph+?CWEJr zOC6B<>TY}$Z==a!1zrH@|E(KqG2BXY)NQ~cXYEtpq8%6YJ%b2D6k_mcOBc~Z)^Qd-ZFz)+&+~CZ{VVmT7G%*Z0eL2%#qsU56j6ULE+0w;F&QI4 zFLJTur(Dxqva}U>{<`lDGkOa05KGI++ZRrio!>n71BK0xzXGs8=4OsX!u|AoJtk6LXBH$bH;Tv+}8#=)^^g{!wo0_u)D5yDU2zFxaz*MVpRnuC6RIec2PT}SQ z+Yn%;7r#+hsN&s3^)Rl?gpDYm^#|NRe&%5PjSzhw)&f6l2MvYnL@oazbR2pjg6 z3ag3|zC7iOKYf zAr1kltnc3=W$0ob;AWu;Zv?M|V(>J>_uUM7PPM?TE~$kxSP^#po2G3=%^a+rfRWY6 zJ+yfy{Ofl4p$@eJ`Ow0@K9|zKynA`cm>>_Qi%=0^wFvJP;rB%Na}gdCVYdiN1-?X) zzDA@|MR-=^NBCJM@>@mtgb2Gt*eyayjnv@b4YbvU&sdRvok;UsN%}zKzazo}BHSgy z`$Tw$2#Z8`g9vj(Xc1uq@5kTfu{c^W;FB)GYeYC(go+4n6Jf0gTSWMP2!A2Mb`icN z!jIcH{<9*TyoIO7iZEM*H;8bN2v>^GC&Dcvd`yIUM0i+)-9nz%1if|z}eE2I`0XDjaDVI=>* z8=8N{@wJOEf^UA4r=ikk_WC?^jjPO+_4uO&l|EOs+1J!$_SQCeeAyhb`vG46oCpmM z@^quW!MzqBjs`b?3p}1CkJRYK5om2?U1L7}IET~KxXM@SB`ofyx<((1;gvL+*&-}oT3BXps`5AB7d*XX3+jA|e`Q&r zzus531`?H*cq*&zghXY9%UIOqDXVO(tY7P`^Okwsqx8;6-bFwM~s> zRVW_^8KFGl|H}6mF-^JEco;{-r3l+rqNvOTkCe2s~{l#B@(8EYfZVDmWwCl||IkTtd&d#~sJS}JHjO1i%C4O$T$urwr zc}L}HmnRu#3;u?cF3-(1MZzWq=o^^1Myr~j{03@OuCiI{sJ*D&c-pdV-MZ?P)O_jd1TP+6 zmBnFW_{;>& zL>|r$B6+!#w;OpeZGcT&T>iv7vlNOGb+L(v&sMYxjv*s|ODFATXa|B>>4gUHY3F|% zDDpRSq~oF;+26{s(6G<`j!*>x_IGhCIa4XCqMQGT9g)ZQr2K#M(V=jd$sn10LnKpm zl4P2mD4C`W>z;KWhYjy8$>TWH=TB z2cwx3rK!U)!;qCIHzY^~Pl7wXA}&YJ%NdfOlM=4N?L5K%Czs)OAky*s5Wq>HE>0)K z6(KYxNXF^OlF^e`#N$IG<21xgdg$Oe$)wvWB}UtYn0A+4SMkWoOddy2}!g9)dK=rj2lqPfw82PbW$G>O|?d1-6$V zNvGH2A{%&&O$&bAI{bW$9zQ;;W9^-S_D+VZX!pg#y2n#li9t%sl%$1tCU4+)V$-_h z1SuK(B~MFq4~SEHkSv4S>6_B&$x?dta4EfHn3O&}O-ldO$iCs-kn>VHnVlfb27Tyr zAbq1AZ8=gh;)ZUb8+;5)l!ie^!=@SCsTCooxdsM{UwL%a0qN2eQa@xJBnuv>;v`++vpqFJ={I4BCUv(-3=PC?GmArMD{jp zVA(jmG)^~Dl8+m6Qemg#GgGC^+R>8v^Xby)(=(*u2dT#8l~WY!Zwrxl9@by^lIMyf3YLXnU$VrGjj~l=?{iP$~bB1SxlmUYgjPC|y;X zBn^i>4~IPuKa=7fPx9`Hm(rl4q$&)FM8^;(8DQ&_uEw)l&>ozQt)t6Mk+OHCNMj#K zML)bsO6_JX%lhH?wIijq;Uua0ltEhDHAJ%RO_r|TV#GKZHXvt85fu~lIGVqkaGok(&n`UDY>@Q*~R7{_U{}R`NGNdEV zIpFx3JRIap3a({RC=KxBva8&=Gp4M8r(fAnecg08($!MYT1R7@uY3TU)V-PN^3S;~ zxC#9&K95E6>hDDieJUpgE*Wd-7Ub2&TMoV&sR!wjTC5_gi+xy=moISnq-1@0(c1F-T36Mbi(OTIj~CUQ zbq#es=^!v-SzW%Y($iSbEJ@3BMQaBVm`^$Qd!erKMXohcGg5qSqMQeXP1XK-Y&Bpz z;pUZhxT<`3Z$Cx`n^#C9{Y+50xe5$;XnB|bIND8c&BNwGx#IFbng)`F;VCb6`D{L) zCnEa}P}NnAskpx`a;dH)%^>dUn<{m6wRj%fes-LfCP&tDQ9(MeK~#6UJVqQ z0r~~aRpqh!7bzFC#%fnSwu&%YMkp+zzwY@{L4ofnU|jB(kN!+*ep7?Hl5{qV;hSGs z?~MpFH!3x^k#~?TbYaV&nj1|z$qVZ#cX*5aD{1Qmzm@_;L(}e}&Lc@n06~qwF+YG*Y@32|B!^KBMpED{ zw#~N;%9o_6$eD*N4=*!B-t@M{>SD49Z$GbGmD1uE&LRyq4p3wh)B=1<>j=s1YA9dq zVmpS?9MI_R=U@<)RMD?LhquJzcfk+jcov~^ay&+AS7ygW=u(n&P~a`(Xr;daFHz>q z@j6#A>mh`Z-Y{C=Ene$|^>e7#sAj~r*>FIk#g-W9V#ld5q$AeC5D6{hMSINd=bssS z@S=4insl?h!`vC!)zmM3k+9fTpI_;w&BJ_b@KNu0hVqJgZ;W9Pg9i( zi+Q)c#N}zI!v>fuk|nw09bS=W^32C}D0nUMxV)$)3xN%@--AYfTXDzAOE0x5P zdstUl4+AZxuBKpWknRAtcGpV(s#Pvegv*5mix(9*bEk2gTP3g0Q&kK7WU*b(dRK!B z>gD^)b&ac=uUR&wdM6-6~8kiHMknQn8Ku``HPnH7Y7xl6iHD)+i-%WGIemy;=_OXb)huE7qm$5q~lUC^dA<&~aQt8tTy*W`+d z6uBB#*Lj*6X|EQ0SOXw1eKf=E_L180`kqwoajgQ&E>F2AsS)$Ebd^-@YR0sS$#_7e zE5M7#R}LcrB54#-EFx99>!vh#$;+RD@+q_pJEeZ=l&MpM+=I&T*Sl#8Iu>M!gw4Xn zY0@a2_gfxt{;$vfts02@y~3lnn@`rf#&^L<79Ae!U`W@R@fGu-{MgS$_x%BI(fo^S z_LtihFSgxUZYy$NuMqY6(`>W9hIPP!`Qj)BGgzhD3*XS(B>cj87r-rA;&htXF&2%( z^l4yz2Az+%+0jJhDjaKheP-J{hZ!dw}I%XUzimnd4G403BX^2+jJP=z47nEP5X(epwNaaiBFIkk&+ZRn7lOEK* zQMkxa+lB3mi8{7E+F@Y(I#E7gmm<4rP@10$VygnP0uAZq<#Y&$q(t*WBz_ChHO!~? z4Xls+0r>x`>Fj~EYpDK3&RvP20g!|0twQ;2sC*j$Z$kptghhLZQ^)M`@>MS1O70+) zOLREE+p}n`jZQPm*}*H^P!C+csS-@&ACyn~hVonq+rIyx{`7C4KZBKL(sGF$)=bfz zBW6$sF8LHFWkOjV5F>dm3Gel<^j3N5++yDJk+%x?f@Zh|WcnG|Q?K(*Hm|~AZbtUB zoE#v_z{B-Z?)TNzm$S2CI0-n97WsAjY?mEsN)ndA7tIHmf%(y%^UvnflulR%!}sS8 zunWMg^uzbS2*xVmtGqmt!_Sb*;b~xLT^=bPTz_zy`T@a4uuz=o10mB9W#Cg&kHc9s z4aH;gS9+Q%tE(!>wHlBwEHj$t7a~RKQg1X5W(GJem5;%S{Qju#fpkL?lCI{;DqsCt ziMMUm1hcR5PL~%=JriH+sxcXO;jA{{Zh;wY8M}@Ei}2ze018*(xVdoxi3FQKT{04O znhhH=V{zgKCOFvUJ6&sWYoR)d!JL_~ggOD$V>X4l0>%pjm|j-8#FdRmLq+l9Qh*8)GUi0&e~oRsNr9FUXAE}LXZ_9p0rZbraS#`FoVkk>&g09`Cr(p=2dm8{H+ zs>}(}l786-mJ?xyWHv;r650h{Q9c9%#49>v1faj1XJ*!8CkKW7`8eIn$g%)#jh97Ee*$m#c|E6G0CUJ+>@XYOo$+TYTZ z1Kk*j!P5XGKK@4R)p%VrQVvwKDCetXaSf)S&Wo0)s-0}^Hwf!um*zyymRTRhbjA+0CSH;v+M|n;F9eU0^|0HgdTj z(Q&*IP7Ib!%wdCT#^`3O^9$2n=NEEE;WNnV5fviiKjzPi@{?zVRr<^|b*}nqnujpB zG}Y8#mB@w=(h-do5#2FL`IU{-3;4Rz>~Xp2z7mZPm~N>*4pdXjeDsgyV7>_vh{{pP z?)Fq(fRYOy?J80DSh=&j6NG-Ecw_n>+yIC z91F;-1al&0V>Vqx{2Sh(qU~W`Q;T(pxe8k=G~8F32Mq+@RL(qN>9GJi!O%o83}jp>bx%8H}kAA=SHW@N;59a zRk>DTuMro(%;X{pHA=K-qkS&)La{+?ZopMG-Uo4M3pSUCSB8tseOxGp- z=-;)t;f4-NyGhhx8=)wH8ZAB#TZ_^CyvYnb{Yhx-W^;b~saMrkVht6U>_OhYl4lLZ z!a0elSn2m-4rMhlh0=|;8fQTr@Mw9ts_-JzZ=kP@!Gpe&QsFMwrLkv%}!4+NULpC&; zSc1c^nu=9I=HQMlmdY`e7(?8gvw0BdVd3i?mbZ>cie~)RzO-;%(XE7l;LE%;6&fS9p?=>1Yn*Wh+))5C` za_{E!ihMkzYX}2AVgt({;CA~t+?)YGeE*BGnj>&t4tMn>;41!um!A`Gse|Ao9Vc8X z;2v4c;VpyUBKvDa0&bh&kM5!l_y~M%0cQ|!DFc9z5O6bv92*2&(k0;1Blv{=a6NC} zN8oD~a5IG*LkB`d>9z>EGX=g&@wZLjQ@%lty#g*v;2UxYx>*9wEb!rHb_RSRdQKDk zl?u4420-=OfmPs35Om`Q!A103A@F4hy~vk<+amDw342Mr1YD_rQv^QY*7QRQK^_rs zZUHw~4z{6-S}g)@tdQeUcAyBjkwPz*;%}FLYZY+%e$IGI*o!3evQ@xcs@=8-xNgB; z#vpu=cB>U|bH0JULDesrG>dU++wHtxM%uUgNuG{WjL?syFBR^7nAhtQ{E7SJnpN<9 zsd|I+BlZ4w!(=l)Vh>}jIScEN$=nf`kj#oo*!D;zxyA0av|Pa#tykQB-()yL@FD0n zzq`H;E{dzNs@BX;;o#y6S7b7P&F*@*X&fOrT@B>O(OVN!roa)KHl?~BJu)%3HoCLf zI{Lclj0sVP&-tv5@Y3PCkQ-ZHPa7yvPO6D`KQsI_2b$IxQO-t0j}d#1j6>N!rM)f^f}@c2!DWwXg!MXxQJ8uClL=LOdG{v zD9jM?EQCQkME5>~&x?EtkBc~kqj86uco>WDPk3?=4Pq~bAH>}VjpK0^fw&oA9iE3MAK`5n(6=F8fv^eBZp2#+jO7%Pk5}zr*K>r z-m5^o0^!SesuAx-=!LiEM!W^#Njw`UA7Rl%=$POU=1qbuh!-KWPlj$Nj_{r-lJqp< zTM^E~4$;e$kMQ?+P9xrpaNf1hAL1T` z%>+HZy7BW_0cE}mV8_aS`i2IwF0 zZiMG=g#Ibt20ZhC5Alk8{89{_F2p4}`V5{^h+7d_7oZ;EEeJot^EtsNl5|%QUFF}_fiChX z?8NgF;&i|JPk5*wg%Rf8fqsiP-kW6ah}6P9>0J?e4`eI)2!-@M2gNC*_b^^VoWl3< zWC8wPpZ~rFt^*1O9y&X{z&HQzqyHC%|En~h!~G?U1sI+NvW<72kdbqd{2>W!_+syn z-9NArOU=2lxuHI?NisKcYIaU0?i}C-CAJ#oW-ck2KV@d7I7`4*jcab^T9-HT#v6>u zbFiJ}YFJsn)(ixV-np6BpPTK)70`xC@05nRD!h8zRO6e1eT&(Z-iGYeQ!{CQtgZ&P zyO#2M9Gn`Vx;BCfiHq>~|8w{`jfK&pj?}H*e1ZY|(c2_GVV2eR~&b^leYuk-lT*4(pDJ9kn~Q?AW?v_l~_g zPVMO4A?-Bm%-Wf=vuJ1O&gPvhJGbrJwXZK>lB!|3e!1U(!|!CIA2c diff --git a/tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.cpython-35m-darwin.so b/tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.cpython-35m-darwin.so deleted file mode 100755 index 1f09cc72b2bab179e5174800e947026ef35eeb39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48648 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 W(Me~XSYlwxYgkSkdx;?~1^iFa4Fv`O diff --git a/tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.c b/tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.c deleted file mode 100644 index d6b8a57e..00000000 --- a/tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.c +++ /dev/null @@ -1,12325 +0,0 @@ -/* Generated by Cython 0.28.3 */ - -/* BEGIN: Cython Metadata -{ - "distutils": { - "depends": [], - "name": "tierpsy.analysis.ske_create.segWormPython.cython_files.cleanWorm_cython", - "sources": [ - "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx" - ] - }, - "module_name": "tierpsy.analysis.ske_create.segWormPython.cython_files.cleanWorm_cython" -} -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_28_3" -#define CYTHON_FUTURE_DIVISION 0 -#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 -#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 -#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 (0 && PY_VERSION_HEX >= 0x03050000) - #endif - #ifndef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) - #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 -#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" - #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 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 -#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))))) -#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_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; // PyThread_create_key reports success always -} -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 // TSS (Thread Specific Storage) API -#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)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) -#define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? 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__tierpsy__analysis__ske_create__segWormPython__cython_files__cleanWorm_cython -#define __PYX_HAVE_API__tierpsy__analysis__ske_create__segWormPython__cython_files__cleanWorm_cython -/* Early includes */ -#include -#include -#include "numpy/arrayobject.h" -#include "numpy/ufuncobject.h" -#include -#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_DEFAULT 0 -#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))) ) -#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 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)); - 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[] = { - "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx", - "__init__.pxd", - "type.pxd", -}; -/* 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":730 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":731 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":732 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":733 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":737 - * #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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":738 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":739 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":740 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":744 - * #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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":745 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":754 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":755 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":756 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":758 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":759 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":760 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":762 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":763 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":765 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":766 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":767 - * 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; -/* 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 ---*/ - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":769 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":770 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":771 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":773 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< - * - * cdef inline object PyArray_MultiIterNew1(a): - */ -typedef npy_cdouble __pyx_t_5numpy_complex_t; - -/* --- 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); - -/* 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 - -/* Profile.proto */ -#ifndef CYTHON_PROFILE -#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON - #define CYTHON_PROFILE 0 -#else - #define CYTHON_PROFILE 1 -#endif -#endif -#ifndef CYTHON_TRACE_NOGIL - #define CYTHON_TRACE_NOGIL 0 -#else - #if CYTHON_TRACE_NOGIL && !defined(CYTHON_TRACE) - #define CYTHON_TRACE 1 - #endif -#endif -#ifndef CYTHON_TRACE - #define CYTHON_TRACE 0 -#endif -#if CYTHON_TRACE - #undef CYTHON_PROFILE_REUSE_FRAME -#endif -#ifndef CYTHON_PROFILE_REUSE_FRAME - #define CYTHON_PROFILE_REUSE_FRAME 0 -#endif -#if CYTHON_PROFILE || CYTHON_TRACE - #include "compile.h" - #include "frameobject.h" - #include "traceback.h" - #if CYTHON_PROFILE_REUSE_FRAME - #define CYTHON_FRAME_MODIFIER static - #define CYTHON_FRAME_DEL(frame) - #else - #define CYTHON_FRAME_MODIFIER - #define CYTHON_FRAME_DEL(frame) Py_CLEAR(frame) - #endif - #define __Pyx_TraceDeclarations\ - static PyCodeObject *__pyx_frame_code = NULL;\ - CYTHON_FRAME_MODIFIER PyFrameObject *__pyx_frame = NULL;\ - int __Pyx_use_tracing = 0; - #define __Pyx_TraceFrameInit(codeobj)\ - if (codeobj) __pyx_frame_code = (PyCodeObject*) codeobj; - #ifdef WITH_THREAD - #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error)\ - if (nogil) {\ - if (CYTHON_TRACE_NOGIL) {\ - PyThreadState *tstate;\ - PyGILState_STATE state = PyGILState_Ensure();\ - tstate = __Pyx_PyThreadState_Current;\ - if (unlikely(tstate->use_tracing) && !tstate->tracing &&\ - (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\ - __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\ - }\ - PyGILState_Release(state);\ - if (unlikely(__Pyx_use_tracing < 0)) goto_error;\ - }\ - } else {\ - PyThreadState* tstate = PyThreadState_GET();\ - if (unlikely(tstate->use_tracing) && !tstate->tracing &&\ - (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\ - __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\ - if (unlikely(__Pyx_use_tracing < 0)) goto_error;\ - }\ - } - #else - #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error)\ - { PyThreadState* tstate = PyThreadState_GET();\ - if (unlikely(tstate->use_tracing) && !tstate->tracing &&\ - (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\ - __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\ - if (unlikely(__Pyx_use_tracing < 0)) goto_error;\ - }\ - } - #endif - #define __Pyx_TraceException()\ - if (likely(!__Pyx_use_tracing)); else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ - if (tstate->use_tracing &&\ - (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\ - tstate->tracing++;\ - tstate->use_tracing = 0;\ - PyObject *exc_info = __Pyx_GetExceptionTuple(tstate);\ - if (exc_info) {\ - if (CYTHON_TRACE && tstate->c_tracefunc)\ - tstate->c_tracefunc(\ - tstate->c_traceobj, __pyx_frame, PyTrace_EXCEPTION, exc_info);\ - tstate->c_profilefunc(\ - tstate->c_profileobj, __pyx_frame, PyTrace_EXCEPTION, exc_info);\ - Py_DECREF(exc_info);\ - }\ - tstate->use_tracing = 1;\ - tstate->tracing--;\ - }\ - } - static void __Pyx_call_return_trace_func(PyThreadState *tstate, PyFrameObject *frame, PyObject *result) { - PyObject *type, *value, *traceback; - __Pyx_ErrFetchInState(tstate, &type, &value, &traceback); - tstate->tracing++; - tstate->use_tracing = 0; - if (CYTHON_TRACE && tstate->c_tracefunc) - tstate->c_tracefunc(tstate->c_traceobj, frame, PyTrace_RETURN, result); - if (tstate->c_profilefunc) - tstate->c_profilefunc(tstate->c_profileobj, frame, PyTrace_RETURN, result); - CYTHON_FRAME_DEL(frame); - tstate->use_tracing = 1; - tstate->tracing--; - __Pyx_ErrRestoreInState(tstate, type, value, traceback); - } - #ifdef WITH_THREAD - #define __Pyx_TraceReturn(result, nogil)\ - if (likely(!__Pyx_use_tracing)); else {\ - if (nogil) {\ - if (CYTHON_TRACE_NOGIL) {\ - PyThreadState *tstate;\ - PyGILState_STATE state = PyGILState_Ensure();\ - tstate = __Pyx_PyThreadState_Current;\ - if (tstate->use_tracing) {\ - __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\ - }\ - PyGILState_Release(state);\ - }\ - } else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ - if (tstate->use_tracing) {\ - __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\ - }\ - }\ - } - #else - #define __Pyx_TraceReturn(result, nogil)\ - if (likely(!__Pyx_use_tracing)); else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ - if (tstate->use_tracing) {\ - __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\ - }\ - } - #endif - static PyCodeObject *__Pyx_createFrameCodeObject(const char *funcname, const char *srcfile, int firstlineno); - static int __Pyx_TraceSetupAndCall(PyCodeObject** code, PyFrameObject** frame, PyThreadState* tstate, const char *funcname, const char *srcfile, int firstlineno); -#else - #define __Pyx_TraceDeclarations - #define __Pyx_TraceFrameInit(codeobj) - #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error) if ((1)); else goto_error; - #define __Pyx_TraceException() - #define __Pyx_TraceReturn(result, nogil) -#endif -#if CYTHON_TRACE - static int __Pyx_call_line_trace_func(PyThreadState *tstate, PyFrameObject *frame, int lineno) { - int ret; - PyObject *type, *value, *traceback; - __Pyx_ErrFetchInState(tstate, &type, &value, &traceback); - __Pyx_PyFrame_SetLineNumber(frame, lineno); - tstate->tracing++; - tstate->use_tracing = 0; - ret = tstate->c_tracefunc(tstate->c_traceobj, frame, PyTrace_LINE, NULL); - tstate->use_tracing = 1; - tstate->tracing--; - if (likely(!ret)) { - __Pyx_ErrRestoreInState(tstate, type, value, traceback); - } else { - Py_XDECREF(type); - Py_XDECREF(value); - Py_XDECREF(traceback); - } - return ret; - } - #ifdef WITH_THREAD - #define __Pyx_TraceLine(lineno, nogil, goto_error)\ - if (likely(!__Pyx_use_tracing)); else {\ - if (nogil) {\ - if (CYTHON_TRACE_NOGIL) {\ - int ret = 0;\ - PyThreadState *tstate;\ - PyGILState_STATE state = PyGILState_Ensure();\ - tstate = __Pyx_PyThreadState_Current;\ - if (unlikely(tstate->use_tracing && tstate->c_tracefunc && __pyx_frame->f_trace)) {\ - ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\ - }\ - PyGILState_Release(state);\ - if (unlikely(ret)) goto_error;\ - }\ - } else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ - if (unlikely(tstate->use_tracing && tstate->c_tracefunc && __pyx_frame->f_trace)) {\ - int ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\ - if (unlikely(ret)) goto_error;\ - }\ - }\ - } - #else - #define __Pyx_TraceLine(lineno, nogil, goto_error)\ - if (likely(!__Pyx_use_tracing)); else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ - if (unlikely(tstate->use_tracing && tstate->c_tracefunc && __pyx_frame->f_trace)) {\ - int ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\ - if (unlikely(ret)) goto_error;\ - }\ - } - #endif -#else - #define __Pyx_TraceLine(lineno, nogil, goto_error) if ((1)); else goto_error; -#endif - -/* 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); - -/* 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); - -/* 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); - -/* BufferGetAndValidate.proto */ -#define __Pyx_GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack)\ - ((obj == Py_None || obj == NULL) ?\ - (__Pyx_ZeroBuffer(buf), 0) :\ - __Pyx__GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack)) -static int __Pyx__GetBufferAndValidate(Py_buffer* buf, PyObject* obj, - __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack); -static void __Pyx_ZeroBuffer(Py_buffer* buf); -static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info); -static Py_ssize_t __Pyx_minusones[] = { -1, -1, -1, -1, -1, -1, -1, -1 }; -static Py_ssize_t __Pyx_zeros[] = { 0, 0, 0, 0, 0, 0, 0, 0 }; - -/* PyIntBinop.proto */ -#if !CYTHON_COMPILING_IN_PYPY -static PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, long intval, int inplace); -#else -#define __Pyx_PyInt_EqObjC(op1, op2, intval, inplace)\ - PyObject_RichCompare(op1, op2, Py_EQ) - #endif - -/* GetModuleGlobalName.proto */ -static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name); - -/* PyIntBinop.proto */ -#if !CYTHON_COMPILING_IN_PYPY -static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace); -#else -#define __Pyx_PyInt_AddObjC(op1, op2, intval, inplace)\ - (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2)) -#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 - -/* ExtTypeTest.proto */ -static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); - -/* BufferFallbackError.proto */ -static void __Pyx_RaiseBufferFallbackError(void); - -/* PyIntBinop.proto */ -#if !CYTHON_COMPILING_IN_PYPY -static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, long intval, int inplace); -#else -#define __Pyx_PyInt_SubtractObjC(op1, op2, intval, inplace)\ - (inplace ? PyNumber_InPlaceSubtract(op1, op2) : PyNumber_Subtract(op1, op2)) -#endif - -/* 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 - -/* 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, int nargs, PyObject *kwargs); -#else -#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) -#endif -#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); - -#define __Pyx_BufPtrStrided1d(type, buf, i0, s0) (type)((char*)buf + i0 * s0) -/* 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 - -#define __Pyx_BufPtrStrided2d(type, buf, i0, s0, i1, s1) (type)((char*)buf + i0 * s0 + i1 * s1) -/* RaiseException.proto */ -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - -/* 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 - -/* RaiseTooManyValuesToUnpack.proto */ -static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); - -/* RaiseNeedMoreValuesToUnpack.proto */ -static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); - -/* RaiseNoneIterError.proto */ -static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); - -/* 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 - -/* Import.proto */ -static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); - -/* 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); - -/* 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; - -#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 - - -/* Print.proto */ -static int __Pyx_Print(PyObject*, PyObject *, int); -#if CYTHON_COMPILING_IN_PYPY || PY_MAJOR_VERSION >= 3 -static PyObject* __pyx_print = 0; -static PyObject* __pyx_print_kwargs = 0; -#endif - -/* 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_Py_intptr_t(Py_intptr_t 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_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_enum__NPY_TYPES(enum NPY_TYPES value); - -/* CIntFromPy.proto */ -static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); - -/* PrintOne.proto */ -static int __Pyx_PrintOne(PyObject* stream, PyObject *o); - -/* CIntFromPy.proto */ -static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -/* 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) - -/* CheckBinaryVersion.proto */ -static int __Pyx_check_binary_version(void); - -/* PyIdentifierFromString.proto */ -#if !defined(__Pyx_PyIdentifier_FromString) -#if PY_MAJOR_VERSION < 3 - #define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s) -#else - #define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s) -#endif -#endif - -/* ModuleImport.proto */ -static PyObject *__Pyx_ImportModule(const char *name); - -/* TypeImport.proto */ -static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict); - -/* InitStrings.proto */ -static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); - - -/* 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 'cython' */ - -/* Module declarations from 'libc.math' */ - -/* Module declarations from 'tierpsy.analysis.ske_create.segWormPython.cython_files.cleanWorm_cython' */ -static CYTHON_INLINE int __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_compare_extrema(int, float, float); /*proto*/ -static CYTHON_INLINE int __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_compare_extrema_eq(int, float, float); /*proto*/ -static PyObject *__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_extremaPeaksCircDist_(int, PyArrayObject *, float, PyArrayObject *); /*proto*/ -static CYTHON_INLINE double __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_absDiff(double, double); /*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_float_t = { "float_t", NULL, sizeof(__pyx_t_5numpy_float_t), { 0 }, 0, 'R', 0, 0 }; -static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_int_t = { "int_t", NULL, sizeof(__pyx_t_5numpy_int_t), { 0 }, 0, IS_UNSIGNED(__pyx_t_5numpy_int_t) ? 'U' : 'I', IS_UNSIGNED(__pyx_t_5numpy_int_t), 0 }; -static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t = { "uint8_t", NULL, sizeof(__pyx_t_5numpy_uint8_t), { 0 }, 0, IS_UNSIGNED(__pyx_t_5numpy_uint8_t) ? 'U' : 'I', IS_UNSIGNED(__pyx_t_5numpy_uint8_t), 0 }; -#define __Pyx_MODULE_NAME "tierpsy.analysis.ske_create.segWormPython.cython_files.cleanWorm_cython" -extern int __pyx_module_is_main_tierpsy__analysis__ske_create__segWormPython__cython_files__cleanWorm_cython; -int __pyx_module_is_main_tierpsy__analysis__ske_create__segWormPython__cython_files__cleanWorm_cython = 0; - -/* Implementation of 'tierpsy.analysis.ske_create.segWormPython.cython_files.cleanWorm_cython' */ -static PyObject *__pyx_builtin_range; -static PyObject *__pyx_builtin_ValueError; -static PyObject *__pyx_builtin_RuntimeError; -static PyObject *__pyx_builtin_ImportError; -static const char __pyx_k_i[] = "i"; -static const char __pyx_k_j[] = "j"; -static const char __pyx_k_x[] = "x"; -static const char __pyx_k_y[] = "y"; -static const char __pyx_k_np[] = "np"; -static const char __pyx_k_x1[] = "x1"; -static const char __pyx_k_x2[] = "x2"; -static const char __pyx_k_y1[] = "y1"; -static const char __pyx_k_y2[] = "y2"; -static const char __pyx_k_end[] = "end"; -static const char __pyx_k_ind[] = "ind"; -static const char __pyx_k_int[] = "int"; -static const char __pyx_k_copy[] = "copy"; -static const char __pyx_k_dist[] = "dist"; -static const char __pyx_k_file[] = "file"; -static const char __pyx_k_keep[] = "keep"; -static const char __pyx_k_main[] = "__main__"; -static const char __pyx_k_ones[] = "ones"; -static const char __pyx_k_size[] = "size"; -static const char __pyx_k_test[] = "__test__"; -static const char __pyx_k_dtype[] = "dtype"; -static const char __pyx_k_float[] = "float"; -static const char __pyx_k_nextI[] = "nextI"; -static const char __pyx_k_numpy[] = "numpy"; -static const char __pyx_k_print[] = "print"; -static const char __pyx_k_range[] = "range"; -static const char __pyx_k_round[] = "round"; -static const char __pyx_k_uint8[] = "uint8"; -static const char __pyx_k_zeros[] = "zeros"; -static const char __pyx_k_arange[] = "arange"; -static const char __pyx_k_argmax[] = "argmax"; -static const char __pyx_k_argmin[] = "argmin"; -static const char __pyx_k_import[] = "__import__"; -static const char __pyx_k_next2I[] = "next2I"; -static const char __pyx_k_points[] = "points"; -static const char __pyx_k_contour[] = "contour"; -static const char __pyx_k_float64[] = "float64"; -static const char __pyx_k_winSize[] = "winSize"; -static const char __pyx_k_cContour[] = "cContour"; -static const char __pyx_k_linspace[] = "linspace"; -static const char __pyx_k_lastIndex[] = "lastIndex"; -static const char __pyx_k_ValueError[] = "ValueError"; -static const char __pyx_k_dContour_x[] = "dContour_x"; -static const char __pyx_k_dContour_y[] = "dContour_y"; -static const char __pyx_k_zeros_like[] = "zeros_like"; -static const char __pyx_k_ImportError[] = "ImportError"; -static const char __pyx_k_RuntimeError[] = "RuntimeError"; -static const char __pyx_k_cleanContour[] = "cleanContour"; -static const char __pyx_k_extrema_type[] = "extrema_type"; -static const char __pyx_k_chainCodeLengths[] = "chainCodeLengths"; -static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; -static const char __pyx_k_last_index_contour[] = "last_index_contour"; -static const char __pyx_k_removeSmallSegments[] = "removeSmallSegments"; -static const char __pyx_k_extremaPeaksCircDist[] = "extremaPeaksCircDist"; -static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; -static const char __pyx_k_Wrong_chain_code_lengths_size[] = "Wrong chain code lengths size"; -static const char __pyx_k_Created_on_Wed_May_20_14_56_35[] = "\nCreated on Wed May 20 14:56:35 2015\n\n@author: ajaver\n"; -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_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; -static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; -static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; -static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; -static const char __pyx_k_tierpsy_analysis_ske_create_segW[] = "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx"; -static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; -static const char __pyx_k_tierpsy_analysis_ske_create_segW_2[] = "tierpsy.analysis.ske_create.segWormPython.cython_files.cleanWorm_cython"; -static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; -static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; -static PyObject *__pyx_n_s_ImportError; -static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; -static PyObject *__pyx_n_s_RuntimeError; -static PyObject *__pyx_n_s_ValueError; -static PyObject *__pyx_kp_s_Wrong_chain_code_lengths_size; -static PyObject *__pyx_n_s_arange; -static PyObject *__pyx_n_s_argmax; -static PyObject *__pyx_n_s_argmin; -static PyObject *__pyx_n_s_cContour; -static PyObject *__pyx_n_s_chainCodeLengths; -static PyObject *__pyx_n_s_cleanContour; -static PyObject *__pyx_n_s_cline_in_traceback; -static PyObject *__pyx_n_s_contour; -static PyObject *__pyx_n_s_copy; -static PyObject *__pyx_n_s_dContour_x; -static PyObject *__pyx_n_s_dContour_y; -static PyObject *__pyx_n_s_dist; -static PyObject *__pyx_n_s_dtype; -static PyObject *__pyx_n_s_end; -static PyObject *__pyx_n_s_extremaPeaksCircDist; -static PyObject *__pyx_n_s_extrema_type; -static PyObject *__pyx_n_s_file; -static PyObject *__pyx_n_s_float; -static PyObject *__pyx_n_s_float64; -static PyObject *__pyx_n_s_i; -static PyObject *__pyx_n_s_import; -static PyObject *__pyx_n_s_ind; -static PyObject *__pyx_n_s_int; -static PyObject *__pyx_n_s_j; -static PyObject *__pyx_n_s_keep; -static PyObject *__pyx_n_s_lastIndex; -static PyObject *__pyx_n_s_last_index_contour; -static PyObject *__pyx_n_s_linspace; -static PyObject *__pyx_n_s_main; -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_next2I; -static PyObject *__pyx_n_s_nextI; -static PyObject *__pyx_n_s_np; -static PyObject *__pyx_n_s_numpy; -static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; -static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; -static PyObject *__pyx_n_s_ones; -static PyObject *__pyx_n_s_points; -static PyObject *__pyx_n_s_print; -static PyObject *__pyx_n_s_range; -static PyObject *__pyx_n_s_removeSmallSegments; -static PyObject *__pyx_n_s_round; -static PyObject *__pyx_n_s_size; -static PyObject *__pyx_n_s_test; -static PyObject *__pyx_kp_s_tierpsy_analysis_ske_create_segW; -static PyObject *__pyx_n_s_tierpsy_analysis_ske_create_segW_2; -static PyObject *__pyx_n_s_uint8; -static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; -static PyObject *__pyx_n_s_winSize; -static PyObject *__pyx_n_s_x; -static PyObject *__pyx_n_s_x1; -static PyObject *__pyx_n_s_x2; -static PyObject *__pyx_n_s_y; -static PyObject *__pyx_n_s_y1; -static PyObject *__pyx_n_s_y2; -static PyObject *__pyx_n_s_zeros; -static PyObject *__pyx_n_s_zeros_like; -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_extremaPeaksCircDist(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_extrema_type, PyArrayObject *__pyx_v_x, float __pyx_v_dist, PyArrayObject *__pyx_v_chainCodeLengths); /* proto */ -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_2removeSmallSegments(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_contour); /* proto */ -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_4cleanContour(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_contour); /* 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 PyObject *__pyx_int_0; -static PyObject *__pyx_int_1; -static PyObject *__pyx_int_2; -static PyArrayObject *__pyx_k_; -static PyObject *__pyx_slice__4; -static PyObject *__pyx_slice__6; -static PyObject *__pyx_slice__7; -static PyObject *__pyx_slice__8; -static PyObject *__pyx_slice__9; -static PyObject *__pyx_slice__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_codeobj__2; -static PyObject *__pyx_codeobj__3; -static PyObject *__pyx_codeobj__5; -/* Late includes */ - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":17 - * - * - * cdef inline bint compare_extrema(bint is_min, float x1, float x2): # <<<<<<<<<<<<<< - * return x1>x2 if is_min else x1x2 if is_min else x1 __pyx_v_x2); - } else { - __pyx_t_1 = (__pyx_v_x1 < __pyx_v_x2); - } - __pyx_r = __pyx_t_1; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":17 - * - * - * cdef inline bint compare_extrema(bint is_min, float x1, float x2): # <<<<<<<<<<<<<< - * return x1>x2 if is_min else x1x2 if is_min else x1=x2 if is_min else x1<=x2 - * - */ - -static CYTHON_INLINE int __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_compare_extrema_eq(int __pyx_v_is_min, float __pyx_v_x1, float __pyx_v_x2) { - int __pyx_r; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - int __pyx_t_1; - __Pyx_RefNannySetupContext("compare_extrema_eq", 0); - __Pyx_TraceCall("compare_extrema_eq", __pyx_f[0], 20, 0, __PYX_ERR(0, 20, __pyx_L1_error)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":21 - * - * cdef inline bint compare_extrema_eq(bint is_min, float x1, float x2): - * return x1>=x2 if is_min else x1<=x2 # <<<<<<<<<<<<<< - * - * @cython.boundscheck(False) - */ - if ((__pyx_v_is_min != 0)) { - __pyx_t_1 = (__pyx_v_x1 >= __pyx_v_x2); - } else { - __pyx_t_1 = (__pyx_v_x1 <= __pyx_v_x2); - } - __pyx_r = __pyx_t_1; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":20 - * return x1>x2 if is_min else x1=x2 if is_min else x1<=x2 - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_WriteUnraisable("tierpsy.analysis.ske_create.segWormPython.cython_files.cleanWorm_cython.compare_extrema_eq", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); - __pyx_r = 0; - __pyx_L0:; - __Pyx_TraceReturn(Py_None, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":26 - * @cython.wraparound(False) - * @cython.nonecheck(False) - * def extremaPeaksCircDist(int extrema_type, np.ndarray[np.float64_t, ndim=1] x, float dist, np.ndarray[np.float64_t, ndim=1] chainCodeLengths = np.zeros(0)): # <<<<<<<<<<<<<< - * #extrema type positive for maxima, negative or zero for minima - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_1extremaPeaksCircDist(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_1extremaPeaksCircDist = {"extremaPeaksCircDist", (PyCFunction)__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_1extremaPeaksCircDist, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_1extremaPeaksCircDist(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - int __pyx_v_extrema_type; - PyArrayObject *__pyx_v_x = 0; - float __pyx_v_dist; - PyArrayObject *__pyx_v_chainCodeLengths = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("extremaPeaksCircDist (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_extrema_type,&__pyx_n_s_x,&__pyx_n_s_dist,&__pyx_n_s_chainCodeLengths,0}; - PyObject* values[4] = {0,0,0,0}; - values[3] = (PyObject *)__pyx_k_; - 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_extrema_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_x)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("extremaPeaksCircDist", 0, 3, 4, 1); __PYX_ERR(0, 26, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dist)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("extremaPeaksCircDist", 0, 3, 4, 2); __PYX_ERR(0, 26, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (kw_args > 0) { - PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_chainCodeLengths); - if (value) { values[3] = value; kw_args--; } - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "extremaPeaksCircDist") < 0)) __PYX_ERR(0, 26, __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_extrema_type = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_extrema_type == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 26, __pyx_L3_error) - __pyx_v_x = ((PyArrayObject *)values[1]); - __pyx_v_dist = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_dist == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 26, __pyx_L3_error) - __pyx_v_chainCodeLengths = ((PyArrayObject *)values[3]); - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("extremaPeaksCircDist", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 26, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.cleanWorm_cython.extremaPeaksCircDist", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_5numpy_ndarray, 1, "x", 0))) __PYX_ERR(0, 26, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_chainCodeLengths), __pyx_ptype_5numpy_ndarray, 1, "chainCodeLengths", 0))) __PYX_ERR(0, 26, __pyx_L1_error) - __pyx_r = __pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_extremaPeaksCircDist(__pyx_self, __pyx_v_extrema_type, __pyx_v_x, __pyx_v_dist, __pyx_v_chainCodeLengths); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_extremaPeaksCircDist(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_extrema_type, PyArrayObject *__pyx_v_x, float __pyx_v_dist, PyArrayObject *__pyx_v_chainCodeLengths) { - double __pyx_v_winSize; - int __pyx_v_ind; - __Pyx_LocalBuf_ND __pyx_pybuffernd_chainCodeLengths; - __Pyx_Buffer __pyx_pybuffer_chainCodeLengths; - __Pyx_LocalBuf_ND __pyx_pybuffernd_x; - __Pyx_Buffer __pyx_pybuffer_x; - PyObject *__pyx_r = NULL; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyArrayObject *__pyx_t_7 = NULL; - int __pyx_t_8; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - PyObject *__pyx_t_11 = NULL; - Py_ssize_t __pyx_t_12; - __Pyx_TraceFrameInit(__pyx_codeobj__2) - __Pyx_RefNannySetupContext("extremaPeaksCircDist", 0); - __Pyx_TraceCall("extremaPeaksCircDist", __pyx_f[0], 26, 0, __PYX_ERR(0, 26, __pyx_L1_error)); - __Pyx_INCREF((PyObject *)__pyx_v_chainCodeLengths); - __pyx_pybuffer_x.pybuffer.buf = NULL; - __pyx_pybuffer_x.refcount = 0; - __pyx_pybuffernd_x.data = NULL; - __pyx_pybuffernd_x.rcbuffer = &__pyx_pybuffer_x; - __pyx_pybuffer_chainCodeLengths.pybuffer.buf = NULL; - __pyx_pybuffer_chainCodeLengths.refcount = 0; - __pyx_pybuffernd_chainCodeLengths.data = NULL; - __pyx_pybuffernd_chainCodeLengths.rcbuffer = &__pyx_pybuffer_chainCodeLengths; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_x.rcbuffer->pybuffer, (PyObject*)__pyx_v_x, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 26, __pyx_L1_error) - } - __pyx_pybuffernd_x.diminfo[0].strides = __pyx_pybuffernd_x.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_x.diminfo[0].shape = __pyx_pybuffernd_x.rcbuffer->pybuffer.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer, (PyObject*)__pyx_v_chainCodeLengths, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 26, __pyx_L1_error) - } - __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides = __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_chainCodeLengths.diminfo[0].shape = __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.shape[0]; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":29 - * #extrema type positive for maxima, negative or zero for minima - * - * if chainCodeLengths.size == 0: # <<<<<<<<<<<<<< - * chainCodeLengths = np.arange(1, x.size+1, dtype = np.float64); - * - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_chainCodeLengths), __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 29, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 29, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 29, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (__pyx_t_3) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":30 - * - * if chainCodeLengths.size == 0: - * chainCodeLengths = np.arange(1, x.size+1, dtype = np.float64); # <<<<<<<<<<<<<< - * - * if chainCodeLengths.size != x.size: - */ - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 30, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_arange); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 30, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_x), __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 30, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_t_2, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 30, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 30, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_int_1); - __Pyx_GIVEREF(__pyx_int_1); - PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_1); - __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 30, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 30, __pyx_L1_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, 30, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 30, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 30, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 30, __pyx_L1_error) - __pyx_t_7 = ((PyArrayObject *)__pyx_t_6); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer); - __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); - if (unlikely(__pyx_t_8 < 0)) { - PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer, (PyObject*)__pyx_v_chainCodeLengths, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11); - __Pyx_RaiseBufferFallbackError(); - } else { - PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11); - } - __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0; - } - __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides = __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_chainCodeLengths.diminfo[0].shape = __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.shape[0]; - if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 30, __pyx_L1_error) - } - __pyx_t_7 = 0; - __Pyx_DECREF_SET(__pyx_v_chainCodeLengths, ((PyArrayObject *)__pyx_t_6)); - __pyx_t_6 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":29 - * #extrema type positive for maxima, negative or zero for minima - * - * if chainCodeLengths.size == 0: # <<<<<<<<<<<<<< - * chainCodeLengths = np.arange(1, x.size+1, dtype = np.float64); - * - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":32 - * chainCodeLengths = np.arange(1, x.size+1, dtype = np.float64); - * - * if chainCodeLengths.size != x.size: # <<<<<<<<<<<<<< - * print('Wrong chain code lengths size') - * return - */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_chainCodeLengths), __pyx_n_s_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 32, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_x), __pyx_n_s_size); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 32, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = PyObject_RichCompare(__pyx_t_6, __pyx_t_4, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 32, __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_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 32, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (__pyx_t_3) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":33 - * - * if chainCodeLengths.size != x.size: - * print('Wrong chain code lengths size') # <<<<<<<<<<<<<< - * return - * - */ - if (__Pyx_PrintOne(0, __pyx_kp_s_Wrong_chain_code_lengths_size) < 0) __PYX_ERR(0, 33, __pyx_L1_error) - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":34 - * if chainCodeLengths.size != x.size: - * print('Wrong chain code lengths size') - * return # <<<<<<<<<<<<<< - * - * #//% Is the vector larger than the search window? - */ - __Pyx_XDECREF(__pyx_r); - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":32 - * chainCodeLengths = np.arange(1, x.size+1, dtype = np.float64); - * - * if chainCodeLengths.size != x.size: # <<<<<<<<<<<<<< - * print('Wrong chain code lengths size') - * return - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":37 - * - * #//% Is the vector larger than the search window? - * cdef double winSize = 2 * dist + 1; # <<<<<<<<<<<<<< - * cdef int ind - * if (chainCodeLengths[chainCodeLengths.size-1] < winSize): - */ - __pyx_v_winSize = ((2.0 * __pyx_v_dist) + 1.0); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":39 - * cdef double winSize = 2 * dist + 1; - * cdef int ind - * if (chainCodeLengths[chainCodeLengths.size-1] < winSize): # <<<<<<<<<<<<<< - * if extrema_type > 0: - * ind = np.argmax(x); - */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_chainCodeLengths), __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 39, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyInt_SubtractObjC(__pyx_t_2, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 39, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_chainCodeLengths), __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 39, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_winSize); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 39, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 39, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 39, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (__pyx_t_3) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":40 - * cdef int ind - * if (chainCodeLengths[chainCodeLengths.size-1] < winSize): - * if extrema_type > 0: # <<<<<<<<<<<<<< - * ind = np.argmax(x); - * else: - */ - __pyx_t_3 = ((__pyx_v_extrema_type > 0) != 0); - if (__pyx_t_3) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":41 - * if (chainCodeLengths[chainCodeLengths.size-1] < winSize): - * if extrema_type > 0: - * ind = np.argmax(x); # <<<<<<<<<<<<<< - * else: - * ind = np.argmin(x); - */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 41, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_argmax); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 41, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(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); - } - } - if (!__pyx_t_4) { - __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_x)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 41, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - } else { - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[2] = {__pyx_t_4, ((PyObject *)__pyx_v_x)}; - __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 41, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_6); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[2] = {__pyx_t_4, ((PyObject *)__pyx_v_x)}; - __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 41, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_6); - } else - #endif - { - __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 41, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = NULL; - __Pyx_INCREF(((PyObject *)__pyx_v_x)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_x)); - PyTuple_SET_ITEM(__pyx_t_1, 0+1, ((PyObject *)__pyx_v_x)); - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 41, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 41, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_v_ind = __pyx_t_8; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":40 - * cdef int ind - * if (chainCodeLengths[chainCodeLengths.size-1] < winSize): - * if extrema_type > 0: # <<<<<<<<<<<<<< - * ind = np.argmax(x); - * else: - */ - goto __pyx_L6; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":43 - * ind = np.argmax(x); - * else: - * ind = np.argmin(x); # <<<<<<<<<<<<<< - * return (x[ind], ind); - * - */ - /*else*/ { - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 43, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_argmin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 43, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_2)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - } - } - if (!__pyx_t_2) { - __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_1, ((PyObject *)__pyx_v_x)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 43, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - } else { - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[2] = {__pyx_t_2, ((PyObject *)__pyx_v_x)}; - __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 43, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_6); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[2] = {__pyx_t_2, ((PyObject *)__pyx_v_x)}; - __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 43, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_6); - } else - #endif - { - __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 43, __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 = NULL; - __Pyx_INCREF(((PyObject *)__pyx_v_x)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_x)); - PyTuple_SET_ITEM(__pyx_t_4, 0+1, ((PyObject *)__pyx_v_x)); - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 43, __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_t_8 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 43, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_v_ind = __pyx_t_8; - } - __pyx_L6:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":44 - * else: - * ind = np.argmin(x); - * return (x[ind], ind); # <<<<<<<<<<<<<< - * - * return extremaPeaksCircDist_((extrema_type <= 0), x, dist, chainCodeLengths) - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_12 = __pyx_v_ind; - __pyx_t_6 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_12, __pyx_pybuffernd_x.diminfo[0].strides))); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 44, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 44, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 44, __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_1); - PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); - __pyx_t_6 = 0; - __pyx_t_1 = 0; - __pyx_r = __pyx_t_4; - __pyx_t_4 = 0; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":39 - * cdef double winSize = 2 * dist + 1; - * cdef int ind - * if (chainCodeLengths[chainCodeLengths.size-1] < winSize): # <<<<<<<<<<<<<< - * if extrema_type > 0: - * ind = np.argmax(x); - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":46 - * return (x[ind], ind); - * - * return extremaPeaksCircDist_((extrema_type <= 0), x, dist, chainCodeLengths) # <<<<<<<<<<<<<< - * # (peaks, indices) - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_extremaPeaksCircDist_(((__pyx_v_extrema_type <= 0) != 0), ((PyArrayObject *)__pyx_v_x), __pyx_v_dist, ((PyArrayObject *)__pyx_v_chainCodeLengths)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 46, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_r = __pyx_t_4; - __pyx_t_4 = 0; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":26 - * @cython.wraparound(False) - * @cython.nonecheck(False) - * def extremaPeaksCircDist(int extrema_type, np.ndarray[np.float64_t, ndim=1] x, float dist, np.ndarray[np.float64_t, ndim=1] chainCodeLengths = np.zeros(0)): # <<<<<<<<<<<<<< - * #extrema type positive for maxima, negative or zero for minima - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_x.rcbuffer->pybuffer); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.cleanWorm_cython.extremaPeaksCircDist", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_x.rcbuffer->pybuffer); - __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_chainCodeLengths); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_TraceReturn(__pyx_r, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":52 - * @cython.wraparound(False) - * @cython.nonecheck(False) - * cdef extremaPeaksCircDist_(bint is_min, np.ndarray[np.float64_t, ndim=1] x, float dist, # <<<<<<<<<<<<<< - * np.ndarray[np.float64_t, ndim=1] chainCodeLengths): - * - */ - -static PyObject *__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_extremaPeaksCircDist_(int __pyx_v_is_min, PyArrayObject *__pyx_v_x, float __pyx_v_dist, PyArrayObject *__pyx_v_chainCodeLengths) { - int __pyx_v_im; - int __pyx_v_ie; - int __pyx_v_ip; - double __pyx_v_p; - int __pyx_v_i; - int __pyx_v_j; - int __pyx_v_k; - int __pyx_v_isExtrema; - int __pyx_v_numberOfPoints; - int __pyx_v_lastIndexChain; - PyArrayObject *__pyx_v_peaks = 0; - PyArrayObject *__pyx_v_indices = 0; - PyObject *__pyx_v_indexSize = 0; - int __pyx_v_indexStart; - int __pyx_v_indexEnd; - __Pyx_LocalBuf_ND __pyx_pybuffernd_chainCodeLengths; - __Pyx_Buffer __pyx_pybuffer_chainCodeLengths; - __Pyx_LocalBuf_ND __pyx_pybuffernd_indices; - __Pyx_Buffer __pyx_pybuffer_indices; - __Pyx_LocalBuf_ND __pyx_pybuffernd_peaks; - __Pyx_Buffer __pyx_pybuffer_peaks; - __Pyx_LocalBuf_ND __pyx_pybuffernd_x; - __Pyx_Buffer __pyx_pybuffer_x; - PyObject *__pyx_r = NULL; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - Py_ssize_t __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyArrayObject *__pyx_t_8 = NULL; - PyArrayObject *__pyx_t_9 = NULL; - int __pyx_t_10; - Py_ssize_t __pyx_t_11; - Py_ssize_t __pyx_t_12; - Py_ssize_t __pyx_t_13; - Py_ssize_t __pyx_t_14; - int __pyx_t_15; - Py_ssize_t __pyx_t_16; - Py_ssize_t __pyx_t_17; - Py_ssize_t __pyx_t_18; - Py_ssize_t __pyx_t_19; - Py_ssize_t __pyx_t_20; - Py_ssize_t __pyx_t_21; - Py_ssize_t __pyx_t_22; - Py_ssize_t __pyx_t_23; - Py_ssize_t __pyx_t_24; - Py_ssize_t __pyx_t_25; - Py_ssize_t __pyx_t_26; - Py_ssize_t __pyx_t_27; - Py_ssize_t __pyx_t_28; - Py_ssize_t __pyx_t_29; - Py_ssize_t __pyx_t_30; - Py_ssize_t __pyx_t_31; - Py_ssize_t __pyx_t_32; - Py_ssize_t __pyx_t_33; - Py_ssize_t __pyx_t_34; - Py_ssize_t __pyx_t_35; - Py_ssize_t __pyx_t_36; - Py_ssize_t __pyx_t_37; - Py_ssize_t __pyx_t_38; - Py_ssize_t __pyx_t_39; - Py_ssize_t __pyx_t_40; - Py_ssize_t __pyx_t_41; - Py_ssize_t __pyx_t_42; - Py_ssize_t __pyx_t_43; - Py_ssize_t __pyx_t_44; - Py_ssize_t __pyx_t_45; - Py_ssize_t __pyx_t_46; - PyObject *__pyx_t_47 = NULL; - PyObject *__pyx_t_48 = NULL; - PyObject *__pyx_t_49 = NULL; - __Pyx_RefNannySetupContext("extremaPeaksCircDist_", 0); - __Pyx_TraceCall("extremaPeaksCircDist_", __pyx_f[0], 52, 0, __PYX_ERR(0, 52, __pyx_L1_error)); - __pyx_pybuffer_peaks.pybuffer.buf = NULL; - __pyx_pybuffer_peaks.refcount = 0; - __pyx_pybuffernd_peaks.data = NULL; - __pyx_pybuffernd_peaks.rcbuffer = &__pyx_pybuffer_peaks; - __pyx_pybuffer_indices.pybuffer.buf = NULL; - __pyx_pybuffer_indices.refcount = 0; - __pyx_pybuffernd_indices.data = NULL; - __pyx_pybuffernd_indices.rcbuffer = &__pyx_pybuffer_indices; - __pyx_pybuffer_x.pybuffer.buf = NULL; - __pyx_pybuffer_x.refcount = 0; - __pyx_pybuffernd_x.data = NULL; - __pyx_pybuffernd_x.rcbuffer = &__pyx_pybuffer_x; - __pyx_pybuffer_chainCodeLengths.pybuffer.buf = NULL; - __pyx_pybuffer_chainCodeLengths.refcount = 0; - __pyx_pybuffernd_chainCodeLengths.data = NULL; - __pyx_pybuffernd_chainCodeLengths.rcbuffer = &__pyx_pybuffer_chainCodeLengths; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_x.rcbuffer->pybuffer, (PyObject*)__pyx_v_x, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 52, __pyx_L1_error) - } - __pyx_pybuffernd_x.diminfo[0].strides = __pyx_pybuffernd_x.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_x.diminfo[0].shape = __pyx_pybuffernd_x.rcbuffer->pybuffer.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer, (PyObject*)__pyx_v_chainCodeLengths, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 52, __pyx_L1_error) - } - __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides = __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_chainCodeLengths.diminfo[0].shape = __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.shape[0]; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":57 - * #//% Search for peaks. - * cdef : - * int im = -1; #//% the last maxima index # <<<<<<<<<<<<<< - * int ie = -1; #//% the end index for the last maxima's search window - * int ip = 0; #//% the current, potential, max peak index - */ - __pyx_v_im = -1; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":58 - * cdef : - * int im = -1; #//% the last maxima index - * int ie = -1; #//% the end index for the last maxima's search window # <<<<<<<<<<<<<< - * int ip = 0; #//% the current, potential, max peak index - * double p = x[ip]; #//% the current, potential, max peak value - */ - __pyx_v_ie = -1; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":59 - * int im = -1; #//% the last maxima index - * int ie = -1; #//% the end index for the last maxima's search window - * int ip = 0; #//% the current, potential, max peak index # <<<<<<<<<<<<<< - * double p = x[ip]; #//% the current, potential, max peak value - * int i = 1; #//% the vector index - */ - __pyx_v_ip = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":60 - * int ie = -1; #//% the end index for the last maxima's search window - * int ip = 0; #//% the current, potential, max peak index - * double p = x[ip]; #//% the current, potential, max peak value # <<<<<<<<<<<<<< - * int i = 1; #//% the vector index - * int j = 0; #//% the recorded, maximal peaks index - */ - __pyx_t_1 = __pyx_v_ip; - __pyx_v_p = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_x.diminfo[0].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":61 - * int ip = 0; #//% the current, potential, max peak index - * double p = x[ip]; #//% the current, potential, max peak value - * int i = 1; #//% the vector index # <<<<<<<<<<<<<< - * int j = 0; #//% the recorded, maximal peaks index - * int k; - */ - __pyx_v_i = 1; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":62 - * double p = x[ip]; #//% the current, potential, max peak value - * int i = 1; #//% the vector index - * int j = 0; #//% the recorded, maximal peaks index # <<<<<<<<<<<<<< - * int k; - * bint isExtrema; - */ - __pyx_v_j = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":65 - * int k; - * bint isExtrema; - * int numberOfPoints = x.size; # <<<<<<<<<<<<<< - * int lastIndexChain = numberOfPoints - 1; - * np.ndarray[np.float_t, ndim=1] peaks = np.zeros(numberOfPoints, dtype = np.float); - */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_x), __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 65, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 65, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_numberOfPoints = __pyx_t_3; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":66 - * bint isExtrema; - * int numberOfPoints = x.size; - * int lastIndexChain = numberOfPoints - 1; # <<<<<<<<<<<<<< - * np.ndarray[np.float_t, ndim=1] peaks = np.zeros(numberOfPoints, dtype = np.float); - * np.ndarray[np.int_t, ndim=1] indices = np.zeros(numberOfPoints, dtype = np.int) - */ - __pyx_v_lastIndexChain = (__pyx_v_numberOfPoints - 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":67 - * int numberOfPoints = x.size; - * int lastIndexChain = numberOfPoints - 1; - * np.ndarray[np.float_t, ndim=1] peaks = np.zeros(numberOfPoints, dtype = np.float); # <<<<<<<<<<<<<< - * np.ndarray[np.int_t, ndim=1] indices = np.zeros(numberOfPoints, dtype = np.int) - * - */ - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 67, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 67, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_numberOfPoints); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 67, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 67, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_2); - PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); - __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 67, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 67, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_float); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 67, __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, 67, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 67, __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_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, 67, __pyx_L1_error) - __pyx_t_8 = ((PyArrayObject *)__pyx_t_7); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_peaks.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { - __pyx_v_peaks = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_peaks.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 67, __pyx_L1_error) - } else {__pyx_pybuffernd_peaks.diminfo[0].strides = __pyx_pybuffernd_peaks.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_peaks.diminfo[0].shape = __pyx_pybuffernd_peaks.rcbuffer->pybuffer.shape[0]; - } - } - __pyx_t_8 = 0; - __pyx_v_peaks = ((PyArrayObject *)__pyx_t_7); - __pyx_t_7 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":68 - * int lastIndexChain = numberOfPoints - 1; - * np.ndarray[np.float_t, ndim=1] peaks = np.zeros(numberOfPoints, dtype = np.float); - * np.ndarray[np.int_t, ndim=1] indices = np.zeros(numberOfPoints, dtype = np.int) # <<<<<<<<<<<<<< - * - * while (i < numberOfPoints): - */ - __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 68, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_numberOfPoints); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 68, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 68, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_7); - PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 68, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 68, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_int); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 68, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 68, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, __pyx_t_7); 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_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 68, __pyx_L1_error) - __pyx_t_9 = ((PyArrayObject *)__pyx_t_6); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indices.rcbuffer->pybuffer, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { - __pyx_v_indices = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_indices.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 68, __pyx_L1_error) - } else {__pyx_pybuffernd_indices.diminfo[0].strides = __pyx_pybuffernd_indices.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indices.diminfo[0].shape = __pyx_pybuffernd_indices.rcbuffer->pybuffer.shape[0]; - } - } - __pyx_t_9 = 0; - __pyx_v_indices = ((PyArrayObject *)__pyx_t_6); - __pyx_t_6 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":70 - * np.ndarray[np.int_t, ndim=1] indices = np.zeros(numberOfPoints, dtype = np.int) - * - * while (i < numberOfPoints): # <<<<<<<<<<<<<< - * #//% Found a potential peak. - * if compare_extrema_eq(is_min, p, x[i]): - */ - while (1) { - __pyx_t_10 = ((__pyx_v_i < __pyx_v_numberOfPoints) != 0); - if (!__pyx_t_10) break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":72 - * while (i < numberOfPoints): - * #//% Found a potential peak. - * if compare_extrema_eq(is_min, p, x[i]): # <<<<<<<<<<<<<< - * ip = i; - * p = x[i]; - */ - __pyx_t_11 = __pyx_v_i; - __pyx_t_10 = (__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_compare_extrema_eq(__pyx_v_is_min, __pyx_v_p, (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_x.diminfo[0].strides))) != 0); - if (__pyx_t_10) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":73 - * #//% Found a potential peak. - * if compare_extrema_eq(is_min, p, x[i]): - * ip = i; # <<<<<<<<<<<<<< - * p = x[i]; - * - */ - __pyx_v_ip = __pyx_v_i; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":74 - * if compare_extrema_eq(is_min, p, x[i]): - * ip = i; - * p = x[i]; # <<<<<<<<<<<<<< - * - * #//% Test the potential peak. - */ - __pyx_t_12 = __pyx_v_i; - __pyx_v_p = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_12, __pyx_pybuffernd_x.diminfo[0].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":72 - * while (i < numberOfPoints): - * #//% Found a potential peak. - * if compare_extrema_eq(is_min, p, x[i]): # <<<<<<<<<<<<<< - * ip = i; - * p = x[i]; - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":77 - * - * #//% Test the potential peak. - * if ((chainCodeLengths[i] - chainCodeLengths[ip]) >= dist) or (i == lastIndexChain): # <<<<<<<<<<<<<< - * #//% Check the untested values next to the previous maxima. - * if (im >= 0) and ((chainCodeLengths[ip] - chainCodeLengths[im]) <= (2 * dist)): - */ - __pyx_t_13 = __pyx_v_i; - __pyx_t_14 = __pyx_v_ip; - __pyx_t_15 = ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides)) - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides))) >= __pyx_v_dist) != 0); - if (!__pyx_t_15) { - } else { - __pyx_t_10 = __pyx_t_15; - goto __pyx_L7_bool_binop_done; - } - __pyx_t_15 = ((__pyx_v_i == __pyx_v_lastIndexChain) != 0); - __pyx_t_10 = __pyx_t_15; - __pyx_L7_bool_binop_done:; - if (__pyx_t_10) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":79 - * if ((chainCodeLengths[i] - chainCodeLengths[ip]) >= dist) or (i == lastIndexChain): - * #//% Check the untested values next to the previous maxima. - * if (im >= 0) and ((chainCodeLengths[ip] - chainCodeLengths[im]) <= (2 * dist)): # <<<<<<<<<<<<<< - * #//% Check the untested values next to the previous maxima. - * isExtrema = True; - */ - __pyx_t_15 = ((__pyx_v_im >= 0) != 0); - if (__pyx_t_15) { - } else { - __pyx_t_10 = __pyx_t_15; - goto __pyx_L10_bool_binop_done; - } - __pyx_t_16 = __pyx_v_ip; - __pyx_t_17 = __pyx_v_im; - __pyx_t_15 = ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides)) - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides))) <= (2.0 * __pyx_v_dist)) != 0); - __pyx_t_10 = __pyx_t_15; - __pyx_L10_bool_binop_done:; - if (__pyx_t_10) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":81 - * if (im >= 0) and ((chainCodeLengths[ip] - chainCodeLengths[im]) <= (2 * dist)): - * #//% Check the untested values next to the previous maxima. - * isExtrema = True; # <<<<<<<<<<<<<< - * k = ie; - * while isExtrema and (k >= 0) and ((chainCodeLengths[ip] - chainCodeLengths[k]) < dist): - */ - __pyx_v_isExtrema = 1; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":82 - * #//% Check the untested values next to the previous maxima. - * isExtrema = True; - * k = ie; # <<<<<<<<<<<<<< - * while isExtrema and (k >= 0) and ((chainCodeLengths[ip] - chainCodeLengths[k]) < dist): - * #//% Is the previous peak larger? - */ - __pyx_v_k = __pyx_v_ie; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":83 - * isExtrema = True; - * k = ie; - * while isExtrema and (k >= 0) and ((chainCodeLengths[ip] - chainCodeLengths[k]) < dist): # <<<<<<<<<<<<<< - * #//% Is the previous peak larger? - * if compare_extrema_eq(is_min, x[ip], x[k]): - */ - while (1) { - __pyx_t_15 = (__pyx_v_isExtrema != 0); - if (__pyx_t_15) { - } else { - __pyx_t_10 = __pyx_t_15; - goto __pyx_L14_bool_binop_done; - } - __pyx_t_15 = ((__pyx_v_k >= 0) != 0); - if (__pyx_t_15) { - } else { - __pyx_t_10 = __pyx_t_15; - goto __pyx_L14_bool_binop_done; - } - __pyx_t_18 = __pyx_v_ip; - __pyx_t_19 = __pyx_v_k; - __pyx_t_15 = ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides)) - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides))) < __pyx_v_dist) != 0); - __pyx_t_10 = __pyx_t_15; - __pyx_L14_bool_binop_done:; - if (!__pyx_t_10) break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":85 - * while isExtrema and (k >= 0) and ((chainCodeLengths[ip] - chainCodeLengths[k]) < dist): - * #//% Is the previous peak larger? - * if compare_extrema_eq(is_min, x[ip], x[k]): # <<<<<<<<<<<<<< - * isExtrema = False; - * #//% Advance. - */ - __pyx_t_20 = __pyx_v_ip; - __pyx_t_21 = __pyx_v_k; - __pyx_t_10 = (__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_compare_extrema_eq(__pyx_v_is_min, (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_x.diminfo[0].strides)), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_x.diminfo[0].strides))) != 0); - if (__pyx_t_10) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":86 - * #//% Is the previous peak larger? - * if compare_extrema_eq(is_min, x[ip], x[k]): - * isExtrema = False; # <<<<<<<<<<<<<< - * #//% Advance. - * k -= 1; - */ - __pyx_v_isExtrema = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":85 - * while isExtrema and (k >= 0) and ((chainCodeLengths[ip] - chainCodeLengths[k]) < dist): - * #//% Is the previous peak larger? - * if compare_extrema_eq(is_min, x[ip], x[k]): # <<<<<<<<<<<<<< - * isExtrema = False; - * #//% Advance. - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":88 - * isExtrema = False; - * #//% Advance. - * k -= 1; # <<<<<<<<<<<<<< - * - * #//% Record the peak. - */ - __pyx_v_k = (__pyx_v_k - 1); - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":91 - * - * #//% Record the peak. - * if isExtrema: # <<<<<<<<<<<<<< - * indices[j] = ip; - * peaks[j] = p; - */ - __pyx_t_10 = (__pyx_v_isExtrema != 0); - if (__pyx_t_10) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":92 - * #//% Record the peak. - * if isExtrema: - * indices[j] = ip; # <<<<<<<<<<<<<< - * peaks[j] = p; - * j = j + 1; - */ - __pyx_t_22 = __pyx_v_j; - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_indices.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_indices.diminfo[0].strides) = __pyx_v_ip; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":93 - * if isExtrema: - * indices[j] = ip; - * peaks[j] = p; # <<<<<<<<<<<<<< - * j = j + 1; - * - */ - __pyx_t_23 = __pyx_v_j; - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_peaks.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_peaks.diminfo[0].strides) = __pyx_v_p; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":94 - * indices[j] = ip; - * peaks[j] = p; - * j = j + 1; # <<<<<<<<<<<<<< - * - * #//% Record the maxima. - */ - __pyx_v_j = (__pyx_v_j + 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":91 - * - * #//% Record the peak. - * if isExtrema: # <<<<<<<<<<<<<< - * indices[j] = ip; - * peaks[j] = p; - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":97 - * - * #//% Record the maxima. - * im = ip; # <<<<<<<<<<<<<< - * ie = i; - * ip = i; - */ - __pyx_v_im = __pyx_v_ip; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":98 - * #//% Record the maxima. - * im = ip; - * ie = i; # <<<<<<<<<<<<<< - * ip = i; - * p = x[ip]; - */ - __pyx_v_ie = __pyx_v_i; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":99 - * im = ip; - * ie = i; - * ip = i; # <<<<<<<<<<<<<< - * p = x[ip]; - * #//% Record the peak. - */ - __pyx_v_ip = __pyx_v_i; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":100 - * ie = i; - * ip = i; - * p = x[ip]; # <<<<<<<<<<<<<< - * #//% Record the peak. - * else: - */ - __pyx_t_24 = __pyx_v_ip; - __pyx_v_p = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_x.diminfo[0].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":79 - * if ((chainCodeLengths[i] - chainCodeLengths[ip]) >= dist) or (i == lastIndexChain): - * #//% Check the untested values next to the previous maxima. - * if (im >= 0) and ((chainCodeLengths[ip] - chainCodeLengths[im]) <= (2 * dist)): # <<<<<<<<<<<<<< - * #//% Check the untested values next to the previous maxima. - * isExtrema = True; - */ - goto __pyx_L9; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":103 - * #//% Record the peak. - * else: - * indices[j] = ip; # <<<<<<<<<<<<<< - * peaks[j] = p; - * j = j + 1; - */ - /*else*/ { - __pyx_t_25 = __pyx_v_j; - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_indices.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_indices.diminfo[0].strides) = __pyx_v_ip; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":104 - * else: - * indices[j] = ip; - * peaks[j] = p; # <<<<<<<<<<<<<< - * j = j + 1; - * im = ip; - */ - __pyx_t_26 = __pyx_v_j; - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_peaks.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_peaks.diminfo[0].strides) = __pyx_v_p; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":105 - * indices[j] = ip; - * peaks[j] = p; - * j = j + 1; # <<<<<<<<<<<<<< - * im = ip; - * ie = i; - */ - __pyx_v_j = (__pyx_v_j + 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":106 - * peaks[j] = p; - * j = j + 1; - * im = ip; # <<<<<<<<<<<<<< - * ie = i; - * ip = i; - */ - __pyx_v_im = __pyx_v_ip; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":107 - * j = j + 1; - * im = ip; - * ie = i; # <<<<<<<<<<<<<< - * ip = i; - * p = x[ip]; - */ - __pyx_v_ie = __pyx_v_i; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":108 - * im = ip; - * ie = i; - * ip = i; # <<<<<<<<<<<<<< - * p = x[ip]; - * - */ - __pyx_v_ip = __pyx_v_i; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":109 - * ie = i; - * ip = i; - * p = x[ip]; # <<<<<<<<<<<<<< - * - * #//% Advance. - */ - __pyx_t_27 = __pyx_v_ip; - __pyx_v_p = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_x.diminfo[0].strides)); - } - __pyx_L9:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":77 - * - * #//% Test the potential peak. - * if ((chainCodeLengths[i] - chainCodeLengths[ip]) >= dist) or (i == lastIndexChain): # <<<<<<<<<<<<<< - * #//% Check the untested values next to the previous maxima. - * if (im >= 0) and ((chainCodeLengths[ip] - chainCodeLengths[im]) <= (2 * dist)): - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":112 - * - * #//% Advance. - * i += 1; # <<<<<<<<<<<<<< - * - * cdef indexSize = j; - */ - __pyx_v_i = (__pyx_v_i + 1); - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":114 - * i += 1; - * - * cdef indexSize = j; # <<<<<<<<<<<<<< - * cdef int indexStart = 0; - * cdef int indexEnd = indexSize-1; - */ - __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_j); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 114, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_v_indexSize = __pyx_t_6; - __pyx_t_6 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":115 - * - * cdef indexSize = j; - * cdef int indexStart = 0; # <<<<<<<<<<<<<< - * cdef int indexEnd = indexSize-1; - * - */ - __pyx_v_indexStart = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":116 - * cdef indexSize = j; - * cdef int indexStart = 0; - * cdef int indexEnd = indexSize-1; # <<<<<<<<<<<<<< - * - * #//% If we have two or more peaks, we have to check the start and end for mistakes. - */ - __pyx_t_6 = __Pyx_PyInt_SubtractObjC(__pyx_v_indexSize, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 116, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 116, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_v_indexEnd = __pyx_t_3; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":119 - * - * #//% If we have two or more peaks, we have to check the start and end for mistakes. - * if(indexSize > 2): # <<<<<<<<<<<<<< - * #//% If the peaks at the start and end are too close, keep the largest or - * #//% the earliest one. - */ - __pyx_t_6 = PyObject_RichCompare(__pyx_v_indexSize, __pyx_int_2, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 119, __pyx_L1_error) - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 119, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (__pyx_t_10) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":122 - * #//% If the peaks at the start and end are too close, keep the largest or - * #//% the earliest one. - * if ((chainCodeLengths[indices[indexStart]] + chainCodeLengths[lastIndexChain] - chainCodeLengths[indices[indexEnd]]) < dist): # <<<<<<<<<<<<<< - * if compare_extrema_eq(is_min, peaks[indexStart], peaks[indexEnd]): - * indexStart += 1; - */ - __pyx_t_28 = __pyx_v_indexStart; - __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_indices.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_indices.diminfo[0].strides)); - __pyx_t_30 = __pyx_v_lastIndexChain; - __pyx_t_31 = __pyx_v_indexEnd; - __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_indices.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_indices.diminfo[0].strides)); - __pyx_t_10 = (((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides)) + (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides))) - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides))) < __pyx_v_dist) != 0); - if (__pyx_t_10) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":123 - * #//% the earliest one. - * if ((chainCodeLengths[indices[indexStart]] + chainCodeLengths[lastIndexChain] - chainCodeLengths[indices[indexEnd]]) < dist): - * if compare_extrema_eq(is_min, peaks[indexStart], peaks[indexEnd]): # <<<<<<<<<<<<<< - * indexStart += 1; - * else: - */ - __pyx_t_33 = __pyx_v_indexStart; - __pyx_t_34 = __pyx_v_indexEnd; - __pyx_t_10 = (__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_compare_extrema_eq(__pyx_v_is_min, (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_peaks.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_peaks.diminfo[0].strides)), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_peaks.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_peaks.diminfo[0].strides))) != 0); - if (__pyx_t_10) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":124 - * if ((chainCodeLengths[indices[indexStart]] + chainCodeLengths[lastIndexChain] - chainCodeLengths[indices[indexEnd]]) < dist): - * if compare_extrema_eq(is_min, peaks[indexStart], peaks[indexEnd]): - * indexStart += 1; # <<<<<<<<<<<<<< - * else: - * indexEnd -= 1; - */ - __pyx_v_indexStart = (__pyx_v_indexStart + 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":123 - * #//% the earliest one. - * if ((chainCodeLengths[indices[indexStart]] + chainCodeLengths[lastIndexChain] - chainCodeLengths[indices[indexEnd]]) < dist): - * if compare_extrema_eq(is_min, peaks[indexStart], peaks[indexEnd]): # <<<<<<<<<<<<<< - * indexStart += 1; - * else: - */ - goto __pyx_L21; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":126 - * indexStart += 1; - * else: - * indexEnd -= 1; # <<<<<<<<<<<<<< - * - * #//% Otherwise, check any peaks that are too close to the start and end. - */ - /*else*/ { - __pyx_v_indexEnd = (__pyx_v_indexEnd - 1); - } - __pyx_L21:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":122 - * #//% If the peaks at the start and end are too close, keep the largest or - * #//% the earliest one. - * if ((chainCodeLengths[indices[indexStart]] + chainCodeLengths[lastIndexChain] - chainCodeLengths[indices[indexEnd]]) < dist): # <<<<<<<<<<<<<< - * if compare_extrema_eq(is_min, peaks[indexStart], peaks[indexEnd]): - * indexStart += 1; - */ - goto __pyx_L20; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":132 - * #//% If we have a peak at the start, check the wrapping portion just - * #//% before the end. - * k = numberOfPoints-1; # <<<<<<<<<<<<<< - * - * while ((chainCodeLengths[indices[indexStart]] + chainCodeLengths[lastIndexChain] - chainCodeLengths[k]) < dist): - */ - /*else*/ { - __pyx_v_k = (__pyx_v_numberOfPoints - 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":134 - * k = numberOfPoints-1; - * - * while ((chainCodeLengths[indices[indexStart]] + chainCodeLengths[lastIndexChain] - chainCodeLengths[k]) < dist): # <<<<<<<<<<<<<< - * #//% Remove the peak. - * if compare_extrema_eq(is_min, peaks[0], x[k]): - */ - while (1) { - __pyx_t_35 = __pyx_v_indexStart; - __pyx_t_36 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_indices.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_indices.diminfo[0].strides)); - __pyx_t_37 = __pyx_v_lastIndexChain; - __pyx_t_38 = __pyx_v_k; - __pyx_t_10 = (((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides)) + (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides))) - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides))) < __pyx_v_dist) != 0); - if (!__pyx_t_10) break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":136 - * while ((chainCodeLengths[indices[indexStart]] + chainCodeLengths[lastIndexChain] - chainCodeLengths[k]) < dist): - * #//% Remove the peak. - * if compare_extrema_eq(is_min, peaks[0], x[k]): # <<<<<<<<<<<<<< - * indexStart += 1; - * break; - */ - __pyx_t_39 = 0; - __pyx_t_40 = __pyx_v_k; - __pyx_t_10 = (__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_compare_extrema_eq(__pyx_v_is_min, (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_peaks.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_peaks.diminfo[0].strides)), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_x.diminfo[0].strides))) != 0); - if (__pyx_t_10) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":137 - * #//% Remove the peak. - * if compare_extrema_eq(is_min, peaks[0], x[k]): - * indexStart += 1; # <<<<<<<<<<<<<< - * break; - * #//% Advance. - */ - __pyx_v_indexStart = (__pyx_v_indexStart + 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":138 - * if compare_extrema_eq(is_min, peaks[0], x[k]): - * indexStart += 1; - * break; # <<<<<<<<<<<<<< - * #//% Advance. - * k -= 1; - */ - goto __pyx_L23_break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":136 - * while ((chainCodeLengths[indices[indexStart]] + chainCodeLengths[lastIndexChain] - chainCodeLengths[k]) < dist): - * #//% Remove the peak. - * if compare_extrema_eq(is_min, peaks[0], x[k]): # <<<<<<<<<<<<<< - * indexStart += 1; - * break; - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":140 - * break; - * #//% Advance. - * k -= 1; # <<<<<<<<<<<<<< - * - * #//% If we have a peak at the end, check the wrapping portion just - */ - __pyx_v_k = (__pyx_v_k - 1); - } - __pyx_L23_break:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":144 - * #//% If we have a peak at the end, check the wrapping portion just - * #//% before the start. - * k = 0; # <<<<<<<<<<<<<< - * while ((chainCodeLengths[lastIndexChain] - chainCodeLengths[indices[indexEnd]] + chainCodeLengths[k]) < dist): - * #//% Remove the peak. - */ - __pyx_v_k = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":145 - * #//% before the start. - * k = 0; - * while ((chainCodeLengths[lastIndexChain] - chainCodeLengths[indices[indexEnd]] + chainCodeLengths[k]) < dist): # <<<<<<<<<<<<<< - * #//% Remove the peak. - * if compare_extrema(is_min, peaks[indexEnd], x[k]): - */ - while (1) { - __pyx_t_41 = __pyx_v_lastIndexChain; - __pyx_t_42 = __pyx_v_indexEnd; - __pyx_t_43 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_indices.rcbuffer->pybuffer.buf, __pyx_t_42, __pyx_pybuffernd_indices.diminfo[0].strides)); - __pyx_t_44 = __pyx_v_k; - __pyx_t_10 = (((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides)) - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_43, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides))) + (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_44, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides))) < __pyx_v_dist) != 0); - if (!__pyx_t_10) break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":147 - * while ((chainCodeLengths[lastIndexChain] - chainCodeLengths[indices[indexEnd]] + chainCodeLengths[k]) < dist): - * #//% Remove the peak. - * if compare_extrema(is_min, peaks[indexEnd], x[k]): # <<<<<<<<<<<<<< - * indexEnd -= 1; - * break; - */ - __pyx_t_45 = __pyx_v_indexEnd; - __pyx_t_46 = __pyx_v_k; - __pyx_t_10 = (__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_compare_extrema(__pyx_v_is_min, (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_peaks.rcbuffer->pybuffer.buf, __pyx_t_45, __pyx_pybuffernd_peaks.diminfo[0].strides)), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_46, __pyx_pybuffernd_x.diminfo[0].strides))) != 0); - if (__pyx_t_10) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":148 - * #//% Remove the peak. - * if compare_extrema(is_min, peaks[indexEnd], x[k]): - * indexEnd -= 1; # <<<<<<<<<<<<<< - * break; - * #//% Advance. - */ - __pyx_v_indexEnd = (__pyx_v_indexEnd - 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":149 - * if compare_extrema(is_min, peaks[indexEnd], x[k]): - * indexEnd -= 1; - * break; # <<<<<<<<<<<<<< - * #//% Advance. - * k += 1 - */ - goto __pyx_L26_break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":147 - * while ((chainCodeLengths[lastIndexChain] - chainCodeLengths[indices[indexEnd]] + chainCodeLengths[k]) < dist): - * #//% Remove the peak. - * if compare_extrema(is_min, peaks[indexEnd], x[k]): # <<<<<<<<<<<<<< - * indexEnd -= 1; - * break; - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":151 - * break; - * #//% Advance. - * k += 1 # <<<<<<<<<<<<<< - * - * - */ - __pyx_v_k = (__pyx_v_k + 1); - } - __pyx_L26_break:; - } - __pyx_L20:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":119 - * - * #//% If we have two or more peaks, we have to check the start and end for mistakes. - * if(indexSize > 2): # <<<<<<<<<<<<<< - * #//% If the peaks at the start and end are too close, keep the largest or - * #//% the earliest one. - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":155 - * - * #//output - * peaks = peaks[indexStart:indexEnd+1].copy(); # <<<<<<<<<<<<<< - * indices = indices[indexStart:indexEnd+1].copy(); - * return (peaks, indices) - */ - __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_indexStart); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 155, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_5 = __Pyx_PyInt_From_long((__pyx_v_indexEnd + 1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 155, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_2 = PySlice_New(__pyx_t_7, __pyx_t_5, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 155, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_peaks), __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 155, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_copy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 155, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = NULL; - if (CYTHON_UNPACK_METHODS && likely(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); - } - } - if (__pyx_t_5) { - __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 155, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } else { - __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 155, __pyx_L1_error) - } - __Pyx_GOTREF(__pyx_t_6); - __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, 155, __pyx_L1_error) - __pyx_t_8 = ((PyArrayObject *)__pyx_t_6); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_peaks.rcbuffer->pybuffer); - __pyx_t_3 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_peaks.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); - if (unlikely(__pyx_t_3 < 0)) { - PyErr_Fetch(&__pyx_t_47, &__pyx_t_48, &__pyx_t_49); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_peaks.rcbuffer->pybuffer, (PyObject*)__pyx_v_peaks, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_47); Py_XDECREF(__pyx_t_48); Py_XDECREF(__pyx_t_49); - __Pyx_RaiseBufferFallbackError(); - } else { - PyErr_Restore(__pyx_t_47, __pyx_t_48, __pyx_t_49); - } - __pyx_t_47 = __pyx_t_48 = __pyx_t_49 = 0; - } - __pyx_pybuffernd_peaks.diminfo[0].strides = __pyx_pybuffernd_peaks.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_peaks.diminfo[0].shape = __pyx_pybuffernd_peaks.rcbuffer->pybuffer.shape[0]; - if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 155, __pyx_L1_error) - } - __pyx_t_8 = 0; - __Pyx_DECREF_SET(__pyx_v_peaks, ((PyArrayObject *)__pyx_t_6)); - __pyx_t_6 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":156 - * #//output - * peaks = peaks[indexStart:indexEnd+1].copy(); - * indices = indices[indexStart:indexEnd+1].copy(); # <<<<<<<<<<<<<< - * return (peaks, indices) - * - */ - __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_indexStart); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 156, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_PyInt_From_long((__pyx_v_indexEnd + 1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 156, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = PySlice_New(__pyx_t_2, __pyx_t_5, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 156, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_indices), __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 156, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_copy); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 156, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = NULL; - if (CYTHON_UNPACK_METHODS && likely(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); - } - } - if (__pyx_t_5) { - __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 156, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } else { - __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 156, __pyx_L1_error) - } - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 156, __pyx_L1_error) - __pyx_t_9 = ((PyArrayObject *)__pyx_t_6); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indices.rcbuffer->pybuffer); - __pyx_t_3 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indices.rcbuffer->pybuffer, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); - if (unlikely(__pyx_t_3 < 0)) { - PyErr_Fetch(&__pyx_t_49, &__pyx_t_48, &__pyx_t_47); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indices.rcbuffer->pybuffer, (PyObject*)__pyx_v_indices, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_49); Py_XDECREF(__pyx_t_48); Py_XDECREF(__pyx_t_47); - __Pyx_RaiseBufferFallbackError(); - } else { - PyErr_Restore(__pyx_t_49, __pyx_t_48, __pyx_t_47); - } - __pyx_t_49 = __pyx_t_48 = __pyx_t_47 = 0; - } - __pyx_pybuffernd_indices.diminfo[0].strides = __pyx_pybuffernd_indices.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indices.diminfo[0].shape = __pyx_pybuffernd_indices.rcbuffer->pybuffer.shape[0]; - if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 156, __pyx_L1_error) - } - __pyx_t_9 = 0; - __Pyx_DECREF_SET(__pyx_v_indices, ((PyArrayObject *)__pyx_t_6)); - __pyx_t_6 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":157 - * peaks = peaks[indexStart:indexEnd+1].copy(); - * indices = indices[indexStart:indexEnd+1].copy(); - * return (peaks, indices) # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 157, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_INCREF(((PyObject *)__pyx_v_peaks)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_peaks)); - PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_peaks)); - __Pyx_INCREF(((PyObject *)__pyx_v_indices)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_indices)); - PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_indices)); - __pyx_r = __pyx_t_6; - __pyx_t_6 = 0; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":52 - * @cython.wraparound(False) - * @cython.nonecheck(False) - * cdef extremaPeaksCircDist_(bint is_min, np.ndarray[np.float64_t, ndim=1] x, float dist, # <<<<<<<<<<<<<< - * np.ndarray[np.float64_t, ndim=1] chainCodeLengths): - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indices.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_peaks.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_x.rcbuffer->pybuffer); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.cleanWorm_cython.extremaPeaksCircDist_", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indices.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_peaks.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_x.rcbuffer->pybuffer); - __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_peaks); - __Pyx_XDECREF((PyObject *)__pyx_v_indices); - __Pyx_XDECREF(__pyx_v_indexSize); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_TraceReturn(__pyx_r, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":161 - * - * - * cdef inline double absDiff(double a, double b): # <<<<<<<<<<<<<< - * return a-b if a>b else b-a - * - */ - -static CYTHON_INLINE double __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_absDiff(double __pyx_v_a, double __pyx_v_b) { - double __pyx_r; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - double __pyx_t_1; - __Pyx_RefNannySetupContext("absDiff", 0); - __Pyx_TraceCall("absDiff", __pyx_f[0], 161, 0, __PYX_ERR(0, 161, __pyx_L1_error)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":162 - * - * cdef inline double absDiff(double a, double b): - * return a-b if a>b else b-a # <<<<<<<<<<<<<< - * - * #cdef inline int max(int a, int b): return a if a <= b else b - */ - if (((__pyx_v_a > __pyx_v_b) != 0)) { - __pyx_t_1 = (__pyx_v_a - __pyx_v_b); - } else { - __pyx_t_1 = (__pyx_v_b - __pyx_v_a); - } - __pyx_r = __pyx_t_1; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":161 - * - * - * cdef inline double absDiff(double a, double b): # <<<<<<<<<<<<<< - * return a-b if a>b else b-a - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_WriteUnraisable("tierpsy.analysis.ske_create.segWormPython.cython_files.cleanWorm_cython.absDiff", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); - __pyx_r = 0; - __pyx_L0:; - __Pyx_TraceReturn(Py_None, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":169 - * @cython.wraparound(False) - * @cython.nonecheck(False) - * def removeSmallSegments(np.ndarray[np.float_t, ndim=2] contour): # <<<<<<<<<<<<<< - * '''% Remove small overlapping segments and anti alias the contour. - * % Note: we don't remove loops. Removing loops may, for example, incorrectly - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_3removeSmallSegments(PyObject *__pyx_self, PyObject *__pyx_v_contour); /*proto*/ -static char __pyx_doc_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_2removeSmallSegments[] = "% Remove small overlapping segments and anti alias the contour.\n % Note: we don't remove loops. Removing loops may, for example, incorrectly\n % clean up a collapsed contour and/or remove a tail whip thereby leading to\n % false positives and/or false negatives, respectively.\n "; -static PyMethodDef __pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_3removeSmallSegments = {"removeSmallSegments", (PyCFunction)__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_3removeSmallSegments, METH_O, __pyx_doc_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_2removeSmallSegments}; -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_3removeSmallSegments(PyObject *__pyx_self, PyObject *__pyx_v_contour) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("removeSmallSegments (wrapper)", 0); - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_contour), __pyx_ptype_5numpy_ndarray, 1, "contour", 0))) __PYX_ERR(0, 169, __pyx_L1_error) - __pyx_r = __pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_2removeSmallSegments(__pyx_self, ((PyArrayObject *)__pyx_v_contour)); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_2removeSmallSegments(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_contour) { - PyArrayObject *__pyx_v_keep = 0; - int __pyx_v_lastIndex; - int __pyx_v_i; - int __pyx_v_nextI; - int __pyx_v_next2I; - double __pyx_v_dContour_x; - double __pyx_v_dContour_y; - __Pyx_LocalBuf_ND __pyx_pybuffernd_contour; - __Pyx_Buffer __pyx_pybuffer_contour; - __Pyx_LocalBuf_ND __pyx_pybuffernd_keep; - __Pyx_Buffer __pyx_pybuffer_keep; - PyObject *__pyx_r = NULL; - __Pyx_TraceDeclarations - __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; - PyArrayObject *__pyx_t_6 = NULL; - int __pyx_t_7; - Py_ssize_t __pyx_t_8; - Py_ssize_t __pyx_t_9; - Py_ssize_t __pyx_t_10; - Py_ssize_t __pyx_t_11; - int __pyx_t_12; - Py_ssize_t __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; - Py_ssize_t __pyx_t_18; - Py_ssize_t __pyx_t_19; - Py_ssize_t __pyx_t_20; - Py_ssize_t __pyx_t_21; - Py_ssize_t __pyx_t_22; - Py_ssize_t __pyx_t_23; - Py_ssize_t __pyx_t_24; - Py_ssize_t __pyx_t_25; - Py_ssize_t __pyx_t_26; - Py_ssize_t __pyx_t_27; - Py_ssize_t __pyx_t_28; - Py_ssize_t __pyx_t_29; - Py_ssize_t __pyx_t_30; - Py_ssize_t __pyx_t_31; - PyArrayObject *__pyx_t_32 = NULL; - int __pyx_t_33; - PyObject *__pyx_t_34 = NULL; - PyObject *__pyx_t_35 = NULL; - PyObject *__pyx_t_36 = NULL; - __Pyx_TraceFrameInit(__pyx_codeobj__3) - __Pyx_RefNannySetupContext("removeSmallSegments", 0); - __Pyx_TraceCall("removeSmallSegments", __pyx_f[0], 169, 0, __PYX_ERR(0, 169, __pyx_L1_error)); - __Pyx_INCREF((PyObject *)__pyx_v_contour); - __pyx_pybuffer_keep.pybuffer.buf = NULL; - __pyx_pybuffer_keep.refcount = 0; - __pyx_pybuffernd_keep.data = NULL; - __pyx_pybuffernd_keep.rcbuffer = &__pyx_pybuffer_keep; - __pyx_pybuffer_contour.pybuffer.buf = NULL; - __pyx_pybuffer_contour.refcount = 0; - __pyx_pybuffernd_contour.data = NULL; - __pyx_pybuffernd_contour.rcbuffer = &__pyx_pybuffer_contour; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_contour.rcbuffer->pybuffer, (PyObject*)__pyx_v_contour, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 169, __pyx_L1_error) - } - __pyx_pybuffernd_contour.diminfo[0].strides = __pyx_pybuffernd_contour.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_contour.diminfo[0].shape = __pyx_pybuffernd_contour.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_contour.diminfo[1].strides = __pyx_pybuffernd_contour.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_contour.diminfo[1].shape = __pyx_pybuffernd_contour.rcbuffer->pybuffer.shape[1]; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":175 - * % false positives and/or false negatives, respectively. - * ''' - * cdef np.ndarray[np.uint8_t, ndim=1] keep = np.ones(contour.shape[0], dtype = np.uint8); # <<<<<<<<<<<<<< - * cdef int lastIndex = contour.shape[0] -1; - * cdef int i, nextI, next2I; - */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 175, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ones); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 175, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_From_Py_intptr_t((__pyx_v_contour->dimensions[0])); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 175, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 175, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_1); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 175, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 175, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_uint8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 175, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 175, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 175, __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_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 175, __pyx_L1_error) - __pyx_t_6 = ((PyArrayObject *)__pyx_t_5); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_keep.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { - __pyx_v_keep = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 175, __pyx_L1_error) - } else {__pyx_pybuffernd_keep.diminfo[0].strides = __pyx_pybuffernd_keep.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_keep.diminfo[0].shape = __pyx_pybuffernd_keep.rcbuffer->pybuffer.shape[0]; - } - } - __pyx_t_6 = 0; - __pyx_v_keep = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":176 - * ''' - * cdef np.ndarray[np.uint8_t, ndim=1] keep = np.ones(contour.shape[0], dtype = np.uint8); - * cdef int lastIndex = contour.shape[0] -1; # <<<<<<<<<<<<<< - * cdef int i, nextI, next2I; - * cdef double dContour_x, dContour_y; - */ - __pyx_v_lastIndex = ((__pyx_v_contour->dimensions[0]) - 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":180 - * cdef double dContour_x, dContour_y; - * - * if (contour[0,0] == contour[lastIndex,0]) and (contour[0,1] == contour[lastIndex,1]): # <<<<<<<<<<<<<< - * keep[0] = 0; - * - */ - __pyx_t_8 = 0; - __pyx_t_9 = 0; - __pyx_t_10 = __pyx_v_lastIndex; - __pyx_t_11 = 0; - __pyx_t_12 = (((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_9, __pyx_pybuffernd_contour.diminfo[1].strides)) == (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_11, __pyx_pybuffernd_contour.diminfo[1].strides))) != 0); - if (__pyx_t_12) { - } else { - __pyx_t_7 = __pyx_t_12; - goto __pyx_L4_bool_binop_done; - } - __pyx_t_13 = 0; - __pyx_t_14 = 1; - __pyx_t_15 = __pyx_v_lastIndex; - __pyx_t_16 = 1; - __pyx_t_12 = (((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_14, __pyx_pybuffernd_contour.diminfo[1].strides)) == (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_16, __pyx_pybuffernd_contour.diminfo[1].strides))) != 0); - __pyx_t_7 = __pyx_t_12; - __pyx_L4_bool_binop_done:; - if (__pyx_t_7) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":181 - * - * if (contour[0,0] == contour[lastIndex,0]) and (contour[0,1] == contour[lastIndex,1]): - * keep[0] = 0; # <<<<<<<<<<<<<< - * - * #% Remove small overlapping segments and anti alias the contour. - */ - __pyx_t_17 = 0; - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_keep.diminfo[0].strides) = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":180 - * cdef double dContour_x, dContour_y; - * - * if (contour[0,0] == contour[lastIndex,0]) and (contour[0,1] == contour[lastIndex,1]): # <<<<<<<<<<<<<< - * keep[0] = 0; - * - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":184 - * - * #% Remove small overlapping segments and anti alias the contour. - * i = 0; # <<<<<<<<<<<<<< - * while (i <= lastIndex): - * #//% Initialize the next 2 indices. - */ - __pyx_v_i = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":185 - * #% Remove small overlapping segments and anti alias the contour. - * i = 0; - * while (i <= lastIndex): # <<<<<<<<<<<<<< - * #//% Initialize the next 2 indices. - * if (i < lastIndex - 1): - */ - while (1) { - __pyx_t_7 = ((__pyx_v_i <= __pyx_v_lastIndex) != 0); - if (!__pyx_t_7) break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":187 - * while (i <= lastIndex): - * #//% Initialize the next 2 indices. - * if (i < lastIndex - 1): # <<<<<<<<<<<<<< - * nextI = i + 1; - * next2I = i + 2; - */ - __pyx_t_7 = ((__pyx_v_i < (__pyx_v_lastIndex - 1)) != 0); - if (__pyx_t_7) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":188 - * #//% Initialize the next 2 indices. - * if (i < lastIndex - 1): - * nextI = i + 1; # <<<<<<<<<<<<<< - * next2I = i + 2; - * - */ - __pyx_v_nextI = (__pyx_v_i + 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":189 - * if (i < lastIndex - 1): - * nextI = i + 1; - * next2I = i + 2; # <<<<<<<<<<<<<< - * - * #//% The second index wraps. - */ - __pyx_v_next2I = (__pyx_v_i + 2); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":187 - * while (i <= lastIndex): - * #//% Initialize the next 2 indices. - * if (i < lastIndex - 1): # <<<<<<<<<<<<<< - * nextI = i + 1; - * next2I = i + 2; - */ - goto __pyx_L8; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":192 - * - * #//% The second index wraps. - * elif (i < lastIndex): # <<<<<<<<<<<<<< - * nextI = lastIndex; - * next2I = 0; - */ - __pyx_t_7 = ((__pyx_v_i < __pyx_v_lastIndex) != 0); - if (__pyx_t_7) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":193 - * #//% The second index wraps. - * elif (i < lastIndex): - * nextI = lastIndex; # <<<<<<<<<<<<<< - * next2I = 0; - * - */ - __pyx_v_nextI = __pyx_v_lastIndex; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":194 - * elif (i < lastIndex): - * nextI = lastIndex; - * next2I = 0; # <<<<<<<<<<<<<< - * - * #//% Find the next kept point. - */ - __pyx_v_next2I = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":197 - * - * #//% Find the next kept point. - * while (not keep[next2I]): # <<<<<<<<<<<<<< - * next2I+=1; - * - */ - while (1) { - __pyx_t_18 = __pyx_v_next2I; - __pyx_t_7 = ((!((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_keep.diminfo[0].strides)) != 0)) != 0); - if (!__pyx_t_7) break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":198 - * #//% Find the next kept point. - * while (not keep[next2I]): - * next2I+=1; # <<<<<<<<<<<<<< - * - * #//% The are no more kept points. - */ - __pyx_v_next2I = (__pyx_v_next2I + 1); - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":201 - * - * #//% The are no more kept points. - * if (i == next2I): # <<<<<<<<<<<<<< - * break; - * - */ - __pyx_t_7 = ((__pyx_v_i == __pyx_v_next2I) != 0); - if (__pyx_t_7) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":202 - * #//% The are no more kept points. - * if (i == next2I): - * break; # <<<<<<<<<<<<<< - * - * #//% Both indices wrap. - */ - goto __pyx_L7_break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":201 - * - * #//% The are no more kept points. - * if (i == next2I): # <<<<<<<<<<<<<< - * break; - * - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":192 - * - * #//% The second index wraps. - * elif (i < lastIndex): # <<<<<<<<<<<<<< - * nextI = lastIndex; - * next2I = 0; - */ - goto __pyx_L8; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":207 - * else: - * #//% Find the next kept point. - * nextI = 0; # <<<<<<<<<<<<<< - * while (not keep[nextI]): - * nextI+=1; - */ - /*else*/ { - __pyx_v_nextI = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":208 - * #//% Find the next kept point. - * nextI = 0; - * while (not keep[nextI]): # <<<<<<<<<<<<<< - * nextI+=1; - * - */ - while (1) { - __pyx_t_19 = __pyx_v_nextI; - __pyx_t_7 = ((!((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_keep.diminfo[0].strides)) != 0)) != 0); - if (!__pyx_t_7) break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":209 - * nextI = 0; - * while (not keep[nextI]): - * nextI+=1; # <<<<<<<<<<<<<< - * - * #//% The are no more kept points. - */ - __pyx_v_nextI = (__pyx_v_nextI + 1); - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":212 - * - * #//% The are no more kept points. - * if(i == nextI): # <<<<<<<<<<<<<< - * break; - * - */ - __pyx_t_7 = ((__pyx_v_i == __pyx_v_nextI) != 0); - if (__pyx_t_7) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":213 - * #//% The are no more kept points. - * if(i == nextI): - * break; # <<<<<<<<<<<<<< - * - * #//% Find the next kept point. - */ - goto __pyx_L7_break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":212 - * - * #//% The are no more kept points. - * if(i == nextI): # <<<<<<<<<<<<<< - * break; - * - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":216 - * - * #//% Find the next kept point. - * next2I = nextI + 1; # <<<<<<<<<<<<<< - * while (not keep[next2I]): - * next2I+=1; - */ - __pyx_v_next2I = (__pyx_v_nextI + 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":217 - * #//% Find the next kept point. - * next2I = nextI + 1; - * while (not keep[next2I]): # <<<<<<<<<<<<<< - * next2I+=1; - * - */ - while (1) { - __pyx_t_20 = __pyx_v_next2I; - __pyx_t_7 = ((!((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_keep.diminfo[0].strides)) != 0)) != 0); - if (!__pyx_t_7) break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":218 - * next2I = nextI + 1; - * while (not keep[next2I]): - * next2I+=1; # <<<<<<<<<<<<<< - * - * #//% The are no more kept points. - */ - __pyx_v_next2I = (__pyx_v_next2I + 1); - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":221 - * - * #//% The are no more kept points. - * if (i == next2I): # <<<<<<<<<<<<<< - * break; - * - */ - __pyx_t_7 = ((__pyx_v_i == __pyx_v_next2I) != 0); - if (__pyx_t_7) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":222 - * #//% The are no more kept points. - * if (i == next2I): - * break; # <<<<<<<<<<<<<< - * - * dContour_x = absDiff(contour[i,0], contour[next2I,0]); - */ - goto __pyx_L7_break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":221 - * - * #//% The are no more kept points. - * if (i == next2I): # <<<<<<<<<<<<<< - * break; - * - */ - } - } - __pyx_L8:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":224 - * break; - * - * dContour_x = absDiff(contour[i,0], contour[next2I,0]); # <<<<<<<<<<<<<< - * dContour_y = absDiff(contour[i,1], contour[next2I,1]); - * - */ - __pyx_t_21 = __pyx_v_i; - __pyx_t_22 = 0; - __pyx_t_23 = __pyx_v_next2I; - __pyx_t_24 = 0; - __pyx_v_dContour_x = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_22, __pyx_pybuffernd_contour.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_24, __pyx_pybuffernd_contour.diminfo[1].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":225 - * - * dContour_x = absDiff(contour[i,0], contour[next2I,0]); - * dContour_y = absDiff(contour[i,1], contour[next2I,1]); # <<<<<<<<<<<<<< - * - * if (dContour_x == 0) and (dContour_y == 0): - */ - __pyx_t_25 = __pyx_v_i; - __pyx_t_26 = 1; - __pyx_t_27 = __pyx_v_next2I; - __pyx_t_28 = 1; - __pyx_v_dContour_y = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_26, __pyx_pybuffernd_contour.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_28, __pyx_pybuffernd_contour.diminfo[1].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":227 - * dContour_y = absDiff(contour[i,1], contour[next2I,1]); - * - * if (dContour_x == 0) and (dContour_y == 0): # <<<<<<<<<<<<<< - * keep[i] = 0; - * keep[nextI] = 0; - */ - __pyx_t_12 = ((__pyx_v_dContour_x == 0.0) != 0); - if (__pyx_t_12) { - } else { - __pyx_t_7 = __pyx_t_12; - goto __pyx_L19_bool_binop_done; - } - __pyx_t_12 = ((__pyx_v_dContour_y == 0.0) != 0); - __pyx_t_7 = __pyx_t_12; - __pyx_L19_bool_binop_done:; - if (__pyx_t_7) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":228 - * - * if (dContour_x == 0) and (dContour_y == 0): - * keep[i] = 0; # <<<<<<<<<<<<<< - * keep[nextI] = 0; - * #% Advance. - */ - __pyx_t_29 = __pyx_v_i; - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_keep.diminfo[0].strides) = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":229 - * if (dContour_x == 0) and (dContour_y == 0): - * keep[i] = 0; - * keep[nextI] = 0; # <<<<<<<<<<<<<< - * #% Advance. - * i = i + 2; - */ - __pyx_t_30 = __pyx_v_nextI; - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_keep.diminfo[0].strides) = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":231 - * keep[nextI] = 0; - * #% Advance. - * i = i + 2; # <<<<<<<<<<<<<< - * - * #% Smooth any stairs. - */ - __pyx_v_i = (__pyx_v_i + 2); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":227 - * dContour_y = absDiff(contour[i,1], contour[next2I,1]); - * - * if (dContour_x == 0) and (dContour_y == 0): # <<<<<<<<<<<<<< - * keep[i] = 0; - * keep[nextI] = 0; - */ - goto __pyx_L18; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":234 - * - * #% Smooth any stairs. - * elif (dContour_x <= 1) and (dContour_y <= 1): # <<<<<<<<<<<<<< - * keep[nextI] = 0; - * #% Advance. - */ - __pyx_t_12 = ((__pyx_v_dContour_x <= 1.0) != 0); - if (__pyx_t_12) { - } else { - __pyx_t_7 = __pyx_t_12; - goto __pyx_L21_bool_binop_done; - } - __pyx_t_12 = ((__pyx_v_dContour_y <= 1.0) != 0); - __pyx_t_7 = __pyx_t_12; - __pyx_L21_bool_binop_done:; - if (__pyx_t_7) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":235 - * #% Smooth any stairs. - * elif (dContour_x <= 1) and (dContour_y <= 1): - * keep[nextI] = 0; # <<<<<<<<<<<<<< - * #% Advance. - * i = i + 2; - */ - __pyx_t_31 = __pyx_v_nextI; - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_keep.diminfo[0].strides) = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":237 - * keep[nextI] = 0; - * #% Advance. - * i = i + 2; # <<<<<<<<<<<<<< - * - * #% Advance. - */ - __pyx_v_i = (__pyx_v_i + 2); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":234 - * - * #% Smooth any stairs. - * elif (dContour_x <= 1) and (dContour_y <= 1): # <<<<<<<<<<<<<< - * keep[nextI] = 0; - * #% Advance. - */ - goto __pyx_L18; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":241 - * #% Advance. - * else: - * i = i + 1; # <<<<<<<<<<<<<< - * - * contour = contour[keep==1,:]; - */ - /*else*/ { - __pyx_v_i = (__pyx_v_i + 1); - } - __pyx_L18:; - } - __pyx_L7_break:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":243 - * i = i + 1; - * - * contour = contour[keep==1,:]; # <<<<<<<<<<<<<< - * - * return contour, keep - */ - __pyx_t_5 = PyObject_RichCompare(((PyObject *)__pyx_v_keep), __pyx_int_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 243, __pyx_L1_error) - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 243, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_5); - PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); - __Pyx_INCREF(__pyx_slice__4); - __Pyx_GIVEREF(__pyx_slice__4); - PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_slice__4); - __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_contour), __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 243, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 243, __pyx_L1_error) - __pyx_t_32 = ((PyArrayObject *)__pyx_t_5); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_contour.rcbuffer->pybuffer); - __pyx_t_33 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_contour.rcbuffer->pybuffer, (PyObject*)__pyx_t_32, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); - if (unlikely(__pyx_t_33 < 0)) { - PyErr_Fetch(&__pyx_t_34, &__pyx_t_35, &__pyx_t_36); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_contour.rcbuffer->pybuffer, (PyObject*)__pyx_v_contour, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_34); Py_XDECREF(__pyx_t_35); Py_XDECREF(__pyx_t_36); - __Pyx_RaiseBufferFallbackError(); - } else { - PyErr_Restore(__pyx_t_34, __pyx_t_35, __pyx_t_36); - } - __pyx_t_34 = __pyx_t_35 = __pyx_t_36 = 0; - } - __pyx_pybuffernd_contour.diminfo[0].strides = __pyx_pybuffernd_contour.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_contour.diminfo[0].shape = __pyx_pybuffernd_contour.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_contour.diminfo[1].strides = __pyx_pybuffernd_contour.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_contour.diminfo[1].shape = __pyx_pybuffernd_contour.rcbuffer->pybuffer.shape[1]; - if (unlikely(__pyx_t_33 < 0)) __PYX_ERR(0, 243, __pyx_L1_error) - } - __pyx_t_32 = 0; - __Pyx_DECREF_SET(__pyx_v_contour, ((PyArrayObject *)__pyx_t_5)); - __pyx_t_5 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":245 - * contour = contour[keep==1,:]; - * - * return contour, keep # <<<<<<<<<<<<<< - * - * @cython.boundscheck(False) - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 245, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_INCREF(((PyObject *)__pyx_v_contour)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_contour)); - PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_contour)); - __Pyx_INCREF(((PyObject *)__pyx_v_keep)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_keep)); - PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_keep)); - __pyx_r = __pyx_t_5; - __pyx_t_5 = 0; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":169 - * @cython.wraparound(False) - * @cython.nonecheck(False) - * def removeSmallSegments(np.ndarray[np.float_t, ndim=2] contour): # <<<<<<<<<<<<<< - * '''% Remove small overlapping segments and anti alias the contour. - * % Note: we don't remove loops. Removing loops may, for example, incorrectly - */ - - /* 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); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_contour.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_keep.rcbuffer->pybuffer); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.cleanWorm_cython.removeSmallSegments", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_contour.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_keep.rcbuffer->pybuffer); - __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_keep); - __Pyx_XDECREF((PyObject *)__pyx_v_contour); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_TraceReturn(__pyx_r, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":250 - * @cython.wraparound(False) - * @cython.nonecheck(False) - * def cleanContour(np.ndarray[np.float_t, ndim=2] contour): # <<<<<<<<<<<<<< - * '''%CLEANCONTOUR Clean an 8-connected, circularly-connected contour by - * %removing any duplicate points and interpolating any missing points. - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_5cleanContour(PyObject *__pyx_self, PyObject *__pyx_v_contour); /*proto*/ -static char __pyx_doc_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_4cleanContour[] = "%CLEANCONTOUR Clean an 8-connected, circularly-connected contour by\n %removing any duplicate points and interpolating any missing points.\n %\n % [ccontour] = cleancontour(contour)\n %\n % Input:\n % contour - the 8-connected, circularly-connected contour to clean\n %\n % Output:\n % cContour - the cleaned contour (no duplicates & no missing points)\n %\n %\n % \302\251 Medical Research Council 2012\n % You will not remove any copyright or other notices from the Software; \n % you must reproduce all copyright notices and other proprietary \n % notices on any copies of the Software."; -static PyMethodDef __pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_5cleanContour = {"cleanContour", (PyCFunction)__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_5cleanContour, METH_O, __pyx_doc_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_4cleanContour}; -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_5cleanContour(PyObject *__pyx_self, PyObject *__pyx_v_contour) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("cleanContour (wrapper)", 0); - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_contour), __pyx_ptype_5numpy_ndarray, 1, "contour", 0))) __PYX_ERR(0, 250, __pyx_L1_error) - __pyx_r = __pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_4cleanContour(__pyx_self, ((PyArrayObject *)__pyx_v_contour)); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_4cleanContour(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_contour) { - PyArrayObject *__pyx_v_cContour = 0; - int __pyx_v_last_index_contour; - int __pyx_v_i; - int __pyx_v_j; - double __pyx_v_x; - double __pyx_v_y; - double __pyx_v_x1; - double __pyx_v_x2; - double __pyx_v_y1; - double __pyx_v_y2; - PyObject *__pyx_v_points = NULL; - __Pyx_LocalBuf_ND __pyx_pybuffernd_cContour; - __Pyx_Buffer __pyx_pybuffer_cContour; - __Pyx_LocalBuf_ND __pyx_pybuffernd_contour; - __Pyx_Buffer __pyx_pybuffer_contour; - PyObject *__pyx_r = NULL; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyArrayObject *__pyx_t_5 = NULL; - long __pyx_t_6; - long __pyx_t_7; - int __pyx_t_8; - Py_ssize_t __pyx_t_9; - Py_ssize_t __pyx_t_10; - Py_ssize_t __pyx_t_11; - Py_ssize_t __pyx_t_12; - Py_ssize_t __pyx_t_13; - Py_ssize_t __pyx_t_14; - Py_ssize_t __pyx_t_15; - Py_ssize_t __pyx_t_16; - int __pyx_t_17; - int __pyx_t_18; - double __pyx_t_19; - double __pyx_t_20; - double __pyx_t_21; - PyObject *__pyx_t_22 = NULL; - PyObject *__pyx_t_23 = NULL; - PyObject *__pyx_t_24 = NULL; - PyObject *__pyx_t_25 = NULL; - int __pyx_t_26; - PyObject *__pyx_t_27 = NULL; - Py_ssize_t __pyx_t_28; - Py_ssize_t __pyx_t_29; - Py_ssize_t __pyx_t_30; - Py_ssize_t __pyx_t_31; - Py_ssize_t __pyx_t_32; - Py_ssize_t __pyx_t_33; - Py_ssize_t __pyx_t_34; - Py_ssize_t __pyx_t_35; - PyObject *__pyx_t_36 = NULL; - PyObject *__pyx_t_37 = NULL; - PyObject *__pyx_t_38 = NULL; - __Pyx_TraceFrameInit(__pyx_codeobj__5) - __Pyx_RefNannySetupContext("cleanContour", 0); - __Pyx_TraceCall("cleanContour", __pyx_f[0], 250, 0, __PYX_ERR(0, 250, __pyx_L1_error)); - __pyx_pybuffer_cContour.pybuffer.buf = NULL; - __pyx_pybuffer_cContour.refcount = 0; - __pyx_pybuffernd_cContour.data = NULL; - __pyx_pybuffernd_cContour.rcbuffer = &__pyx_pybuffer_cContour; - __pyx_pybuffer_contour.pybuffer.buf = NULL; - __pyx_pybuffer_contour.refcount = 0; - __pyx_pybuffernd_contour.data = NULL; - __pyx_pybuffernd_contour.rcbuffer = &__pyx_pybuffer_contour; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_contour.rcbuffer->pybuffer, (PyObject*)__pyx_v_contour, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 250, __pyx_L1_error) - } - __pyx_pybuffernd_contour.diminfo[0].strides = __pyx_pybuffernd_contour.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_contour.diminfo[0].shape = __pyx_pybuffernd_contour.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_contour.diminfo[1].strides = __pyx_pybuffernd_contour.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_contour.diminfo[1].shape = __pyx_pybuffernd_contour.rcbuffer->pybuffer.shape[1]; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":269 - * #%% - * #% Construct the cleaned contour. - * cdef np.ndarray[np.float_t, ndim=2] cContour = np.zeros_like(contour); # <<<<<<<<<<<<<< - * cdef int last_index_contour = contour.shape[0]-1; - * cdef int i, j = 0; - */ - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 269, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros_like); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 269, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __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); - } - } - if (!__pyx_t_2) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_contour)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 269, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } else { - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[2] = {__pyx_t_2, ((PyObject *)__pyx_v_contour)}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 269, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[2] = {__pyx_t_2, ((PyObject *)__pyx_v_contour)}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 269, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - { - __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 269, __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 = NULL; - __Pyx_INCREF(((PyObject *)__pyx_v_contour)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_contour)); - PyTuple_SET_ITEM(__pyx_t_4, 0+1, ((PyObject *)__pyx_v_contour)); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 269, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 269, __pyx_L1_error) - __pyx_t_5 = ((PyArrayObject *)__pyx_t_1); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cContour.rcbuffer->pybuffer, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { - __pyx_v_cContour = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_cContour.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 269, __pyx_L1_error) - } else {__pyx_pybuffernd_cContour.diminfo[0].strides = __pyx_pybuffernd_cContour.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cContour.diminfo[0].shape = __pyx_pybuffernd_cContour.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_cContour.diminfo[1].strides = __pyx_pybuffernd_cContour.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_cContour.diminfo[1].shape = __pyx_pybuffernd_cContour.rcbuffer->pybuffer.shape[1]; - } - } - __pyx_t_5 = 0; - __pyx_v_cContour = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":270 - * #% Construct the cleaned contour. - * cdef np.ndarray[np.float_t, ndim=2] cContour = np.zeros_like(contour); - * cdef int last_index_contour = contour.shape[0]-1; # <<<<<<<<<<<<<< - * cdef int i, j = 0; - * cdef double x, y, x1, x2, y1, y2 - */ - __pyx_v_last_index_contour = ((__pyx_v_contour->dimensions[0]) - 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":271 - * cdef np.ndarray[np.float_t, ndim=2] cContour = np.zeros_like(contour); - * cdef int last_index_contour = contour.shape[0]-1; - * cdef int i, j = 0; # <<<<<<<<<<<<<< - * cdef double x, y, x1, x2, y1, y2 - * - */ - __pyx_v_j = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":274 - * cdef double x, y, x1, x2, y1, y2 - * - * for i in range(contour.shape[0]-1): # <<<<<<<<<<<<<< - * y1 = contour[i,0] - * y2 = contour[i + 1,0] - */ - __pyx_t_6 = ((__pyx_v_contour->dimensions[0]) - 1); - __pyx_t_7 = __pyx_t_6; - for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) { - __pyx_v_i = __pyx_t_8; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":275 - * - * for i in range(contour.shape[0]-1): - * y1 = contour[i,0] # <<<<<<<<<<<<<< - * y2 = contour[i + 1,0] - * x1 = contour[i,1] - */ - __pyx_t_9 = __pyx_v_i; - __pyx_t_10 = 0; - __pyx_v_y1 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_9, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_10, __pyx_pybuffernd_contour.diminfo[1].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":276 - * for i in range(contour.shape[0]-1): - * y1 = contour[i,0] - * y2 = contour[i + 1,0] # <<<<<<<<<<<<<< - * x1 = contour[i,1] - * x2 = contour[i + 1,1] - */ - __pyx_t_11 = (__pyx_v_i + 1); - __pyx_t_12 = 0; - __pyx_v_y2 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_12, __pyx_pybuffernd_contour.diminfo[1].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":277 - * y1 = contour[i,0] - * y2 = contour[i + 1,0] - * x1 = contour[i,1] # <<<<<<<<<<<<<< - * x2 = contour[i + 1,1] - * #% Initialize the point differences. - */ - __pyx_t_13 = __pyx_v_i; - __pyx_t_14 = 1; - __pyx_v_x1 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_14, __pyx_pybuffernd_contour.diminfo[1].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":278 - * y2 = contour[i + 1,0] - * x1 = contour[i,1] - * x2 = contour[i + 1,1] # <<<<<<<<<<<<<< - * #% Initialize the point differences. - * y = absDiff(y1,y2); - */ - __pyx_t_15 = (__pyx_v_i + 1); - __pyx_t_16 = 1; - __pyx_v_x2 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_16, __pyx_pybuffernd_contour.diminfo[1].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":280 - * x2 = contour[i + 1,1] - * #% Initialize the point differences. - * y = absDiff(y1,y2); # <<<<<<<<<<<<<< - * x = absDiff(x1,x2); - * - */ - __pyx_v_y = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_absDiff(__pyx_v_y1, __pyx_v_y2); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":281 - * #% Initialize the point differences. - * y = absDiff(y1,y2); - * x = absDiff(x1,x2); # <<<<<<<<<<<<<< - * - * #% Ignore duplicates. - */ - __pyx_v_x = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_absDiff(__pyx_v_x1, __pyx_v_x2); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":284 - * - * #% Ignore duplicates. - * if y == 0 and x == 0 : # <<<<<<<<<<<<<< - * continue; - * - */ - __pyx_t_18 = ((__pyx_v_y == 0.0) != 0); - if (__pyx_t_18) { - } else { - __pyx_t_17 = __pyx_t_18; - goto __pyx_L6_bool_binop_done; - } - __pyx_t_18 = ((__pyx_v_x == 0.0) != 0); - __pyx_t_17 = __pyx_t_18; - __pyx_L6_bool_binop_done:; - if (__pyx_t_17) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":285 - * #% Ignore duplicates. - * if y == 0 and x == 0 : - * continue; # <<<<<<<<<<<<<< - * - * #% Add the point. - */ - goto __pyx_L3_continue; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":284 - * - * #% Ignore duplicates. - * if y == 0 and x == 0 : # <<<<<<<<<<<<<< - * continue; - * - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":288 - * - * #% Add the point. - * if (y == 0 or y == 1) and (x == 0 or x == 1): # <<<<<<<<<<<<<< - * cContour[j,:] = contour[i,:]; - * j = j + 1; - */ - __pyx_t_18 = ((__pyx_v_y == 0.0) != 0); - if (!__pyx_t_18) { - } else { - goto __pyx_L10_next_and; - } - __pyx_t_18 = ((__pyx_v_y == 1.0) != 0); - if (__pyx_t_18) { - } else { - __pyx_t_17 = __pyx_t_18; - goto __pyx_L9_bool_binop_done; - } - __pyx_L10_next_and:; - __pyx_t_18 = ((__pyx_v_x == 0.0) != 0); - if (!__pyx_t_18) { - } else { - __pyx_t_17 = __pyx_t_18; - goto __pyx_L9_bool_binop_done; - } - __pyx_t_18 = ((__pyx_v_x == 1.0) != 0); - __pyx_t_17 = __pyx_t_18; - __pyx_L9_bool_binop_done:; - if (__pyx_t_17) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":289 - * #% Add the point. - * if (y == 0 or y == 1) and (x == 0 or x == 1): - * cContour[j,:] = contour[i,:]; # <<<<<<<<<<<<<< - * j = j + 1; - * - */ - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 289, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 289, __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_slice__6); - __Pyx_GIVEREF(__pyx_slice__6); - PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_slice__6); - __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_contour), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 289, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_j); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 289, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 289, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); - __Pyx_INCREF(__pyx_slice__7); - __Pyx_GIVEREF(__pyx_slice__7); - PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_slice__7); - __pyx_t_3 = 0; - if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_cContour), __pyx_t_4, __pyx_t_1) < 0)) __PYX_ERR(0, 289, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":290 - * if (y == 0 or y == 1) and (x == 0 or x == 1): - * cContour[j,:] = contour[i,:]; - * j = j + 1; # <<<<<<<<<<<<<< - * - * #% Interpolate the missing points. - */ - __pyx_v_j = (__pyx_v_j + 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":288 - * - * #% Add the point. - * if (y == 0 or y == 1) and (x == 0 or x == 1): # <<<<<<<<<<<<<< - * cContour[j,:] = contour[i,:]; - * j = j + 1; - */ - goto __pyx_L8; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":294 - * #% Interpolate the missing points. - * else: - * points = max(y, x); # <<<<<<<<<<<<<< - * cContour[j:(j + points),0] = np.round(np.linspace(y1, y2, points + 1)); - * cContour[j:(j + points),1] = np.round(np.linspace(x1, x2, points + 1)); - */ - /*else*/ { - __pyx_t_19 = __pyx_v_x; - __pyx_t_20 = __pyx_v_y; - if (((__pyx_t_19 > __pyx_t_20) != 0)) { - __pyx_t_21 = __pyx_t_19; - } else { - __pyx_t_21 = __pyx_t_20; - } - __pyx_t_1 = __Pyx_PyInt_From_int(((int)__pyx_t_21)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_points, __pyx_t_1); - __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":295 - * else: - * points = max(y, x); - * cContour[j:(j + points),0] = np.round(np.linspace(y1, y2, points + 1)); # <<<<<<<<<<<<<< - * cContour[j:(j + points),1] = np.round(np.linspace(x1, x2, points + 1)); - * j = j + points; - */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_round); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_linspace); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_22); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_23 = PyFloat_FromDouble(__pyx_v_y2); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_23); - __pyx_t_24 = __Pyx_PyInt_AddObjC(__pyx_v_points, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_24); - __pyx_t_25 = NULL; - __pyx_t_26 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_22))) { - __pyx_t_25 = PyMethod_GET_SELF(__pyx_t_22); - if (likely(__pyx_t_25)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); - __Pyx_INCREF(__pyx_t_25); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_22, function); - __pyx_t_26 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_22)) { - PyObject *__pyx_temp[4] = {__pyx_t_25, __pyx_t_2, __pyx_t_23, __pyx_t_24}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_26, 3+__pyx_t_26); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0; - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; - __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) { - PyObject *__pyx_temp[4] = {__pyx_t_25, __pyx_t_2, __pyx_t_23, __pyx_t_24}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_26, 3+__pyx_t_26); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0; - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; - __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; - } else - #endif - { - __pyx_t_27 = PyTuple_New(3+__pyx_t_26); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_27); - if (__pyx_t_25) { - __Pyx_GIVEREF(__pyx_t_25); PyTuple_SET_ITEM(__pyx_t_27, 0, __pyx_t_25); __pyx_t_25 = NULL; - } - __Pyx_GIVEREF(__pyx_t_2); - PyTuple_SET_ITEM(__pyx_t_27, 0+__pyx_t_26, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_23); - PyTuple_SET_ITEM(__pyx_t_27, 1+__pyx_t_26, __pyx_t_23); - __Pyx_GIVEREF(__pyx_t_24); - PyTuple_SET_ITEM(__pyx_t_27, 2+__pyx_t_26, __pyx_t_24); - __pyx_t_2 = 0; - __pyx_t_23 = 0; - __pyx_t_24 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_27, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; - } - __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; - __pyx_t_22 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_22)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_22); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - } - } - if (!__pyx_t_22) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else { - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[2] = {__pyx_t_22, __pyx_t_4}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 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[2] = {__pyx_t_22, __pyx_t_4}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } else - #endif - { - __pyx_t_27 = PyTuple_New(1+1); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_27); - __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_27, 0, __pyx_t_22); __pyx_t_22 = NULL; - __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_27, 0+1, __pyx_t_4); - __pyx_t_4 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_27, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; - } - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_j); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_27 = __Pyx_PyInt_From_int(__pyx_v_j); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_27); - __pyx_t_4 = PyNumber_Add(__pyx_t_27, __pyx_v_points); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; - __pyx_t_27 = PySlice_New(__pyx_t_3, __pyx_t_4, Py_None); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_27); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_27); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_27); - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_0); - __pyx_t_27 = 0; - if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_cContour), __pyx_t_4, __pyx_t_1) < 0)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":296 - * points = max(y, x); - * cContour[j:(j + points),0] = np.round(np.linspace(y1, y2, points + 1)); - * cContour[j:(j + points),1] = np.round(np.linspace(x1, x2, points + 1)); # <<<<<<<<<<<<<< - * j = j + points; - * - */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_round); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_27); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_linspace); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_22); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_x1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_24 = PyFloat_FromDouble(__pyx_v_x2); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_24); - __pyx_t_23 = __Pyx_PyInt_AddObjC(__pyx_v_points, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_23); - __pyx_t_2 = NULL; - __pyx_t_26 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_22))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_22); - if (likely(__pyx_t_2)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_22, function); - __pyx_t_26 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_22)) { - PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_t_3, __pyx_t_24, __pyx_t_23}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_26, 3+__pyx_t_26); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; - __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) { - PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_t_3, __pyx_t_24, __pyx_t_23}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_26, 3+__pyx_t_26); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; - __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; - } else - #endif - { - __pyx_t_25 = PyTuple_New(3+__pyx_t_26); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_25); - if (__pyx_t_2) { - __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_25, 0, __pyx_t_2); __pyx_t_2 = NULL; - } - __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_25, 0+__pyx_t_26, __pyx_t_3); - __Pyx_GIVEREF(__pyx_t_24); - PyTuple_SET_ITEM(__pyx_t_25, 1+__pyx_t_26, __pyx_t_24); - __Pyx_GIVEREF(__pyx_t_23); - PyTuple_SET_ITEM(__pyx_t_25, 2+__pyx_t_26, __pyx_t_23); - __pyx_t_3 = 0; - __pyx_t_24 = 0; - __pyx_t_23 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_25, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; - } - __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; - __pyx_t_22 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_27))) { - __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_27); - if (likely(__pyx_t_22)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_27); - __Pyx_INCREF(__pyx_t_22); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_27, function); - } - } - if (!__pyx_t_22) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_27, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else { - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_27)) { - PyObject *__pyx_temp[2] = {__pyx_t_22, __pyx_t_4}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_27, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 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_27)) { - PyObject *__pyx_temp[2] = {__pyx_t_22, __pyx_t_4}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_27, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } else - #endif - { - __pyx_t_25 = PyTuple_New(1+1); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_25); - __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_25, 0, __pyx_t_22); __pyx_t_22 = NULL; - __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_25, 0+1, __pyx_t_4); - __pyx_t_4 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_27, __pyx_t_25, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; - } - } - __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; - __pyx_t_27 = __Pyx_PyInt_From_int(__pyx_v_j); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_27); - __pyx_t_25 = __Pyx_PyInt_From_int(__pyx_v_j); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_25); - __pyx_t_4 = PyNumber_Add(__pyx_t_25, __pyx_v_points); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; - __pyx_t_25 = PySlice_New(__pyx_t_27, __pyx_t_4, Py_None); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_25); - __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_25); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_25); - __Pyx_INCREF(__pyx_int_1); - __Pyx_GIVEREF(__pyx_int_1); - PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_1); - __pyx_t_25 = 0; - if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_cContour), __pyx_t_4, __pyx_t_1) < 0)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":297 - * cContour[j:(j + points),0] = np.round(np.linspace(y1, y2, points + 1)); - * cContour[j:(j + points),1] = np.round(np.linspace(x1, x2, points + 1)); - * j = j + points; # <<<<<<<<<<<<<< - * - * #% Add the last point - */ - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_j); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 297, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyNumber_Add(__pyx_t_1, __pyx_v_points); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 297, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_26 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_26 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 297, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_j = __pyx_t_26; - } - __pyx_L8:; - __pyx_L3_continue:; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":300 - * - * #% Add the last point - * if (cContour[0,0] != contour[last_index_contour,0]) or \ # <<<<<<<<<<<<<< - * (cContour[1,0] != contour[last_index_contour,1]): - * cContour[j,:] = contour[last_index_contour,:] - */ - __pyx_t_28 = 0; - __pyx_t_29 = 0; - __pyx_t_30 = __pyx_v_last_index_contour; - __pyx_t_31 = 0; - __pyx_t_18 = (((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cContour.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_cContour.diminfo[0].strides, __pyx_t_29, __pyx_pybuffernd_cContour.diminfo[1].strides)) != (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_31, __pyx_pybuffernd_contour.diminfo[1].strides))) != 0); - if (!__pyx_t_18) { - } else { - __pyx_t_17 = __pyx_t_18; - goto __pyx_L14_bool_binop_done; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":301 - * #% Add the last point - * if (cContour[0,0] != contour[last_index_contour,0]) or \ - * (cContour[1,0] != contour[last_index_contour,1]): # <<<<<<<<<<<<<< - * cContour[j,:] = contour[last_index_contour,:] - * j = j + 1; - */ - __pyx_t_32 = 1; - __pyx_t_33 = 0; - __pyx_t_34 = __pyx_v_last_index_contour; - __pyx_t_35 = 1; - __pyx_t_18 = (((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cContour.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_cContour.diminfo[0].strides, __pyx_t_33, __pyx_pybuffernd_cContour.diminfo[1].strides)) != (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_contour.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_contour.diminfo[0].strides, __pyx_t_35, __pyx_pybuffernd_contour.diminfo[1].strides))) != 0); - __pyx_t_17 = __pyx_t_18; - __pyx_L14_bool_binop_done:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":300 - * - * #% Add the last point - * if (cContour[0,0] != contour[last_index_contour,0]) or \ # <<<<<<<<<<<<<< - * (cContour[1,0] != contour[last_index_contour,1]): - * cContour[j,:] = contour[last_index_contour,:] - */ - if (__pyx_t_17) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":302 - * if (cContour[0,0] != contour[last_index_contour,0]) or \ - * (cContour[1,0] != contour[last_index_contour,1]): - * cContour[j,:] = contour[last_index_contour,:] # <<<<<<<<<<<<<< - * j = j + 1; - * - */ - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_last_index_contour); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 302, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 302, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); - __Pyx_INCREF(__pyx_slice__8); - __Pyx_GIVEREF(__pyx_slice__8); - PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_slice__8); - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_contour), __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 302, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_j); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 302, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_25 = PyTuple_New(2); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 302, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_25); - __Pyx_GIVEREF(__pyx_t_1); - PyTuple_SET_ITEM(__pyx_t_25, 0, __pyx_t_1); - __Pyx_INCREF(__pyx_slice__9); - __Pyx_GIVEREF(__pyx_slice__9); - PyTuple_SET_ITEM(__pyx_t_25, 1, __pyx_slice__9); - __pyx_t_1 = 0; - if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_cContour), __pyx_t_25, __pyx_t_4) < 0)) __PYX_ERR(0, 302, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":303 - * (cContour[1,0] != contour[last_index_contour,1]): - * cContour[j,:] = contour[last_index_contour,:] - * j = j + 1; # <<<<<<<<<<<<<< - * - * cContour = cContour[:j,:] - */ - __pyx_v_j = (__pyx_v_j + 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":300 - * - * #% Add the last point - * if (cContour[0,0] != contour[last_index_contour,0]) or \ # <<<<<<<<<<<<<< - * (cContour[1,0] != contour[last_index_contour,1]): - * cContour[j,:] = contour[last_index_contour,:] - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":305 - * j = j + 1; - * - * cContour = cContour[:j,:] # <<<<<<<<<<<<<< - * #%% - * return cContour - */ - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_j); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 305, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_25 = PySlice_New(Py_None, __pyx_t_4, Py_None); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 305, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_25); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 305, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_25); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_25); - __Pyx_INCREF(__pyx_slice__10); - __Pyx_GIVEREF(__pyx_slice__10); - PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_slice__10); - __pyx_t_25 = 0; - __pyx_t_25 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_cContour), __pyx_t_4); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 305, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_25); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!(likely(((__pyx_t_25) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_25, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 305, __pyx_L1_error) - __pyx_t_5 = ((PyArrayObject *)__pyx_t_25); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cContour.rcbuffer->pybuffer); - __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cContour.rcbuffer->pybuffer, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); - if (unlikely(__pyx_t_8 < 0)) { - PyErr_Fetch(&__pyx_t_36, &__pyx_t_37, &__pyx_t_38); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cContour.rcbuffer->pybuffer, (PyObject*)__pyx_v_cContour, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_37); Py_XDECREF(__pyx_t_38); - __Pyx_RaiseBufferFallbackError(); - } else { - PyErr_Restore(__pyx_t_36, __pyx_t_37, __pyx_t_38); - } - __pyx_t_36 = __pyx_t_37 = __pyx_t_38 = 0; - } - __pyx_pybuffernd_cContour.diminfo[0].strides = __pyx_pybuffernd_cContour.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cContour.diminfo[0].shape = __pyx_pybuffernd_cContour.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_cContour.diminfo[1].strides = __pyx_pybuffernd_cContour.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_cContour.diminfo[1].shape = __pyx_pybuffernd_cContour.rcbuffer->pybuffer.shape[1]; - if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 305, __pyx_L1_error) - } - __pyx_t_5 = 0; - __Pyx_DECREF_SET(__pyx_v_cContour, ((PyArrayObject *)__pyx_t_25)); - __pyx_t_25 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":307 - * cContour = cContour[:j,:] - * #%% - * return cContour # <<<<<<<<<<<<<< - * - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(((PyObject *)__pyx_v_cContour)); - __pyx_r = ((PyObject *)__pyx_v_cContour); - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":250 - * @cython.wraparound(False) - * @cython.nonecheck(False) - * def cleanContour(np.ndarray[np.float_t, ndim=2] contour): # <<<<<<<<<<<<<< - * '''%CLEANCONTOUR Clean an 8-connected, circularly-connected contour by - * %removing any duplicate points and interpolating any missing points. - */ - - /* 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_22); - __Pyx_XDECREF(__pyx_t_23); - __Pyx_XDECREF(__pyx_t_24); - __Pyx_XDECREF(__pyx_t_25); - __Pyx_XDECREF(__pyx_t_27); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cContour.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_contour.rcbuffer->pybuffer); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.cleanWorm_cython.cleanContour", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cContour.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_contour.rcbuffer->pybuffer); - __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_cContour); - __Pyx_XDECREF(__pyx_v_points); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_TraceReturn(__pyx_r, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 - * # 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_TraceDeclarations - __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; - PyObject *__pyx_t_7 = NULL; - char *__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); - __Pyx_TraceCall("__getbuffer__", __pyx_f[1], 215, 0, __PYX_ERR(1, 215, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":222 - * - * cdef int i, ndim - * cdef int endian_detector = 1 # <<<<<<<<<<<<<< - * cdef bint little_endian = ((&endian_detector)[0] != 0) - * - */ - __pyx_v_endian_detector = 1; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":223 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":225 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 - * ndim = PyArray_NDIM(self) - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":228 - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< - * raise ValueError(u"ndarray is not C contiguous") - * - */ - __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_C_CONTIGUOUS) != 0)) != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L4_bool_binop_done:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 - * ndim = PyArray_NDIM(self) - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): - * raise ValueError(u"ndarray is not C contiguous") - */ - if (unlikely(__pyx_t_1)) { - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_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__11, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 229, __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, 229, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 - * ndim = PyArray_NDIM(self) - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): - * raise ValueError(u"ndarray is not C contiguous") - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 - * raise ValueError(u"ndarray is not C contiguous") - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":232 - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< - * raise ValueError(u"ndarray is not Fortran contiguous") - * - */ - __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_F_CONTIGUOUS) != 0)) != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L7_bool_binop_done:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 - * raise ValueError(u"ndarray is not C contiguous") - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): - * raise ValueError(u"ndarray is not Fortran contiguous") - */ - if (unlikely(__pyx_t_1)) { - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_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__12, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 233, __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, 233, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 - * raise ValueError(u"ndarray is not C contiguous") - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): - * raise ValueError(u"ndarray is not Fortran contiguous") - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":235 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":236 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":240 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":241 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":242 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":243 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":244 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":246 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":247 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":248 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":249 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":250 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":253 - * - * cdef int t - * cdef char* f = NULL # <<<<<<<<<<<<<< - * cdef dtype descr = self.descr - * cdef int offset - */ - __pyx_v_f = NULL; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":254 - * cdef int t - * cdef char* f = NULL - * cdef dtype descr = self.descr # <<<<<<<<<<<<<< - * cdef int offset - * - */ - __pyx_t_3 = ((PyObject *)__pyx_v_self->descr); - __Pyx_INCREF(__pyx_t_3); - __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); - __pyx_t_3 = 0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":257 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":260 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":262 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 - * 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__13, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 263, __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, 263, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":264 - * (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; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":265 - * 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" - */ - case NPY_UBYTE: - __pyx_v_f = ((char *)"B"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":266 - * 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" - */ - case NPY_SHORT: - __pyx_v_f = ((char *)"h"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":267 - * 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" - */ - case NPY_USHORT: - __pyx_v_f = ((char *)"H"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":268 - * 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" - */ - case NPY_INT: - __pyx_v_f = ((char *)"i"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":269 - * 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" - */ - case NPY_UINT: - __pyx_v_f = ((char *)"I"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":270 - * 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" - */ - case NPY_LONG: - __pyx_v_f = ((char *)"l"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":271 - * 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" - */ - case NPY_ULONG: - __pyx_v_f = ((char *)"L"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":272 - * 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" - */ - case NPY_LONGLONG: - __pyx_v_f = ((char *)"q"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":273 - * 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" - */ - case NPY_ULONGLONG: - __pyx_v_f = ((char *)"Q"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":274 - * 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" - */ - case NPY_FLOAT: - __pyx_v_f = ((char *)"f"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":275 - * 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" - */ - case NPY_DOUBLE: - __pyx_v_f = ((char *)"d"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":276 - * 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" - */ - case NPY_LONGDOUBLE: - __pyx_v_f = ((char *)"g"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":277 - * 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" - */ - case NPY_CFLOAT: - __pyx_v_f = ((char *)"Zf"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":278 - * 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" - */ - case NPY_CDOUBLE: - __pyx_v_f = ((char *)"Zd"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":279 - * 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: - */ - case NPY_CLONGDOUBLE: - __pyx_v_f = ((char *)"Zg"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":280 - * 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) - */ - case NPY_OBJECT: - __pyx_v_f = ((char *)"O"); - break; - default: - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":282 - * 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, 282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 282, __pyx_L1_error) - break; - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":283 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":284 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 - * info.obj = self - * - * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< - * t = descr.type_num - * if ((descr.byteorder == c'>' and little_endian) or - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":286 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":287 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":288 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":289 - * 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_8 = __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_8 == ((char *)NULL))) __PYX_ERR(1, 289, __pyx_L1_error) - __pyx_v_f = __pyx_t_8; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":292 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 - * # 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_7); - __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_TraceReturn(Py_None, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 - * 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_TraceDeclarations - __Pyx_RefNannyDeclarations - int __pyx_t_1; - __Pyx_RefNannySetupContext("__releasebuffer__", 0); - __Pyx_TraceCall("__releasebuffer__", __pyx_f[1], 294, 0, __PYX_ERR(1, 294, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":296 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":298 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 - * 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 */ - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_WriteUnraisable("numpy.ndarray.__releasebuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); - __pyx_L0:; - __Pyx_TraceReturn(Py_None, 0); - __Pyx_RefNannyFinishContext(); -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 - * 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_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); - __Pyx_TraceCall("PyArray_MultiIterNew1", __pyx_f[1], 775, 0, __PYX_ERR(1, 775, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":776 - * - * 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, 776, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 - * 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_TraceReturn(__pyx_r, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 - * 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_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); - __Pyx_TraceCall("PyArray_MultiIterNew2", __pyx_f[1], 778, 0, __PYX_ERR(1, 778, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":779 - * - * 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, 779, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 - * 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_TraceReturn(__pyx_r, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 - * 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_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); - __Pyx_TraceCall("PyArray_MultiIterNew3", __pyx_f[1], 781, 0, __PYX_ERR(1, 781, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":782 - * - * 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, 782, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 - * 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_TraceReturn(__pyx_r, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 - * 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_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); - __Pyx_TraceCall("PyArray_MultiIterNew4", __pyx_f[1], 784, 0, __PYX_ERR(1, 784, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":785 - * - * 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, 785, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 - * 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_TraceReturn(__pyx_r, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 - * 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_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); - __Pyx_TraceCall("PyArray_MultiIterNew5", __pyx_f[1], 787, 0, __PYX_ERR(1, 787, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":788 - * - * 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, 788, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 - * 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_TraceReturn(__pyx_r, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 - * 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_TraceDeclarations - __Pyx_RefNannyDeclarations - int __pyx_t_1; - __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); - __Pyx_TraceCall("PyDataType_SHAPE", __pyx_f[1], 790, 0, __PYX_ERR(1, 790, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":792 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< - * return d.subarray.shape - * else: - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":794 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 - * 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_L1_error:; - __Pyx_AddTraceback("numpy.PyDataType_SHAPE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_TraceReturn(__pyx_r, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 - * 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_TraceDeclarations - __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); - __Pyx_TraceCall("_util_dtypestring", __pyx_f[1], 796, 0, __PYX_ERR(1, 796, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":801 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":802 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 - * 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, 805, __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, 805, __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, 805, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); - __pyx_t_3 = 0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":806 - * - * 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, 806, __pyx_L1_error) - } - __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 806, __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, 806, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); - __pyx_t_3 = 0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":807 - * 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, 807, __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, 807, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 807, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } else { - __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 807, __pyx_L1_error) - } - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(1, 807, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 - * 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, 809, __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, 809, __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, 809, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 - * - * 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__14, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 810, __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, 810, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":813 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 - * 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, 814, __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, 814, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":824 - * - * # 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, 824, __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, 824, __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, 824, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!__pyx_t_6) break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":825 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":826 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":827 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":829 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":832 - * - * 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, 832, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); - __pyx_t_4 = 0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 - * 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__16, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 834, __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, 834, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 - * if not PyDataType_HASFIELDS(child): - * t = child.type_num - * if end - f < 5: # <<<<<<<<<<<<<< - * raise RuntimeError(u"Format string allocated too short.") - * - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":837 - * - * # 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, 837, __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, 837, __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, 837, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":838 - * # 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, 838, __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, 838, __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, 838, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":839 - * 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, 839, __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, 839, __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, 839, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":840 - * 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, 840, __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, 840, __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, 840, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":841 - * 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, 841, __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, 841, __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, 841, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":842 - * 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, 842, __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, 842, __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, 842, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":843 - * 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, 843, __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, 843, __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, 843, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":844 - * 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, 844, __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, 844, __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, 844, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":845 - * 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, 845, __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, 845, __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, 845, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":846 - * 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, 846, __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, 846, __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, 846, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":847 - * 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, 847, __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, 847, __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, 847, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":848 - * 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, 848, __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, 848, __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, 848, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":849 - * 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, 849, __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, 849, __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, 849, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":850 - * 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, 850, __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, 850, __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, 850, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":851 - * 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, 851, __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, 851, __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, 851, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":852 - * 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, 852, __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, 852, __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, 852, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":853 - * 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, 853, __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, 853, __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, 853, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":855 - * 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 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 855, __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, 855, __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, 855, __pyx_L1_error) - } - __pyx_L15:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":856 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 - * offset[0] += child.itemsize - * - * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< - * t = child.type_num - * if end - f < 5: - */ - goto __pyx_L13; - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":860 - * # 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, 860, __pyx_L1_error) - __pyx_v_f = __pyx_t_9; - } - __pyx_L13:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":861 - * # so don't output it - * f = _util_dtypestring(child, f, end, offset) - * return f # <<<<<<<<<<<<<< - * - * - */ - __pyx_r = __pyx_v_f; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 - * 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_TraceReturn(Py_None, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 - * - * - * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< - * cdef PyObject* baseptr - * if base is None: - */ - -static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { - PyObject *__pyx_v_baseptr; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - __Pyx_RefNannySetupContext("set_array_base", 0); - __Pyx_TraceCall("set_array_base", __pyx_f[1], 977, 0, __PYX_ERR(1, 977, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 - * cdef inline void set_array_base(ndarray arr, object base): - * cdef PyObject* baseptr - * if base is None: # <<<<<<<<<<<<<< - * baseptr = NULL - * else: - */ - __pyx_t_1 = (__pyx_v_base == Py_None); - __pyx_t_2 = (__pyx_t_1 != 0); - if (__pyx_t_2) { - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":980 - * cdef PyObject* baseptr - * if base is None: - * baseptr = NULL # <<<<<<<<<<<<<< - * else: - * Py_INCREF(base) # important to do this before decref below! - */ - __pyx_v_baseptr = NULL; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 - * cdef inline void set_array_base(ndarray arr, object base): - * cdef PyObject* baseptr - * if base is None: # <<<<<<<<<<<<<< - * baseptr = NULL - * else: - */ - goto __pyx_L3; - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":982 - * baseptr = NULL - * else: - * Py_INCREF(base) # important to do this before decref below! # <<<<<<<<<<<<<< - * baseptr = base - * Py_XDECREF(arr.base) - */ - /*else*/ { - Py_INCREF(__pyx_v_base); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":983 - * else: - * Py_INCREF(base) # important to do this before decref below! - * baseptr = base # <<<<<<<<<<<<<< - * Py_XDECREF(arr.base) - * arr.base = baseptr - */ - __pyx_v_baseptr = ((PyObject *)__pyx_v_base); - } - __pyx_L3:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":984 - * Py_INCREF(base) # important to do this before decref below! - * baseptr = base - * Py_XDECREF(arr.base) # <<<<<<<<<<<<<< - * arr.base = baseptr - * - */ - Py_XDECREF(__pyx_v_arr->base); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":985 - * baseptr = base - * Py_XDECREF(arr.base) - * arr.base = baseptr # <<<<<<<<<<<<<< - * - * cdef inline object get_array_base(ndarray arr): - */ - __pyx_v_arr->base = __pyx_v_baseptr; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 - * - * - * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< - * cdef PyObject* baseptr - * if base is None: - */ - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_WriteUnraisable("numpy.set_array_base", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); - __pyx_L0:; - __Pyx_TraceReturn(Py_None, 0); - __Pyx_RefNannyFinishContext(); -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 - * arr.base = baseptr - * - * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< - * if arr.base is NULL: - * return None - */ - -static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) { - PyObject *__pyx_r = NULL; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - int __pyx_t_1; - __Pyx_RefNannySetupContext("get_array_base", 0); - __Pyx_TraceCall("get_array_base", __pyx_f[1], 987, 0, __PYX_ERR(1, 987, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 - * - * cdef inline object get_array_base(ndarray arr): - * if arr.base is NULL: # <<<<<<<<<<<<<< - * return None - * else: - */ - __pyx_t_1 = ((__pyx_v_arr->base == NULL) != 0); - if (__pyx_t_1) { - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":989 - * cdef inline object get_array_base(ndarray arr): - * if arr.base is NULL: - * return None # <<<<<<<<<<<<<< - * else: - * return arr.base - */ - __Pyx_XDECREF(__pyx_r); - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 - * - * cdef inline object get_array_base(ndarray arr): - * if arr.base is NULL: # <<<<<<<<<<<<<< - * return None - * else: - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":991 - * return None - * else: - * return arr.base # <<<<<<<<<<<<<< - * - * - */ - /*else*/ { - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(((PyObject *)__pyx_v_arr->base)); - __pyx_r = ((PyObject *)__pyx_v_arr->base); - goto __pyx_L0; - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 - * arr.base = baseptr - * - * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< - * if arr.base is NULL: - * return None - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("numpy.get_array_base", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_TraceReturn(__pyx_r, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 - * # 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_TraceDeclarations - __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); - __Pyx_TraceCall("import_array", __pyx_f[1], 996, 0, __PYX_ERR(1, 996, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":998 - * 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, 998, __pyx_L3_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":999 - * 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, 999, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 - * _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__17, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1000, __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, 1000, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 - * # 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_TraceReturn(Py_None, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 - * 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_TraceDeclarations - __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); - __Pyx_TraceCall("import_umath", __pyx_f[1], 1002, 0, __PYX_ERR(1, 1002, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1004 - * 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, 1004, __pyx_L3_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1005 - * 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, 1005, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 - * _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__18, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1006, __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, 1006, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 - * 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_TraceReturn(Py_None, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 - * 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_TraceDeclarations - __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); - __Pyx_TraceCall("import_ufunc", __pyx_f[1], 1008, 0, __PYX_ERR(1, 1008, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1010 - * 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, 1010, __pyx_L3_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1011 - * 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, 1011, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 - * _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, 1012, __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, 1012, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 - * 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_TraceReturn(Py_None, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -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_cleanWorm_cython(PyObject* module); /*proto*/ -static PyModuleDef_Slot __pyx_moduledef_slots[] = { - {Py_mod_create, (void*)__pyx_pymod_create}, - {Py_mod_exec, (void*)__pyx_pymod_exec_cleanWorm_cython}, - {0, NULL} -}; -#endif - -static struct PyModuleDef __pyx_moduledef = { - PyModuleDef_HEAD_INIT, - "cleanWorm_cython", - __pyx_k_Created_on_Wed_May_20_14_56_35, /* 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 - -static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__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_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, - {&__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_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_kp_s_Wrong_chain_code_lengths_size, __pyx_k_Wrong_chain_code_lengths_size, sizeof(__pyx_k_Wrong_chain_code_lengths_size), 0, 0, 1, 0}, - {&__pyx_n_s_arange, __pyx_k_arange, sizeof(__pyx_k_arange), 0, 0, 1, 1}, - {&__pyx_n_s_argmax, __pyx_k_argmax, sizeof(__pyx_k_argmax), 0, 0, 1, 1}, - {&__pyx_n_s_argmin, __pyx_k_argmin, sizeof(__pyx_k_argmin), 0, 0, 1, 1}, - {&__pyx_n_s_cContour, __pyx_k_cContour, sizeof(__pyx_k_cContour), 0, 0, 1, 1}, - {&__pyx_n_s_chainCodeLengths, __pyx_k_chainCodeLengths, sizeof(__pyx_k_chainCodeLengths), 0, 0, 1, 1}, - {&__pyx_n_s_cleanContour, __pyx_k_cleanContour, sizeof(__pyx_k_cleanContour), 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_contour, __pyx_k_contour, sizeof(__pyx_k_contour), 0, 0, 1, 1}, - {&__pyx_n_s_copy, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1}, - {&__pyx_n_s_dContour_x, __pyx_k_dContour_x, sizeof(__pyx_k_dContour_x), 0, 0, 1, 1}, - {&__pyx_n_s_dContour_y, __pyx_k_dContour_y, sizeof(__pyx_k_dContour_y), 0, 0, 1, 1}, - {&__pyx_n_s_dist, __pyx_k_dist, sizeof(__pyx_k_dist), 0, 0, 1, 1}, - {&__pyx_n_s_dtype, __pyx_k_dtype, sizeof(__pyx_k_dtype), 0, 0, 1, 1}, - {&__pyx_n_s_end, __pyx_k_end, sizeof(__pyx_k_end), 0, 0, 1, 1}, - {&__pyx_n_s_extremaPeaksCircDist, __pyx_k_extremaPeaksCircDist, sizeof(__pyx_k_extremaPeaksCircDist), 0, 0, 1, 1}, - {&__pyx_n_s_extrema_type, __pyx_k_extrema_type, sizeof(__pyx_k_extrema_type), 0, 0, 1, 1}, - {&__pyx_n_s_file, __pyx_k_file, sizeof(__pyx_k_file), 0, 0, 1, 1}, - {&__pyx_n_s_float, __pyx_k_float, sizeof(__pyx_k_float), 0, 0, 1, 1}, - {&__pyx_n_s_float64, __pyx_k_float64, sizeof(__pyx_k_float64), 0, 0, 1, 1}, - {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1}, - {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, - {&__pyx_n_s_ind, __pyx_k_ind, sizeof(__pyx_k_ind), 0, 0, 1, 1}, - {&__pyx_n_s_int, __pyx_k_int, sizeof(__pyx_k_int), 0, 0, 1, 1}, - {&__pyx_n_s_j, __pyx_k_j, sizeof(__pyx_k_j), 0, 0, 1, 1}, - {&__pyx_n_s_keep, __pyx_k_keep, sizeof(__pyx_k_keep), 0, 0, 1, 1}, - {&__pyx_n_s_lastIndex, __pyx_k_lastIndex, sizeof(__pyx_k_lastIndex), 0, 0, 1, 1}, - {&__pyx_n_s_last_index_contour, __pyx_k_last_index_contour, sizeof(__pyx_k_last_index_contour), 0, 0, 1, 1}, - {&__pyx_n_s_linspace, __pyx_k_linspace, sizeof(__pyx_k_linspace), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 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_next2I, __pyx_k_next2I, sizeof(__pyx_k_next2I), 0, 0, 1, 1}, - {&__pyx_n_s_nextI, __pyx_k_nextI, sizeof(__pyx_k_nextI), 0, 0, 1, 1}, - {&__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_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, - {&__pyx_n_s_ones, __pyx_k_ones, sizeof(__pyx_k_ones), 0, 0, 1, 1}, - {&__pyx_n_s_points, __pyx_k_points, sizeof(__pyx_k_points), 0, 0, 1, 1}, - {&__pyx_n_s_print, __pyx_k_print, sizeof(__pyx_k_print), 0, 0, 1, 1}, - {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_removeSmallSegments, __pyx_k_removeSmallSegments, sizeof(__pyx_k_removeSmallSegments), 0, 0, 1, 1}, - {&__pyx_n_s_round, __pyx_k_round, sizeof(__pyx_k_round), 0, 0, 1, 1}, - {&__pyx_n_s_size, __pyx_k_size, sizeof(__pyx_k_size), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, - {&__pyx_kp_s_tierpsy_analysis_ske_create_segW, __pyx_k_tierpsy_analysis_ske_create_segW, sizeof(__pyx_k_tierpsy_analysis_ske_create_segW), 0, 0, 1, 0}, - {&__pyx_n_s_tierpsy_analysis_ske_create_segW_2, __pyx_k_tierpsy_analysis_ske_create_segW_2, sizeof(__pyx_k_tierpsy_analysis_ske_create_segW_2), 0, 0, 1, 1}, - {&__pyx_n_s_uint8, __pyx_k_uint8, sizeof(__pyx_k_uint8), 0, 0, 1, 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_winSize, __pyx_k_winSize, sizeof(__pyx_k_winSize), 0, 0, 1, 1}, - {&__pyx_n_s_x, __pyx_k_x, sizeof(__pyx_k_x), 0, 0, 1, 1}, - {&__pyx_n_s_x1, __pyx_k_x1, sizeof(__pyx_k_x1), 0, 0, 1, 1}, - {&__pyx_n_s_x2, __pyx_k_x2, sizeof(__pyx_k_x2), 0, 0, 1, 1}, - {&__pyx_n_s_y, __pyx_k_y, sizeof(__pyx_k_y), 0, 0, 1, 1}, - {&__pyx_n_s_y1, __pyx_k_y1, sizeof(__pyx_k_y1), 0, 0, 1, 1}, - {&__pyx_n_s_y2, __pyx_k_y2, sizeof(__pyx_k_y2), 0, 0, 1, 1}, - {&__pyx_n_s_zeros, __pyx_k_zeros, sizeof(__pyx_k_zeros), 0, 0, 1, 1}, - {&__pyx_n_s_zeros_like, __pyx_k_zeros_like, sizeof(__pyx_k_zeros_like), 0, 0, 1, 1}, - {0, 0, 0, 0, 0, 0, 0} -}; -static int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 274, __pyx_L1_error) - __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 229, __pyx_L1_error) - __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 810, __pyx_L1_error) - __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 1000, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -} - -static int __Pyx_InitCachedConstants(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":243 - * i = i + 1; - * - * contour = contour[keep==1,:]; # <<<<<<<<<<<<<< - * - * return contour, keep - */ - __pyx_slice__4 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__4)) __PYX_ERR(0, 243, __pyx_L1_error) - __Pyx_GOTREF(__pyx_slice__4); - __Pyx_GIVEREF(__pyx_slice__4); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":289 - * #% Add the point. - * if (y == 0 or y == 1) and (x == 0 or x == 1): - * cContour[j,:] = contour[i,:]; # <<<<<<<<<<<<<< - * j = j + 1; - * - */ - __pyx_slice__6 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__6)) __PYX_ERR(0, 289, __pyx_L1_error) - __Pyx_GOTREF(__pyx_slice__6); - __Pyx_GIVEREF(__pyx_slice__6); - __pyx_slice__7 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__7)) __PYX_ERR(0, 289, __pyx_L1_error) - __Pyx_GOTREF(__pyx_slice__7); - __Pyx_GIVEREF(__pyx_slice__7); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":302 - * if (cContour[0,0] != contour[last_index_contour,0]) or \ - * (cContour[1,0] != contour[last_index_contour,1]): - * cContour[j,:] = contour[last_index_contour,:] # <<<<<<<<<<<<<< - * j = j + 1; - * - */ - __pyx_slice__8 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__8)) __PYX_ERR(0, 302, __pyx_L1_error) - __Pyx_GOTREF(__pyx_slice__8); - __Pyx_GIVEREF(__pyx_slice__8); - __pyx_slice__9 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__9)) __PYX_ERR(0, 302, __pyx_L1_error) - __Pyx_GOTREF(__pyx_slice__9); - __Pyx_GIVEREF(__pyx_slice__9); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":305 - * j = j + 1; - * - * cContour = cContour[:j,:] # <<<<<<<<<<<<<< - * #%% - * return cContour - */ - __pyx_slice__10 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__10)) __PYX_ERR(0, 305, __pyx_L1_error) - __Pyx_GOTREF(__pyx_slice__10); - __Pyx_GIVEREF(__pyx_slice__10); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): - * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - */ - __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(1, 229, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__11); - __Pyx_GIVEREF(__pyx_tuple__11); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): - * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< - * - * info.buf = PyArray_DATA(self) - */ - __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(1, 233, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__12); - __Pyx_GIVEREF(__pyx_tuple__12); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 - * 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__13 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(1, 263, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__13); - __Pyx_GIVEREF(__pyx_tuple__13); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 - * - * 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__14 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(1, 810, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__14); - __Pyx_GIVEREF(__pyx_tuple__14); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 - * 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_tuple__15 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(1, 814, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__15); - __Pyx_GIVEREF(__pyx_tuple__15); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 - * 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__16 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(1, 834, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__16); - __Pyx_GIVEREF(__pyx_tuple__16); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 - * _import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ - __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(1, 1000, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__17); - __Pyx_GIVEREF(__pyx_tuple__17); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ - __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(1, 1006, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__18); - __Pyx_GIVEREF(__pyx_tuple__18); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - */ - __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(1, 1012, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__19); - __Pyx_GIVEREF(__pyx_tuple__19); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":26 - * @cython.wraparound(False) - * @cython.nonecheck(False) - * def extremaPeaksCircDist(int extrema_type, np.ndarray[np.float64_t, ndim=1] x, float dist, np.ndarray[np.float64_t, ndim=1] chainCodeLengths = np.zeros(0)): # <<<<<<<<<<<<<< - * #extrema type positive for maxima, negative or zero for minima - * - */ - __pyx_tuple__20 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 26, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__20); - __Pyx_GIVEREF(__pyx_tuple__20); - __pyx_tuple__21 = PyTuple_Pack(6, __pyx_n_s_extrema_type, __pyx_n_s_x, __pyx_n_s_dist, __pyx_n_s_chainCodeLengths, __pyx_n_s_winSize, __pyx_n_s_ind); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 26, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__21); - __Pyx_GIVEREF(__pyx_tuple__21); - __pyx_codeobj__2 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tierpsy_analysis_ske_create_segW, __pyx_n_s_extremaPeaksCircDist, 26, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__2)) __PYX_ERR(0, 26, __pyx_L1_error) - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":169 - * @cython.wraparound(False) - * @cython.nonecheck(False) - * def removeSmallSegments(np.ndarray[np.float_t, ndim=2] contour): # <<<<<<<<<<<<<< - * '''% Remove small overlapping segments and anti alias the contour. - * % Note: we don't remove loops. Removing loops may, for example, incorrectly - */ - __pyx_tuple__22 = PyTuple_Pack(8, __pyx_n_s_contour, __pyx_n_s_keep, __pyx_n_s_lastIndex, __pyx_n_s_i, __pyx_n_s_nextI, __pyx_n_s_next2I, __pyx_n_s_dContour_x, __pyx_n_s_dContour_y); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(0, 169, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__22); - __Pyx_GIVEREF(__pyx_tuple__22); - __pyx_codeobj__3 = (PyObject*)__Pyx_PyCode_New(1, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__22, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tierpsy_analysis_ske_create_segW, __pyx_n_s_removeSmallSegments, 169, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__3)) __PYX_ERR(0, 169, __pyx_L1_error) - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":250 - * @cython.wraparound(False) - * @cython.nonecheck(False) - * def cleanContour(np.ndarray[np.float_t, ndim=2] contour): # <<<<<<<<<<<<<< - * '''%CLEANCONTOUR Clean an 8-connected, circularly-connected contour by - * %removing any duplicate points and interpolating any missing points. - */ - __pyx_tuple__23 = PyTuple_Pack(12, __pyx_n_s_contour, __pyx_n_s_cContour, __pyx_n_s_last_index_contour, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_y1, __pyx_n_s_y2, __pyx_n_s_points); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 250, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__23); - __Pyx_GIVEREF(__pyx_tuple__23); - __pyx_codeobj__5 = (PyObject*)__Pyx_PyCode_New(1, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__23, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tierpsy_analysis_ske_create_segW, __pyx_n_s_cleanContour, 250, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__5)) __PYX_ERR(0, 250, __pyx_L1_error) - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __Pyx_RefNannyFinishContext(); - return -1; -} - -static 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) - return 0; - __pyx_L1_error:; - return -1; -} - -static int __Pyx_modinit_global_init_code(void); /*proto*/ -static int __Pyx_modinit_variable_export_code(void); /*proto*/ -static int __Pyx_modinit_function_export_code(void); /*proto*/ -static int __Pyx_modinit_type_init_code(void); /*proto*/ -static int __Pyx_modinit_type_import_code(void); /*proto*/ -static int __Pyx_modinit_variable_import_code(void); /*proto*/ -static 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_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_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "type", - #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 - sizeof(PyTypeObject), - #else - sizeof(PyHeapTypeObject), - #endif - 0); if (unlikely(!__pyx_ptype_7cpython_4type_type)) __PYX_ERR(2, 9, __pyx_L1_error) - __pyx_ptype_5numpy_dtype = __Pyx_ImportType("numpy", "dtype", sizeof(PyArray_Descr), 0); if (unlikely(!__pyx_ptype_5numpy_dtype)) __PYX_ERR(1, 164, __pyx_L1_error) - __pyx_ptype_5numpy_flatiter = __Pyx_ImportType("numpy", "flatiter", sizeof(PyArrayIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_flatiter)) __PYX_ERR(1, 186, __pyx_L1_error) - __pyx_ptype_5numpy_broadcast = __Pyx_ImportType("numpy", "broadcast", sizeof(PyArrayMultiIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_broadcast)) __PYX_ERR(1, 190, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType("numpy", "ndarray", sizeof(PyArrayObject), 0); if (unlikely(!__pyx_ptype_5numpy_ndarray)) __PYX_ERR(1, 199, __pyx_L1_error) - __pyx_ptype_5numpy_ufunc = __Pyx_ImportType("numpy", "ufunc", sizeof(PyUFuncObject), 0); if (unlikely(!__pyx_ptype_5numpy_ufunc)) __PYX_ERR(1, 872, __pyx_L1_error) - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __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 - __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); - /*--- Function import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - - -#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 -#ifndef CYTHON_SMALL_CODE -#if defined(__clang__) - #define CYTHON_SMALL_CODE -#elif defined(__GNUC__) && (!(defined(__cplusplus)) || (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 4))) - #define CYTHON_SMALL_CODE __attribute__((optimize("Os"))) -#else - #define CYTHON_SMALL_CODE -#endif -#endif - - -#if PY_MAJOR_VERSION < 3 -__Pyx_PyMODINIT_FUNC initcleanWorm_cython(void) CYTHON_SMALL_CODE; /*proto*/ -__Pyx_PyMODINIT_FUNC initcleanWorm_cython(void) -#else -__Pyx_PyMODINIT_FUNC PyInit_cleanWorm_cython(void) CYTHON_SMALL_CODE; /*proto*/ -__Pyx_PyMODINIT_FUNC PyInit_cleanWorm_cython(void) -#if CYTHON_PEP489_MULTI_PHASE_INIT -{ - return PyModuleDef_Init(&__pyx_moduledef); -} -static int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name) { - PyObject *value = PyObject_GetAttrString(spec, from_name); - int result = 0; - if (likely(value)) { - result = PyDict_SetItemString(moddict, to_name, value); - Py_DECREF(value); - } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { - PyErr_Clear(); - } else { - result = -1; - } - return result; -} -static PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) { - PyObject *module = NULL, *moddict, *modname; - 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__") < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__") < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__") < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__") < 0)) goto bad; - return module; -bad: - Py_XDECREF(module); - return NULL; -} - - -static int __pyx_pymod_exec_cleanWorm_cython(PyObject *__pyx_pyinit_module) -#endif -#endif -{ - __Pyx_TraceDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m && __pyx_m == __pyx_pyinit_module) return 0; - #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_cleanWorm_cython(void)", 0); - if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __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("cleanWorm_cython", __pyx_methods, __pyx_k_Created_on_Wed_May_20_14_56_35, 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) - __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error) - #if CYTHON_COMPILING_IN_PYPY - Py_INCREF(__pyx_b); - #endif - 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_tierpsy__analysis__ske_create__segWormPython__cython_files__cleanWorm_cython) { - if (PyObject_SetAttrString(__pyx_m, "__name__", __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, "tierpsy.analysis.ske_create.segWormPython.cython_files.cleanWorm_cython")) { - if (unlikely(PyDict_SetItemString(modules, "tierpsy.analysis.ske_create.segWormPython.cython_files.cleanWorm_cython", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error) - } - } - #endif - /*--- Builtin init code ---*/ - if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Constants init code ---*/ - if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __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(); - (void)__Pyx_modinit_type_init_code(); - if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); - /*--- Execution code ---*/ - #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) - if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - __Pyx_TraceCall("__Pyx_PyMODINIT_FUNC PyInit_cleanWorm_cython(void)", __pyx_f[0], 1, 0, __PYX_ERR(0, 1, __pyx_L1_error)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":10 - * - * - * import numpy as np # <<<<<<<<<<<<<< - * cimport numpy as np - * cimport cython - */ - __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 10, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":26 - * @cython.wraparound(False) - * @cython.nonecheck(False) - * def extremaPeaksCircDist(int extrema_type, np.ndarray[np.float64_t, ndim=1] x, float dist, np.ndarray[np.float64_t, ndim=1] chainCodeLengths = np.zeros(0)): # <<<<<<<<<<<<<< - * #extrema type positive for maxima, negative or zero for minima - * - */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); 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_zeros); 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_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __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, 26, __pyx_L1_error) - __pyx_k_ = ((PyArrayObject *)__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_1extremaPeaksCircDist, NULL, __pyx_n_s_tierpsy_analysis_ske_create_segW_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_extremaPeaksCircDist, __pyx_t_1) < 0) __PYX_ERR(0, 26, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":169 - * @cython.wraparound(False) - * @cython.nonecheck(False) - * def removeSmallSegments(np.ndarray[np.float_t, ndim=2] contour): # <<<<<<<<<<<<<< - * '''% Remove small overlapping segments and anti alias the contour. - * % Note: we don't remove loops. Removing loops may, for example, incorrectly - */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_3removeSmallSegments, NULL, __pyx_n_s_tierpsy_analysis_ske_create_segW_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 169, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_removeSmallSegments, __pyx_t_1) < 0) __PYX_ERR(0, 169, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":250 - * @cython.wraparound(False) - * @cython.nonecheck(False) - * def cleanContour(np.ndarray[np.float_t, ndim=2] contour): # <<<<<<<<<<<<<< - * '''%CLEANCONTOUR Clean an 8-connected, circularly-connected contour by - * %removing any duplicate points and interpolating any missing points. - */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_16cleanWorm_cython_5cleanContour, NULL, __pyx_n_s_tierpsy_analysis_ske_create_segW_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 250, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_cleanContour, __pyx_t_1) < 0) __PYX_ERR(0, 250, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.pyx":1 - * # -*- coding: utf-8 -*- # <<<<<<<<<<<<<< - * # cython: profile=True - * """ - */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< - * try: - * _import_umath() - */ - __Pyx_TraceReturn(Py_None, 0); - - /*--- Wrapped vars code ---*/ - - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - if (__pyx_m) { - if (__pyx_d) { - __Pyx_AddTraceback("init tierpsy.analysis.ske_create.segWormPython.cython_files.cleanWorm_cython", 0, __pyx_lineno, __pyx_filename); - } - Py_DECREF(__pyx_m); __pyx_m = 0; - } else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_ImportError, "init tierpsy.analysis.ske_create.segWormPython.cython_files.cleanWorm_cython"); - } - __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((char *)modname); - if (!m) goto end; - p = PyObject_GetAttrString(m, (char *)"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; -} - -/* 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 - -/* Profile */ -#if CYTHON_PROFILE -static int __Pyx_TraceSetupAndCall(PyCodeObject** code, - PyFrameObject** frame, - PyThreadState* tstate, - const char *funcname, - const char *srcfile, - int firstlineno) { - PyObject *type, *value, *traceback; - int retval; - if (*frame == NULL || !CYTHON_PROFILE_REUSE_FRAME) { - if (*code == NULL) { - *code = __Pyx_createFrameCodeObject(funcname, srcfile, firstlineno); - if (*code == NULL) return 0; - } - *frame = PyFrame_New( - tstate, /*PyThreadState *tstate*/ - *code, /*PyCodeObject *code*/ - __pyx_d, /*PyObject *globals*/ - 0 /*PyObject *locals*/ - ); - if (*frame == NULL) return 0; - if (CYTHON_TRACE && (*frame)->f_trace == NULL) { - Py_INCREF(Py_None); - (*frame)->f_trace = Py_None; - } -#if PY_VERSION_HEX < 0x030400B1 - } else { - (*frame)->f_tstate = tstate; -#endif - } - __Pyx_PyFrame_SetLineNumber(*frame, firstlineno); - retval = 1; - tstate->tracing++; - tstate->use_tracing = 0; - __Pyx_ErrFetchInState(tstate, &type, &value, &traceback); - #if CYTHON_TRACE - if (tstate->c_tracefunc) - retval = tstate->c_tracefunc(tstate->c_traceobj, *frame, PyTrace_CALL, NULL) == 0; - if (retval && tstate->c_profilefunc) - #endif - retval = tstate->c_profilefunc(tstate->c_profileobj, *frame, PyTrace_CALL, NULL) == 0; - tstate->use_tracing = (tstate->c_profilefunc || - (CYTHON_TRACE && tstate->c_tracefunc)); - tstate->tracing--; - if (retval) { - __Pyx_ErrRestoreInState(tstate, type, value, traceback); - return tstate->use_tracing && retval; - } else { - Py_XDECREF(type); - Py_XDECREF(value); - Py_XDECREF(traceback); - return -1; - } -} -static PyCodeObject *__Pyx_createFrameCodeObject(const char *funcname, const char *srcfile, int firstlineno) { - PyObject *py_srcfile = 0; - PyObject *py_funcname = 0; - PyCodeObject *py_code = 0; - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); - py_srcfile = PyString_FromString(srcfile); - #else - py_funcname = PyUnicode_FromString(funcname); - py_srcfile = PyUnicode_FromString(srcfile); - #endif - if (!py_funcname | !py_srcfile) goto bad; - py_code = PyCode_New( - 0, - #if PY_MAJOR_VERSION >= 3 - 0, - #endif - 0, - 0, - CO_OPTIMIZED | CO_NEWLOCALS, - __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,*/ - firstlineno, - __pyx_empty_bytes /*PyObject *lnotab*/ - ); -bad: - Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); - return py_code; -} -#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; -} - -/* 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; -} - -/* 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; - } - } - } -} - -/* BufferGetAndValidate */ - static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) { - if (unlikely(info->buf == NULL)) return; - if (info->suboffsets == __Pyx_minusones) info->suboffsets = NULL; - __Pyx_ReleaseBuffer(info); -} -static void __Pyx_ZeroBuffer(Py_buffer* buf) { - buf->buf = NULL; - buf->obj = NULL; - buf->strides = __Pyx_zeros; - buf->shape = __Pyx_zeros; - buf->suboffsets = __Pyx_minusones; -} -static int __Pyx__GetBufferAndValidate( - Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, - int nd, int cast, __Pyx_BufFmt_StackElem* stack) -{ - buf->buf = NULL; - if (unlikely(__Pyx_GetBuffer(obj, buf, flags) == -1)) { - __Pyx_ZeroBuffer(buf); - return -1; - } - if (unlikely(buf->ndim != nd)) { - PyErr_Format(PyExc_ValueError, - "Buffer has wrong number of dimensions (expected %d, got %d)", - nd, buf->ndim); - goto fail; - } - if (!cast) { - __Pyx_BufFmt_Context ctx; - __Pyx_BufFmt_Init(&ctx, stack, dtype); - if (!__Pyx_BufFmt_CheckString(&ctx, buf->format)) goto fail; - } - if (unlikely((unsigned)buf->itemsize != dtype->size)) { - PyErr_Format(PyExc_ValueError, - "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "d byte%s) does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "d byte%s)", - buf->itemsize, (buf->itemsize > 1) ? "s" : "", - dtype->name, (Py_ssize_t)dtype->size, (dtype->size > 1) ? "s" : ""); - goto fail; - } - if (buf->suboffsets == NULL) buf->suboffsets = __Pyx_minusones; - return 0; -fail:; - __Pyx_SafeReleaseBuffer(buf); - return -1; -} - -/* PyIntBinop */ - #if !CYTHON_COMPILING_IN_PYPY -static PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED int inplace) { - if (op1 == op2) { - Py_RETURN_TRUE; - } - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_CheckExact(op1))) { - const long b = intval; - long a = PyInt_AS_LONG(op1); - if (a == b) { - Py_RETURN_TRUE; - } else { - Py_RETURN_FALSE; - } - } - #endif - #if CYTHON_USE_PYLONG_INTERNALS - if (likely(PyLong_CheckExact(op1))) { - const long b = intval; - long a; - 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; - } - 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; - } - 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; - } - 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; - } - 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; - } - 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; - } - CYTHON_FALLTHROUGH; - #if PyLong_SHIFT < 30 && PyLong_SHIFT != 15 - default: return PyLong_Type.tp_richcompare(op1, op2, Py_EQ); - #else - default: Py_RETURN_FALSE; - #endif - } - } - if (a == b) { - Py_RETURN_TRUE; - } else { - Py_RETURN_FALSE; - } - } - #endif - if (PyFloat_CheckExact(op1)) { - const long b = intval; - double a = PyFloat_AS_DOUBLE(op1); - if ((double)a == (double)b) { - Py_RETURN_TRUE; - } else { - Py_RETURN_FALSE; - } - } - return PyObject_RichCompare(op1, op2, Py_EQ); -} -#endif - -/* GetModuleGlobalName */ - static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name) { - 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); - if (likely(result)) { - Py_INCREF(result); - } else if (unlikely(PyErr_Occurred())) { - result = NULL; - } else { -#else - result = PyDict_GetItem(__pyx_d, name); - if (likely(result)) { - Py_INCREF(result); - } else { -#endif -#else - result = PyObject_GetItem(__pyx_d, name); - if (!result) { - PyErr_Clear(); -#endif - result = __Pyx_GetBuiltinName(name); - } - return result; -} - -/* PyIntBinop */ - #if !CYTHON_COMPILING_IN_PYPY -static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED int inplace) { - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_CheckExact(op1))) { - const long b = intval; - long x; - long a = PyInt_AS_LONG(op1); - x = (long)((unsigned long)a + b); - if (likely((x^a) >= 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 - -/* 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 - -/* 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; -} - -/* BufferFallbackError */ - static void __Pyx_RaiseBufferFallbackError(void) { - PyErr_SetString(PyExc_ValueError, - "Buffer acquisition failed on assignment; and then reacquiring the old buffer failed too!"); -} - -/* PyIntBinop */ - #if !CYTHON_COMPILING_IN_PYPY -static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED int inplace) { - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_CheckExact(op1))) { - const long b = intval; - long x; - long a = PyInt_AS_LONG(op1); - x = (long)((unsigned long)a - b); - if (likely((x^a) >= 0 || (x^~b) >= 0)) - return PyInt_FromLong(x); - return PyLong_Type.tp_as_number->nb_subtract(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_subtract(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("subtract", return NULL) - result = ((double)a) - (double)b; - PyFPE_END_PROTECT(result) - return PyFloat_FromDouble(result); - } - return (inplace ? PyNumber_InPlaceSubtract : PyNumber_Subtract)(op1, op2); -} -#endif - -/* 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((0 <= wrapped_i) & (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((0 <= wrapped_i) & (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((n >= 0) & (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((n >= 0) & (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 - -/* 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))); - 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)meth)) (self, args, nargs, NULL); - } else { - return (*((__Pyx_PyCFunctionFast)meth)) (self, args, nargs); - } -} -#endif - -/* PyFunctionFastCall */ - #if CYTHON_FAST_PYCALL -#include "frameobject.h" -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 = f->f_localsplus; - 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, int 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, nargs, - k, (int)nk, - d, (int)nd, kwdefs, closure); -#else - result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, - args, 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 - -/* 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_TypeCheck(func, __pyx_CyFunctionType))) { -#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 - -/* 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()) { - PyObject* args = PyTuple_Pack(1, key); - if (likely(args)) - PyErr_SetObject(PyExc_KeyError, args); - Py_XDECREF(args); - } - return NULL; - } - Py_INCREF(value); - return value; -} -#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"); -} - -/* RaiseNoneIterError */ - static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -} - -/* SaveResetException */ - #if CYTHON_FAST_THREAD_STATE -static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { - #if PY_VERSION_HEX >= 0x030700A2 - *type = tstate->exc_state.exc_type; - *value = tstate->exc_state.exc_value; - *tb = tstate->exc_state.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 PY_VERSION_HEX >= 0x030700A2 - tmp_type = tstate->exc_state.exc_type; - tmp_value = tstate->exc_state.exc_value; - tmp_tb = tstate->exc_state.exc_traceback; - tstate->exc_state.exc_type = type; - tstate->exc_state.exc_value = value; - tstate->exc_state.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 PY_VERSION_HEX >= 0x030700A2 - tmp_type = tstate->exc_state.exc_type; - tmp_value = tstate->exc_state.exc_value; - tmp_tb = tstate->exc_state.exc_traceback; - tstate->exc_state.exc_type = local_type; - tstate->exc_state.exc_value = local_value; - tstate->exc_state.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; -} - -/* 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, 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; -} - -/* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK -static int __Pyx_CLineForTraceback(CYTHON_UNUSED 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)) { - use_cline = __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 (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); - 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 - - - /* 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;\ - } - -/* Print */ - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION < 3 -static PyObject *__Pyx_GetStdout(void) { - PyObject *f = PySys_GetObject((char *)"stdout"); - if (!f) { - PyErr_SetString(PyExc_RuntimeError, "lost sys.stdout"); - } - return f; -} -static int __Pyx_Print(PyObject* f, PyObject *arg_tuple, int newline) { - int i; - if (!f) { - if (!(f = __Pyx_GetStdout())) - return -1; - } - Py_INCREF(f); - for (i=0; i < PyTuple_GET_SIZE(arg_tuple); i++) { - PyObject* v; - if (PyFile_SoftSpace(f, 1)) { - if (PyFile_WriteString(" ", f) < 0) - goto error; - } - v = PyTuple_GET_ITEM(arg_tuple, i); - if (PyFile_WriteObject(v, f, Py_PRINT_RAW) < 0) - goto error; - if (PyString_Check(v)) { - char *s = PyString_AsString(v); - Py_ssize_t len = PyString_Size(v); - if (len > 0) { - switch (s[len-1]) { - case ' ': break; - case '\f': case '\r': case '\n': case '\t': case '\v': - PyFile_SoftSpace(f, 0); - break; - default: break; - } - } - } - } - if (newline) { - if (PyFile_WriteString("\n", f) < 0) - goto error; - PyFile_SoftSpace(f, 0); - } - Py_DECREF(f); - return 0; -error: - Py_DECREF(f); - return -1; -} -#else -static int __Pyx_Print(PyObject* stream, PyObject *arg_tuple, int newline) { - PyObject* kwargs = 0; - PyObject* result = 0; - PyObject* end_string; - if (unlikely(!__pyx_print)) { - __pyx_print = PyObject_GetAttr(__pyx_b, __pyx_n_s_print); - if (!__pyx_print) - return -1; - } - if (stream) { - kwargs = PyDict_New(); - if (unlikely(!kwargs)) - return -1; - if (unlikely(PyDict_SetItem(kwargs, __pyx_n_s_file, stream) < 0)) - goto bad; - if (!newline) { - end_string = PyUnicode_FromStringAndSize(" ", 1); - if (unlikely(!end_string)) - goto bad; - if (PyDict_SetItem(kwargs, __pyx_n_s_end, end_string) < 0) { - Py_DECREF(end_string); - goto bad; - } - Py_DECREF(end_string); - } - } else if (!newline) { - if (unlikely(!__pyx_print_kwargs)) { - __pyx_print_kwargs = PyDict_New(); - if (unlikely(!__pyx_print_kwargs)) - return -1; - end_string = PyUnicode_FromStringAndSize(" ", 1); - if (unlikely(!end_string)) - return -1; - if (PyDict_SetItem(__pyx_print_kwargs, __pyx_n_s_end, end_string) < 0) { - Py_DECREF(end_string); - return -1; - } - Py_DECREF(end_string); - } - kwargs = __pyx_print_kwargs; - } - result = PyObject_Call(__pyx_print, arg_tuple, kwargs); - if (unlikely(kwargs) && (kwargs != __pyx_print_kwargs)) - Py_DECREF(kwargs); - if (!result) - return -1; - Py_DECREF(result); - return 0; -bad: - if (kwargs != __pyx_print_kwargs) - Py_XDECREF(kwargs); - return -1; -} -#endif - -/* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - const int neg_one = (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) -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_Py_intptr_t(Py_intptr_t value) { - const Py_intptr_t neg_one = (Py_intptr_t) -1, const_zero = (Py_intptr_t) 0; - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(Py_intptr_t) < sizeof(long)) { - return PyInt_FromLong((long) value); - } else if (sizeof(Py_intptr_t) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(Py_intptr_t) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -#endif - } - } else { - if (sizeof(Py_intptr_t) <= sizeof(long)) { - return PyInt_FromLong((long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(Py_intptr_t) <= 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(Py_intptr_t), - little, !is_unsigned); - } -} - -/* 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 = 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 = 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, -1); - } - } 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 = 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 = 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, -1); - } - } 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_enum__NPY_TYPES(enum NPY_TYPES value) { - const enum NPY_TYPES neg_one = (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); - } -} - -/* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - const int neg_one = (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; -} - -/* PrintOne */ - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION < 3 -static int __Pyx_PrintOne(PyObject* f, PyObject *o) { - if (!f) { - if (!(f = __Pyx_GetStdout())) - return -1; - } - Py_INCREF(f); - if (PyFile_SoftSpace(f, 0)) { - if (PyFile_WriteString(" ", f) < 0) - goto error; - } - if (PyFile_WriteObject(o, f, Py_PRINT_RAW) < 0) - goto error; - if (PyFile_WriteString("\n", f) < 0) - goto error; - Py_DECREF(f); - return 0; -error: - Py_DECREF(f); - return -1; - /* the line below is just to avoid C compiler - * warnings about unused functions */ - return __Pyx_Print(f, NULL, 0); -} -#else -static int __Pyx_PrintOne(PyObject* stream, PyObject *o) { - int res; - PyObject* arg_tuple = PyTuple_Pack(1, o); - if (unlikely(!arg_tuple)) - return -1; - res = __Pyx_Print(stream, arg_tuple, 1); - Py_DECREF(arg_tuple); - return res; -} -#endif - -/* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - const long neg_one = (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; -} - -/* 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 CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) { - if (likely(err == exc_type)) return 1; - if (likely(PyExceptionClass_Check(err))) { - return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type); - } - return PyErr_GivenExceptionMatches(err, exc_type); -} -static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) { - if (likely(err == exc_type1 || err == exc_type2)) return 1; - if (likely(PyExceptionClass_Check(err))) { - return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2); - } - return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2)); -} -#endif - -/* 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; -} - -/* ModuleImport */ - #ifndef __PYX_HAVE_RT_ImportModule -#define __PYX_HAVE_RT_ImportModule -static PyObject *__Pyx_ImportModule(const char *name) { - PyObject *py_name = 0; - PyObject *py_module = 0; - py_name = __Pyx_PyIdentifier_FromString(name); - if (!py_name) - goto bad; - py_module = PyImport_Import(py_name); - Py_DECREF(py_name); - return py_module; -bad: - Py_XDECREF(py_name); - return 0; -} -#endif - -/* TypeImport */ - #ifndef __PYX_HAVE_RT_ImportType -#define __PYX_HAVE_RT_ImportType -static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, - size_t size, int strict) -{ - PyObject *py_module = 0; - PyObject *result = 0; - PyObject *py_name = 0; - char warning[200]; - Py_ssize_t basicsize; -#ifdef Py_LIMITED_API - PyObject *py_basicsize; -#endif - py_module = __Pyx_ImportModule(module_name); - if (!py_module) - goto bad; - py_name = __Pyx_PyIdentifier_FromString(class_name); - if (!py_name) - goto bad; - result = PyObject_GetAttr(py_module, py_name); - Py_DECREF(py_name); - py_name = 0; - Py_DECREF(py_module); - py_module = 0; - 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 (!strict && (size_t)basicsize > size) { - PyOS_snprintf(warning, sizeof(warning), - "%s.%s size changed, may indicate binary incompatibility. Expected %zd, got %zd", - module_name, class_name, basicsize, size); - if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad; - } - else if ((size_t)basicsize != size) { - PyErr_Format(PyExc_ValueError, - "%.200s.%.200s has the wrong size, try recompiling. Expected %zd, got %zd", - module_name, class_name, basicsize, size); - goto bad; - } - return (PyTypeObject *)result; -bad: - Py_XDECREF(py_module); - Py_XDECREF(result); - return NULL; -} -#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 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(x); - } -#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 */ diff --git a/tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.cp35-win_amd64.pyd b/tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.cp35-win_amd64.pyd deleted file mode 100755 index 6e7cf5d6c74508543e303a5d46e562f5782bb54e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65024 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 K0OtP>um1uN{sM*o diff --git a/tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.cpython-35m-darwin.so b/tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.cpython-35m-darwin.so deleted file mode 100755 index 1856156e50bda86015e78e58e5372d5c9ca23da5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105420 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 diff --git a/tierpsy/analysis/ske_create/segWormPython/cython_files/curvspace.cpython-35m-darwin.so b/tierpsy/analysis/ske_create/segWormPython/cython_files/curvspace.cpython-35m-darwin.so deleted file mode 100755 index 70182ce2cab7948672c659f622f80789dee6dbea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48240 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: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 -#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 -#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 -#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 (0 && PY_VERSION_HEX >= 0x03050000) - #endif - #ifndef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) - #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 -#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" - #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 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 -#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))))) -#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_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; // PyThread_create_key reports success always -} -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 // TSS (Thread Specific Storage) API -#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)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) -#define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? 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__tierpsy__analysis__ske_create__segWormPython__cython_files__linearSkeleton_cython -#define __PYX_HAVE_API__tierpsy__analysis__ske_create__segWormPython__cython_files__linearSkeleton_cython -/* Early includes */ -#include -#include -#include "numpy/arrayobject.h" -#include "numpy/ufuncobject.h" -#include -#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_DEFAULT 0 -#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))) ) -#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 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)); - 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[] = { - "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx", - "__init__.pxd", - "type.pxd", -}; -/* 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":730 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":731 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":732 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":733 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":737 - * #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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":738 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":739 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":740 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":744 - * #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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":745 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":754 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":755 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":756 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":758 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":759 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":760 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":762 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":763 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":765 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":766 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":767 - * 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; -/* 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 ---*/ - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":769 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":770 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":771 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":773 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< - * - * cdef inline object PyArray_MultiIterNew1(a): - */ -typedef npy_cdouble __pyx_t_5numpy_complex_t; - -/* --- 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); - -/* 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); - -/* 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); - -/* BufferGetAndValidate.proto */ -#define __Pyx_GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack)\ - ((obj == Py_None || obj == NULL) ?\ - (__Pyx_ZeroBuffer(buf), 0) :\ - __Pyx__GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack)) -static int __Pyx__GetBufferAndValidate(Py_buffer* buf, PyObject* obj, - __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack); -static void __Pyx_ZeroBuffer(Py_buffer* buf); -static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info); -static Py_ssize_t __Pyx_minusones[] = { -1, -1, -1, -1, -1, -1, -1, -1 }; -static Py_ssize_t __Pyx_zeros[] = { 0, 0, 0, 0, 0, 0, 0, 0 }; - -/* PyIntBinop.proto */ -#if !CYTHON_COMPILING_IN_PYPY -static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, long intval, int inplace); -#else -#define __Pyx_PyInt_SubtractObjC(op1, op2, intval, inplace)\ - (inplace ? PyNumber_InPlaceSubtract(op1, op2) : PyNumber_Subtract(op1, op2)) -#endif - -/* BufferIndexError.proto */ -static void __Pyx_RaiseBufferIndexError(int axis); - -#define __Pyx_BufPtrStrided1d(type, buf, i0, s0) (type)((char*)buf + i0 * s0) -/* 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 - -/* 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, int nargs, PyObject *kwargs); -#else -#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) -#endif -#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); - -/* 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 - -/* ExtTypeTest.proto */ -static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); - -/* GetModuleGlobalName.proto */ -static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name); - -#define __Pyx_BufPtrStrided2d(type, buf, i0, s0, i1, s1) (type)((char*)buf + i0 * s0 + i1 * s1) -/* RaiseTooManyValuesToUnpack.proto */ -static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); - -/* RaiseNeedMoreValuesToUnpack.proto */ -static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); - -/* RaiseNoneIterError.proto */ -static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); - -/* WriteUnraisableException.proto */ -static void __Pyx_WriteUnraisable(const char *name, int clineno, - int lineno, const char *filename, - int full_traceback, int nogil); - -/* BufferFallbackError.proto */ -static void __Pyx_RaiseBufferFallbackError(void); - -/* 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 - -/* PyIntFromDouble.proto */ -#if PY_MAJOR_VERSION < 3 -static CYTHON_INLINE PyObject* __Pyx_PyInt_FromDouble(double value); -#else -#define __Pyx_PyInt_FromDouble(value) PyLong_FromDouble(value) -#endif - -/* RaiseException.proto */ -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - -/* 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 - -/* 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 - -/* Import.proto */ -static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); - -/* 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); - -/* 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; - -#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 - - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_Py_intptr_t(Py_intptr_t value); - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long 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_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_enum__NPY_TYPES(enum NPY_TYPES value); - -/* CIntFromPy.proto */ -static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); - -/* CIntFromPy.proto */ -static CYTHON_INLINE npy_long __Pyx_PyInt_As_npy_long(PyObject *); - -/* CIntFromPy.proto */ -static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -/* 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) - -/* CheckBinaryVersion.proto */ -static int __Pyx_check_binary_version(void); - -/* PyIdentifierFromString.proto */ -#if !defined(__Pyx_PyIdentifier_FromString) -#if PY_MAJOR_VERSION < 3 - #define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s) -#else - #define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s) -#endif -#endif - -/* ModuleImport.proto */ -static PyObject *__Pyx_ImportModule(const char *name); - -/* TypeImport.proto */ -static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict); - -/* InitStrings.proto */ -static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); - - -/* 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 'cython' */ - -/* Module declarations from 'libc.math' */ - -/* Module declarations from 'tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython' */ -static CYTHON_INLINE double __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff(double, double); /*proto*/ -static int __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_int_max(int, int); /*proto*/ -static int __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_int_min(int, int); /*proto*/ -static CYTHON_INLINE int __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_plusCircIndex(int, int); /*proto*/ -static CYTHON_INLINE int __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_minusCircIndex(int, int); /*proto*/ -static PyObject *__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_min_distance(PyArrayObject *, int, int, int); /*proto*/ -static int __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_wrapOppositeRegion(PyArrayObject *, double, int, int, int, int, int, int); /*proto*/ -static double __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_circAddition(double, double, double); /*proto*/ -static double __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_circSubtraction(double, double, double, double); /*proto*/ -static double __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_getDistance(double, double, double, double); /*proto*/ -static PyObject *__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_getWrappedIndex(int, int, double, int); /*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_int_t = { "int_t", NULL, sizeof(__pyx_t_5numpy_int_t), { 0 }, 0, IS_UNSIGNED(__pyx_t_5numpy_int_t) ? 'U' : 'I', IS_UNSIGNED(__pyx_t_5numpy_int_t), 0 }; -static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_float_t = { "float_t", NULL, sizeof(__pyx_t_5numpy_float_t), { 0 }, 0, 'R', 0, 0 }; -#define __Pyx_MODULE_NAME "tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython" -extern int __pyx_module_is_main_tierpsy__analysis__ske_create__segWormPython__cython_files__linearSkeleton_cython; -int __pyx_module_is_main_tierpsy__analysis__ske_create__segWormPython__cython_files__linearSkeleton_cython = 0; - -/* Implementation of 'tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython' */ -static PyObject *__pyx_builtin_range; -static PyObject *__pyx_builtin_round; -static PyObject *__pyx_builtin_ValueError; -static PyObject *__pyx_builtin_RuntimeError; -static PyObject *__pyx_builtin_ImportError; -static const char __pyx_k_i[] = "i"; -static const char __pyx_k_j[] = "j"; -static const char __pyx_k_m[] = "m"; -static const char __pyx_k_x[] = "x"; -static const char __pyx_k_y[] = "y"; -static const char __pyx_k_d1[] = "d1"; -static const char __pyx_k_d2[] = "d2"; -static const char __pyx_k_ii[] = "ii"; -static const char __pyx_k_j1[] = "j1"; -static const char __pyx_k_j2[] = "j2"; -static const char __pyx_k_np[] = "np"; -static const char __pyx_k_pI[] = "pI"; -static const char __pyx_k_x1[] = "x1"; -static const char __pyx_k_x2[] = "x2"; -static const char __pyx_k_xd[] = "xd"; -static const char __pyx_k_y1[] = "y1"; -static const char __pyx_k_y2[] = "y2"; -static const char __pyx_k_yd[] = "yd"; -static const char __pyx_k_d12[] = "d12"; -static const char __pyx_k_int[] = "int"; -static const char __pyx_k_s1I[] = "s1I"; -static const char __pyx_k_s2I[] = "s2I"; -static const char __pyx_k_tmp[] = "tmp"; -static const char __pyx_k_copy[] = "copy"; -static const char __pyx_k_delW[] = "delW"; -static const char __pyx_k_delX[] = "delX"; -static const char __pyx_k_delY[] = "delY"; -static const char __pyx_k_end1[] = "end1"; -static const char __pyx_k_end2[] = "end2"; -static const char __pyx_k_keep[] = "keep"; -static const char __pyx_k_mag1[] = "mag1"; -static const char __pyx_k_mag2[] = "mag2"; -static const char __pyx_k_main[] = "__main__"; -static const char __pyx_k_maxI[] = "maxI"; -static const char __pyx_k_minI[] = "minI"; -static const char __pyx_k_size[] = "size"; -static const char __pyx_k_test[] = "__test__"; -static const char __pyx_k_ISMAX[] = "ISMAX"; -static const char __pyx_k_ISMIN[] = "ISMIN"; -static const char __pyx_k_SIDE1[] = "SIDE1"; -static const char __pyx_k_SIDE2[] = "SIDE2"; -static const char __pyx_k_dtype[] = "dtype"; -static const char __pyx_k_float[] = "float"; -static const char __pyx_k_index[] = "index"; -static const char __pyx_k_nextI[] = "nextI"; -static const char __pyx_k_numpy[] = "numpy"; -static const char __pyx_k_range[] = "range"; -static const char __pyx_k_round[] = "round"; -static const char __pyx_k_size1[] = "size1"; -static const char __pyx_k_size2[] = "size2"; -static const char __pyx_k_xprev[] = "xprev"; -static const char __pyx_k_yprev[] = "yprev"; -static const char __pyx_k_zeros[] = "zeros"; -static const char __pyx_k_arange[] = "arange"; -static const char __pyx_k_dist_j[] = "dist_j"; -static const char __pyx_k_iSortC[] = "iSortC"; -static const char __pyx_k_import[] = "__import__"; -static const char __pyx_k_length[] = "length"; -static const char __pyx_k_pSortC[] = "pSortC"; -static const char __pyx_k_points[] = "points"; -static const char __pyx_k_resize[] = "resize"; -static const char __pyx_k_side12[] = "side12"; -static const char __pyx_k_start1[] = "start1"; -static const char __pyx_k_start2[] = "start2"; -static const char __pyx_k_widths[] = "widths"; -static const char __pyx_k_argsort[] = "argsort"; -static const char __pyx_k_cWidths[] = "cWidths"; -static const char __pyx_k_contour[] = "contour"; -static const char __pyx_k_cur_ind[] = "cur_ind"; -static const char __pyx_k_dnj12_0[] = "dnj12_0"; -static const char __pyx_k_dnj12_1[] = "dnj12_1"; -static const char __pyx_k_end_ind[] = "end_ind"; -static const char __pyx_k_is2Wrap[] = "is2Wrap"; -static const char __pyx_k_lexsort[] = "lexsort"; -static const char __pyx_k_max_ind[] = "max_ind"; -static const char __pyx_k_min_ind[] = "min_ind"; -static const char __pyx_k_next_j1[] = "next_j1"; -static const char __pyx_k_next_j2[] = "next_j2"; -static const char __pyx_k_ske_ind[] = "ske_ind"; -static const char __pyx_k_FLAG_MAX[] = "FLAG_MAX"; -static const char __pyx_k_end_ind1[] = "end_ind1"; -static const char __pyx_k_end_ind2[] = "end_ind2"; -static const char __pyx_k_head_end[] = "head_end"; -static const char __pyx_k_head_ind[] = "head_ind"; -static const char __pyx_k_n_interp[] = "n_interp"; -static const char __pyx_k_near_ind[] = "near_ind"; -static const char __pyx_k_newTotal[] = "newTotal"; -static const char __pyx_k_skeleton[] = "skeleton"; -static const char __pyx_k_tail_end[] = "tail_end"; -static const char __pyx_k_tail_ind[] = "tail_ind"; -static const char __pyx_k_buff_size[] = "buff_size"; -static const char __pyx_k_cSkeleton[] = "cSkeleton"; -static const char __pyx_k_cnt1_size[] = "cnt1_size"; -static const char __pyx_k_cnt2_size[] = "cnt2_size"; -static const char __pyx_k_cnt_side1[] = "cnt_side1"; -static const char __pyx_k_cnt_side2[] = "cnt_side2"; -static const char __pyx_k_dSkeleton[] = "dSkeleton"; -static const char __pyx_k_end_side1[] = "end_side1"; -static const char __pyx_k_end_side2[] = "end_side2"; -static const char __pyx_k_inc_side1[] = "inc_side1"; -static const char __pyx_k_inc_side2[] = "inc_side2"; -static const char __pyx_k_near_ind1[] = "near_ind1"; -static const char __pyx_k_near_ind2[] = "near_ind2"; -static const char __pyx_k_scale1to2[] = "scale1to2"; -static const char __pyx_k_scale2to1[] = "scale2to1"; -static const char __pyx_k_start_ind[] = "start_ind"; -static const char __pyx_k_wrap_end1[] = "wrap_end1"; -static const char __pyx_k_wrap_end2[] = "wrap_end2"; -static const char __pyx_k_ValueError[] = "ValueError"; -static const char __pyx_k_bend_side1[] = "bend_side1"; -static const char __pyx_k_bend_side2[] = "bend_side2"; -static const char __pyx_k_cnt_widths[] = "cnt_widths"; -static const char __pyx_k_delta_dist[] = "delta_dist"; -static const char __pyx_k_head_start[] = "head_start"; -static const char __pyx_k_last_index[] = "last_index"; -static const char __pyx_k_point_dist[] = "point_dist"; -static const char __pyx_k_points_ind[] = "points_ind"; -static const char __pyx_k_prev_width[] = "prev_width"; -static const char __pyx_k_search_len[] = "search_len"; -static const char __pyx_k_side1_size[] = "side1_size"; -static const char __pyx_k_side2_size[] = "side2_size"; -static const char __pyx_k_start_ind1[] = "start_ind1"; -static const char __pyx_k_start_ind2[] = "start_ind2"; -static const char __pyx_k_tail_start[] = "tail_start"; -static const char __pyx_k_zeros_like[] = "zeros_like"; -static const char __pyx_k_ImportError[] = "ImportError"; -static const char __pyx_k_dist_next_j[] = "dist_next_j"; -static const char __pyx_k_skeletonize[] = "skeletonize"; -static const char __pyx_k_start_side1[] = "start_side1"; -static const char __pyx_k_start_side2[] = "start_side2"; -static const char __pyx_k_wrap_start1[] = "wrap_start1"; -static const char __pyx_k_wrap_start2[] = "wrap_start2"; -static const char __pyx_k_RuntimeError[] = "RuntimeError"; -static const char __pyx_k_max_opposite[] = "max_opposite"; -static const char __pyx_k_min_opposite[] = "min_opposite"; -static const char __pyx_k_opposite_ind[] = "opposite_ind"; -static const char __pyx_k_total_points[] = "total_points"; -static const char __pyx_k_x_last_index[] = "x_last_index"; -static const char __pyx_k_cleanSkeleton[] = "cleanSkeleton"; -static const char __pyx_k_head_tail_seg[] = "head_tail_seg"; -static const char __pyx_k_number_points[] = "number_points"; -static const char __pyx_k_worm_seg_size[] = "worm_seg_size"; -static const char __pyx_k_chain_code_len[] = "chain_code_len"; -static const char __pyx_k_last_chain_len[] = "last_chain_len"; -static const char __pyx_k_maxOpoints_ind[] = "maxOpoints_ind"; -static const char __pyx_k_minOpoints_ind[] = "minOpoints_ind"; -static const char __pyx_k_points_ind_out[] = "points_ind_out"; -static const char __pyx_k_vec_last_index[] = "vec_last_index"; -static const char __pyx_k_first_chain_len[] = "first_chain_len"; -static const char __pyx_k_interbend_side1[] = "interbend_side1"; -static const char __pyx_k_interbend_side2[] = "interbend_side2"; -static const char __pyx_k_worm_seg_length[] = "worm_seg_length"; -static const char __pyx_k_last_chain_index[] = "last_chain_index"; -static const char __pyx_k_last_index_chain[] = "last_index_chain"; -static const char __pyx_k_total_interbends[] = "total_interbends"; -static const char __pyx_k_circNearestPoints[] = "circNearestPoints"; -static const char __pyx_k_getHeadTailRegion[] = "getHeadTailRegion"; -static const char __pyx_k_getInterBendSeeds[] = "getInterBendSeeds"; -static const char __pyx_k_circOpposingPoints[] = "circOpposingPoints"; -static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; -static const char __pyx_k_maxSkeletonOverlap[] = "maxSkeletonOverlap"; -static const char __pyx_k_chainCodeLength2Index[] = "chainCodeLength2Index"; -static const char __pyx_k_circOpposingNearestPoints[] = "circOpposingNearestPoints"; -static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; -static const char __pyx_k_Created_on_Sun_May_24_19_42_56[] = "\nCreated on Sun May 24 19:42:56 2015\n@author: ajaver\n"; -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_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; -static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; -static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; -static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; -static const char __pyx_k_tierpsy_analysis_ske_create_segW[] = "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx"; -static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; -static const char __pyx_k_tierpsy_analysis_ske_create_segW_2[] = "tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython"; -static PyObject *__pyx_n_s_FLAG_MAX; -static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; -static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; -static PyObject *__pyx_n_s_ISMAX; -static PyObject *__pyx_n_s_ISMIN; -static PyObject *__pyx_n_s_ImportError; -static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; -static PyObject *__pyx_n_s_RuntimeError; -static PyObject *__pyx_n_s_SIDE1; -static PyObject *__pyx_n_s_SIDE2; -static PyObject *__pyx_n_s_ValueError; -static PyObject *__pyx_n_s_arange; -static PyObject *__pyx_n_s_argsort; -static PyObject *__pyx_n_s_bend_side1; -static PyObject *__pyx_n_s_bend_side2; -static PyObject *__pyx_n_s_buff_size; -static PyObject *__pyx_n_s_cSkeleton; -static PyObject *__pyx_n_s_cWidths; -static PyObject *__pyx_n_s_chainCodeLength2Index; -static PyObject *__pyx_n_s_chain_code_len; -static PyObject *__pyx_n_s_circNearestPoints; -static PyObject *__pyx_n_s_circOpposingNearestPoints; -static PyObject *__pyx_n_s_circOpposingPoints; -static PyObject *__pyx_n_s_cleanSkeleton; -static PyObject *__pyx_n_s_cline_in_traceback; -static PyObject *__pyx_n_s_cnt1_size; -static PyObject *__pyx_n_s_cnt2_size; -static PyObject *__pyx_n_s_cnt_side1; -static PyObject *__pyx_n_s_cnt_side2; -static PyObject *__pyx_n_s_cnt_widths; -static PyObject *__pyx_n_s_contour; -static PyObject *__pyx_n_s_copy; -static PyObject *__pyx_n_s_cur_ind; -static PyObject *__pyx_n_s_d1; -static PyObject *__pyx_n_s_d12; -static PyObject *__pyx_n_s_d2; -static PyObject *__pyx_n_s_dSkeleton; -static PyObject *__pyx_n_s_delW; -static PyObject *__pyx_n_s_delX; -static PyObject *__pyx_n_s_delY; -static PyObject *__pyx_n_s_delta_dist; -static PyObject *__pyx_n_s_dist_j; -static PyObject *__pyx_n_s_dist_next_j; -static PyObject *__pyx_n_s_dnj12_0; -static PyObject *__pyx_n_s_dnj12_1; -static PyObject *__pyx_n_s_dtype; -static PyObject *__pyx_n_s_end1; -static PyObject *__pyx_n_s_end2; -static PyObject *__pyx_n_s_end_ind; -static PyObject *__pyx_n_s_end_ind1; -static PyObject *__pyx_n_s_end_ind2; -static PyObject *__pyx_n_s_end_side1; -static PyObject *__pyx_n_s_end_side2; -static PyObject *__pyx_n_s_first_chain_len; -static PyObject *__pyx_n_s_float; -static PyObject *__pyx_n_s_getHeadTailRegion; -static PyObject *__pyx_n_s_getInterBendSeeds; -static PyObject *__pyx_n_s_head_end; -static PyObject *__pyx_n_s_head_ind; -static PyObject *__pyx_n_s_head_start; -static PyObject *__pyx_n_s_head_tail_seg; -static PyObject *__pyx_n_s_i; -static PyObject *__pyx_n_s_iSortC; -static PyObject *__pyx_n_s_ii; -static PyObject *__pyx_n_s_import; -static PyObject *__pyx_n_s_inc_side1; -static PyObject *__pyx_n_s_inc_side2; -static PyObject *__pyx_n_s_index; -static PyObject *__pyx_n_s_int; -static PyObject *__pyx_n_s_interbend_side1; -static PyObject *__pyx_n_s_interbend_side2; -static PyObject *__pyx_n_s_is2Wrap; -static PyObject *__pyx_n_s_j; -static PyObject *__pyx_n_s_j1; -static PyObject *__pyx_n_s_j2; -static PyObject *__pyx_n_s_keep; -static PyObject *__pyx_n_s_last_chain_index; -static PyObject *__pyx_n_s_last_chain_len; -static PyObject *__pyx_n_s_last_index; -static PyObject *__pyx_n_s_last_index_chain; -static PyObject *__pyx_n_s_length; -static PyObject *__pyx_n_s_lexsort; -static PyObject *__pyx_n_s_m; -static PyObject *__pyx_n_s_mag1; -static PyObject *__pyx_n_s_mag2; -static PyObject *__pyx_n_s_main; -static PyObject *__pyx_n_s_maxI; -static PyObject *__pyx_n_s_maxOpoints_ind; -static PyObject *__pyx_n_s_maxSkeletonOverlap; -static PyObject *__pyx_n_s_max_ind; -static PyObject *__pyx_n_s_max_opposite; -static PyObject *__pyx_n_s_minI; -static PyObject *__pyx_n_s_minOpoints_ind; -static PyObject *__pyx_n_s_min_ind; -static PyObject *__pyx_n_s_min_opposite; -static PyObject *__pyx_n_s_n_interp; -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_near_ind; -static PyObject *__pyx_n_s_near_ind1; -static PyObject *__pyx_n_s_near_ind2; -static PyObject *__pyx_n_s_newTotal; -static PyObject *__pyx_n_s_nextI; -static PyObject *__pyx_n_s_next_j1; -static PyObject *__pyx_n_s_next_j2; -static PyObject *__pyx_n_s_np; -static PyObject *__pyx_n_s_number_points; -static PyObject *__pyx_n_s_numpy; -static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; -static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; -static PyObject *__pyx_n_s_opposite_ind; -static PyObject *__pyx_n_s_pI; -static PyObject *__pyx_n_s_pSortC; -static PyObject *__pyx_n_s_point_dist; -static PyObject *__pyx_n_s_points; -static PyObject *__pyx_n_s_points_ind; -static PyObject *__pyx_n_s_points_ind_out; -static PyObject *__pyx_n_s_prev_width; -static PyObject *__pyx_n_s_range; -static PyObject *__pyx_n_s_resize; -static PyObject *__pyx_n_s_round; -static PyObject *__pyx_n_s_s1I; -static PyObject *__pyx_n_s_s2I; -static PyObject *__pyx_n_s_scale1to2; -static PyObject *__pyx_n_s_scale2to1; -static PyObject *__pyx_n_s_search_len; -static PyObject *__pyx_n_s_side12; -static PyObject *__pyx_n_s_side1_size; -static PyObject *__pyx_n_s_side2_size; -static PyObject *__pyx_n_s_size; -static PyObject *__pyx_n_s_size1; -static PyObject *__pyx_n_s_size2; -static PyObject *__pyx_n_s_ske_ind; -static PyObject *__pyx_n_s_skeleton; -static PyObject *__pyx_n_s_skeletonize; -static PyObject *__pyx_n_s_start1; -static PyObject *__pyx_n_s_start2; -static PyObject *__pyx_n_s_start_ind; -static PyObject *__pyx_n_s_start_ind1; -static PyObject *__pyx_n_s_start_ind2; -static PyObject *__pyx_n_s_start_side1; -static PyObject *__pyx_n_s_start_side2; -static PyObject *__pyx_n_s_tail_end; -static PyObject *__pyx_n_s_tail_ind; -static PyObject *__pyx_n_s_tail_start; -static PyObject *__pyx_n_s_test; -static PyObject *__pyx_kp_s_tierpsy_analysis_ske_create_segW; -static PyObject *__pyx_n_s_tierpsy_analysis_ske_create_segW_2; -static PyObject *__pyx_n_s_tmp; -static PyObject *__pyx_n_s_total_interbends; -static PyObject *__pyx_n_s_total_points; -static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; -static PyObject *__pyx_n_s_vec_last_index; -static PyObject *__pyx_n_s_widths; -static PyObject *__pyx_n_s_worm_seg_length; -static PyObject *__pyx_n_s_worm_seg_size; -static PyObject *__pyx_n_s_wrap_end1; -static PyObject *__pyx_n_s_wrap_end2; -static PyObject *__pyx_n_s_wrap_start1; -static PyObject *__pyx_n_s_wrap_start2; -static PyObject *__pyx_n_s_x; -static PyObject *__pyx_n_s_x1; -static PyObject *__pyx_n_s_x2; -static PyObject *__pyx_n_s_x_last_index; -static PyObject *__pyx_n_s_xd; -static PyObject *__pyx_n_s_xprev; -static PyObject *__pyx_n_s_y; -static PyObject *__pyx_n_s_y1; -static PyObject *__pyx_n_s_y2; -static PyObject *__pyx_n_s_yd; -static PyObject *__pyx_n_s_yprev; -static PyObject *__pyx_n_s_zeros; -static PyObject *__pyx_n_s_zeros_like; -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_chainCodeLength2Index(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_length, PyArrayObject *__pyx_v_chain_code_len); /* proto */ -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_2circOpposingPoints(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_points_ind, int __pyx_v_start_ind, int __pyx_v_end_ind, int __pyx_v_vec_last_index, PyArrayObject *__pyx_v_chain_code_len); /* proto */ -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_4circNearestPoints(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_points_ind, PyArrayObject *__pyx_v_min_ind, PyArrayObject *__pyx_v_max_ind, PyArrayObject *__pyx_v_x); /* proto */ -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_6circOpposingNearestPoints(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_points_ind, PyArrayObject *__pyx_v_x, int __pyx_v_start_ind, int __pyx_v_end_ind, double __pyx_v_search_len, PyArrayObject *__pyx_v_chain_code_len); /* proto */ -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_8getHeadTailRegion(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_head_ind, int __pyx_v_tail_ind, PyArrayObject *__pyx_v_chain_code_len, double __pyx_v_worm_seg_length); /* proto */ -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_10getInterBendSeeds(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_bend_side1, PyArrayObject *__pyx_v_bend_side2, PyArrayObject *__pyx_v_contour, PyArrayObject *__pyx_v_chain_code_len); /* proto */ -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_12skeletonize(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_start_side1, int __pyx_v_end_side1, int __pyx_v_inc_side1, int __pyx_v_start_side2, int __pyx_v_end_side2, int __pyx_v_inc_side2, PyArrayObject *__pyx_v_cnt_side1, PyArrayObject *__pyx_v_cnt_side2); /* proto */ -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_14cleanSkeleton(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_skeleton, PyArrayObject *__pyx_v_widths, double __pyx_v_worm_seg_size); /* 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 PyObject *__pyx_int_0; -static PyObject *__pyx_int_1; -static PyObject *__pyx_int_2; -static PyObject *__pyx_int_neg_1; -static PyObject *__pyx_slice_; -static PyObject *__pyx_slice__2; -static PyObject *__pyx_slice__3; -static PyObject *__pyx_slice__5; -static PyObject *__pyx_slice__7; -static PyObject *__pyx_tuple__4; -static PyObject *__pyx_tuple__6; -static PyObject *__pyx_tuple__8; -static PyObject *__pyx_tuple__9; -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__19; -static PyObject *__pyx_tuple__21; -static PyObject *__pyx_tuple__23; -static PyObject *__pyx_tuple__25; -static PyObject *__pyx_tuple__27; -static PyObject *__pyx_tuple__29; -static PyObject *__pyx_tuple__31; -static PyObject *__pyx_codeobj__18; -static PyObject *__pyx_codeobj__20; -static PyObject *__pyx_codeobj__22; -static PyObject *__pyx_codeobj__24; -static PyObject *__pyx_codeobj__26; -static PyObject *__pyx_codeobj__28; -static PyObject *__pyx_codeobj__30; -static PyObject *__pyx_codeobj__32; -/* Late includes */ - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":18 - * - * - * cdef inline double absDiff(double a, double b): # <<<<<<<<<<<<<< - * return a-b if a>b else b-a - * - */ - -static CYTHON_INLINE double __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff(double __pyx_v_a, double __pyx_v_b) { - double __pyx_r; - __Pyx_RefNannyDeclarations - double __pyx_t_1; - __Pyx_RefNannySetupContext("absDiff", 0); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":19 - * - * cdef inline double absDiff(double a, double b): - * return a-b if a>b else b-a # <<<<<<<<<<<<<< - * - * #for some weird reason libc.math does not have an integer max and min functions (the python ones are slow) - */ - if (((__pyx_v_a > __pyx_v_b) != 0)) { - __pyx_t_1 = (__pyx_v_a - __pyx_v_b); - } else { - __pyx_t_1 = (__pyx_v_b - __pyx_v_a); - } - __pyx_r = __pyx_t_1; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":18 - * - * - * cdef inline double absDiff(double a, double b): # <<<<<<<<<<<<<< - * return a-b if a>b else b-a - * - */ - - /* function exit code */ - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":22 - * - * #for some weird reason libc.math does not have an integer max and min functions (the python ones are slow) - * cdef int int_max(int a, int b): # <<<<<<<<<<<<<< - * return a if a>b else b; - * cdef int int_min(int a, int b): - */ - -static int __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_int_max(int __pyx_v_a, int __pyx_v_b) { - int __pyx_r; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - __Pyx_RefNannySetupContext("int_max", 0); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":23 - * #for some weird reason libc.math does not have an integer max and min functions (the python ones are slow) - * cdef int int_max(int a, int b): - * return a if a>b else b; # <<<<<<<<<<<<<< - * cdef int int_min(int a, int b): - * return a if a __pyx_v_b) != 0)) { - __pyx_t_1 = __pyx_v_a; - } else { - __pyx_t_1 = __pyx_v_b; - } - __pyx_r = __pyx_t_1; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":22 - * - * #for some weird reason libc.math does not have an integer max and min functions (the python ones are slow) - * cdef int int_max(int a, int b): # <<<<<<<<<<<<<< - * return a if a>b else b; - * cdef int int_min(int a, int b): - */ - - /* function exit code */ - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":24 - * cdef int int_max(int a, int b): - * return a if a>b else b; - * cdef int int_min(int a, int b): # <<<<<<<<<<<<<< - * return a if ab else b; - * cdef int int_min(int a, int b): - * return a if ab else b; - * cdef int int_min(int a, int b): # <<<<<<<<<<<<<< - * return a if a 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "chainCodeLength2Index") < 0)) __PYX_ERR(0, 27, __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_length = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_length == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 27, __pyx_L3_error) - __pyx_v_chain_code_len = ((PyArrayObject *)values[1]); - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("chainCodeLength2Index", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 27, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython.chainCodeLength2Index", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_chain_code_len), __pyx_ptype_5numpy_ndarray, 1, "chain_code_len", 0))) __PYX_ERR(0, 27, __pyx_L1_error) - __pyx_r = __pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_chainCodeLength2Index(__pyx_self, __pyx_v_length, __pyx_v_chain_code_len); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_chainCodeLength2Index(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_length, PyArrayObject *__pyx_v_chain_code_len) { - int __pyx_v_last_index_chain; - int __pyx_v_index; - double __pyx_v_dist_j; - double __pyx_v_dist_next_j; - int __pyx_v_j; - __Pyx_LocalBuf_ND __pyx_pybuffernd_chain_code_len; - __Pyx_Buffer __pyx_pybuffer_chain_code_len; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - int __pyx_t_3; - Py_ssize_t __pyx_t_4; - int __pyx_t_5; - Py_ssize_t __pyx_t_6; - __pyx_t_5numpy_float64_t __pyx_t_7; - Py_ssize_t __pyx_t_8; - Py_ssize_t __pyx_t_9; - Py_ssize_t __pyx_t_10; - __pyx_t_5numpy_float64_t __pyx_t_11; - int __pyx_t_12; - Py_ssize_t __pyx_t_13; - Py_ssize_t __pyx_t_14; - Py_ssize_t __pyx_t_15; - __Pyx_RefNannySetupContext("chainCodeLength2Index", 0); - __pyx_pybuffer_chain_code_len.pybuffer.buf = NULL; - __pyx_pybuffer_chain_code_len.refcount = 0; - __pyx_pybuffernd_chain_code_len.data = NULL; - __pyx_pybuffernd_chain_code_len.rcbuffer = &__pyx_pybuffer_chain_code_len; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer, (PyObject*)__pyx_v_chain_code_len, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 27, __pyx_L1_error) - } - __pyx_pybuffernd_chain_code_len.diminfo[0].strides = __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_chain_code_len.diminfo[0].shape = __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.shape[0]; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":52 - * % notices on any copies of the Software. - * ''' - * cdef int last_index_chain = chain_code_len.size-1; # <<<<<<<<<<<<<< - * cdef int index; - * cdef double dist_j, dist_next_j; - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_chain_code_len), __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_t_1, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 52, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_last_index_chain = __pyx_t_3; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":58 - * - * #//% Is the length too small? - * if(length < chain_code_len[0]): # <<<<<<<<<<<<<< - * #//% Find the closest index. - * if (length / chain_code_len[0] < 0.5): - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 58, __pyx_L1_error) - } - __pyx_t_4 = 0; - __pyx_t_3 = -1; - if (__pyx_t_4 < 0) { - __pyx_t_4 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_4 < 0)) __pyx_t_3 = 0; - } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_3 = 0; - if (unlikely(__pyx_t_3 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_3); - __PYX_ERR(0, 58, __pyx_L1_error) - } - __pyx_t_5 = ((__pyx_v_length < (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))) != 0); - if (__pyx_t_5) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":60 - * if(length < chain_code_len[0]): - * #//% Find the closest index. - * if (length / chain_code_len[0] < 0.5): # <<<<<<<<<<<<<< - * index = last_index_chain; - * else: - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 60, __pyx_L1_error) - } - __pyx_t_6 = 0; - __pyx_t_3 = -1; - if (__pyx_t_6 < 0) { - __pyx_t_6 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_6 < 0)) __pyx_t_3 = 0; - } else if (unlikely(__pyx_t_6 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_3 = 0; - if (unlikely(__pyx_t_3 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_3); - __PYX_ERR(0, 60, __pyx_L1_error) - } - __pyx_t_7 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)); - if (unlikely(__pyx_t_7 == 0)) { - PyErr_SetString(PyExc_ZeroDivisionError, "float division"); - __PYX_ERR(0, 60, __pyx_L1_error) - } - __pyx_t_5 = (((__pyx_v_length / __pyx_t_7) < 0.5) != 0); - if (__pyx_t_5) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":61 - * #//% Find the closest index. - * if (length / chain_code_len[0] < 0.5): - * index = last_index_chain; # <<<<<<<<<<<<<< - * else: - * index = 0; - */ - __pyx_v_index = __pyx_v_last_index_chain; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":60 - * if(length < chain_code_len[0]): - * #//% Find the closest index. - * if (length / chain_code_len[0] < 0.5): # <<<<<<<<<<<<<< - * index = last_index_chain; - * else: - */ - goto __pyx_L4; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":63 - * index = last_index_chain; - * else: - * index = 0; # <<<<<<<<<<<<<< - * #//% Is the length too big? - * else: - */ - /*else*/ { - __pyx_v_index = 0; - } - __pyx_L4:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":58 - * - * #//% Is the length too small? - * if(length < chain_code_len[0]): # <<<<<<<<<<<<<< - * #//% Find the closest index. - * if (length / chain_code_len[0] < 0.5): - */ - goto __pyx_L3; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":66 - * #//% Is the length too big? - * else: - * if (length > chain_code_len[last_index_chain]): # <<<<<<<<<<<<<< - * #//% Find the closest index. - * if ((length - chain_code_len[last_index_chain]) / chain_code_len[0] < 0.5): - */ - /*else*/ { - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 66, __pyx_L1_error) - } - __pyx_t_8 = __pyx_v_last_index_chain; - __pyx_t_3 = -1; - if (__pyx_t_8 < 0) { - __pyx_t_8 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_8 < 0)) __pyx_t_3 = 0; - } else if (unlikely(__pyx_t_8 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_3 = 0; - if (unlikely(__pyx_t_3 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_3); - __PYX_ERR(0, 66, __pyx_L1_error) - } - __pyx_t_5 = ((__pyx_v_length > (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))) != 0); - if (__pyx_t_5) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":68 - * if (length > chain_code_len[last_index_chain]): - * #//% Find the closest index. - * if ((length - chain_code_len[last_index_chain]) / chain_code_len[0] < 0.5): # <<<<<<<<<<<<<< - * index = last_index_chain; - * else: - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 68, __pyx_L1_error) - } - __pyx_t_9 = __pyx_v_last_index_chain; - __pyx_t_3 = -1; - if (__pyx_t_9 < 0) { - __pyx_t_9 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_9 < 0)) __pyx_t_3 = 0; - } else if (unlikely(__pyx_t_9 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_3 = 0; - if (unlikely(__pyx_t_3 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_3); - __PYX_ERR(0, 68, __pyx_L1_error) - } - __pyx_t_7 = (__pyx_v_length - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_9, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))); - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 68, __pyx_L1_error) - } - __pyx_t_10 = 0; - __pyx_t_3 = -1; - if (__pyx_t_10 < 0) { - __pyx_t_10 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_10 < 0)) __pyx_t_3 = 0; - } else if (unlikely(__pyx_t_10 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_3 = 0; - if (unlikely(__pyx_t_3 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_3); - __PYX_ERR(0, 68, __pyx_L1_error) - } - __pyx_t_11 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)); - if (unlikely(__pyx_t_11 == 0)) { - PyErr_SetString(PyExc_ZeroDivisionError, "float division"); - __PYX_ERR(0, 68, __pyx_L1_error) - } - __pyx_t_5 = (((__pyx_t_7 / __pyx_t_11) < 0.5) != 0); - if (__pyx_t_5) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":69 - * #//% Find the closest index. - * if ((length - chain_code_len[last_index_chain]) / chain_code_len[0] < 0.5): - * index = last_index_chain; # <<<<<<<<<<<<<< - * else: - * index = 0; - */ - __pyx_v_index = __pyx_v_last_index_chain; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":68 - * if (length > chain_code_len[last_index_chain]): - * #//% Find the closest index. - * if ((length - chain_code_len[last_index_chain]) / chain_code_len[0] < 0.5): # <<<<<<<<<<<<<< - * index = last_index_chain; - * else: - */ - goto __pyx_L6; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":71 - * index = last_index_chain; - * else: - * index = 0; # <<<<<<<<<<<<<< - * #//% Find the closest index. - * else: - */ - /*else*/ { - __pyx_v_index = 0; - } - __pyx_L6:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":66 - * #//% Is the length too big? - * else: - * if (length > chain_code_len[last_index_chain]): # <<<<<<<<<<<<<< - * #//% Find the closest index. - * if ((length - chain_code_len[last_index_chain]) / chain_code_len[0] < 0.5): - */ - goto __pyx_L5; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":77 - * #//% Note: most chain-code lengths advance by at most sqrt(2) at each - * #//% index. But I don't trust IEEE division so I use 1.5 instead. - * j = c_round(length / 1.5); # <<<<<<<<<<<<<< - * #//% Did we jump past the requested length? - * if (j > last_index_chain or length < chain_code_len[j]): - */ - /*else*/ { - __pyx_v_j = ((int)round((__pyx_v_length / 1.5))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":79 - * j = c_round(length / 1.5); - * #//% Did we jump past the requested length? - * if (j > last_index_chain or length < chain_code_len[j]): # <<<<<<<<<<<<<< - * j = 0; - * - */ - __pyx_t_12 = ((__pyx_v_j > __pyx_v_last_index_chain) != 0); - if (!__pyx_t_12) { - } else { - __pyx_t_5 = __pyx_t_12; - goto __pyx_L8_bool_binop_done; - } - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 79, __pyx_L1_error) - } - __pyx_t_13 = __pyx_v_j; - __pyx_t_3 = -1; - if (__pyx_t_13 < 0) { - __pyx_t_13 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_13 < 0)) __pyx_t_3 = 0; - } else if (unlikely(__pyx_t_13 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_3 = 0; - if (unlikely(__pyx_t_3 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_3); - __PYX_ERR(0, 79, __pyx_L1_error) - } - __pyx_t_12 = ((__pyx_v_length < (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))) != 0); - __pyx_t_5 = __pyx_t_12; - __pyx_L8_bool_binop_done:; - if (__pyx_t_5) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":80 - * #//% Did we jump past the requested length? - * if (j > last_index_chain or length < chain_code_len[j]): - * j = 0; # <<<<<<<<<<<<<< - * - * #//% find the closest index. - */ - __pyx_v_j = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":79 - * j = c_round(length / 1.5); - * #//% Did we jump past the requested length? - * if (j > last_index_chain or length < chain_code_len[j]): # <<<<<<<<<<<<<< - * j = 0; - * - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":83 - * - * #//% find the closest index. - * dist_j = absDiff(length, chain_code_len[j]); #//important use fabs, abs will cast the value to integer # <<<<<<<<<<<<<< - * while (j < last_index_chain): - * #//% Is this index closer than the next one? - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 83, __pyx_L1_error) - } - __pyx_t_14 = __pyx_v_j; - __pyx_t_3 = -1; - if (__pyx_t_14 < 0) { - __pyx_t_14 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_14 < 0)) __pyx_t_3 = 0; - } else if (unlikely(__pyx_t_14 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_3 = 0; - if (unlikely(__pyx_t_3 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_3); - __PYX_ERR(0, 83, __pyx_L1_error) - } - __pyx_v_dist_j = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff(__pyx_v_length, (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":84 - * #//% find the closest index. - * dist_j = absDiff(length, chain_code_len[j]); #//important use fabs, abs will cast the value to integer - * while (j < last_index_chain): # <<<<<<<<<<<<<< - * #//% Is this index closer than the next one? - * #//% Note: overlapping points have equal distances. Therefore, if - */ - while (1) { - __pyx_t_5 = ((__pyx_v_j < __pyx_v_last_index_chain) != 0); - if (!__pyx_t_5) break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":88 - * #//% Note: overlapping points have equal distances. Therefore, if - * #//% the distances are equal, we advance. - * dist_next_j = absDiff(length, chain_code_len[j + 1]); # <<<<<<<<<<<<<< - * if (dist_j < dist_next_j): - * break; - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 88, __pyx_L1_error) - } - __pyx_t_15 = (__pyx_v_j + 1); - __pyx_t_3 = -1; - if (__pyx_t_15 < 0) { - __pyx_t_15 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_15 < 0)) __pyx_t_3 = 0; - } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_3 = 0; - if (unlikely(__pyx_t_3 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_3); - __PYX_ERR(0, 88, __pyx_L1_error) - } - __pyx_v_dist_next_j = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff(__pyx_v_length, (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":89 - * #//% the distances are equal, we advance. - * dist_next_j = absDiff(length, chain_code_len[j + 1]); - * if (dist_j < dist_next_j): # <<<<<<<<<<<<<< - * break; - * - */ - __pyx_t_5 = ((__pyx_v_dist_j < __pyx_v_dist_next_j) != 0); - if (__pyx_t_5) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":90 - * dist_next_j = absDiff(length, chain_code_len[j + 1]); - * if (dist_j < dist_next_j): - * break; # <<<<<<<<<<<<<< - * - * #//% Advance. - */ - goto __pyx_L11_break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":89 - * #//% the distances are equal, we advance. - * dist_next_j = absDiff(length, chain_code_len[j + 1]); - * if (dist_j < dist_next_j): # <<<<<<<<<<<<<< - * break; - * - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":93 - * - * #//% Advance. - * dist_j = dist_next_j; # <<<<<<<<<<<<<< - * j = j + 1; - * #//% Record the closest index. - */ - __pyx_v_dist_j = __pyx_v_dist_next_j; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":94 - * #//% Advance. - * dist_j = dist_next_j; - * j = j + 1; # <<<<<<<<<<<<<< - * #//% Record the closest index. - * index = j; - */ - __pyx_v_j = (__pyx_v_j + 1); - } - __pyx_L11_break:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":96 - * j = j + 1; - * #//% Record the closest index. - * index = j; # <<<<<<<<<<<<<< - * return index; - * - */ - __pyx_v_index = __pyx_v_j; - } - __pyx_L5:; - } - __pyx_L3:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":97 - * #//% Record the closest index. - * index = j; - * return index; # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 97, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_r = __pyx_t_2; - __pyx_t_2 = 0; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":27 - * return a if apybuffer); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython.chainCodeLength2Index", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer); - __pyx_L2:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":100 - * - * - * cdef inline int plusCircIndex(int ind, int last_index): # <<<<<<<<<<<<<< - * return ind + 1 if (ind < last_index) else ind - last_index; - * - */ - -static CYTHON_INLINE int __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_plusCircIndex(int __pyx_v_ind, int __pyx_v_last_index) { - int __pyx_r; - __Pyx_RefNannyDeclarations - long __pyx_t_1; - __Pyx_RefNannySetupContext("plusCircIndex", 0); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":101 - * - * cdef inline int plusCircIndex(int ind, int last_index): - * return ind + 1 if (ind < last_index) else ind - last_index; # <<<<<<<<<<<<<< - * - * cdef inline int minusCircIndex(int ind, int last_index): - */ - if (((__pyx_v_ind < __pyx_v_last_index) != 0)) { - __pyx_t_1 = (__pyx_v_ind + 1); - } else { - __pyx_t_1 = (__pyx_v_ind - __pyx_v_last_index); - } - __pyx_r = __pyx_t_1; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":100 - * - * - * cdef inline int plusCircIndex(int ind, int last_index): # <<<<<<<<<<<<<< - * return ind + 1 if (ind < last_index) else ind - last_index; - * - */ - - /* function exit code */ - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":103 - * return ind + 1 if (ind < last_index) else ind - last_index; - * - * cdef inline int minusCircIndex(int ind, int last_index): # <<<<<<<<<<<<<< - * return ind - 1 if (ind > 0) else ind + last_index; - * - */ - -static CYTHON_INLINE int __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_minusCircIndex(int __pyx_v_ind, int __pyx_v_last_index) { - int __pyx_r; - __Pyx_RefNannyDeclarations - long __pyx_t_1; - __Pyx_RefNannySetupContext("minusCircIndex", 0); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":104 - * - * cdef inline int minusCircIndex(int ind, int last_index): - * return ind - 1 if (ind > 0) else ind + last_index; # <<<<<<<<<<<<<< - * - * def circOpposingPoints(np.ndarray[np.int_t, ndim=1] points_ind, \ - */ - if (((__pyx_v_ind > 0) != 0)) { - __pyx_t_1 = (__pyx_v_ind - 1); - } else { - __pyx_t_1 = (__pyx_v_ind + __pyx_v_last_index); - } - __pyx_r = __pyx_t_1; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":103 - * return ind + 1 if (ind < last_index) else ind - last_index; - * - * cdef inline int minusCircIndex(int ind, int last_index): # <<<<<<<<<<<<<< - * return ind - 1 if (ind > 0) else ind + last_index; - * - */ - - /* function exit code */ - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":106 - * return ind - 1 if (ind > 0) else ind + last_index; - * - * def circOpposingPoints(np.ndarray[np.int_t, ndim=1] points_ind, \ # <<<<<<<<<<<<<< - * int start_ind, int end_ind, int vec_last_index, np.ndarray[np.float64_t, ndim=1] chain_code_len): - * '''%CIRCOPPOSINGPOINTS Find the equivalent point indices on the opposing side - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_3circOpposingPoints(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_2circOpposingPoints[] = "%CIRCOPPOSINGPOINTS Find the equivalent point indices on the opposing side\n % of a circular vector.\n %\n % points_ind = CIRCOPPOSINGPOINTS(points_ind, start_ind, end_ind, VSIZE)\n %\n % points_ind = CIRCOPPOSINGPOINTS(points_ind, start_ind, end_ind, VSIZE,\n % chain_code_len)\n %\n % Inputs:\n % points_ind - the point indices to find on the opposing side\n % start_ind - the index in the vector where the split, between\n % opposing sides, starts\n % end_ind - the index in the vector where the split, between\n % opposing sides, ends\n % vec_last_index - the vector last index\n % chain_code_len - the chain-code length at each point;\n % if empty, the array indices are used instead\n %\n % Output:\n % points_ind_out - the equivalent point indices on the opposing side\n %\n % See also CIRCCOMPUTECHAINCODELENGTHS\n %\n %\n % \302\251 Medical Research Council 2012\n % You will not remove any copyright or other notices from the Software; \n % you must reproduce all copyright notices and other proprietary \n % notices on any copies of the Software."; -static PyMethodDef __pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_3circOpposingPoints = {"circOpposingPoints", (PyCFunction)__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_3circOpposingPoints, METH_VARARGS|METH_KEYWORDS, __pyx_doc_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_2circOpposingPoints}; -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_3circOpposingPoints(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyArrayObject *__pyx_v_points_ind = 0; - int __pyx_v_start_ind; - int __pyx_v_end_ind; - int __pyx_v_vec_last_index; - PyArrayObject *__pyx_v_chain_code_len = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("circOpposingPoints (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_points_ind,&__pyx_n_s_start_ind,&__pyx_n_s_end_ind,&__pyx_n_s_vec_last_index,&__pyx_n_s_chain_code_len,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_points_ind)) != 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_start_ind)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("circOpposingPoints", 1, 5, 5, 1); __PYX_ERR(0, 106, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_end_ind)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("circOpposingPoints", 1, 5, 5, 2); __PYX_ERR(0, 106, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec_last_index)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("circOpposingPoints", 1, 5, 5, 3); __PYX_ERR(0, 106, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_chain_code_len)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("circOpposingPoints", 1, 5, 5, 4); __PYX_ERR(0, 106, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "circOpposingPoints") < 0)) __PYX_ERR(0, 106, __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_points_ind = ((PyArrayObject *)values[0]); - __pyx_v_start_ind = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_start_ind == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 107, __pyx_L3_error) - __pyx_v_end_ind = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_end_ind == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 107, __pyx_L3_error) - __pyx_v_vec_last_index = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_vec_last_index == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 107, __pyx_L3_error) - __pyx_v_chain_code_len = ((PyArrayObject *)values[4]); - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("circOpposingPoints", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 106, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython.circOpposingPoints", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_points_ind), __pyx_ptype_5numpy_ndarray, 1, "points_ind", 0))) __PYX_ERR(0, 106, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_chain_code_len), __pyx_ptype_5numpy_ndarray, 1, "chain_code_len", 0))) __PYX_ERR(0, 107, __pyx_L1_error) - __pyx_r = __pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_2circOpposingPoints(__pyx_self, __pyx_v_points_ind, __pyx_v_start_ind, __pyx_v_end_ind, __pyx_v_vec_last_index, __pyx_v_chain_code_len); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_2circOpposingPoints(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_points_ind, int __pyx_v_start_ind, int __pyx_v_end_ind, int __pyx_v_vec_last_index, PyArrayObject *__pyx_v_chain_code_len) { - int __pyx_v_start_ind1; - int __pyx_v_start_ind2; - int __pyx_v_end_ind1; - int __pyx_v_end_ind2; - float __pyx_v_side1_size; - float __pyx_v_side2_size; - float __pyx_v_scale1to2; - float __pyx_v_scale2to1; - int __pyx_v_ii; - int __pyx_v_cur_ind; - float __pyx_v_delta_dist; - float __pyx_v_point_dist; - PyArrayObject *__pyx_v_points_ind_out = 0; - int __pyx_v_tmp; - __Pyx_LocalBuf_ND __pyx_pybuffernd_chain_code_len; - __Pyx_Buffer __pyx_pybuffer_chain_code_len; - __Pyx_LocalBuf_ND __pyx_pybuffernd_points_ind; - __Pyx_Buffer __pyx_pybuffer_points_ind; - __Pyx_LocalBuf_ND __pyx_pybuffernd_points_ind_out; - __Pyx_Buffer __pyx_pybuffer_points_ind_out; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyArrayObject *__pyx_t_4 = NULL; - int __pyx_t_5; - Py_ssize_t __pyx_t_6; - int __pyx_t_7; - Py_ssize_t __pyx_t_8; - Py_ssize_t __pyx_t_9; - Py_ssize_t __pyx_t_10; - Py_ssize_t __pyx_t_11; - Py_ssize_t __pyx_t_12; - Py_ssize_t __pyx_t_13; - npy_intp __pyx_t_14; - npy_intp __pyx_t_15; - Py_ssize_t __pyx_t_16; - int __pyx_t_17; - int __pyx_t_18; - Py_ssize_t __pyx_t_19; - Py_ssize_t __pyx_t_20; - Py_ssize_t __pyx_t_21; - Py_ssize_t __pyx_t_22; - Py_ssize_t __pyx_t_23; - Py_ssize_t __pyx_t_24; - Py_ssize_t __pyx_t_25; - Py_ssize_t __pyx_t_26; - Py_ssize_t __pyx_t_27; - Py_ssize_t __pyx_t_28; - Py_ssize_t __pyx_t_29; - PyObject *__pyx_t_30 = NULL; - PyObject *__pyx_t_31 = NULL; - __pyx_t_5numpy_int_t __pyx_t_32; - Py_ssize_t __pyx_t_33; - __Pyx_RefNannySetupContext("circOpposingPoints", 0); - __pyx_pybuffer_points_ind_out.pybuffer.buf = NULL; - __pyx_pybuffer_points_ind_out.refcount = 0; - __pyx_pybuffernd_points_ind_out.data = NULL; - __pyx_pybuffernd_points_ind_out.rcbuffer = &__pyx_pybuffer_points_ind_out; - __pyx_pybuffer_points_ind.pybuffer.buf = NULL; - __pyx_pybuffer_points_ind.refcount = 0; - __pyx_pybuffernd_points_ind.data = NULL; - __pyx_pybuffernd_points_ind.rcbuffer = &__pyx_pybuffer_points_ind; - __pyx_pybuffer_chain_code_len.pybuffer.buf = NULL; - __pyx_pybuffer_chain_code_len.refcount = 0; - __pyx_pybuffernd_chain_code_len.data = NULL; - __pyx_pybuffernd_chain_code_len.rcbuffer = &__pyx_pybuffer_chain_code_len; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_points_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_points_ind, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 106, __pyx_L1_error) - } - __pyx_pybuffernd_points_ind.diminfo[0].strides = __pyx_pybuffernd_points_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_points_ind.diminfo[0].shape = __pyx_pybuffernd_points_ind.rcbuffer->pybuffer.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer, (PyObject*)__pyx_v_chain_code_len, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 106, __pyx_L1_error) - } - __pyx_pybuffernd_chain_code_len.diminfo[0].strides = __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_chain_code_len.diminfo[0].shape = __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.shape[0]; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":141 - * cdef int ii, cur_ind - * cdef float delta_dist, point_dist - * cdef np.ndarray[np.int_t, ndim=1] points_ind_out = points_ind.copy() # <<<<<<<<<<<<<< - * - * - */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_points_ind), __pyx_n_s_copy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __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); - } - } - if (__pyx_t_3) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } else { - __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error) - } - __Pyx_GOTREF(__pyx_t_1); - __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, 141, __pyx_L1_error) - __pyx_t_4 = ((PyArrayObject *)__pyx_t_1); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_points_ind_out.rcbuffer->pybuffer, (PyObject*)__pyx_t_4, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { - __pyx_v_points_ind_out = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_points_ind_out.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 141, __pyx_L1_error) - } else {__pyx_pybuffernd_points_ind_out.diminfo[0].strides = __pyx_pybuffernd_points_ind_out.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_points_ind_out.diminfo[0].shape = __pyx_pybuffernd_points_ind_out.rcbuffer->pybuffer.shape[0]; - } - } - __pyx_t_4 = 0; - __pyx_v_points_ind_out = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":146 - * #% Re-order the start and end to make life simple. - * cdef int tmp - * if start_ind > end_ind: # <<<<<<<<<<<<<< - * tmp = start_ind; - * start_ind = end_ind; - */ - __pyx_t_5 = ((__pyx_v_start_ind > __pyx_v_end_ind) != 0); - if (__pyx_t_5) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":147 - * cdef int tmp - * if start_ind > end_ind: - * tmp = start_ind; # <<<<<<<<<<<<<< - * start_ind = end_ind; - * end_ind = tmp; - */ - __pyx_v_tmp = __pyx_v_start_ind; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":148 - * if start_ind > end_ind: - * tmp = start_ind; - * start_ind = end_ind; # <<<<<<<<<<<<<< - * end_ind = tmp; - * - */ - __pyx_v_start_ind = __pyx_v_end_ind; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":149 - * tmp = start_ind; - * start_ind = end_ind; - * end_ind = tmp; # <<<<<<<<<<<<<< - * - * #% Separate the points onto sides. - */ - __pyx_v_end_ind = __pyx_v_tmp; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":146 - * #% Re-order the start and end to make life simple. - * cdef int tmp - * if start_ind > end_ind: # <<<<<<<<<<<<<< - * tmp = start_ind; - * start_ind = end_ind; - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":157 - * - * #% Compute the size of side 1. - * start_ind1 = start_ind + 1; # <<<<<<<<<<<<<< - * end_ind1 = end_ind - 1; - * side1_size = chain_code_len[end_ind1] - chain_code_len[start_ind1]; - */ - __pyx_v_start_ind1 = (__pyx_v_start_ind + 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":158 - * #% Compute the size of side 1. - * start_ind1 = start_ind + 1; - * end_ind1 = end_ind - 1; # <<<<<<<<<<<<<< - * side1_size = chain_code_len[end_ind1] - chain_code_len[start_ind1]; - * - */ - __pyx_v_end_ind1 = (__pyx_v_end_ind - 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":159 - * start_ind1 = start_ind + 1; - * end_ind1 = end_ind - 1; - * side1_size = chain_code_len[end_ind1] - chain_code_len[start_ind1]; # <<<<<<<<<<<<<< - * - * #% Compute the size of side 2. - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 159, __pyx_L1_error) - } - __pyx_t_6 = __pyx_v_end_ind1; - __pyx_t_7 = -1; - if (__pyx_t_6 < 0) { - __pyx_t_6 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_6 < 0)) __pyx_t_7 = 0; - } else if (unlikely(__pyx_t_6 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_7 = 0; - if (unlikely(__pyx_t_7 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_7); - __PYX_ERR(0, 159, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 159, __pyx_L1_error) - } - __pyx_t_8 = __pyx_v_start_ind1; - __pyx_t_7 = -1; - if (__pyx_t_8 < 0) { - __pyx_t_8 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_8 < 0)) __pyx_t_7 = 0; - } else if (unlikely(__pyx_t_8 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_7 = 0; - if (unlikely(__pyx_t_7 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_7); - __PYX_ERR(0, 159, __pyx_L1_error) - } - __pyx_v_side1_size = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":162 - * - * #% Compute the size of side 2. - * start_ind2 = minusCircIndex(start_ind, vec_last_index) # <<<<<<<<<<<<<< - * end_ind2 = plusCircIndex(end_ind, vec_last_index) - * if start_ind2 < end_ind2: - */ - __pyx_v_start_ind2 = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_minusCircIndex(__pyx_v_start_ind, __pyx_v_vec_last_index); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":163 - * #% Compute the size of side 2. - * start_ind2 = minusCircIndex(start_ind, vec_last_index) - * end_ind2 = plusCircIndex(end_ind, vec_last_index) # <<<<<<<<<<<<<< - * if start_ind2 < end_ind2: - * side2_size = chain_code_len[start_ind2] + \ - */ - __pyx_v_end_ind2 = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_plusCircIndex(__pyx_v_end_ind, __pyx_v_vec_last_index); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":164 - * start_ind2 = minusCircIndex(start_ind, vec_last_index) - * end_ind2 = plusCircIndex(end_ind, vec_last_index) - * if start_ind2 < end_ind2: # <<<<<<<<<<<<<< - * side2_size = chain_code_len[start_ind2] + \ - * chain_code_len[vec_last_index] - chain_code_len[end_ind2]; - */ - __pyx_t_5 = ((__pyx_v_start_ind2 < __pyx_v_end_ind2) != 0); - if (__pyx_t_5) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":165 - * end_ind2 = plusCircIndex(end_ind, vec_last_index) - * if start_ind2 < end_ind2: - * side2_size = chain_code_len[start_ind2] + \ # <<<<<<<<<<<<<< - * chain_code_len[vec_last_index] - chain_code_len[end_ind2]; - * else: #% one of the ends wrapped - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 165, __pyx_L1_error) - } - __pyx_t_9 = __pyx_v_start_ind2; - __pyx_t_7 = -1; - if (__pyx_t_9 < 0) { - __pyx_t_9 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_9 < 0)) __pyx_t_7 = 0; - } else if (unlikely(__pyx_t_9 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_7 = 0; - if (unlikely(__pyx_t_7 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_7); - __PYX_ERR(0, 165, __pyx_L1_error) - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":166 - * if start_ind2 < end_ind2: - * side2_size = chain_code_len[start_ind2] + \ - * chain_code_len[vec_last_index] - chain_code_len[end_ind2]; # <<<<<<<<<<<<<< - * else: #% one of the ends wrapped - * side2_size = chain_code_len[start_ind2] - chain_code_len[end_ind2]; - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 166, __pyx_L1_error) - } - __pyx_t_10 = __pyx_v_vec_last_index; - __pyx_t_7 = -1; - if (__pyx_t_10 < 0) { - __pyx_t_10 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_10 < 0)) __pyx_t_7 = 0; - } else if (unlikely(__pyx_t_10 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_7 = 0; - if (unlikely(__pyx_t_7 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_7); - __PYX_ERR(0, 166, __pyx_L1_error) - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":165 - * end_ind2 = plusCircIndex(end_ind, vec_last_index) - * if start_ind2 < end_ind2: - * side2_size = chain_code_len[start_ind2] + \ # <<<<<<<<<<<<<< - * chain_code_len[vec_last_index] - chain_code_len[end_ind2]; - * else: #% one of the ends wrapped - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 166, __pyx_L1_error) - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":166 - * if start_ind2 < end_ind2: - * side2_size = chain_code_len[start_ind2] + \ - * chain_code_len[vec_last_index] - chain_code_len[end_ind2]; # <<<<<<<<<<<<<< - * else: #% one of the ends wrapped - * side2_size = chain_code_len[start_ind2] - chain_code_len[end_ind2]; - */ - __pyx_t_11 = __pyx_v_end_ind2; - __pyx_t_7 = -1; - if (__pyx_t_11 < 0) { - __pyx_t_11 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_11 < 0)) __pyx_t_7 = 0; - } else if (unlikely(__pyx_t_11 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_7 = 0; - if (unlikely(__pyx_t_7 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_7); - __PYX_ERR(0, 166, __pyx_L1_error) - } - __pyx_v_side2_size = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_9, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) + (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))) - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":164 - * start_ind2 = minusCircIndex(start_ind, vec_last_index) - * end_ind2 = plusCircIndex(end_ind, vec_last_index) - * if start_ind2 < end_ind2: # <<<<<<<<<<<<<< - * side2_size = chain_code_len[start_ind2] + \ - * chain_code_len[vec_last_index] - chain_code_len[end_ind2]; - */ - goto __pyx_L4; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":168 - * chain_code_len[vec_last_index] - chain_code_len[end_ind2]; - * else: #% one of the ends wrapped - * side2_size = chain_code_len[start_ind2] - chain_code_len[end_ind2]; # <<<<<<<<<<<<<< - * - * #% Compute the scale between sides. - */ - /*else*/ { - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 168, __pyx_L1_error) - } - __pyx_t_12 = __pyx_v_start_ind2; - __pyx_t_7 = -1; - if (__pyx_t_12 < 0) { - __pyx_t_12 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_12 < 0)) __pyx_t_7 = 0; - } else if (unlikely(__pyx_t_12 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_7 = 0; - if (unlikely(__pyx_t_7 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_7); - __PYX_ERR(0, 168, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 168, __pyx_L1_error) - } - __pyx_t_13 = __pyx_v_end_ind2; - __pyx_t_7 = -1; - if (__pyx_t_13 < 0) { - __pyx_t_13 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_13 < 0)) __pyx_t_7 = 0; - } else if (unlikely(__pyx_t_13 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_7 = 0; - if (unlikely(__pyx_t_7 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_7); - __PYX_ERR(0, 168, __pyx_L1_error) - } - __pyx_v_side2_size = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_12, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))); - } - __pyx_L4:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":171 - * - * #% Compute the scale between sides. - * scale1to2 = side2_size / side1_size; # <<<<<<<<<<<<<< - * scale2to1 = side1_size / side2_size; - * - */ - if (unlikely(__pyx_v_side1_size == 0)) { - PyErr_SetString(PyExc_ZeroDivisionError, "float division"); - __PYX_ERR(0, 171, __pyx_L1_error) - } - __pyx_v_scale1to2 = (__pyx_v_side2_size / __pyx_v_side1_size); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":172 - * #% Compute the scale between sides. - * scale1to2 = side2_size / side1_size; - * scale2to1 = side1_size / side2_size; # <<<<<<<<<<<<<< - * - * - */ - if (unlikely(__pyx_v_side2_size == 0)) { - PyErr_SetString(PyExc_ZeroDivisionError, "float division"); - __PYX_ERR(0, 172, __pyx_L1_error) - } - __pyx_v_scale2to1 = (__pyx_v_side1_size / __pyx_v_side2_size); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":175 - * - * - * for ii in range(points_ind.shape[0]): # <<<<<<<<<<<<<< - * cur_ind = points_ind[ii] - * - */ - if (unlikely(((PyObject *)__pyx_v_points_ind) == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "shape"); - __PYX_ERR(0, 175, __pyx_L1_error) - } - __pyx_t_14 = (__pyx_v_points_ind->dimensions[0]); - __pyx_t_15 = __pyx_t_14; - for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_15; __pyx_t_7+=1) { - __pyx_v_ii = __pyx_t_7; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":176 - * - * for ii in range(points_ind.shape[0]): - * cur_ind = points_ind[ii] # <<<<<<<<<<<<<< - * - * - */ - if (unlikely(((PyObject *)__pyx_v_points_ind) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 176, __pyx_L1_error) - } - __pyx_t_16 = __pyx_v_ii; - __pyx_t_17 = -1; - if (__pyx_t_16 < 0) { - __pyx_t_16 += __pyx_pybuffernd_points_ind.diminfo[0].shape; - if (unlikely(__pyx_t_16 < 0)) __pyx_t_17 = 0; - } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_points_ind.diminfo[0].shape)) __pyx_t_17 = 0; - if (unlikely(__pyx_t_17 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_17); - __PYX_ERR(0, 176, __pyx_L1_error) - } - __pyx_v_cur_ind = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_points_ind.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_points_ind.diminfo[0].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":182 - * #% side 2, then find the equivalent point, at the scaled distance - * #% from the start, on side 2. - * if (cur_ind > start_ind) and (cur_ind < end_ind): # <<<<<<<<<<<<<< - * point_dist = chain_code_len[start_ind2] - \ - * (chain_code_len[cur_ind] - chain_code_len[start_ind1]) * scale1to2; - */ - __pyx_t_18 = ((__pyx_v_cur_ind > __pyx_v_start_ind) != 0); - if (__pyx_t_18) { - } else { - __pyx_t_5 = __pyx_t_18; - goto __pyx_L8_bool_binop_done; - } - __pyx_t_18 = ((__pyx_v_cur_ind < __pyx_v_end_ind) != 0); - __pyx_t_5 = __pyx_t_18; - __pyx_L8_bool_binop_done:; - if (__pyx_t_5) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":183 - * #% from the start, on side 2. - * if (cur_ind > start_ind) and (cur_ind < end_ind): - * point_dist = chain_code_len[start_ind2] - \ # <<<<<<<<<<<<<< - * (chain_code_len[cur_ind] - chain_code_len[start_ind1]) * scale1to2; - * - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 183, __pyx_L1_error) - } - __pyx_t_19 = __pyx_v_start_ind2; - __pyx_t_17 = -1; - if (__pyx_t_19 < 0) { - __pyx_t_19 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_19 < 0)) __pyx_t_17 = 0; - } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_17 = 0; - if (unlikely(__pyx_t_17 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_17); - __PYX_ERR(0, 183, __pyx_L1_error) - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":184 - * if (cur_ind > start_ind) and (cur_ind < end_ind): - * point_dist = chain_code_len[start_ind2] - \ - * (chain_code_len[cur_ind] - chain_code_len[start_ind1]) * scale1to2; # <<<<<<<<<<<<<< - * - * #% Find the distance of the side 2 points from the start, scale them for - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 184, __pyx_L1_error) - } - __pyx_t_20 = __pyx_v_cur_ind; - __pyx_t_17 = -1; - if (__pyx_t_20 < 0) { - __pyx_t_20 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_20 < 0)) __pyx_t_17 = 0; - } else if (unlikely(__pyx_t_20 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_17 = 0; - if (unlikely(__pyx_t_17 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_17); - __PYX_ERR(0, 184, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 184, __pyx_L1_error) - } - __pyx_t_21 = __pyx_v_start_ind1; - __pyx_t_17 = -1; - if (__pyx_t_21 < 0) { - __pyx_t_21 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0; - } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_17 = 0; - if (unlikely(__pyx_t_17 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_17); - __PYX_ERR(0, 184, __pyx_L1_error) - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":183 - * #% from the start, on side 2. - * if (cur_ind > start_ind) and (cur_ind < end_ind): - * point_dist = chain_code_len[start_ind2] - \ # <<<<<<<<<<<<<< - * (chain_code_len[cur_ind] - chain_code_len[start_ind1]) * scale1to2; - * - */ - __pyx_v_point_dist = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) - (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))) * __pyx_v_scale1to2)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":182 - * #% side 2, then find the equivalent point, at the scaled distance - * #% from the start, on side 2. - * if (cur_ind > start_ind) and (cur_ind < end_ind): # <<<<<<<<<<<<<< - * point_dist = chain_code_len[start_ind2] - \ - * (chain_code_len[cur_ind] - chain_code_len[start_ind1]) * scale1to2; - */ - goto __pyx_L7; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":189 - * #% side 1, then find the equivalent point, at the scaled distance - * #% from the start, on side 1. - * elif (cur_ind < start_ind) or (cur_ind > end_ind): # <<<<<<<<<<<<<< - * delta_dist = chain_code_len[start_ind2] - chain_code_len[cur_ind]; - * if points_ind[ii] > start_ind2: - */ - __pyx_t_18 = ((__pyx_v_cur_ind < __pyx_v_start_ind) != 0); - if (!__pyx_t_18) { - } else { - __pyx_t_5 = __pyx_t_18; - goto __pyx_L10_bool_binop_done; - } - __pyx_t_18 = ((__pyx_v_cur_ind > __pyx_v_end_ind) != 0); - __pyx_t_5 = __pyx_t_18; - __pyx_L10_bool_binop_done:; - if (__pyx_t_5) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":190 - * #% from the start, on side 1. - * elif (cur_ind < start_ind) or (cur_ind > end_ind): - * delta_dist = chain_code_len[start_ind2] - chain_code_len[cur_ind]; # <<<<<<<<<<<<<< - * if points_ind[ii] > start_ind2: - * delta_dist += chain_code_len[vec_last_index]; - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 190, __pyx_L1_error) - } - __pyx_t_22 = __pyx_v_start_ind2; - __pyx_t_17 = -1; - if (__pyx_t_22 < 0) { - __pyx_t_22 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_22 < 0)) __pyx_t_17 = 0; - } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_17 = 0; - if (unlikely(__pyx_t_17 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_17); - __PYX_ERR(0, 190, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 190, __pyx_L1_error) - } - __pyx_t_23 = __pyx_v_cur_ind; - __pyx_t_17 = -1; - if (__pyx_t_23 < 0) { - __pyx_t_23 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0; - } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_17 = 0; - if (unlikely(__pyx_t_17 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_17); - __PYX_ERR(0, 190, __pyx_L1_error) - } - __pyx_v_delta_dist = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":191 - * elif (cur_ind < start_ind) or (cur_ind > end_ind): - * delta_dist = chain_code_len[start_ind2] - chain_code_len[cur_ind]; - * if points_ind[ii] > start_ind2: # <<<<<<<<<<<<<< - * delta_dist += chain_code_len[vec_last_index]; - * point_dist = chain_code_len[start_ind1] + delta_dist * scale2to1; - */ - if (unlikely(((PyObject *)__pyx_v_points_ind) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 191, __pyx_L1_error) - } - __pyx_t_24 = __pyx_v_ii; - __pyx_t_17 = -1; - if (__pyx_t_24 < 0) { - __pyx_t_24 += __pyx_pybuffernd_points_ind.diminfo[0].shape; - if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0; - } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_points_ind.diminfo[0].shape)) __pyx_t_17 = 0; - if (unlikely(__pyx_t_17 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_17); - __PYX_ERR(0, 191, __pyx_L1_error) - } - __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_points_ind.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_points_ind.diminfo[0].strides)) > __pyx_v_start_ind2) != 0); - if (__pyx_t_5) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":192 - * delta_dist = chain_code_len[start_ind2] - chain_code_len[cur_ind]; - * if points_ind[ii] > start_ind2: - * delta_dist += chain_code_len[vec_last_index]; # <<<<<<<<<<<<<< - * point_dist = chain_code_len[start_ind1] + delta_dist * scale2to1; - * - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 192, __pyx_L1_error) - } - __pyx_t_25 = __pyx_v_vec_last_index; - __pyx_t_17 = -1; - if (__pyx_t_25 < 0) { - __pyx_t_25 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0; - } else if (unlikely(__pyx_t_25 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_17 = 0; - if (unlikely(__pyx_t_17 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_17); - __PYX_ERR(0, 192, __pyx_L1_error) - } - __pyx_v_delta_dist = (__pyx_v_delta_dist + (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":191 - * elif (cur_ind < start_ind) or (cur_ind > end_ind): - * delta_dist = chain_code_len[start_ind2] - chain_code_len[cur_ind]; - * if points_ind[ii] > start_ind2: # <<<<<<<<<<<<<< - * delta_dist += chain_code_len[vec_last_index]; - * point_dist = chain_code_len[start_ind1] + delta_dist * scale2to1; - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":193 - * if points_ind[ii] > start_ind2: - * delta_dist += chain_code_len[vec_last_index]; - * point_dist = chain_code_len[start_ind1] + delta_dist * scale2to1; # <<<<<<<<<<<<<< - * - * else: - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 193, __pyx_L1_error) - } - __pyx_t_26 = __pyx_v_start_ind1; - __pyx_t_17 = -1; - if (__pyx_t_26 < 0) { - __pyx_t_26 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0; - } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_17 = 0; - if (unlikely(__pyx_t_17 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_17); - __PYX_ERR(0, 193, __pyx_L1_error) - } - __pyx_v_point_dist = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) + (__pyx_v_delta_dist * __pyx_v_scale2to1)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":189 - * #% side 1, then find the equivalent point, at the scaled distance - * #% from the start, on side 1. - * elif (cur_ind < start_ind) or (cur_ind > end_ind): # <<<<<<<<<<<<<< - * delta_dist = chain_code_len[start_ind2] - chain_code_len[cur_ind]; - * if points_ind[ii] > start_ind2: - */ - goto __pyx_L7; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":196 - * - * else: - * continue # <<<<<<<<<<<<<< - * - * #% Correct any wrapped points. - */ - /*else*/ { - goto __pyx_L5_continue; - } - __pyx_L7:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":199 - * - * #% Correct any wrapped points. - * if point_dist < 0: # <<<<<<<<<<<<<< - * point_dist += chain_code_len[vec_last_index] - * elif point_dist > chain_code_len[vec_last_index]: - */ - __pyx_t_5 = ((__pyx_v_point_dist < 0.0) != 0); - if (__pyx_t_5) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":200 - * #% Correct any wrapped points. - * if point_dist < 0: - * point_dist += chain_code_len[vec_last_index] # <<<<<<<<<<<<<< - * elif point_dist > chain_code_len[vec_last_index]: - * point_dist -= chain_code_len[vec_last_index] - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 200, __pyx_L1_error) - } - __pyx_t_27 = __pyx_v_vec_last_index; - __pyx_t_17 = -1; - if (__pyx_t_27 < 0) { - __pyx_t_27 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0; - } else if (unlikely(__pyx_t_27 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_17 = 0; - if (unlikely(__pyx_t_17 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_17); - __PYX_ERR(0, 200, __pyx_L1_error) - } - __pyx_v_point_dist = (__pyx_v_point_dist + (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":199 - * - * #% Correct any wrapped points. - * if point_dist < 0: # <<<<<<<<<<<<<< - * point_dist += chain_code_len[vec_last_index] - * elif point_dist > chain_code_len[vec_last_index]: - */ - goto __pyx_L13; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":201 - * if point_dist < 0: - * point_dist += chain_code_len[vec_last_index] - * elif point_dist > chain_code_len[vec_last_index]: # <<<<<<<<<<<<<< - * point_dist -= chain_code_len[vec_last_index] - * - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 201, __pyx_L1_error) - } - __pyx_t_28 = __pyx_v_vec_last_index; - __pyx_t_17 = -1; - if (__pyx_t_28 < 0) { - __pyx_t_28 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0; - } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_17 = 0; - if (unlikely(__pyx_t_17 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_17); - __PYX_ERR(0, 201, __pyx_L1_error) - } - __pyx_t_5 = ((__pyx_v_point_dist > (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))) != 0); - if (__pyx_t_5) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":202 - * point_dist += chain_code_len[vec_last_index] - * elif point_dist > chain_code_len[vec_last_index]: - * point_dist -= chain_code_len[vec_last_index] # <<<<<<<<<<<<<< - * - * #% Translate the chain-code lengths to indices. - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 202, __pyx_L1_error) - } - __pyx_t_29 = __pyx_v_vec_last_index; - __pyx_t_17 = -1; - if (__pyx_t_29 < 0) { - __pyx_t_29 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0; - } else if (unlikely(__pyx_t_29 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_17 = 0; - if (unlikely(__pyx_t_17 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_17); - __PYX_ERR(0, 202, __pyx_L1_error) - } - __pyx_v_point_dist = (__pyx_v_point_dist - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":201 - * if point_dist < 0: - * point_dist += chain_code_len[vec_last_index] - * elif point_dist > chain_code_len[vec_last_index]: # <<<<<<<<<<<<<< - * point_dist -= chain_code_len[vec_last_index] - * - */ - } - __pyx_L13:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":205 - * - * #% Translate the chain-code lengths to indices. - * points_ind_out[ii] = chainCodeLength2Index(point_dist, chain_code_len); # <<<<<<<<<<<<<< - * - * return points_ind_out - */ - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_chainCodeLength2Index); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 205, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_point_dist); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 205, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_30 = NULL; - __pyx_t_17 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_30 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_30)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_30); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - __pyx_t_17 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[3] = {__pyx_t_30, __pyx_t_3, ((PyObject *)__pyx_v_chain_code_len)}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 205, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[3] = {__pyx_t_30, __pyx_t_3, ((PyObject *)__pyx_v_chain_code_len)}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 205, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } else - #endif - { - __pyx_t_31 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 205, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_31); - if (__pyx_t_30) { - __Pyx_GIVEREF(__pyx_t_30); PyTuple_SET_ITEM(__pyx_t_31, 0, __pyx_t_30); __pyx_t_30 = NULL; - } - __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_31, 0+__pyx_t_17, __pyx_t_3); - __Pyx_INCREF(((PyObject *)__pyx_v_chain_code_len)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_chain_code_len)); - PyTuple_SET_ITEM(__pyx_t_31, 1+__pyx_t_17, ((PyObject *)__pyx_v_chain_code_len)); - __pyx_t_3 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_31, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 205, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_32 = __Pyx_PyInt_As_npy_long(__pyx_t_1); if (unlikely((__pyx_t_32 == ((npy_long)-1)) && PyErr_Occurred())) __PYX_ERR(0, 205, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(((PyObject *)__pyx_v_points_ind_out) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 205, __pyx_L1_error) - } - __pyx_t_33 = __pyx_v_ii; - __pyx_t_17 = -1; - if (__pyx_t_33 < 0) { - __pyx_t_33 += __pyx_pybuffernd_points_ind_out.diminfo[0].shape; - if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0; - } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_points_ind_out.diminfo[0].shape)) __pyx_t_17 = 0; - if (unlikely(__pyx_t_17 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_17); - __PYX_ERR(0, 205, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_points_ind_out.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_points_ind_out.diminfo[0].strides) = __pyx_t_32; - __pyx_L5_continue:; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":207 - * points_ind_out[ii] = chainCodeLength2Index(point_dist, chain_code_len); - * - * return points_ind_out # <<<<<<<<<<<<<< - * - * cdef tuple min_distance(np.ndarray[np.float_t, ndim=2] x, int curr_ind, int range_min, int range_max): - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(((PyObject *)__pyx_v_points_ind_out)); - __pyx_r = ((PyObject *)__pyx_v_points_ind_out); - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":106 - * return ind - 1 if (ind > 0) else ind + last_index; - * - * def circOpposingPoints(np.ndarray[np.int_t, ndim=1] points_ind, \ # <<<<<<<<<<<<<< - * int start_ind, int end_ind, int vec_last_index, np.ndarray[np.float64_t, ndim=1] chain_code_len): - * '''%CIRCOPPOSINGPOINTS Find the equivalent point indices on the opposing side - */ - - /* 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_30); - __Pyx_XDECREF(__pyx_t_31); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_points_ind.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_points_ind_out.rcbuffer->pybuffer); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython.circOpposingPoints", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_points_ind.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_points_ind_out.rcbuffer->pybuffer); - __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_points_ind_out); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":209 - * return points_ind_out - * - * cdef tuple min_distance(np.ndarray[np.float_t, ndim=2] x, int curr_ind, int range_min, int range_max): # <<<<<<<<<<<<<< - * cdef double dx, dy, r, min_r - * cdef int j, near_ind - */ - -static PyObject *__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_min_distance(PyArrayObject *__pyx_v_x, int __pyx_v_curr_ind, int __pyx_v_range_min, int __pyx_v_range_max) { - double __pyx_v_dx; - double __pyx_v_dy; - double __pyx_v_r; - double __pyx_v_min_r; - int __pyx_v_j; - int __pyx_v_near_ind; - __Pyx_LocalBuf_ND __pyx_pybuffernd_x; - __Pyx_Buffer __pyx_pybuffer_x; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - long __pyx_t_1; - long __pyx_t_2; - int __pyx_t_3; - Py_ssize_t __pyx_t_4; - Py_ssize_t __pyx_t_5; - int __pyx_t_6; - Py_ssize_t __pyx_t_7; - Py_ssize_t __pyx_t_8; - Py_ssize_t __pyx_t_9; - Py_ssize_t __pyx_t_10; - Py_ssize_t __pyx_t_11; - Py_ssize_t __pyx_t_12; - int __pyx_t_13; - PyObject *__pyx_t_14 = NULL; - PyObject *__pyx_t_15 = NULL; - PyObject *__pyx_t_16 = NULL; - __Pyx_RefNannySetupContext("min_distance", 0); - __pyx_pybuffer_x.pybuffer.buf = NULL; - __pyx_pybuffer_x.refcount = 0; - __pyx_pybuffernd_x.data = NULL; - __pyx_pybuffernd_x.rcbuffer = &__pyx_pybuffer_x; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_x.rcbuffer->pybuffer, (PyObject*)__pyx_v_x, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 209, __pyx_L1_error) - } - __pyx_pybuffernd_x.diminfo[0].strides = __pyx_pybuffernd_x.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_x.diminfo[0].shape = __pyx_pybuffernd_x.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_x.diminfo[1].strides = __pyx_pybuffernd_x.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_x.diminfo[1].shape = __pyx_pybuffernd_x.rcbuffer->pybuffer.shape[1]; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":213 - * cdef int j, near_ind - * - * min_r = 2147483647 #max 32 integer. initialization # <<<<<<<<<<<<<< - * for j in range(range_min, range_max+1): - * dx = x[curr_ind,0] - x[j,0]; - */ - __pyx_v_min_r = 2147483647.0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":214 - * - * min_r = 2147483647 #max 32 integer. initialization - * for j in range(range_min, range_max+1): # <<<<<<<<<<<<<< - * dx = x[curr_ind,0] - x[j,0]; - * dy = x[curr_ind,1] - x[j,1]; - */ - __pyx_t_1 = (__pyx_v_range_max + 1); - __pyx_t_2 = __pyx_t_1; - for (__pyx_t_3 = __pyx_v_range_min; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { - __pyx_v_j = __pyx_t_3; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":215 - * min_r = 2147483647 #max 32 integer. initialization - * for j in range(range_min, range_max+1): - * dx = x[curr_ind,0] - x[j,0]; # <<<<<<<<<<<<<< - * dy = x[curr_ind,1] - x[j,1]; - * r = dx*dx + dy*dy - */ - if (unlikely(((PyObject *)__pyx_v_x) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 215, __pyx_L1_error) - } - __pyx_t_4 = __pyx_v_curr_ind; - __pyx_t_5 = 0; - __pyx_t_6 = -1; - if (__pyx_t_4 < 0) { - __pyx_t_4 += __pyx_pybuffernd_x.diminfo[0].shape; - if (unlikely(__pyx_t_4 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_x.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_5 < 0) { - __pyx_t_5 += __pyx_pybuffernd_x.diminfo[1].shape; - if (unlikely(__pyx_t_5 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_5 >= __pyx_pybuffernd_x.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 215, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_x) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 215, __pyx_L1_error) - } - __pyx_t_7 = __pyx_v_j; - __pyx_t_8 = 0; - __pyx_t_6 = -1; - if (__pyx_t_7 < 0) { - __pyx_t_7 += __pyx_pybuffernd_x.diminfo[0].shape; - if (unlikely(__pyx_t_7 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_7 >= __pyx_pybuffernd_x.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_8 < 0) { - __pyx_t_8 += __pyx_pybuffernd_x.diminfo[1].shape; - if (unlikely(__pyx_t_8 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_8 >= __pyx_pybuffernd_x.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 215, __pyx_L1_error) - } - __pyx_v_dx = ((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_x.diminfo[0].strides, __pyx_t_5, __pyx_pybuffernd_x.diminfo[1].strides)) - (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_x.diminfo[0].strides, __pyx_t_8, __pyx_pybuffernd_x.diminfo[1].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":216 - * for j in range(range_min, range_max+1): - * dx = x[curr_ind,0] - x[j,0]; - * dy = x[curr_ind,1] - x[j,1]; # <<<<<<<<<<<<<< - * r = dx*dx + dy*dy - * if r < min_r: - */ - if (unlikely(((PyObject *)__pyx_v_x) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 216, __pyx_L1_error) - } - __pyx_t_9 = __pyx_v_curr_ind; - __pyx_t_10 = 1; - __pyx_t_6 = -1; - if (__pyx_t_9 < 0) { - __pyx_t_9 += __pyx_pybuffernd_x.diminfo[0].shape; - if (unlikely(__pyx_t_9 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_9 >= __pyx_pybuffernd_x.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_10 < 0) { - __pyx_t_10 += __pyx_pybuffernd_x.diminfo[1].shape; - if (unlikely(__pyx_t_10 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_10 >= __pyx_pybuffernd_x.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 216, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_x) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 216, __pyx_L1_error) - } - __pyx_t_11 = __pyx_v_j; - __pyx_t_12 = 1; - __pyx_t_6 = -1; - if (__pyx_t_11 < 0) { - __pyx_t_11 += __pyx_pybuffernd_x.diminfo[0].shape; - if (unlikely(__pyx_t_11 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_11 >= __pyx_pybuffernd_x.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_12 < 0) { - __pyx_t_12 += __pyx_pybuffernd_x.diminfo[1].shape; - if (unlikely(__pyx_t_12 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_12 >= __pyx_pybuffernd_x.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 216, __pyx_L1_error) - } - __pyx_v_dy = ((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_9, __pyx_pybuffernd_x.diminfo[0].strides, __pyx_t_10, __pyx_pybuffernd_x.diminfo[1].strides)) - (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_x.diminfo[0].strides, __pyx_t_12, __pyx_pybuffernd_x.diminfo[1].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":217 - * dx = x[curr_ind,0] - x[j,0]; - * dy = x[curr_ind,1] - x[j,1]; - * r = dx*dx + dy*dy # <<<<<<<<<<<<<< - * if r < min_r: - * min_r = r; - */ - __pyx_v_r = ((__pyx_v_dx * __pyx_v_dx) + (__pyx_v_dy * __pyx_v_dy)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":218 - * dy = x[curr_ind,1] - x[j,1]; - * r = dx*dx + dy*dy - * if r < min_r: # <<<<<<<<<<<<<< - * min_r = r; - * near_ind = j; - */ - __pyx_t_13 = ((__pyx_v_r < __pyx_v_min_r) != 0); - if (__pyx_t_13) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":219 - * r = dx*dx + dy*dy - * if r < min_r: - * min_r = r; # <<<<<<<<<<<<<< - * near_ind = j; - * return min_r, near_ind - */ - __pyx_v_min_r = __pyx_v_r; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":220 - * if r < min_r: - * min_r = r; - * near_ind = j; # <<<<<<<<<<<<<< - * return min_r, near_ind - * - */ - __pyx_v_near_ind = __pyx_v_j; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":218 - * dy = x[curr_ind,1] - x[j,1]; - * r = dx*dx + dy*dy - * if r < min_r: # <<<<<<<<<<<<<< - * min_r = r; - * near_ind = j; - */ - } - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":221 - * min_r = r; - * near_ind = j; - * return min_r, near_ind # <<<<<<<<<<<<<< - * - * def circNearestPoints(np.ndarray[np.int_t, ndim=1] points_ind, \ - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_14 = PyFloat_FromDouble(__pyx_v_min_r); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 221, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_15 = __Pyx_PyInt_From_int(__pyx_v_near_ind); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 221, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_16 = PyTuple_New(2); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 221, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_GIVEREF(__pyx_t_14); - PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_14); - __Pyx_GIVEREF(__pyx_t_15); - PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_15); - __pyx_t_14 = 0; - __pyx_t_15 = 0; - __pyx_r = ((PyObject*)__pyx_t_16); - __pyx_t_16 = 0; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":209 - * return points_ind_out - * - * cdef tuple min_distance(np.ndarray[np.float_t, ndim=2] x, int curr_ind, int range_min, int range_max): # <<<<<<<<<<<<<< - * cdef double dx, dy, r, min_r - * cdef int j, near_ind - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_14); - __Pyx_XDECREF(__pyx_t_15); - __Pyx_XDECREF(__pyx_t_16); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_x.rcbuffer->pybuffer); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython.min_distance", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_x.rcbuffer->pybuffer); - __pyx_L2:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":223 - * return min_r, near_ind - * - * def circNearestPoints(np.ndarray[np.int_t, ndim=1] points_ind, \ # <<<<<<<<<<<<<< - * np.ndarray[np.int_t, ndim=1] min_ind, \ - * np.ndarray[np.int_t, ndim=1] max_ind, \ - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_5circNearestPoints(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_4circNearestPoints[] = "%CIRCNEARESTPOINTS For each point, find the nearest corresponding point\n % within an interval of circularly-connected search points.\n %\n % NEARI = CIRCNEARESTPOINTS(POINTS, MINI, MAXI, X)\n %\n % Inputs:\n % points - the point index from which the distance is measured\n % minI - the minimum indices of the intervals\n % maxI - the maximum indices of the intervals\n % x - the circularly-connected, point coordinates on which the\n % search intervals lie\n %\n % Output:\n % nearI - the indices of the nearest points\n %\n %\n % \302\251 Medical Research Council 2012\n % You will not remove any copyright or other notices from the Software; \n % you must reproduce all copyright notices and other proprietary \n % notices on any copies of the Software.\n "; -static PyMethodDef __pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_5circNearestPoints = {"circNearestPoints", (PyCFunction)__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_5circNearestPoints, METH_VARARGS|METH_KEYWORDS, __pyx_doc_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_4circNearestPoints}; -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_5circNearestPoints(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyArrayObject *__pyx_v_points_ind = 0; - PyArrayObject *__pyx_v_min_ind = 0; - PyArrayObject *__pyx_v_max_ind = 0; - PyArrayObject *__pyx_v_x = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("circNearestPoints (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_points_ind,&__pyx_n_s_min_ind,&__pyx_n_s_max_ind,&__pyx_n_s_x,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_points_ind)) != 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_min_ind)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("circNearestPoints", 1, 4, 4, 1); __PYX_ERR(0, 223, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_ind)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("circNearestPoints", 1, 4, 4, 2); __PYX_ERR(0, 223, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("circNearestPoints", 1, 4, 4, 3); __PYX_ERR(0, 223, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "circNearestPoints") < 0)) __PYX_ERR(0, 223, __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_points_ind = ((PyArrayObject *)values[0]); - __pyx_v_min_ind = ((PyArrayObject *)values[1]); - __pyx_v_max_ind = ((PyArrayObject *)values[2]); - __pyx_v_x = ((PyArrayObject *)values[3]); - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("circNearestPoints", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 223, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython.circNearestPoints", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_points_ind), __pyx_ptype_5numpy_ndarray, 1, "points_ind", 0))) __PYX_ERR(0, 223, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_min_ind), __pyx_ptype_5numpy_ndarray, 1, "min_ind", 0))) __PYX_ERR(0, 224, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_max_ind), __pyx_ptype_5numpy_ndarray, 1, "max_ind", 0))) __PYX_ERR(0, 225, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_5numpy_ndarray, 1, "x", 0))) __PYX_ERR(0, 226, __pyx_L1_error) - __pyx_r = __pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_4circNearestPoints(__pyx_self, __pyx_v_points_ind, __pyx_v_min_ind, __pyx_v_max_ind, __pyx_v_x); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_4circNearestPoints(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_points_ind, PyArrayObject *__pyx_v_min_ind, PyArrayObject *__pyx_v_max_ind, PyArrayObject *__pyx_v_x) { - int __pyx_v_total_points; - int __pyx_v_last_index; - PyArrayObject *__pyx_v_near_ind = 0; - int __pyx_v_i; - int __pyx_v_near_ind1; - int __pyx_v_near_ind2; - float __pyx_v_mag1; - float __pyx_v_mag2; - __Pyx_LocalBuf_ND __pyx_pybuffernd_max_ind; - __Pyx_Buffer __pyx_pybuffer_max_ind; - __Pyx_LocalBuf_ND __pyx_pybuffernd_min_ind; - __Pyx_Buffer __pyx_pybuffer_min_ind; - __Pyx_LocalBuf_ND __pyx_pybuffernd_near_ind; - __Pyx_Buffer __pyx_pybuffer_near_ind; - __Pyx_LocalBuf_ND __pyx_pybuffernd_points_ind; - __Pyx_Buffer __pyx_pybuffer_points_ind; - __Pyx_LocalBuf_ND __pyx_pybuffernd_x; - __Pyx_Buffer __pyx_pybuffer_x; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - Py_ssize_t __pyx_t_1; - Py_ssize_t __pyx_t_2; - int __pyx_t_3; - Py_ssize_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyArrayObject *__pyx_t_10 = NULL; - int __pyx_t_11; - int __pyx_t_12; - int __pyx_t_13; - Py_ssize_t __pyx_t_14; - int __pyx_t_15; - Py_ssize_t __pyx_t_16; - Py_ssize_t __pyx_t_17; - Py_ssize_t __pyx_t_18; - Py_ssize_t __pyx_t_19; - float __pyx_t_20; - Py_ssize_t __pyx_t_21; - Py_ssize_t __pyx_t_22; - Py_ssize_t __pyx_t_23; - Py_ssize_t __pyx_t_24; - Py_ssize_t __pyx_t_25; - Py_ssize_t __pyx_t_26; - int __pyx_t_27; - __Pyx_RefNannySetupContext("circNearestPoints", 0); - __pyx_pybuffer_near_ind.pybuffer.buf = NULL; - __pyx_pybuffer_near_ind.refcount = 0; - __pyx_pybuffernd_near_ind.data = NULL; - __pyx_pybuffernd_near_ind.rcbuffer = &__pyx_pybuffer_near_ind; - __pyx_pybuffer_points_ind.pybuffer.buf = NULL; - __pyx_pybuffer_points_ind.refcount = 0; - __pyx_pybuffernd_points_ind.data = NULL; - __pyx_pybuffernd_points_ind.rcbuffer = &__pyx_pybuffer_points_ind; - __pyx_pybuffer_min_ind.pybuffer.buf = NULL; - __pyx_pybuffer_min_ind.refcount = 0; - __pyx_pybuffernd_min_ind.data = NULL; - __pyx_pybuffernd_min_ind.rcbuffer = &__pyx_pybuffer_min_ind; - __pyx_pybuffer_max_ind.pybuffer.buf = NULL; - __pyx_pybuffer_max_ind.refcount = 0; - __pyx_pybuffernd_max_ind.data = NULL; - __pyx_pybuffernd_max_ind.rcbuffer = &__pyx_pybuffer_max_ind; - __pyx_pybuffer_x.pybuffer.buf = NULL; - __pyx_pybuffer_x.refcount = 0; - __pyx_pybuffernd_x.data = NULL; - __pyx_pybuffernd_x.rcbuffer = &__pyx_pybuffer_x; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_points_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_points_ind, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 223, __pyx_L1_error) - } - __pyx_pybuffernd_points_ind.diminfo[0].strides = __pyx_pybuffernd_points_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_points_ind.diminfo[0].shape = __pyx_pybuffernd_points_ind.rcbuffer->pybuffer.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_min_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_min_ind, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 223, __pyx_L1_error) - } - __pyx_pybuffernd_min_ind.diminfo[0].strides = __pyx_pybuffernd_min_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_min_ind.diminfo[0].shape = __pyx_pybuffernd_min_ind.rcbuffer->pybuffer.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_max_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_max_ind, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 223, __pyx_L1_error) - } - __pyx_pybuffernd_max_ind.diminfo[0].strides = __pyx_pybuffernd_max_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_max_ind.diminfo[0].shape = __pyx_pybuffernd_max_ind.rcbuffer->pybuffer.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_x.rcbuffer->pybuffer, (PyObject*)__pyx_v_x, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 223, __pyx_L1_error) - } - __pyx_pybuffernd_x.diminfo[0].strides = __pyx_pybuffernd_x.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_x.diminfo[0].shape = __pyx_pybuffernd_x.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_x.diminfo[1].strides = __pyx_pybuffernd_x.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_x.diminfo[1].shape = __pyx_pybuffernd_x.rcbuffer->pybuffer.shape[1]; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":248 - * % notices on any copies of the Software. - * ''' - * assert len(points_ind) == len(min_ind) == len(max_ind) # <<<<<<<<<<<<<< - * cdef int total_points = points_ind.shape[0] - * cdef int last_index = total_points-1 - */ - #ifndef CYTHON_WITHOUT_ASSERTIONS - if (unlikely(!Py_OptimizeFlag)) { - __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_points_ind)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 248, __pyx_L1_error) - __pyx_t_2 = PyObject_Length(((PyObject *)__pyx_v_min_ind)); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 248, __pyx_L1_error) - __pyx_t_3 = (__pyx_t_1 == __pyx_t_2); - if (__pyx_t_3) { - __pyx_t_4 = PyObject_Length(((PyObject *)__pyx_v_max_ind)); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 248, __pyx_L1_error) - __pyx_t_3 = (__pyx_t_2 == __pyx_t_4); - } - if (unlikely(!(__pyx_t_3 != 0))) { - PyErr_SetNone(PyExc_AssertionError); - __PYX_ERR(0, 248, __pyx_L1_error) - } - } - #endif - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":249 - * ''' - * assert len(points_ind) == len(min_ind) == len(max_ind) - * cdef int total_points = points_ind.shape[0] # <<<<<<<<<<<<<< - * cdef int last_index = total_points-1 - * #% Pre-allocate memory. - */ - if (unlikely(((PyObject *)__pyx_v_points_ind) == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "shape"); - __PYX_ERR(0, 249, __pyx_L1_error) - } - __pyx_v_total_points = (__pyx_v_points_ind->dimensions[0]); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":250 - * assert len(points_ind) == len(min_ind) == len(max_ind) - * cdef int total_points = points_ind.shape[0] - * cdef int last_index = total_points-1 # <<<<<<<<<<<<<< - * #% Pre-allocate memory. - * cdef np.ndarray[np.int_t, ndim=1] near_ind = np.zeros(total_points, dtype=np.int); - */ - __pyx_v_last_index = (__pyx_v_total_points - 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":252 - * cdef int last_index = total_points-1 - * #% Pre-allocate memory. - * cdef np.ndarray[np.int_t, ndim=1] near_ind = np.zeros(total_points, dtype=np.int); # <<<<<<<<<<<<<< - * cdef int i, near_ind1, near_ind2 - * cdef float mag1, mag2 - */ - __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 252, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 252, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_total_points); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 252, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 252, __pyx_L1_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, 252, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 252, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 252, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 252, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 252, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __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; - if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 252, __pyx_L1_error) - __pyx_t_10 = ((PyArrayObject *)__pyx_t_9); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_near_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { - __pyx_v_near_ind = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_near_ind.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 252, __pyx_L1_error) - } else {__pyx_pybuffernd_near_ind.diminfo[0].strides = __pyx_pybuffernd_near_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_near_ind.diminfo[0].shape = __pyx_pybuffernd_near_ind.rcbuffer->pybuffer.shape[0]; - } - } - __pyx_t_10 = 0; - __pyx_v_near_ind = ((PyArrayObject *)__pyx_t_9); - __pyx_t_9 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":257 - * - * #% Search for the nearest points. - * for i in range(total_points): # <<<<<<<<<<<<<< - * #% The interval is continuous. - * if min_ind[i] <= max_ind[i]: - */ - __pyx_t_11 = __pyx_v_total_points; - __pyx_t_12 = __pyx_t_11; - for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) { - __pyx_v_i = __pyx_t_13; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":259 - * for i in range(total_points): - * #% The interval is continuous. - * if min_ind[i] <= max_ind[i]: # <<<<<<<<<<<<<< - * mag1, near_ind1 = min_distance(x, points_ind[i], min_ind[i], max_ind[i]) - * near_ind[i] = near_ind1 - */ - if (unlikely(((PyObject *)__pyx_v_min_ind) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 259, __pyx_L1_error) - } - __pyx_t_14 = __pyx_v_i; - __pyx_t_15 = -1; - if (__pyx_t_14 < 0) { - __pyx_t_14 += __pyx_pybuffernd_min_ind.diminfo[0].shape; - if (unlikely(__pyx_t_14 < 0)) __pyx_t_15 = 0; - } else if (unlikely(__pyx_t_14 >= __pyx_pybuffernd_min_ind.diminfo[0].shape)) __pyx_t_15 = 0; - if (unlikely(__pyx_t_15 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_15); - __PYX_ERR(0, 259, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_max_ind) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 259, __pyx_L1_error) - } - __pyx_t_16 = __pyx_v_i; - __pyx_t_15 = -1; - if (__pyx_t_16 < 0) { - __pyx_t_16 += __pyx_pybuffernd_max_ind.diminfo[0].shape; - if (unlikely(__pyx_t_16 < 0)) __pyx_t_15 = 0; - } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_max_ind.diminfo[0].shape)) __pyx_t_15 = 0; - if (unlikely(__pyx_t_15 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_15); - __PYX_ERR(0, 259, __pyx_L1_error) - } - __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_min_ind.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_min_ind.diminfo[0].strides)) <= (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_max_ind.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_max_ind.diminfo[0].strides))) != 0); - if (__pyx_t_3) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":260 - * #% The interval is continuous. - * if min_ind[i] <= max_ind[i]: - * mag1, near_ind1 = min_distance(x, points_ind[i], min_ind[i], max_ind[i]) # <<<<<<<<<<<<<< - * near_ind[i] = near_ind1 - * - */ - if (unlikely(((PyObject *)__pyx_v_points_ind) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 260, __pyx_L1_error) - } - __pyx_t_17 = __pyx_v_i; - __pyx_t_15 = -1; - if (__pyx_t_17 < 0) { - __pyx_t_17 += __pyx_pybuffernd_points_ind.diminfo[0].shape; - if (unlikely(__pyx_t_17 < 0)) __pyx_t_15 = 0; - } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_points_ind.diminfo[0].shape)) __pyx_t_15 = 0; - if (unlikely(__pyx_t_15 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_15); - __PYX_ERR(0, 260, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_min_ind) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 260, __pyx_L1_error) - } - __pyx_t_18 = __pyx_v_i; - __pyx_t_15 = -1; - if (__pyx_t_18 < 0) { - __pyx_t_18 += __pyx_pybuffernd_min_ind.diminfo[0].shape; - if (unlikely(__pyx_t_18 < 0)) __pyx_t_15 = 0; - } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_min_ind.diminfo[0].shape)) __pyx_t_15 = 0; - if (unlikely(__pyx_t_15 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_15); - __PYX_ERR(0, 260, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_max_ind) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 260, __pyx_L1_error) - } - __pyx_t_19 = __pyx_v_i; - __pyx_t_15 = -1; - if (__pyx_t_19 < 0) { - __pyx_t_19 += __pyx_pybuffernd_max_ind.diminfo[0].shape; - if (unlikely(__pyx_t_19 < 0)) __pyx_t_15 = 0; - } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_max_ind.diminfo[0].shape)) __pyx_t_15 = 0; - if (unlikely(__pyx_t_15 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_15); - __PYX_ERR(0, 260, __pyx_L1_error) - } - __pyx_t_9 = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_min_distance(((PyArrayObject *)__pyx_v_x), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_points_ind.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_points_ind.diminfo[0].strides)), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_min_ind.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_min_ind.diminfo[0].strides)), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_max_ind.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_max_ind.diminfo[0].strides))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 260, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (likely(__pyx_t_9 != Py_None)) { - PyObject* sequence = __pyx_t_9; - 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, 260, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx_t_7); - #else - __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 260, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 260, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - #endif - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - } else { - __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 260, __pyx_L1_error) - } - __pyx_t_20 = __pyx_PyFloat_AsFloat(__pyx_t_5); if (unlikely((__pyx_t_20 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 260, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_15 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_15 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 260, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v_mag1 = __pyx_t_20; - __pyx_v_near_ind1 = __pyx_t_15; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":261 - * if min_ind[i] <= max_ind[i]: - * mag1, near_ind1 = min_distance(x, points_ind[i], min_ind[i], max_ind[i]) - * near_ind[i] = near_ind1 # <<<<<<<<<<<<<< - * - * #% The interval wraps. - */ - if (unlikely(((PyObject *)__pyx_v_near_ind) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 261, __pyx_L1_error) - } - __pyx_t_21 = __pyx_v_i; - __pyx_t_15 = -1; - if (__pyx_t_21 < 0) { - __pyx_t_21 += __pyx_pybuffernd_near_ind.diminfo[0].shape; - if (unlikely(__pyx_t_21 < 0)) __pyx_t_15 = 0; - } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_near_ind.diminfo[0].shape)) __pyx_t_15 = 0; - if (unlikely(__pyx_t_15 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_15); - __PYX_ERR(0, 261, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_near_ind.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_near_ind.diminfo[0].strides) = __pyx_v_near_ind1; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":259 - * for i in range(total_points): - * #% The interval is continuous. - * if min_ind[i] <= max_ind[i]: # <<<<<<<<<<<<<< - * mag1, near_ind1 = min_distance(x, points_ind[i], min_ind[i], max_ind[i]) - * near_ind[i] = near_ind1 - */ - goto __pyx_L5; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":265 - * #% The interval wraps. - * else: - * mag1, near_ind1 = min_distance(x, points_ind[i], min_ind[i], last_index) # <<<<<<<<<<<<<< - * mag2, near_ind2 = min_distance(x, points_ind[i], 0, max_ind[i]) - * - */ - /*else*/ { - if (unlikely(((PyObject *)__pyx_v_points_ind) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 265, __pyx_L1_error) - } - __pyx_t_22 = __pyx_v_i; - __pyx_t_15 = -1; - if (__pyx_t_22 < 0) { - __pyx_t_22 += __pyx_pybuffernd_points_ind.diminfo[0].shape; - if (unlikely(__pyx_t_22 < 0)) __pyx_t_15 = 0; - } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_points_ind.diminfo[0].shape)) __pyx_t_15 = 0; - if (unlikely(__pyx_t_15 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_15); - __PYX_ERR(0, 265, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_min_ind) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 265, __pyx_L1_error) - } - __pyx_t_23 = __pyx_v_i; - __pyx_t_15 = -1; - if (__pyx_t_23 < 0) { - __pyx_t_23 += __pyx_pybuffernd_min_ind.diminfo[0].shape; - if (unlikely(__pyx_t_23 < 0)) __pyx_t_15 = 0; - } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_min_ind.diminfo[0].shape)) __pyx_t_15 = 0; - if (unlikely(__pyx_t_15 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_15); - __PYX_ERR(0, 265, __pyx_L1_error) - } - __pyx_t_9 = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_min_distance(((PyArrayObject *)__pyx_v_x), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_points_ind.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_points_ind.diminfo[0].strides)), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_min_ind.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_min_ind.diminfo[0].strides)), __pyx_v_last_index); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 265, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (likely(__pyx_t_9 != Py_None)) { - PyObject* sequence = __pyx_t_9; - 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, 265, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(__pyx_t_5); - #else - __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 265, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 265, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - #endif - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - } else { - __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 265, __pyx_L1_error) - } - __pyx_t_20 = __pyx_PyFloat_AsFloat(__pyx_t_7); if (unlikely((__pyx_t_20 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 265, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_15 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_15 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 265, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_v_mag1 = __pyx_t_20; - __pyx_v_near_ind1 = __pyx_t_15; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":266 - * else: - * mag1, near_ind1 = min_distance(x, points_ind[i], min_ind[i], last_index) - * mag2, near_ind2 = min_distance(x, points_ind[i], 0, max_ind[i]) # <<<<<<<<<<<<<< - * - * #% Which point is nearest? - */ - if (unlikely(((PyObject *)__pyx_v_points_ind) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 266, __pyx_L1_error) - } - __pyx_t_24 = __pyx_v_i; - __pyx_t_15 = -1; - if (__pyx_t_24 < 0) { - __pyx_t_24 += __pyx_pybuffernd_points_ind.diminfo[0].shape; - if (unlikely(__pyx_t_24 < 0)) __pyx_t_15 = 0; - } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_points_ind.diminfo[0].shape)) __pyx_t_15 = 0; - if (unlikely(__pyx_t_15 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_15); - __PYX_ERR(0, 266, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_max_ind) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 266, __pyx_L1_error) - } - __pyx_t_25 = __pyx_v_i; - __pyx_t_15 = -1; - if (__pyx_t_25 < 0) { - __pyx_t_25 += __pyx_pybuffernd_max_ind.diminfo[0].shape; - if (unlikely(__pyx_t_25 < 0)) __pyx_t_15 = 0; - } else if (unlikely(__pyx_t_25 >= __pyx_pybuffernd_max_ind.diminfo[0].shape)) __pyx_t_15 = 0; - if (unlikely(__pyx_t_15 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_15); - __PYX_ERR(0, 266, __pyx_L1_error) - } - __pyx_t_9 = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_min_distance(((PyArrayObject *)__pyx_v_x), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_points_ind.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_points_ind.diminfo[0].strides)), 0, (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_max_ind.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_max_ind.diminfo[0].strides))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 266, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (likely(__pyx_t_9 != Py_None)) { - PyObject* sequence = __pyx_t_9; - 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, 266, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx_t_7); - #else - __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 266, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 266, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - #endif - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - } else { - __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 266, __pyx_L1_error) - } - __pyx_t_20 = __pyx_PyFloat_AsFloat(__pyx_t_5); if (unlikely((__pyx_t_20 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 266, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_15 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_15 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 266, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v_mag2 = __pyx_t_20; - __pyx_v_near_ind2 = __pyx_t_15; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":269 - * - * #% Which point is nearest? - * near_ind[i] = near_ind1 if mag1 <= mag2 else near_ind2; # <<<<<<<<<<<<<< - * - * return near_ind - */ - if (((__pyx_v_mag1 <= __pyx_v_mag2) != 0)) { - __pyx_t_15 = __pyx_v_near_ind1; - } else { - __pyx_t_15 = __pyx_v_near_ind2; - } - if (unlikely(((PyObject *)__pyx_v_near_ind) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 269, __pyx_L1_error) - } - __pyx_t_26 = __pyx_v_i; - __pyx_t_27 = -1; - if (__pyx_t_26 < 0) { - __pyx_t_26 += __pyx_pybuffernd_near_ind.diminfo[0].shape; - if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0; - } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_near_ind.diminfo[0].shape)) __pyx_t_27 = 0; - if (unlikely(__pyx_t_27 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_27); - __PYX_ERR(0, 269, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_near_ind.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_near_ind.diminfo[0].strides) = __pyx_t_15; - } - __pyx_L5:; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":271 - * near_ind[i] = near_ind1 if mag1 <= mag2 else near_ind2; - * - * return near_ind # <<<<<<<<<<<<<< - * - * cdef int wrapOppositeRegion(np.ndarray[np.float64_t, ndim=1] lenghts, \ - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(((PyObject *)__pyx_v_near_ind)); - __pyx_r = ((PyObject *)__pyx_v_near_ind); - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":223 - * return min_r, near_ind - * - * def circNearestPoints(np.ndarray[np.int_t, ndim=1] points_ind, \ # <<<<<<<<<<<<<< - * np.ndarray[np.int_t, ndim=1] min_ind, \ - * np.ndarray[np.int_t, ndim=1] max_ind, \ - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_max_ind.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_min_ind.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_near_ind.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_points_ind.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_x.rcbuffer->pybuffer); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython.circNearestPoints", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_max_ind.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_min_ind.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_near_ind.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_points_ind.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_x.rcbuffer->pybuffer); - __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_near_ind); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":273 - * return near_ind - * - * cdef int wrapOppositeRegion(np.ndarray[np.float64_t, ndim=1] lenghts, \ # <<<<<<<<<<<<<< - * double cur_len, int start_ind, int end_ind, int last_index, bint isMax, bint isSide1, bint isWrap): - * if isSide1: - */ - -static int __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_wrapOppositeRegion(PyArrayObject *__pyx_v_lenghts, double __pyx_v_cur_len, int __pyx_v_start_ind, int __pyx_v_end_ind, int __pyx_v_last_index, int __pyx_v_isMax, int __pyx_v_isSide1, int __pyx_v_isWrap) { - __Pyx_LocalBuf_ND __pyx_pybuffernd_lenghts; - __Pyx_Buffer __pyx_pybuffer_lenghts; - int __pyx_r; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - Py_ssize_t __pyx_t_2; - int __pyx_t_3; - Py_ssize_t __pyx_t_4; - Py_ssize_t __pyx_t_5; - int __pyx_t_6; - Py_ssize_t __pyx_t_7; - Py_ssize_t __pyx_t_8; - Py_ssize_t __pyx_t_9; - Py_ssize_t __pyx_t_10; - Py_ssize_t __pyx_t_11; - Py_ssize_t __pyx_t_12; - Py_ssize_t __pyx_t_13; - PyObject *__pyx_t_14 = NULL; - PyObject *__pyx_t_15 = NULL; - PyObject *__pyx_t_16 = NULL; - PyObject *__pyx_t_17 = NULL; - PyObject *__pyx_t_18 = NULL; - __Pyx_RefNannySetupContext("wrapOppositeRegion", 0); - __pyx_pybuffer_lenghts.pybuffer.buf = NULL; - __pyx_pybuffer_lenghts.refcount = 0; - __pyx_pybuffernd_lenghts.data = NULL; - __pyx_pybuffernd_lenghts.rcbuffer = &__pyx_pybuffer_lenghts; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lenghts.rcbuffer->pybuffer, (PyObject*)__pyx_v_lenghts, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 273, __pyx_L1_error) - } - __pyx_pybuffernd_lenghts.diminfo[0].strides = __pyx_pybuffernd_lenghts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lenghts.diminfo[0].shape = __pyx_pybuffernd_lenghts.rcbuffer->pybuffer.shape[0]; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":275 - * cdef int wrapOppositeRegion(np.ndarray[np.float64_t, ndim=1] lenghts, \ - * double cur_len, int start_ind, int end_ind, int last_index, bint isMax, bint isSide1, bint isWrap): - * if isSide1: # <<<<<<<<<<<<<< - * if (cur_len < lenghts[start_ind]): - * return start_ind; - */ - __pyx_t_1 = (__pyx_v_isSide1 != 0); - if (__pyx_t_1) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":276 - * double cur_len, int start_ind, int end_ind, int last_index, bint isMax, bint isSide1, bint isWrap): - * if isSide1: - * if (cur_len < lenghts[start_ind]): # <<<<<<<<<<<<<< - * return start_ind; - * elif (cur_len > lenghts[end_ind]): - */ - if (unlikely(((PyObject *)__pyx_v_lenghts) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 276, __pyx_L1_error) - } - __pyx_t_2 = __pyx_v_start_ind; - __pyx_t_3 = -1; - if (__pyx_t_2 < 0) { - __pyx_t_2 += __pyx_pybuffernd_lenghts.diminfo[0].shape; - if (unlikely(__pyx_t_2 < 0)) __pyx_t_3 = 0; - } else if (unlikely(__pyx_t_2 >= __pyx_pybuffernd_lenghts.diminfo[0].shape)) __pyx_t_3 = 0; - if (unlikely(__pyx_t_3 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_3); - __PYX_ERR(0, 276, __pyx_L1_error) - } - __pyx_t_1 = ((__pyx_v_cur_len < (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_lenghts.rcbuffer->pybuffer.buf, __pyx_t_2, __pyx_pybuffernd_lenghts.diminfo[0].strides))) != 0); - if (__pyx_t_1) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":277 - * if isSide1: - * if (cur_len < lenghts[start_ind]): - * return start_ind; # <<<<<<<<<<<<<< - * elif (cur_len > lenghts[end_ind]): - * return end_ind; - */ - __pyx_r = __pyx_v_start_ind; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":276 - * double cur_len, int start_ind, int end_ind, int last_index, bint isMax, bint isSide1, bint isWrap): - * if isSide1: - * if (cur_len < lenghts[start_ind]): # <<<<<<<<<<<<<< - * return start_ind; - * elif (cur_len > lenghts[end_ind]): - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":278 - * if (cur_len < lenghts[start_ind]): - * return start_ind; - * elif (cur_len > lenghts[end_ind]): # <<<<<<<<<<<<<< - * return end_ind; - * else: - */ - if (unlikely(((PyObject *)__pyx_v_lenghts) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 278, __pyx_L1_error) - } - __pyx_t_4 = __pyx_v_end_ind; - __pyx_t_3 = -1; - if (__pyx_t_4 < 0) { - __pyx_t_4 += __pyx_pybuffernd_lenghts.diminfo[0].shape; - if (unlikely(__pyx_t_4 < 0)) __pyx_t_3 = 0; - } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_lenghts.diminfo[0].shape)) __pyx_t_3 = 0; - if (unlikely(__pyx_t_3 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_3); - __PYX_ERR(0, 278, __pyx_L1_error) - } - __pyx_t_1 = ((__pyx_v_cur_len > (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_lenghts.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_lenghts.diminfo[0].strides))) != 0); - if (__pyx_t_1) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":279 - * return start_ind; - * elif (cur_len > lenghts[end_ind]): - * return end_ind; # <<<<<<<<<<<<<< - * else: - * if isWrap: - */ - __pyx_r = __pyx_v_end_ind; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":278 - * if (cur_len < lenghts[start_ind]): - * return start_ind; - * elif (cur_len > lenghts[end_ind]): # <<<<<<<<<<<<<< - * return end_ind; - * else: - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":275 - * cdef int wrapOppositeRegion(np.ndarray[np.float64_t, ndim=1] lenghts, \ - * double cur_len, int start_ind, int end_ind, int last_index, bint isMax, bint isSide1, bint isWrap): - * if isSide1: # <<<<<<<<<<<<<< - * if (cur_len < lenghts[start_ind]): - * return start_ind; - */ - goto __pyx_L3; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":281 - * return end_ind; - * else: - * if isWrap: # <<<<<<<<<<<<<< - * if ((cur_len > lenghts[start_ind]) or (cur_len < lenghts[end_ind])): - * return start_ind if isMax else end_ind; - */ - /*else*/ { - __pyx_t_1 = (__pyx_v_isWrap != 0); - if (__pyx_t_1) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":282 - * else: - * if isWrap: - * if ((cur_len > lenghts[start_ind]) or (cur_len < lenghts[end_ind])): # <<<<<<<<<<<<<< - * return start_ind if isMax else end_ind; - * else: - */ - if (unlikely(((PyObject *)__pyx_v_lenghts) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 282, __pyx_L1_error) - } - __pyx_t_5 = __pyx_v_start_ind; - __pyx_t_3 = -1; - if (__pyx_t_5 < 0) { - __pyx_t_5 += __pyx_pybuffernd_lenghts.diminfo[0].shape; - if (unlikely(__pyx_t_5 < 0)) __pyx_t_3 = 0; - } else if (unlikely(__pyx_t_5 >= __pyx_pybuffernd_lenghts.diminfo[0].shape)) __pyx_t_3 = 0; - if (unlikely(__pyx_t_3 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_3); - __PYX_ERR(0, 282, __pyx_L1_error) - } - __pyx_t_6 = ((__pyx_v_cur_len > (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_lenghts.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_lenghts.diminfo[0].strides))) != 0); - if (!__pyx_t_6) { - } else { - __pyx_t_1 = __pyx_t_6; - goto __pyx_L7_bool_binop_done; - } - if (unlikely(((PyObject *)__pyx_v_lenghts) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 282, __pyx_L1_error) - } - __pyx_t_7 = __pyx_v_end_ind; - __pyx_t_3 = -1; - if (__pyx_t_7 < 0) { - __pyx_t_7 += __pyx_pybuffernd_lenghts.diminfo[0].shape; - if (unlikely(__pyx_t_7 < 0)) __pyx_t_3 = 0; - } else if (unlikely(__pyx_t_7 >= __pyx_pybuffernd_lenghts.diminfo[0].shape)) __pyx_t_3 = 0; - if (unlikely(__pyx_t_3 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_3); - __PYX_ERR(0, 282, __pyx_L1_error) - } - __pyx_t_6 = ((__pyx_v_cur_len < (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_lenghts.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_lenghts.diminfo[0].strides))) != 0); - __pyx_t_1 = __pyx_t_6; - __pyx_L7_bool_binop_done:; - if (__pyx_t_1) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":283 - * if isWrap: - * if ((cur_len > lenghts[start_ind]) or (cur_len < lenghts[end_ind])): - * return start_ind if isMax else end_ind; # <<<<<<<<<<<<<< - * else: - * if (cur_len > lenghts[start_ind]) and (cur_len < lenghts[end_ind]): - */ - if ((__pyx_v_isMax != 0)) { - __pyx_t_3 = __pyx_v_start_ind; - } else { - __pyx_t_3 = __pyx_v_end_ind; - } - __pyx_r = __pyx_t_3; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":282 - * else: - * if isWrap: - * if ((cur_len > lenghts[start_ind]) or (cur_len < lenghts[end_ind])): # <<<<<<<<<<<<<< - * return start_ind if isMax else end_ind; - * else: - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":281 - * return end_ind; - * else: - * if isWrap: # <<<<<<<<<<<<<< - * if ((cur_len > lenghts[start_ind]) or (cur_len < lenghts[end_ind])): - * return start_ind if isMax else end_ind; - */ - goto __pyx_L5; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":285 - * return start_ind if isMax else end_ind; - * else: - * if (cur_len > lenghts[start_ind]) and (cur_len < lenghts[end_ind]): # <<<<<<<<<<<<<< - * return start_ind if isMax else end_ind; - * - */ - /*else*/ { - if (unlikely(((PyObject *)__pyx_v_lenghts) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 285, __pyx_L1_error) - } - __pyx_t_8 = __pyx_v_start_ind; - __pyx_t_3 = -1; - if (__pyx_t_8 < 0) { - __pyx_t_8 += __pyx_pybuffernd_lenghts.diminfo[0].shape; - if (unlikely(__pyx_t_8 < 0)) __pyx_t_3 = 0; - } else if (unlikely(__pyx_t_8 >= __pyx_pybuffernd_lenghts.diminfo[0].shape)) __pyx_t_3 = 0; - if (unlikely(__pyx_t_3 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_3); - __PYX_ERR(0, 285, __pyx_L1_error) - } - __pyx_t_6 = ((__pyx_v_cur_len > (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_lenghts.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_lenghts.diminfo[0].strides))) != 0); - if (__pyx_t_6) { - } else { - __pyx_t_1 = __pyx_t_6; - goto __pyx_L10_bool_binop_done; - } - if (unlikely(((PyObject *)__pyx_v_lenghts) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 285, __pyx_L1_error) - } - __pyx_t_9 = __pyx_v_end_ind; - __pyx_t_3 = -1; - if (__pyx_t_9 < 0) { - __pyx_t_9 += __pyx_pybuffernd_lenghts.diminfo[0].shape; - if (unlikely(__pyx_t_9 < 0)) __pyx_t_3 = 0; - } else if (unlikely(__pyx_t_9 >= __pyx_pybuffernd_lenghts.diminfo[0].shape)) __pyx_t_3 = 0; - if (unlikely(__pyx_t_3 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_3); - __PYX_ERR(0, 285, __pyx_L1_error) - } - __pyx_t_6 = ((__pyx_v_cur_len < (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_lenghts.rcbuffer->pybuffer.buf, __pyx_t_9, __pyx_pybuffernd_lenghts.diminfo[0].strides))) != 0); - __pyx_t_1 = __pyx_t_6; - __pyx_L10_bool_binop_done:; - if (__pyx_t_1) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":286 - * else: - * if (cur_len > lenghts[start_ind]) and (cur_len < lenghts[end_ind]): - * return start_ind if isMax else end_ind; # <<<<<<<<<<<<<< - * - * if cur_len < lenghts[0]: - */ - if ((__pyx_v_isMax != 0)) { - __pyx_t_3 = __pyx_v_start_ind; - } else { - __pyx_t_3 = __pyx_v_end_ind; - } - __pyx_r = __pyx_t_3; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":285 - * return start_ind if isMax else end_ind; - * else: - * if (cur_len > lenghts[start_ind]) and (cur_len < lenghts[end_ind]): # <<<<<<<<<<<<<< - * return start_ind if isMax else end_ind; - * - */ - } - } - __pyx_L5:; - } - __pyx_L3:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":288 - * return start_ind if isMax else end_ind; - * - * if cur_len < lenghts[0]: # <<<<<<<<<<<<<< - * cur_len += lenghts[last_index]; - * - */ - if (unlikely(((PyObject *)__pyx_v_lenghts) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 288, __pyx_L1_error) - } - __pyx_t_10 = 0; - __pyx_t_3 = -1; - if (__pyx_t_10 < 0) { - __pyx_t_10 += __pyx_pybuffernd_lenghts.diminfo[0].shape; - if (unlikely(__pyx_t_10 < 0)) __pyx_t_3 = 0; - } else if (unlikely(__pyx_t_10 >= __pyx_pybuffernd_lenghts.diminfo[0].shape)) __pyx_t_3 = 0; - if (unlikely(__pyx_t_3 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_3); - __PYX_ERR(0, 288, __pyx_L1_error) - } - __pyx_t_1 = ((__pyx_v_cur_len < (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_lenghts.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_lenghts.diminfo[0].strides))) != 0); - if (__pyx_t_1) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":289 - * - * if cur_len < lenghts[0]: - * cur_len += lenghts[last_index]; # <<<<<<<<<<<<<< - * - * elif cur_len > lenghts[last_index]: - */ - if (unlikely(((PyObject *)__pyx_v_lenghts) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 289, __pyx_L1_error) - } - __pyx_t_11 = __pyx_v_last_index; - __pyx_t_3 = -1; - if (__pyx_t_11 < 0) { - __pyx_t_11 += __pyx_pybuffernd_lenghts.diminfo[0].shape; - if (unlikely(__pyx_t_11 < 0)) __pyx_t_3 = 0; - } else if (unlikely(__pyx_t_11 >= __pyx_pybuffernd_lenghts.diminfo[0].shape)) __pyx_t_3 = 0; - if (unlikely(__pyx_t_3 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_3); - __PYX_ERR(0, 289, __pyx_L1_error) - } - __pyx_v_cur_len = (__pyx_v_cur_len + (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_lenghts.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_lenghts.diminfo[0].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":288 - * return start_ind if isMax else end_ind; - * - * if cur_len < lenghts[0]: # <<<<<<<<<<<<<< - * cur_len += lenghts[last_index]; - * - */ - goto __pyx_L12; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":291 - * cur_len += lenghts[last_index]; - * - * elif cur_len > lenghts[last_index]: # <<<<<<<<<<<<<< - * cur_len -= lenghts[last_index]; - * - */ - if (unlikely(((PyObject *)__pyx_v_lenghts) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 291, __pyx_L1_error) - } - __pyx_t_12 = __pyx_v_last_index; - __pyx_t_3 = -1; - if (__pyx_t_12 < 0) { - __pyx_t_12 += __pyx_pybuffernd_lenghts.diminfo[0].shape; - if (unlikely(__pyx_t_12 < 0)) __pyx_t_3 = 0; - } else if (unlikely(__pyx_t_12 >= __pyx_pybuffernd_lenghts.diminfo[0].shape)) __pyx_t_3 = 0; - if (unlikely(__pyx_t_3 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_3); - __PYX_ERR(0, 291, __pyx_L1_error) - } - __pyx_t_1 = ((__pyx_v_cur_len > (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_lenghts.rcbuffer->pybuffer.buf, __pyx_t_12, __pyx_pybuffernd_lenghts.diminfo[0].strides))) != 0); - if (__pyx_t_1) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":292 - * - * elif cur_len > lenghts[last_index]: - * cur_len -= lenghts[last_index]; # <<<<<<<<<<<<<< - * - * return chainCodeLength2Index(cur_len, lenghts); - */ - if (unlikely(((PyObject *)__pyx_v_lenghts) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 292, __pyx_L1_error) - } - __pyx_t_13 = __pyx_v_last_index; - __pyx_t_3 = -1; - if (__pyx_t_13 < 0) { - __pyx_t_13 += __pyx_pybuffernd_lenghts.diminfo[0].shape; - if (unlikely(__pyx_t_13 < 0)) __pyx_t_3 = 0; - } else if (unlikely(__pyx_t_13 >= __pyx_pybuffernd_lenghts.diminfo[0].shape)) __pyx_t_3 = 0; - if (unlikely(__pyx_t_3 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_3); - __PYX_ERR(0, 292, __pyx_L1_error) - } - __pyx_v_cur_len = (__pyx_v_cur_len - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_lenghts.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_lenghts.diminfo[0].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":291 - * cur_len += lenghts[last_index]; - * - * elif cur_len > lenghts[last_index]: # <<<<<<<<<<<<<< - * cur_len -= lenghts[last_index]; - * - */ - } - __pyx_L12:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":294 - * cur_len -= lenghts[last_index]; - * - * return chainCodeLength2Index(cur_len, lenghts); # <<<<<<<<<<<<<< - * - * def circOpposingNearestPoints(np.ndarray[np.int_t, ndim=1] points_ind, np.ndarray[np.float64_t, ndim=2] x, \ - */ - __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_chainCodeLength2Index); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_16 = PyFloat_FromDouble(__pyx_v_cur_len); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __pyx_t_17 = NULL; - __pyx_t_3 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { - __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_15); - if (likely(__pyx_t_17)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); - __Pyx_INCREF(__pyx_t_17); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_15, function); - __pyx_t_3 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_15)) { - PyObject *__pyx_temp[3] = {__pyx_t_17, __pyx_t_16, ((PyObject *)__pyx_v_lenghts)}; - __pyx_t_14 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_3, 2+__pyx_t_3); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 294, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) { - PyObject *__pyx_temp[3] = {__pyx_t_17, __pyx_t_16, ((PyObject *)__pyx_v_lenghts)}; - __pyx_t_14 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_3, 2+__pyx_t_3); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 294, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - } else - #endif - { - __pyx_t_18 = PyTuple_New(2+__pyx_t_3); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - if (__pyx_t_17) { - __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_17); __pyx_t_17 = NULL; - } - __Pyx_GIVEREF(__pyx_t_16); - PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_3, __pyx_t_16); - __Pyx_INCREF(((PyObject *)__pyx_v_lenghts)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_lenghts)); - PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_3, ((PyObject *)__pyx_v_lenghts)); - __pyx_t_16 = 0; - __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_18, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - } - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_14); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 294, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __pyx_r = __pyx_t_3; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":273 - * return near_ind - * - * cdef int wrapOppositeRegion(np.ndarray[np.float64_t, ndim=1] lenghts, \ # <<<<<<<<<<<<<< - * double cur_len, int start_ind, int end_ind, int last_index, bint isMax, bint isSide1, bint isWrap): - * if isSide1: - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_14); - __Pyx_XDECREF(__pyx_t_15); - __Pyx_XDECREF(__pyx_t_16); - __Pyx_XDECREF(__pyx_t_17); - __Pyx_XDECREF(__pyx_t_18); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lenghts.rcbuffer->pybuffer); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_WriteUnraisable("tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython.wrapOppositeRegion", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); - __pyx_r = 0; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lenghts.rcbuffer->pybuffer); - __pyx_L2:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":296 - * return chainCodeLength2Index(cur_len, lenghts); - * - * def circOpposingNearestPoints(np.ndarray[np.int_t, ndim=1] points_ind, np.ndarray[np.float64_t, ndim=2] x, \ # <<<<<<<<<<<<<< - * int start_ind, int end_ind, double search_len, np.ndarray[np.float64_t, ndim=1] chain_code_len): - * '''%CIRCOPPOSINGNEARESTPOINTS Find the nearest equivalent point indices on the - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_7circOpposingNearestPoints(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_6circOpposingNearestPoints[] = "%CIRCOPPOSINGNEARESTPOINTS Find the nearest equivalent point indices on the\n % opposing side (within a search window) of a circular vector.\n %\n % points_ind = CIRCOPPOSINGNEARESTPOINTS(points_ind, X, start_ind, end_ind,\n % search_len)\n %\n % points_ind = CIRCOPPOSINGNERAESTPOINTS(points_ind, X, start_ind, end_ind,\n % search_len, chain_code_len)\n %\n % Inputs:\n % points_ind - the point indices to find on the opposing side\n % x - the circularly connected vector on which the\n % points lie\n % start_ind - the index in the vector where the split, between\n % opposing sides, starts\n % end_ind - the index in the vector where the split, between\n % opposing sides, ends\n % search_len - the search length, on either side of a directly\n % opposing point, to search for the nearest point\n % chain_code_len - the chain-code length at each point;\n % if empty, the array indices are used instead\n %\n % Output:\n % points_ind - the equivalent point indices on the opposing side\n %\n % See also CIRCOPPOSINGPOINTS, CIRCNEARESTPOINTS, CIRCCOMPUTEchain_code_len\n %\n %\n % \302\251 Medical Research Council 2012\n % You will not remove any copyright or other notices from the Software; \n % you must reproduce all copyright notices and other proprietary \n % notices on any copies of the Software.\n "; -static PyMethodDef __pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_7circOpposingNearestPoints = {"circOpposingNearestPoints", (PyCFunction)__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_7circOpposingNearestPoints, METH_VARARGS|METH_KEYWORDS, __pyx_doc_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_6circOpposingNearestPoints}; -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_7circOpposingNearestPoints(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyArrayObject *__pyx_v_points_ind = 0; - PyArrayObject *__pyx_v_x = 0; - int __pyx_v_start_ind; - int __pyx_v_end_ind; - double __pyx_v_search_len; - PyArrayObject *__pyx_v_chain_code_len = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("circOpposingNearestPoints (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_points_ind,&__pyx_n_s_x,&__pyx_n_s_start_ind,&__pyx_n_s_end_ind,&__pyx_n_s_search_len,&__pyx_n_s_chain_code_len,0}; - PyObject* values[6] = {0,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 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_points_ind)) != 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_x)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("circOpposingNearestPoints", 1, 6, 6, 1); __PYX_ERR(0, 296, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start_ind)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("circOpposingNearestPoints", 1, 6, 6, 2); __PYX_ERR(0, 296, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_end_ind)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("circOpposingNearestPoints", 1, 6, 6, 3); __PYX_ERR(0, 296, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_search_len)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("circOpposingNearestPoints", 1, 6, 6, 4); __PYX_ERR(0, 296, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_chain_code_len)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("circOpposingNearestPoints", 1, 6, 6, 5); __PYX_ERR(0, 296, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "circOpposingNearestPoints") < 0)) __PYX_ERR(0, 296, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 6) { - 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); - values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - } - __pyx_v_points_ind = ((PyArrayObject *)values[0]); - __pyx_v_x = ((PyArrayObject *)values[1]); - __pyx_v_start_ind = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_start_ind == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 297, __pyx_L3_error) - __pyx_v_end_ind = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_end_ind == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 297, __pyx_L3_error) - __pyx_v_search_len = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_search_len == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 297, __pyx_L3_error) - __pyx_v_chain_code_len = ((PyArrayObject *)values[5]); - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("circOpposingNearestPoints", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 296, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython.circOpposingNearestPoints", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_points_ind), __pyx_ptype_5numpy_ndarray, 1, "points_ind", 0))) __PYX_ERR(0, 296, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_5numpy_ndarray, 1, "x", 0))) __PYX_ERR(0, 296, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_chain_code_len), __pyx_ptype_5numpy_ndarray, 1, "chain_code_len", 0))) __PYX_ERR(0, 297, __pyx_L1_error) - __pyx_r = __pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_6circOpposingNearestPoints(__pyx_self, __pyx_v_points_ind, __pyx_v_x, __pyx_v_start_ind, __pyx_v_end_ind, __pyx_v_search_len, __pyx_v_chain_code_len); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_6circOpposingNearestPoints(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_points_ind, PyArrayObject *__pyx_v_x, int __pyx_v_start_ind, int __pyx_v_end_ind, double __pyx_v_search_len, PyArrayObject *__pyx_v_chain_code_len) { - int __pyx_v_x_last_index; - int __pyx_v_last_chain_index; - int __pyx_v_start1; - int __pyx_v_start2; - int __pyx_v_end1; - int __pyx_v_end2; - int __pyx_v_ii; - int __pyx_v_cur_ind; - double __pyx_v_min_opposite; - double __pyx_v_max_opposite; - PyArrayObject *__pyx_v_opposite_ind = 0; - PyArrayObject *__pyx_v_points_ind_out = 0; - int __pyx_v_SIDE1; - int __pyx_v_SIDE2; - int __pyx_v_ISMAX; - int __pyx_v_ISMIN; - int __pyx_v_is2Wrap; - int __pyx_v_tmp; - PyObject *__pyx_v_side12 = NULL; - PyArrayObject *__pyx_v_minOpoints_ind = 0; - PyArrayObject *__pyx_v_maxOpoints_ind = 0; - __Pyx_LocalBuf_ND __pyx_pybuffernd_chain_code_len; - __Pyx_Buffer __pyx_pybuffer_chain_code_len; - __Pyx_LocalBuf_ND __pyx_pybuffernd_maxOpoints_ind; - __Pyx_Buffer __pyx_pybuffer_maxOpoints_ind; - __Pyx_LocalBuf_ND __pyx_pybuffernd_minOpoints_ind; - __Pyx_Buffer __pyx_pybuffer_minOpoints_ind; - __Pyx_LocalBuf_ND __pyx_pybuffernd_opposite_ind; - __Pyx_Buffer __pyx_pybuffer_opposite_ind; - __Pyx_LocalBuf_ND __pyx_pybuffernd_points_ind; - __Pyx_Buffer __pyx_pybuffer_points_ind; - __Pyx_LocalBuf_ND __pyx_pybuffernd_points_ind_out; - __Pyx_Buffer __pyx_pybuffer_points_ind_out; - __Pyx_LocalBuf_ND __pyx_pybuffernd_x; - __Pyx_Buffer __pyx_pybuffer_x; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyArrayObject *__pyx_t_5 = NULL; - int __pyx_t_6; - int __pyx_t_7; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - PyObject *__pyx_t_11 = NULL; - PyArrayObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; - PyObject *__pyx_t_15 = NULL; - PyArrayObject *__pyx_t_16 = NULL; - PyArrayObject *__pyx_t_17 = NULL; - long __pyx_t_18; - long __pyx_t_19; - Py_ssize_t __pyx_t_20; - int __pyx_t_21; - Py_ssize_t __pyx_t_22; - Py_ssize_t __pyx_t_23; - Py_ssize_t __pyx_t_24; - Py_ssize_t __pyx_t_25; - Py_ssize_t __pyx_t_26; - Py_ssize_t __pyx_t_27; - __Pyx_RefNannySetupContext("circOpposingNearestPoints", 0); - __pyx_pybuffer_opposite_ind.pybuffer.buf = NULL; - __pyx_pybuffer_opposite_ind.refcount = 0; - __pyx_pybuffernd_opposite_ind.data = NULL; - __pyx_pybuffernd_opposite_ind.rcbuffer = &__pyx_pybuffer_opposite_ind; - __pyx_pybuffer_points_ind_out.pybuffer.buf = NULL; - __pyx_pybuffer_points_ind_out.refcount = 0; - __pyx_pybuffernd_points_ind_out.data = NULL; - __pyx_pybuffernd_points_ind_out.rcbuffer = &__pyx_pybuffer_points_ind_out; - __pyx_pybuffer_minOpoints_ind.pybuffer.buf = NULL; - __pyx_pybuffer_minOpoints_ind.refcount = 0; - __pyx_pybuffernd_minOpoints_ind.data = NULL; - __pyx_pybuffernd_minOpoints_ind.rcbuffer = &__pyx_pybuffer_minOpoints_ind; - __pyx_pybuffer_maxOpoints_ind.pybuffer.buf = NULL; - __pyx_pybuffer_maxOpoints_ind.refcount = 0; - __pyx_pybuffernd_maxOpoints_ind.data = NULL; - __pyx_pybuffernd_maxOpoints_ind.rcbuffer = &__pyx_pybuffer_maxOpoints_ind; - __pyx_pybuffer_points_ind.pybuffer.buf = NULL; - __pyx_pybuffer_points_ind.refcount = 0; - __pyx_pybuffernd_points_ind.data = NULL; - __pyx_pybuffernd_points_ind.rcbuffer = &__pyx_pybuffer_points_ind; - __pyx_pybuffer_x.pybuffer.buf = NULL; - __pyx_pybuffer_x.refcount = 0; - __pyx_pybuffernd_x.data = NULL; - __pyx_pybuffernd_x.rcbuffer = &__pyx_pybuffer_x; - __pyx_pybuffer_chain_code_len.pybuffer.buf = NULL; - __pyx_pybuffer_chain_code_len.refcount = 0; - __pyx_pybuffernd_chain_code_len.data = NULL; - __pyx_pybuffernd_chain_code_len.rcbuffer = &__pyx_pybuffer_chain_code_len; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_points_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_points_ind, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 296, __pyx_L1_error) - } - __pyx_pybuffernd_points_ind.diminfo[0].strides = __pyx_pybuffernd_points_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_points_ind.diminfo[0].shape = __pyx_pybuffernd_points_ind.rcbuffer->pybuffer.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_x.rcbuffer->pybuffer, (PyObject*)__pyx_v_x, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 296, __pyx_L1_error) - } - __pyx_pybuffernd_x.diminfo[0].strides = __pyx_pybuffernd_x.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_x.diminfo[0].shape = __pyx_pybuffernd_x.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_x.diminfo[1].strides = __pyx_pybuffernd_x.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_x.diminfo[1].shape = __pyx_pybuffernd_x.rcbuffer->pybuffer.shape[1]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer, (PyObject*)__pyx_v_chain_code_len, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 296, __pyx_L1_error) - } - __pyx_pybuffernd_chain_code_len.diminfo[0].strides = __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_chain_code_len.diminfo[0].shape = __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.shape[0]; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":333 - * - * - * cdef int x_last_index = x.shape[0]-1 # <<<<<<<<<<<<<< - * cdef int last_chain_index = chain_code_len.size-1 - * cdef int start1, start2, end1, end2 - */ - if (unlikely(((PyObject *)__pyx_v_x) == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "shape"); - __PYX_ERR(0, 333, __pyx_L1_error) - } - __pyx_v_x_last_index = ((__pyx_v_x->dimensions[0]) - 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":334 - * - * cdef int x_last_index = x.shape[0]-1 - * cdef int last_chain_index = chain_code_len.size-1 # <<<<<<<<<<<<<< - * cdef int start1, start2, end1, end2 - * cdef int ii, cur_ind - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_chain_code_len), __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 334, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_t_1, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 334, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 334, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_last_chain_index = __pyx_t_3; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":339 - * cdef double min_opposite, max_opposite - * cdef np.ndarray[np.int_t, ndim=1] opposite_ind - * cdef np.ndarray[np.int_t, ndim=1] points_ind_out = points_ind.copy() # <<<<<<<<<<<<<< - * - * #flags (just to make it easier to read) - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_points_ind), __pyx_n_s_copy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 339, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - } - } - if (__pyx_t_4) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 339, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } else { - __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 339, __pyx_L1_error) - } - __Pyx_GOTREF(__pyx_t_2); - __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, 339, __pyx_L1_error) - __pyx_t_5 = ((PyArrayObject *)__pyx_t_2); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_points_ind_out.rcbuffer->pybuffer, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { - __pyx_v_points_ind_out = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_points_ind_out.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 339, __pyx_L1_error) - } else {__pyx_pybuffernd_points_ind_out.diminfo[0].strides = __pyx_pybuffernd_points_ind_out.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_points_ind_out.diminfo[0].shape = __pyx_pybuffernd_points_ind_out.rcbuffer->pybuffer.shape[0]; - } - } - __pyx_t_5 = 0; - __pyx_v_points_ind_out = ((PyArrayObject *)__pyx_t_2); - __pyx_t_2 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":342 - * - * #flags (just to make it easier to read) - * cdef bint SIDE1 = 1; # <<<<<<<<<<<<<< - * cdef bint SIDE2 = 0; - * cdef bint ISMAX = 1; - */ - __pyx_v_SIDE1 = 1; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":343 - * #flags (just to make it easier to read) - * cdef bint SIDE1 = 1; - * cdef bint SIDE2 = 0; # <<<<<<<<<<<<<< - * cdef bint ISMAX = 1; - * cdef bint ISMIN = 0; - */ - __pyx_v_SIDE2 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":344 - * cdef bint SIDE1 = 1; - * cdef bint SIDE2 = 0; - * cdef bint ISMAX = 1; # <<<<<<<<<<<<<< - * cdef bint ISMIN = 0; - * - */ - __pyx_v_ISMAX = 1; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":345 - * cdef bint SIDE2 = 0; - * cdef bint ISMAX = 1; - * cdef bint ISMIN = 0; # <<<<<<<<<<<<<< - * - * cdef bint is2Wrap - */ - __pyx_v_ISMIN = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":352 - * #% Re-order the start and end to make life simple. - * cdef int tmp - * if start_ind > end_ind: # <<<<<<<<<<<<<< - * tmp = start_ind; - * start_ind = end_ind; - */ - __pyx_t_6 = ((__pyx_v_start_ind > __pyx_v_end_ind) != 0); - if (__pyx_t_6) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":353 - * cdef int tmp - * if start_ind > end_ind: - * tmp = start_ind; # <<<<<<<<<<<<<< - * start_ind = end_ind; - * end_ind = tmp; - */ - __pyx_v_tmp = __pyx_v_start_ind; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":354 - * if start_ind > end_ind: - * tmp = start_ind; - * start_ind = end_ind; # <<<<<<<<<<<<<< - * end_ind = tmp; - * - */ - __pyx_v_start_ind = __pyx_v_end_ind; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":355 - * tmp = start_ind; - * start_ind = end_ind; - * end_ind = tmp; # <<<<<<<<<<<<<< - * - * #% The points are degenerate. - */ - __pyx_v_end_ind = __pyx_v_tmp; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":352 - * #% Re-order the start and end to make life simple. - * cdef int tmp - * if start_ind > end_ind: # <<<<<<<<<<<<<< - * tmp = start_ind; - * start_ind = end_ind; - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":358 - * - * #% The points are degenerate. - * if ((end_ind - start_ind) < 2) or ((start_ind + x_last_index - end_ind) < 2): # <<<<<<<<<<<<<< - * return np.zeros([], dtype=x.dtype); - * - */ - __pyx_t_7 = (((__pyx_v_end_ind - __pyx_v_start_ind) < 2) != 0); - if (!__pyx_t_7) { - } else { - __pyx_t_6 = __pyx_t_7; - goto __pyx_L5_bool_binop_done; - } - __pyx_t_7 = ((((__pyx_v_start_ind + __pyx_v_x_last_index) - __pyx_v_end_ind) < 2) != 0); - __pyx_t_6 = __pyx_t_7; - __pyx_L5_bool_binop_done:; - if (__pyx_t_6) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":359 - * #% The points are degenerate. - * if ((end_ind - start_ind) < 2) or ((start_ind + x_last_index - end_ind) < 2): - * return np.zeros([], dtype=x.dtype); # <<<<<<<<<<<<<< - * - * #% Separate the points onto sides. - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 359, __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, 359, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 359, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 359, __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, 359, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_x), __pyx_n_s_dtype); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 359, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 359, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 359, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_r = __pyx_t_8; - __pyx_t_8 = 0; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":358 - * - * #% The points are degenerate. - * if ((end_ind - start_ind) < 2) or ((start_ind + x_last_index - end_ind) < 2): # <<<<<<<<<<<<<< - * return np.zeros([], dtype=x.dtype); - * - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":367 - * #% Compute the start indices. - * #% Note: we checked for degeneracy; therefore, only one index can wrap. - * is2Wrap = 0; # <<<<<<<<<<<<<< - * start1 = start_ind + 1; - * start2 = start_ind - 1; - */ - __pyx_v_is2Wrap = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":368 - * #% Note: we checked for degeneracy; therefore, only one index can wrap. - * is2Wrap = 0; - * start1 = start_ind + 1; # <<<<<<<<<<<<<< - * start2 = start_ind - 1; - * if start2 < 0: - */ - __pyx_v_start1 = (__pyx_v_start_ind + 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":369 - * is2Wrap = 0; - * start1 = start_ind + 1; - * start2 = start_ind - 1; # <<<<<<<<<<<<<< - * if start2 < 0: - * start2 = start2 + x_last_index; - */ - __pyx_v_start2 = (__pyx_v_start_ind - 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":370 - * start1 = start_ind + 1; - * start2 = start_ind - 1; - * if start2 < 0: # <<<<<<<<<<<<<< - * start2 = start2 + x_last_index; - * is2Wrap = 1; - */ - __pyx_t_6 = ((__pyx_v_start2 < 0) != 0); - if (__pyx_t_6) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":371 - * start2 = start_ind - 1; - * if start2 < 0: - * start2 = start2 + x_last_index; # <<<<<<<<<<<<<< - * is2Wrap = 1; - * - */ - __pyx_v_start2 = (__pyx_v_start2 + __pyx_v_x_last_index); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":372 - * if start2 < 0: - * start2 = start2 + x_last_index; - * is2Wrap = 1; # <<<<<<<<<<<<<< - * - * #% Compute the end indices. - */ - __pyx_v_is2Wrap = 1; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":370 - * start1 = start_ind + 1; - * start2 = start_ind - 1; - * if start2 < 0: # <<<<<<<<<<<<<< - * start2 = start2 + x_last_index; - * is2Wrap = 1; - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":375 - * - * #% Compute the end indices. - * end1 = end_ind - 1; # <<<<<<<<<<<<<< - * end2 = end_ind + 1; - * if end2 >= x_last_index: - */ - __pyx_v_end1 = (__pyx_v_end_ind - 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":376 - * #% Compute the end indices. - * end1 = end_ind - 1; - * end2 = end_ind + 1; # <<<<<<<<<<<<<< - * if end2 >= x_last_index: - * end2 = end2 - x_last_index; - */ - __pyx_v_end2 = (__pyx_v_end_ind + 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":377 - * end1 = end_ind - 1; - * end2 = end_ind + 1; - * if end2 >= x_last_index: # <<<<<<<<<<<<<< - * end2 = end2 - x_last_index; - * is2Wrap = 1; - */ - __pyx_t_6 = ((__pyx_v_end2 >= __pyx_v_x_last_index) != 0); - if (__pyx_t_6) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":378 - * end2 = end_ind + 1; - * if end2 >= x_last_index: - * end2 = end2 - x_last_index; # <<<<<<<<<<<<<< - * is2Wrap = 1; - * - */ - __pyx_v_end2 = (__pyx_v_end2 - __pyx_v_x_last_index); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":379 - * if end2 >= x_last_index: - * end2 = end2 - x_last_index; - * is2Wrap = 1; # <<<<<<<<<<<<<< - * - * #% Compute the opposing points. - */ - __pyx_v_is2Wrap = 1; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":377 - * end1 = end_ind - 1; - * end2 = end_ind + 1; - * if end2 >= x_last_index: # <<<<<<<<<<<<<< - * end2 = end2 - x_last_index; - * is2Wrap = 1; - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":382 - * - * #% Compute the opposing points. - * opposite_ind = circOpposingPoints(points_ind_out, start_ind, end_ind, x_last_index, chain_code_len); # <<<<<<<<<<<<<< - * - * #% Side2 always goes from start to end in negative, index increments. - */ - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_circOpposingPoints); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 382, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_start_ind); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 382, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_end_ind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 382, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_x_last_index); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 382, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_10 = NULL; - __pyx_t_3 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_10)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_10); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - __pyx_t_3 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[6] = {__pyx_t_10, ((PyObject *)__pyx_v_points_ind_out), __pyx_t_4, __pyx_t_1, __pyx_t_9, ((PyObject *)__pyx_v_chain_code_len)}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_3, 5+__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 382, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[6] = {__pyx_t_10, ((PyObject *)__pyx_v_points_ind_out), __pyx_t_4, __pyx_t_1, __pyx_t_9, ((PyObject *)__pyx_v_chain_code_len)}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_3, 5+__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 382, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - } else - #endif - { - __pyx_t_11 = PyTuple_New(5+__pyx_t_3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 382, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - if (__pyx_t_10) { - __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10); __pyx_t_10 = NULL; - } - __Pyx_INCREF(((PyObject *)__pyx_v_points_ind_out)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_points_ind_out)); - PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_3, ((PyObject *)__pyx_v_points_ind_out)); - __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_3, __pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_3, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_9); - PyTuple_SET_ITEM(__pyx_t_11, 3+__pyx_t_3, __pyx_t_9); - __Pyx_INCREF(((PyObject *)__pyx_v_chain_code_len)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_chain_code_len)); - PyTuple_SET_ITEM(__pyx_t_11, 4+__pyx_t_3, ((PyObject *)__pyx_v_chain_code_len)); - __pyx_t_4 = 0; - __pyx_t_1 = 0; - __pyx_t_9 = 0; - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_11, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 382, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 382, __pyx_L1_error) - __pyx_t_12 = ((PyArrayObject *)__pyx_t_8); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_opposite_ind.rcbuffer->pybuffer); - __pyx_t_3 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_opposite_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_12, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); - if (unlikely(__pyx_t_3 < 0)) { - PyErr_Fetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_opposite_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_opposite_ind, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_15); - __Pyx_RaiseBufferFallbackError(); - } else { - PyErr_Restore(__pyx_t_13, __pyx_t_14, __pyx_t_15); - } - __pyx_t_13 = __pyx_t_14 = __pyx_t_15 = 0; - } - __pyx_pybuffernd_opposite_ind.diminfo[0].strides = __pyx_pybuffernd_opposite_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_opposite_ind.diminfo[0].shape = __pyx_pybuffernd_opposite_ind.rcbuffer->pybuffer.shape[0]; - if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 382, __pyx_L1_error) - } - __pyx_t_12 = 0; - __pyx_v_opposite_ind = ((PyArrayObject *)__pyx_t_8); - __pyx_t_8 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":385 - * - * #% Side2 always goes from start to end in negative, index increments. - * side12 = (opposite_ind != start_ind) & (opposite_ind != end_ind); # <<<<<<<<<<<<<< - * opposite_ind = opposite_ind[side12]; - * cdef np.ndarray[np.int_t, ndim=1] minOpoints_ind = np.zeros_like(opposite_ind) - */ - __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_start_ind); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 385, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_opposite_ind), __pyx_t_8, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 385, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_end_ind); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 385, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_11 = PyObject_RichCompare(((PyObject *)__pyx_v_opposite_ind), __pyx_t_8, Py_NE); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 385, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = PyNumber_And(__pyx_t_2, __pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 385, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_v_side12 = __pyx_t_8; - __pyx_t_8 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":386 - * #% Side2 always goes from start to end in negative, index increments. - * side12 = (opposite_ind != start_ind) & (opposite_ind != end_ind); - * opposite_ind = opposite_ind[side12]; # <<<<<<<<<<<<<< - * cdef np.ndarray[np.int_t, ndim=1] minOpoints_ind = np.zeros_like(opposite_ind) - * cdef np.ndarray[np.int_t, ndim=1] maxOpoints_ind = np.zeros_like(opposite_ind) - */ - if (unlikely(((PyObject *)__pyx_v_opposite_ind) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 386, __pyx_L1_error) - } - __pyx_t_8 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_opposite_ind), __pyx_v_side12); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 386, __pyx_L1_error) - __pyx_t_12 = ((PyArrayObject *)__pyx_t_8); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_opposite_ind.rcbuffer->pybuffer); - __pyx_t_3 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_opposite_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_12, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); - if (unlikely(__pyx_t_3 < 0)) { - PyErr_Fetch(&__pyx_t_15, &__pyx_t_14, &__pyx_t_13); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_opposite_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_opposite_ind, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); - __Pyx_RaiseBufferFallbackError(); - } else { - PyErr_Restore(__pyx_t_15, __pyx_t_14, __pyx_t_13); - } - __pyx_t_15 = __pyx_t_14 = __pyx_t_13 = 0; - } - __pyx_pybuffernd_opposite_ind.diminfo[0].strides = __pyx_pybuffernd_opposite_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_opposite_ind.diminfo[0].shape = __pyx_pybuffernd_opposite_ind.rcbuffer->pybuffer.shape[0]; - if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 386, __pyx_L1_error) - } - __pyx_t_12 = 0; - __Pyx_DECREF_SET(__pyx_v_opposite_ind, ((PyArrayObject *)__pyx_t_8)); - __pyx_t_8 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":387 - * side12 = (opposite_ind != start_ind) & (opposite_ind != end_ind); - * opposite_ind = opposite_ind[side12]; - * cdef np.ndarray[np.int_t, ndim=1] minOpoints_ind = np.zeros_like(opposite_ind) # <<<<<<<<<<<<<< - * cdef np.ndarray[np.int_t, ndim=1] maxOpoints_ind = np.zeros_like(opposite_ind) - * - */ - __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 387, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_zeros_like); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 387, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_11)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_11); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - } - } - if (!__pyx_t_11) { - __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_opposite_ind)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 387, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - } else { - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[2] = {__pyx_t_11, ((PyObject *)__pyx_v_opposite_ind)}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 387, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_GOTREF(__pyx_t_8); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[2] = {__pyx_t_11, ((PyObject *)__pyx_v_opposite_ind)}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 387, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_GOTREF(__pyx_t_8); - } else - #endif - { - __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 387, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_11); __pyx_t_11 = NULL; - __Pyx_INCREF(((PyObject *)__pyx_v_opposite_ind)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_opposite_ind)); - PyTuple_SET_ITEM(__pyx_t_9, 0+1, ((PyObject *)__pyx_v_opposite_ind)); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 387, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - } - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 387, __pyx_L1_error) - __pyx_t_16 = ((PyArrayObject *)__pyx_t_8); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_minOpoints_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_16, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { - __pyx_v_minOpoints_ind = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_minOpoints_ind.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 387, __pyx_L1_error) - } else {__pyx_pybuffernd_minOpoints_ind.diminfo[0].strides = __pyx_pybuffernd_minOpoints_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_minOpoints_ind.diminfo[0].shape = __pyx_pybuffernd_minOpoints_ind.rcbuffer->pybuffer.shape[0]; - } - } - __pyx_t_16 = 0; - __pyx_v_minOpoints_ind = ((PyArrayObject *)__pyx_t_8); - __pyx_t_8 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":388 - * opposite_ind = opposite_ind[side12]; - * cdef np.ndarray[np.int_t, ndim=1] minOpoints_ind = np.zeros_like(opposite_ind) - * cdef np.ndarray[np.int_t, ndim=1] maxOpoints_ind = np.zeros_like(opposite_ind) # <<<<<<<<<<<<<< - * - * - */ - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 388, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros_like); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 388, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_9); - if (likely(__pyx_t_2)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_9, function); - } - } - if (!__pyx_t_2) { - __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_9, ((PyObject *)__pyx_v_opposite_ind)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 388, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - } else { - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_9)) { - PyObject *__pyx_temp[2] = {__pyx_t_2, ((PyObject *)__pyx_v_opposite_ind)}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 388, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_8); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { - PyObject *__pyx_temp[2] = {__pyx_t_2, ((PyObject *)__pyx_v_opposite_ind)}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 388, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_8); - } else - #endif - { - __pyx_t_11 = PyTuple_New(1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 388, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_2); __pyx_t_2 = NULL; - __Pyx_INCREF(((PyObject *)__pyx_v_opposite_ind)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_opposite_ind)); - PyTuple_SET_ITEM(__pyx_t_11, 0+1, ((PyObject *)__pyx_v_opposite_ind)); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 388, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - } - } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 388, __pyx_L1_error) - __pyx_t_17 = ((PyArrayObject *)__pyx_t_8); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_maxOpoints_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_17, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { - __pyx_v_maxOpoints_ind = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_maxOpoints_ind.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 388, __pyx_L1_error) - } else {__pyx_pybuffernd_maxOpoints_ind.diminfo[0].strides = __pyx_pybuffernd_maxOpoints_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_maxOpoints_ind.diminfo[0].shape = __pyx_pybuffernd_maxOpoints_ind.rcbuffer->pybuffer.shape[0]; - } - } - __pyx_t_17 = 0; - __pyx_v_maxOpoints_ind = ((PyArrayObject *)__pyx_t_8); - __pyx_t_8 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":393 - * #% Compute the minimum search points on side 2 (for the search intervals - * #% opposite side 1). - * for ii in range(opposite_ind.size): # <<<<<<<<<<<<<< - * cur_ind = opposite_ind[ii] - * min_opposite = chain_code_len[cur_ind] - search_len; - */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_opposite_ind), __pyx_n_s_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 393, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_18 = __Pyx_PyInt_As_long(__pyx_t_8); if (unlikely((__pyx_t_18 == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 393, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_19 = __pyx_t_18; - for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_19; __pyx_t_3+=1) { - __pyx_v_ii = __pyx_t_3; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":394 - * #% opposite side 1). - * for ii in range(opposite_ind.size): - * cur_ind = opposite_ind[ii] # <<<<<<<<<<<<<< - * min_opposite = chain_code_len[cur_ind] - search_len; - * max_opposite = chain_code_len[cur_ind] + search_len; - */ - if (unlikely(((PyObject *)__pyx_v_opposite_ind) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 394, __pyx_L1_error) - } - __pyx_t_20 = __pyx_v_ii; - __pyx_t_21 = -1; - if (__pyx_t_20 < 0) { - __pyx_t_20 += __pyx_pybuffernd_opposite_ind.diminfo[0].shape; - if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0; - } else if (unlikely(__pyx_t_20 >= __pyx_pybuffernd_opposite_ind.diminfo[0].shape)) __pyx_t_21 = 0; - if (unlikely(__pyx_t_21 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_21); - __PYX_ERR(0, 394, __pyx_L1_error) - } - __pyx_v_cur_ind = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_opposite_ind.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_opposite_ind.diminfo[0].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":395 - * for ii in range(opposite_ind.size): - * cur_ind = opposite_ind[ii] - * min_opposite = chain_code_len[cur_ind] - search_len; # <<<<<<<<<<<<<< - * max_opposite = chain_code_len[cur_ind] + search_len; - * - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 395, __pyx_L1_error) - } - __pyx_t_22 = __pyx_v_cur_ind; - __pyx_t_21 = -1; - if (__pyx_t_22 < 0) { - __pyx_t_22 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0; - } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_21 = 0; - if (unlikely(__pyx_t_21 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_21); - __PYX_ERR(0, 395, __pyx_L1_error) - } - __pyx_v_min_opposite = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) - __pyx_v_search_len); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":396 - * cur_ind = opposite_ind[ii] - * min_opposite = chain_code_len[cur_ind] - search_len; - * max_opposite = chain_code_len[cur_ind] + search_len; # <<<<<<<<<<<<<< - * - * #side1 - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 396, __pyx_L1_error) - } - __pyx_t_23 = __pyx_v_cur_ind; - __pyx_t_21 = -1; - if (__pyx_t_23 < 0) { - __pyx_t_23 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0; - } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_21 = 0; - if (unlikely(__pyx_t_21 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_21); - __PYX_ERR(0, 396, __pyx_L1_error) - } - __pyx_v_max_opposite = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) + __pyx_v_search_len); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":399 - * - * #side1 - * if (cur_ind > start_ind) and (cur_ind < end_ind): # <<<<<<<<<<<<<< - * minOpoints_ind[ii] = wrapOppositeRegion(chain_code_len, min_opposite, start1, end1, last_chain_index, ISMIN, SIDE1, is2Wrap) - * maxOpoints_ind[ii] = wrapOppositeRegion(chain_code_len, max_opposite, start1, end1, last_chain_index, ISMAX, SIDE1, is2Wrap) - */ - __pyx_t_7 = ((__pyx_v_cur_ind > __pyx_v_start_ind) != 0); - if (__pyx_t_7) { - } else { - __pyx_t_6 = __pyx_t_7; - goto __pyx_L12_bool_binop_done; - } - __pyx_t_7 = ((__pyx_v_cur_ind < __pyx_v_end_ind) != 0); - __pyx_t_6 = __pyx_t_7; - __pyx_L12_bool_binop_done:; - if (__pyx_t_6) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":400 - * #side1 - * if (cur_ind > start_ind) and (cur_ind < end_ind): - * minOpoints_ind[ii] = wrapOppositeRegion(chain_code_len, min_opposite, start1, end1, last_chain_index, ISMIN, SIDE1, is2Wrap) # <<<<<<<<<<<<<< - * maxOpoints_ind[ii] = wrapOppositeRegion(chain_code_len, max_opposite, start1, end1, last_chain_index, ISMAX, SIDE1, is2Wrap) - * elif (cur_ind < start_ind) or (cur_ind > end_ind): - */ - if (unlikely(((PyObject *)__pyx_v_minOpoints_ind) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 400, __pyx_L1_error) - } - __pyx_t_24 = __pyx_v_ii; - __pyx_t_21 = -1; - if (__pyx_t_24 < 0) { - __pyx_t_24 += __pyx_pybuffernd_minOpoints_ind.diminfo[0].shape; - if (unlikely(__pyx_t_24 < 0)) __pyx_t_21 = 0; - } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_minOpoints_ind.diminfo[0].shape)) __pyx_t_21 = 0; - if (unlikely(__pyx_t_21 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_21); - __PYX_ERR(0, 400, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_minOpoints_ind.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_minOpoints_ind.diminfo[0].strides) = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_wrapOppositeRegion(((PyArrayObject *)__pyx_v_chain_code_len), __pyx_v_min_opposite, __pyx_v_start1, __pyx_v_end1, __pyx_v_last_chain_index, __pyx_v_ISMIN, __pyx_v_SIDE1, __pyx_v_is2Wrap); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":401 - * if (cur_ind > start_ind) and (cur_ind < end_ind): - * minOpoints_ind[ii] = wrapOppositeRegion(chain_code_len, min_opposite, start1, end1, last_chain_index, ISMIN, SIDE1, is2Wrap) - * maxOpoints_ind[ii] = wrapOppositeRegion(chain_code_len, max_opposite, start1, end1, last_chain_index, ISMAX, SIDE1, is2Wrap) # <<<<<<<<<<<<<< - * elif (cur_ind < start_ind) or (cur_ind > end_ind): - * minOpoints_ind[ii] = wrapOppositeRegion(chain_code_len, min_opposite, start2, end2, last_chain_index, ISMIN, SIDE2, is2Wrap) - */ - if (unlikely(((PyObject *)__pyx_v_maxOpoints_ind) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 401, __pyx_L1_error) - } - __pyx_t_25 = __pyx_v_ii; - __pyx_t_21 = -1; - if (__pyx_t_25 < 0) { - __pyx_t_25 += __pyx_pybuffernd_maxOpoints_ind.diminfo[0].shape; - if (unlikely(__pyx_t_25 < 0)) __pyx_t_21 = 0; - } else if (unlikely(__pyx_t_25 >= __pyx_pybuffernd_maxOpoints_ind.diminfo[0].shape)) __pyx_t_21 = 0; - if (unlikely(__pyx_t_21 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_21); - __PYX_ERR(0, 401, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_maxOpoints_ind.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_maxOpoints_ind.diminfo[0].strides) = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_wrapOppositeRegion(((PyArrayObject *)__pyx_v_chain_code_len), __pyx_v_max_opposite, __pyx_v_start1, __pyx_v_end1, __pyx_v_last_chain_index, __pyx_v_ISMAX, __pyx_v_SIDE1, __pyx_v_is2Wrap); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":399 - * - * #side1 - * if (cur_ind > start_ind) and (cur_ind < end_ind): # <<<<<<<<<<<<<< - * minOpoints_ind[ii] = wrapOppositeRegion(chain_code_len, min_opposite, start1, end1, last_chain_index, ISMIN, SIDE1, is2Wrap) - * maxOpoints_ind[ii] = wrapOppositeRegion(chain_code_len, max_opposite, start1, end1, last_chain_index, ISMAX, SIDE1, is2Wrap) - */ - goto __pyx_L11; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":402 - * minOpoints_ind[ii] = wrapOppositeRegion(chain_code_len, min_opposite, start1, end1, last_chain_index, ISMIN, SIDE1, is2Wrap) - * maxOpoints_ind[ii] = wrapOppositeRegion(chain_code_len, max_opposite, start1, end1, last_chain_index, ISMAX, SIDE1, is2Wrap) - * elif (cur_ind < start_ind) or (cur_ind > end_ind): # <<<<<<<<<<<<<< - * minOpoints_ind[ii] = wrapOppositeRegion(chain_code_len, min_opposite, start2, end2, last_chain_index, ISMIN, SIDE2, is2Wrap) - * maxOpoints_ind[ii] = wrapOppositeRegion(chain_code_len, max_opposite, start2, end2, last_chain_index, ISMAX, SIDE2, is2Wrap) - */ - __pyx_t_7 = ((__pyx_v_cur_ind < __pyx_v_start_ind) != 0); - if (!__pyx_t_7) { - } else { - __pyx_t_6 = __pyx_t_7; - goto __pyx_L14_bool_binop_done; - } - __pyx_t_7 = ((__pyx_v_cur_ind > __pyx_v_end_ind) != 0); - __pyx_t_6 = __pyx_t_7; - __pyx_L14_bool_binop_done:; - if (__pyx_t_6) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":403 - * maxOpoints_ind[ii] = wrapOppositeRegion(chain_code_len, max_opposite, start1, end1, last_chain_index, ISMAX, SIDE1, is2Wrap) - * elif (cur_ind < start_ind) or (cur_ind > end_ind): - * minOpoints_ind[ii] = wrapOppositeRegion(chain_code_len, min_opposite, start2, end2, last_chain_index, ISMIN, SIDE2, is2Wrap) # <<<<<<<<<<<<<< - * maxOpoints_ind[ii] = wrapOppositeRegion(chain_code_len, max_opposite, start2, end2, last_chain_index, ISMAX, SIDE2, is2Wrap) - * - */ - if (unlikely(((PyObject *)__pyx_v_minOpoints_ind) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 403, __pyx_L1_error) - } - __pyx_t_26 = __pyx_v_ii; - __pyx_t_21 = -1; - if (__pyx_t_26 < 0) { - __pyx_t_26 += __pyx_pybuffernd_minOpoints_ind.diminfo[0].shape; - if (unlikely(__pyx_t_26 < 0)) __pyx_t_21 = 0; - } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_minOpoints_ind.diminfo[0].shape)) __pyx_t_21 = 0; - if (unlikely(__pyx_t_21 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_21); - __PYX_ERR(0, 403, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_minOpoints_ind.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_minOpoints_ind.diminfo[0].strides) = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_wrapOppositeRegion(((PyArrayObject *)__pyx_v_chain_code_len), __pyx_v_min_opposite, __pyx_v_start2, __pyx_v_end2, __pyx_v_last_chain_index, __pyx_v_ISMIN, __pyx_v_SIDE2, __pyx_v_is2Wrap); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":404 - * elif (cur_ind < start_ind) or (cur_ind > end_ind): - * minOpoints_ind[ii] = wrapOppositeRegion(chain_code_len, min_opposite, start2, end2, last_chain_index, ISMIN, SIDE2, is2Wrap) - * maxOpoints_ind[ii] = wrapOppositeRegion(chain_code_len, max_opposite, start2, end2, last_chain_index, ISMAX, SIDE2, is2Wrap) # <<<<<<<<<<<<<< - * - * #% Search for the nearest points. - */ - if (unlikely(((PyObject *)__pyx_v_maxOpoints_ind) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 404, __pyx_L1_error) - } - __pyx_t_27 = __pyx_v_ii; - __pyx_t_21 = -1; - if (__pyx_t_27 < 0) { - __pyx_t_27 += __pyx_pybuffernd_maxOpoints_ind.diminfo[0].shape; - if (unlikely(__pyx_t_27 < 0)) __pyx_t_21 = 0; - } else if (unlikely(__pyx_t_27 >= __pyx_pybuffernd_maxOpoints_ind.diminfo[0].shape)) __pyx_t_21 = 0; - if (unlikely(__pyx_t_21 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_21); - __PYX_ERR(0, 404, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_maxOpoints_ind.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_maxOpoints_ind.diminfo[0].strides) = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_wrapOppositeRegion(((PyArrayObject *)__pyx_v_chain_code_len), __pyx_v_max_opposite, __pyx_v_start2, __pyx_v_end2, __pyx_v_last_chain_index, __pyx_v_ISMAX, __pyx_v_SIDE2, __pyx_v_is2Wrap); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":402 - * minOpoints_ind[ii] = wrapOppositeRegion(chain_code_len, min_opposite, start1, end1, last_chain_index, ISMIN, SIDE1, is2Wrap) - * maxOpoints_ind[ii] = wrapOppositeRegion(chain_code_len, max_opposite, start1, end1, last_chain_index, ISMAX, SIDE1, is2Wrap) - * elif (cur_ind < start_ind) or (cur_ind > end_ind): # <<<<<<<<<<<<<< - * minOpoints_ind[ii] = wrapOppositeRegion(chain_code_len, min_opposite, start2, end2, last_chain_index, ISMIN, SIDE2, is2Wrap) - * maxOpoints_ind[ii] = wrapOppositeRegion(chain_code_len, max_opposite, start2, end2, last_chain_index, ISMAX, SIDE2, is2Wrap) - */ - } - __pyx_L11:; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":407 - * - * #% Search for the nearest points. - * points_ind_out[side12] = circNearestPoints(points_ind[side12], minOpoints_ind, maxOpoints_ind, x); # <<<<<<<<<<<<<< - * return points_ind_out - * - */ - __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_circNearestPoints); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 407, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (unlikely(((PyObject *)__pyx_v_points_ind) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 407, __pyx_L1_error) - } - __pyx_t_11 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_points_ind), __pyx_v_side12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 407, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_2 = NULL; - __pyx_t_3 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_9); - if (likely(__pyx_t_2)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_9, function); - __pyx_t_3 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_9)) { - PyObject *__pyx_temp[5] = {__pyx_t_2, __pyx_t_11, ((PyObject *)__pyx_v_minOpoints_ind), ((PyObject *)__pyx_v_maxOpoints_ind), ((PyObject *)__pyx_v_x)}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_3, 4+__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 407, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { - PyObject *__pyx_temp[5] = {__pyx_t_2, __pyx_t_11, ((PyObject *)__pyx_v_minOpoints_ind), ((PyObject *)__pyx_v_maxOpoints_ind), ((PyObject *)__pyx_v_x)}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_3, 4+__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 407, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - } else - #endif - { - __pyx_t_1 = PyTuple_New(4+__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 407, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__pyx_t_2) { - __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __pyx_t_2 = NULL; - } - __Pyx_GIVEREF(__pyx_t_11); - PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_3, __pyx_t_11); - __Pyx_INCREF(((PyObject *)__pyx_v_minOpoints_ind)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_minOpoints_ind)); - PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_3, ((PyObject *)__pyx_v_minOpoints_ind)); - __Pyx_INCREF(((PyObject *)__pyx_v_maxOpoints_ind)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_maxOpoints_ind)); - PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_3, ((PyObject *)__pyx_v_maxOpoints_ind)); - __Pyx_INCREF(((PyObject *)__pyx_v_x)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_x)); - PyTuple_SET_ITEM(__pyx_t_1, 3+__pyx_t_3, ((PyObject *)__pyx_v_x)); - __pyx_t_11 = 0; - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 407, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(((PyObject *)__pyx_v_points_ind_out) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 407, __pyx_L1_error) - } - if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_points_ind_out), __pyx_v_side12, __pyx_t_8) < 0)) __PYX_ERR(0, 407, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":408 - * #% Search for the nearest points. - * points_ind_out[side12] = circNearestPoints(points_ind[side12], minOpoints_ind, maxOpoints_ind, x); - * return points_ind_out # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(((PyObject *)__pyx_v_points_ind_out)); - __pyx_r = ((PyObject *)__pyx_v_points_ind_out); - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":296 - * return chainCodeLength2Index(cur_len, lenghts); - * - * def circOpposingNearestPoints(np.ndarray[np.int_t, ndim=1] points_ind, np.ndarray[np.float64_t, ndim=2] x, \ # <<<<<<<<<<<<<< - * int start_ind, int end_ind, double search_len, np.ndarray[np.float64_t, ndim=1] chain_code_len): - * '''%CIRCOPPOSINGNEARESTPOINTS Find the nearest equivalent point indices on the - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_XDECREF(__pyx_t_11); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_maxOpoints_ind.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_minOpoints_ind.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_opposite_ind.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_points_ind.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_points_ind_out.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_x.rcbuffer->pybuffer); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython.circOpposingNearestPoints", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_maxOpoints_ind.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_minOpoints_ind.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_opposite_ind.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_points_ind.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_points_ind_out.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_x.rcbuffer->pybuffer); - __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_opposite_ind); - __Pyx_XDECREF((PyObject *)__pyx_v_points_ind_out); - __Pyx_XDECREF(__pyx_v_side12); - __Pyx_XDECREF((PyObject *)__pyx_v_minOpoints_ind); - __Pyx_XDECREF((PyObject *)__pyx_v_maxOpoints_ind); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":411 - * - * - * cdef double circAddition(double A,double B, double max_size): # <<<<<<<<<<<<<< - * C = A+B; - * if C > max_size: - */ - -static double __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_circAddition(double __pyx_v_A, double __pyx_v_B, double __pyx_v_max_size) { - double __pyx_v_C; - double __pyx_r; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - __Pyx_RefNannySetupContext("circAddition", 0); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":412 - * - * cdef double circAddition(double A,double B, double max_size): - * C = A+B; # <<<<<<<<<<<<<< - * if C > max_size: - * C -= max_size; - */ - __pyx_v_C = (__pyx_v_A + __pyx_v_B); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":413 - * cdef double circAddition(double A,double B, double max_size): - * C = A+B; - * if C > max_size: # <<<<<<<<<<<<<< - * C -= max_size; - * return C - */ - __pyx_t_1 = ((__pyx_v_C > __pyx_v_max_size) != 0); - if (__pyx_t_1) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":414 - * C = A+B; - * if C > max_size: - * C -= max_size; # <<<<<<<<<<<<<< - * return C - * - */ - __pyx_v_C = (__pyx_v_C - __pyx_v_max_size); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":413 - * cdef double circAddition(double A,double B, double max_size): - * C = A+B; - * if C > max_size: # <<<<<<<<<<<<<< - * C -= max_size; - * return C - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":415 - * if C > max_size: - * C -= max_size; - * return C # <<<<<<<<<<<<<< - * - * cdef double circSubtraction(double A, double B, double min_size, double max_size): - */ - __pyx_r = __pyx_v_C; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":411 - * - * - * cdef double circAddition(double A,double B, double max_size): # <<<<<<<<<<<<<< - * C = A+B; - * if C > max_size: - */ - - /* function exit code */ - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":417 - * return C - * - * cdef double circSubtraction(double A, double B, double min_size, double max_size): # <<<<<<<<<<<<<< - * C = A-B; - * if C < min_size: - */ - -static double __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_circSubtraction(double __pyx_v_A, double __pyx_v_B, double __pyx_v_min_size, double __pyx_v_max_size) { - double __pyx_v_C; - double __pyx_r; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - __Pyx_RefNannySetupContext("circSubtraction", 0); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":418 - * - * cdef double circSubtraction(double A, double B, double min_size, double max_size): - * C = A-B; # <<<<<<<<<<<<<< - * if C < min_size: - * C += max_size; - */ - __pyx_v_C = (__pyx_v_A - __pyx_v_B); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":419 - * cdef double circSubtraction(double A, double B, double min_size, double max_size): - * C = A-B; - * if C < min_size: # <<<<<<<<<<<<<< - * C += max_size; - * return C - */ - __pyx_t_1 = ((__pyx_v_C < __pyx_v_min_size) != 0); - if (__pyx_t_1) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":420 - * C = A-B; - * if C < min_size: - * C += max_size; # <<<<<<<<<<<<<< - * return C - * - */ - __pyx_v_C = (__pyx_v_C + __pyx_v_max_size); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":419 - * cdef double circSubtraction(double A, double B, double min_size, double max_size): - * C = A-B; - * if C < min_size: # <<<<<<<<<<<<<< - * C += max_size; - * return C - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":421 - * if C < min_size: - * C += max_size; - * return C # <<<<<<<<<<<<<< - * - * def getHeadTailRegion(int head_ind, int tail_ind, np.ndarray[np.float64_t, ndim=1] chain_code_len, double worm_seg_length): - */ - __pyx_r = __pyx_v_C; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":417 - * return C - * - * cdef double circSubtraction(double A, double B, double min_size, double max_size): # <<<<<<<<<<<<<< - * C = A-B; - * if C < min_size: - */ - - /* function exit code */ - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":423 - * return C - * - * def getHeadTailRegion(int head_ind, int tail_ind, np.ndarray[np.float64_t, ndim=1] chain_code_len, double worm_seg_length): # <<<<<<<<<<<<<< - * cdef double head_tail_seg = worm_seg_length * 4; - * cdef int head_start, head_end, tail_start, tail_end - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_9getHeadTailRegion(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_9getHeadTailRegion = {"getHeadTailRegion", (PyCFunction)__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_9getHeadTailRegion, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_9getHeadTailRegion(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - int __pyx_v_head_ind; - int __pyx_v_tail_ind; - PyArrayObject *__pyx_v_chain_code_len = 0; - double __pyx_v_worm_seg_length; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("getHeadTailRegion (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_head_ind,&__pyx_n_s_tail_ind,&__pyx_n_s_chain_code_len,&__pyx_n_s_worm_seg_length,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_head_ind)) != 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_tail_ind)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("getHeadTailRegion", 1, 4, 4, 1); __PYX_ERR(0, 423, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_chain_code_len)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("getHeadTailRegion", 1, 4, 4, 2); __PYX_ERR(0, 423, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worm_seg_length)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("getHeadTailRegion", 1, 4, 4, 3); __PYX_ERR(0, 423, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getHeadTailRegion") < 0)) __PYX_ERR(0, 423, __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_head_ind = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_head_ind == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 423, __pyx_L3_error) - __pyx_v_tail_ind = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_tail_ind == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 423, __pyx_L3_error) - __pyx_v_chain_code_len = ((PyArrayObject *)values[2]); - __pyx_v_worm_seg_length = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_worm_seg_length == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 423, __pyx_L3_error) - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("getHeadTailRegion", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 423, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython.getHeadTailRegion", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_chain_code_len), __pyx_ptype_5numpy_ndarray, 1, "chain_code_len", 0))) __PYX_ERR(0, 423, __pyx_L1_error) - __pyx_r = __pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_8getHeadTailRegion(__pyx_self, __pyx_v_head_ind, __pyx_v_tail_ind, __pyx_v_chain_code_len, __pyx_v_worm_seg_length); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_8getHeadTailRegion(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_head_ind, int __pyx_v_tail_ind, PyArrayObject *__pyx_v_chain_code_len, double __pyx_v_worm_seg_length) { - double __pyx_v_head_tail_seg; - int __pyx_v_head_start; - int __pyx_v_head_end; - int __pyx_v_tail_start; - int __pyx_v_tail_end; - double __pyx_v_tmp; - double __pyx_v_last_chain_len; - double __pyx_v_first_chain_len; - __Pyx_LocalBuf_ND __pyx_pybuffernd_chain_code_len; - __Pyx_Buffer __pyx_pybuffer_chain_code_len; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - double __pyx_t_3; - Py_ssize_t __pyx_t_4; - int __pyx_t_5; - Py_ssize_t __pyx_t_6; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - Py_ssize_t __pyx_t_10; - Py_ssize_t __pyx_t_11; - Py_ssize_t __pyx_t_12; - __Pyx_RefNannySetupContext("getHeadTailRegion", 0); - __pyx_pybuffer_chain_code_len.pybuffer.buf = NULL; - __pyx_pybuffer_chain_code_len.refcount = 0; - __pyx_pybuffernd_chain_code_len.data = NULL; - __pyx_pybuffernd_chain_code_len.rcbuffer = &__pyx_pybuffer_chain_code_len; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer, (PyObject*)__pyx_v_chain_code_len, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 423, __pyx_L1_error) - } - __pyx_pybuffernd_chain_code_len.diminfo[0].strides = __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_chain_code_len.diminfo[0].shape = __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.shape[0]; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":424 - * - * def getHeadTailRegion(int head_ind, int tail_ind, np.ndarray[np.float64_t, ndim=1] chain_code_len, double worm_seg_length): - * cdef double head_tail_seg = worm_seg_length * 4; # <<<<<<<<<<<<<< - * cdef int head_start, head_end, tail_start, tail_end - * cdef double tmp - */ - __pyx_v_head_tail_seg = (__pyx_v_worm_seg_length * 4.0); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":428 - * cdef double tmp - * - * cdef double last_chain_len = chain_code_len[chain_code_len.size-1] # <<<<<<<<<<<<<< - * cdef double first_chain_len = chain_code_len[0] - * - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 428, __pyx_L1_error) - } - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_chain_code_len), __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 428, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_t_1, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 428, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_chain_code_len), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 428, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 428, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_last_chain_len = __pyx_t_3; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":429 - * - * cdef double last_chain_len = chain_code_len[chain_code_len.size-1] - * cdef double first_chain_len = chain_code_len[0] # <<<<<<<<<<<<<< - * - * #% Find small head boundaries. - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 429, __pyx_L1_error) - } - __pyx_t_4 = 0; - __pyx_t_5 = -1; - if (__pyx_t_4 < 0) { - __pyx_t_4 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_4 < 0)) __pyx_t_5 = 0; - } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_5 = 0; - if (unlikely(__pyx_t_5 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_5); - __PYX_ERR(0, 429, __pyx_L1_error) - } - __pyx_v_first_chain_len = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":432 - * - * #% Find small head boundaries. - * tmp = circSubtraction(chain_code_len[head_ind], head_tail_seg, first_chain_len, last_chain_len); # <<<<<<<<<<<<<< - * head_start = chainCodeLength2Index(tmp, chain_code_len); - * - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 432, __pyx_L1_error) - } - __pyx_t_6 = __pyx_v_head_ind; - __pyx_t_5 = -1; - if (__pyx_t_6 < 0) { - __pyx_t_6 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_6 < 0)) __pyx_t_5 = 0; - } else if (unlikely(__pyx_t_6 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_5 = 0; - if (unlikely(__pyx_t_5 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_5); - __PYX_ERR(0, 432, __pyx_L1_error) - } - __pyx_v_tmp = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_circSubtraction((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)), __pyx_v_head_tail_seg, __pyx_v_first_chain_len, __pyx_v_last_chain_len); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":433 - * #% Find small head boundaries. - * tmp = circSubtraction(chain_code_len[head_ind], head_tail_seg, first_chain_len, last_chain_len); - * head_start = chainCodeLength2Index(tmp, chain_code_len); # <<<<<<<<<<<<<< - * - * tmp = circAddition(chain_code_len[head_ind], head_tail_seg, last_chain_len); - */ - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_chainCodeLength2Index); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 433, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_tmp); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 433, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = NULL; - __pyx_t_5 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_8)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - __pyx_t_5 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_7, ((PyObject *)__pyx_v_chain_code_len)}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 433, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_7, ((PyObject *)__pyx_v_chain_code_len)}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 433, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - } else - #endif - { - __pyx_t_9 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 433, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (__pyx_t_8) { - __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; - } - __Pyx_GIVEREF(__pyx_t_7); - PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_5, __pyx_t_7); - __Pyx_INCREF(((PyObject *)__pyx_v_chain_code_len)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_chain_code_len)); - PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_5, ((PyObject *)__pyx_v_chain_code_len)); - __pyx_t_7 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 433, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 433, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_head_start = __pyx_t_5; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":435 - * head_start = chainCodeLength2Index(tmp, chain_code_len); - * - * tmp = circAddition(chain_code_len[head_ind], head_tail_seg, last_chain_len); # <<<<<<<<<<<<<< - * head_end = chainCodeLength2Index(tmp, chain_code_len); - * - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 435, __pyx_L1_error) - } - __pyx_t_10 = __pyx_v_head_ind; - __pyx_t_5 = -1; - if (__pyx_t_10 < 0) { - __pyx_t_10 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_10 < 0)) __pyx_t_5 = 0; - } else if (unlikely(__pyx_t_10 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_5 = 0; - if (unlikely(__pyx_t_5 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_5); - __PYX_ERR(0, 435, __pyx_L1_error) - } - __pyx_v_tmp = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_circAddition((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)), __pyx_v_head_tail_seg, __pyx_v_last_chain_len); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":436 - * - * tmp = circAddition(chain_code_len[head_ind], head_tail_seg, last_chain_len); - * head_end = chainCodeLength2Index(tmp, chain_code_len); # <<<<<<<<<<<<<< - * - * #% Find small tail boundaries. - */ - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_chainCodeLength2Index); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 436, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = PyFloat_FromDouble(__pyx_v_tmp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 436, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_7 = NULL; - __pyx_t_5 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - __pyx_t_5 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_9, ((PyObject *)__pyx_v_chain_code_len)}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 436, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_9, ((PyObject *)__pyx_v_chain_code_len)}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 436, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - } else - #endif - { - __pyx_t_8 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 436, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - if (__pyx_t_7) { - __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL; - } - __Pyx_GIVEREF(__pyx_t_9); - PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_5, __pyx_t_9); - __Pyx_INCREF(((PyObject *)__pyx_v_chain_code_len)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_chain_code_len)); - PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_5, ((PyObject *)__pyx_v_chain_code_len)); - __pyx_t_9 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 436, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 436, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_head_end = __pyx_t_5; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":439 - * - * #% Find small tail boundaries. - * tmp = circSubtraction(chain_code_len[tail_ind], head_tail_seg, first_chain_len, last_chain_len); # <<<<<<<<<<<<<< - * tail_start = chainCodeLength2Index(tmp, chain_code_len); - * - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 439, __pyx_L1_error) - } - __pyx_t_11 = __pyx_v_tail_ind; - __pyx_t_5 = -1; - if (__pyx_t_11 < 0) { - __pyx_t_11 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_11 < 0)) __pyx_t_5 = 0; - } else if (unlikely(__pyx_t_11 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_5 = 0; - if (unlikely(__pyx_t_5 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_5); - __PYX_ERR(0, 439, __pyx_L1_error) - } - __pyx_v_tmp = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_circSubtraction((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)), __pyx_v_head_tail_seg, __pyx_v_first_chain_len, __pyx_v_last_chain_len); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":440 - * #% Find small tail boundaries. - * tmp = circSubtraction(chain_code_len[tail_ind], head_tail_seg, first_chain_len, last_chain_len); - * tail_start = chainCodeLength2Index(tmp, chain_code_len); # <<<<<<<<<<<<<< - * - * tmp = circAddition(chain_code_len[tail_ind], head_tail_seg, last_chain_len); - */ - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_chainCodeLength2Index); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 440, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_8 = PyFloat_FromDouble(__pyx_v_tmp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 440, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = NULL; - __pyx_t_5 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_9)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_9); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - __pyx_t_5 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_8, ((PyObject *)__pyx_v_chain_code_len)}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 440, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_8, ((PyObject *)__pyx_v_chain_code_len)}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 440, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - } else - #endif - { - __pyx_t_7 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 440, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - if (__pyx_t_9) { - __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9); __pyx_t_9 = NULL; - } - __Pyx_GIVEREF(__pyx_t_8); - PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_5, __pyx_t_8); - __Pyx_INCREF(((PyObject *)__pyx_v_chain_code_len)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_chain_code_len)); - PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_5, ((PyObject *)__pyx_v_chain_code_len)); - __pyx_t_8 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 440, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 440, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_tail_start = __pyx_t_5; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":442 - * tail_start = chainCodeLength2Index(tmp, chain_code_len); - * - * tmp = circAddition(chain_code_len[tail_ind], head_tail_seg, last_chain_len); # <<<<<<<<<<<<<< - * tail_end = chainCodeLength2Index(tmp, chain_code_len); - * - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 442, __pyx_L1_error) - } - __pyx_t_12 = __pyx_v_tail_ind; - __pyx_t_5 = -1; - if (__pyx_t_12 < 0) { - __pyx_t_12 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_12 < 0)) __pyx_t_5 = 0; - } else if (unlikely(__pyx_t_12 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_5 = 0; - if (unlikely(__pyx_t_5 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_5); - __PYX_ERR(0, 442, __pyx_L1_error) - } - __pyx_v_tmp = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_circAddition((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_12, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)), __pyx_v_head_tail_seg, __pyx_v_last_chain_len); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":443 - * - * tmp = circAddition(chain_code_len[tail_ind], head_tail_seg, last_chain_len); - * tail_end = chainCodeLength2Index(tmp, chain_code_len); # <<<<<<<<<<<<<< - * - * return head_start, head_end, tail_start, tail_end - */ - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_chainCodeLength2Index); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 443, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_tmp); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 443, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = NULL; - __pyx_t_5 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_8)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - __pyx_t_5 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_7, ((PyObject *)__pyx_v_chain_code_len)}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 443, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_7, ((PyObject *)__pyx_v_chain_code_len)}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 443, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - } else - #endif - { - __pyx_t_9 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 443, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (__pyx_t_8) { - __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; - } - __Pyx_GIVEREF(__pyx_t_7); - PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_5, __pyx_t_7); - __Pyx_INCREF(((PyObject *)__pyx_v_chain_code_len)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_chain_code_len)); - PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_5, ((PyObject *)__pyx_v_chain_code_len)); - __pyx_t_7 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 443, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 443, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_tail_end = __pyx_t_5; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":445 - * tail_end = chainCodeLength2Index(tmp, chain_code_len); - * - * return head_start, head_end, tail_start, tail_end # <<<<<<<<<<<<<< - * - * def getInterBendSeeds(np.ndarray[np.int_t, ndim=1] bend_side1, np.ndarray[np.int_t, ndim=1] bend_side2, \ - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_head_start); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 445, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_head_end); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 445, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_tail_start); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 445, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_tail_end); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 445, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 445, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_GIVEREF(__pyx_t_1); - PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_2); - PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_9); - PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_9); - __Pyx_GIVEREF(__pyx_t_7); - PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_t_7); - __pyx_t_1 = 0; - __pyx_t_2 = 0; - __pyx_t_9 = 0; - __pyx_t_7 = 0; - __pyx_r = __pyx_t_8; - __pyx_t_8 = 0; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":423 - * return C - * - * def getHeadTailRegion(int head_ind, int tail_ind, np.ndarray[np.float64_t, ndim=1] chain_code_len, double worm_seg_length): # <<<<<<<<<<<<<< - * cdef double head_tail_seg = worm_seg_length * 4; - * cdef int head_start, head_end, tail_start, tail_end - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython.getHeadTailRegion", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer); - __pyx_L2:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":447 - * return head_start, head_end, tail_start, tail_end - * - * def getInterBendSeeds(np.ndarray[np.int_t, ndim=1] bend_side1, np.ndarray[np.int_t, ndim=1] bend_side2, \ # <<<<<<<<<<<<<< - * np.ndarray[np.float64_t, ndim=2] contour, np.ndarray[np.float64_t, ndim=1] chain_code_len): - * cdef int total_interbends = bend_side1.size-1 - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_11getInterBendSeeds(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_11getInterBendSeeds = {"getInterBendSeeds", (PyCFunction)__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_11getInterBendSeeds, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_11getInterBendSeeds(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyArrayObject *__pyx_v_bend_side1 = 0; - PyArrayObject *__pyx_v_bend_side2 = 0; - PyArrayObject *__pyx_v_contour = 0; - PyArrayObject *__pyx_v_chain_code_len = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("getInterBendSeeds (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_bend_side1,&__pyx_n_s_bend_side2,&__pyx_n_s_contour,&__pyx_n_s_chain_code_len,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_bend_side1)) != 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_bend_side2)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("getInterBendSeeds", 1, 4, 4, 1); __PYX_ERR(0, 447, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_contour)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("getInterBendSeeds", 1, 4, 4, 2); __PYX_ERR(0, 447, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_chain_code_len)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("getInterBendSeeds", 1, 4, 4, 3); __PYX_ERR(0, 447, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getInterBendSeeds") < 0)) __PYX_ERR(0, 447, __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_bend_side1 = ((PyArrayObject *)values[0]); - __pyx_v_bend_side2 = ((PyArrayObject *)values[1]); - __pyx_v_contour = ((PyArrayObject *)values[2]); - __pyx_v_chain_code_len = ((PyArrayObject *)values[3]); - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("getInterBendSeeds", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 447, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython.getInterBendSeeds", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bend_side1), __pyx_ptype_5numpy_ndarray, 1, "bend_side1", 0))) __PYX_ERR(0, 447, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bend_side2), __pyx_ptype_5numpy_ndarray, 1, "bend_side2", 0))) __PYX_ERR(0, 447, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_contour), __pyx_ptype_5numpy_ndarray, 1, "contour", 0))) __PYX_ERR(0, 448, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_chain_code_len), __pyx_ptype_5numpy_ndarray, 1, "chain_code_len", 0))) __PYX_ERR(0, 448, __pyx_L1_error) - __pyx_r = __pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_10getInterBendSeeds(__pyx_self, __pyx_v_bend_side1, __pyx_v_bend_side2, __pyx_v_contour, __pyx_v_chain_code_len); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_10getInterBendSeeds(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_bend_side1, PyArrayObject *__pyx_v_bend_side2, PyArrayObject *__pyx_v_contour, PyArrayObject *__pyx_v_chain_code_len) { - int __pyx_v_total_interbends; - PyArrayObject *__pyx_v_interbend_side1 = 0; - PyArrayObject *__pyx_v_interbend_side2 = 0; - int __pyx_v_i; - __Pyx_LocalBuf_ND __pyx_pybuffernd_bend_side1; - __Pyx_Buffer __pyx_pybuffer_bend_side1; - __Pyx_LocalBuf_ND __pyx_pybuffernd_bend_side2; - __Pyx_Buffer __pyx_pybuffer_bend_side2; - __Pyx_LocalBuf_ND __pyx_pybuffernd_chain_code_len; - __Pyx_Buffer __pyx_pybuffer_chain_code_len; - __Pyx_LocalBuf_ND __pyx_pybuffernd_contour; - __Pyx_Buffer __pyx_pybuffer_contour; - __Pyx_LocalBuf_ND __pyx_pybuffernd_interbend_side1; - __Pyx_Buffer __pyx_pybuffer_interbend_side1; - __Pyx_LocalBuf_ND __pyx_pybuffernd_interbend_side2; - __Pyx_Buffer __pyx_pybuffer_interbend_side2; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyArrayObject *__pyx_t_7 = NULL; - PyArrayObject *__pyx_t_8 = NULL; - int __pyx_t_9; - int __pyx_t_10; - Py_ssize_t __pyx_t_11; - int __pyx_t_12; - Py_ssize_t __pyx_t_13; - Py_ssize_t __pyx_t_14; - Py_ssize_t __pyx_t_15; - __pyx_t_5numpy_int_t __pyx_t_16; - Py_ssize_t __pyx_t_17; - PyObject *__pyx_t_18 = NULL; - PyObject *__pyx_t_19 = NULL; - PyObject *__pyx_t_20 = NULL; - PyObject *__pyx_t_21 = NULL; - __Pyx_RefNannySetupContext("getInterBendSeeds", 0); - __pyx_pybuffer_interbend_side1.pybuffer.buf = NULL; - __pyx_pybuffer_interbend_side1.refcount = 0; - __pyx_pybuffernd_interbend_side1.data = NULL; - __pyx_pybuffernd_interbend_side1.rcbuffer = &__pyx_pybuffer_interbend_side1; - __pyx_pybuffer_interbend_side2.pybuffer.buf = NULL; - __pyx_pybuffer_interbend_side2.refcount = 0; - __pyx_pybuffernd_interbend_side2.data = NULL; - __pyx_pybuffernd_interbend_side2.rcbuffer = &__pyx_pybuffer_interbend_side2; - __pyx_pybuffer_bend_side1.pybuffer.buf = NULL; - __pyx_pybuffer_bend_side1.refcount = 0; - __pyx_pybuffernd_bend_side1.data = NULL; - __pyx_pybuffernd_bend_side1.rcbuffer = &__pyx_pybuffer_bend_side1; - __pyx_pybuffer_bend_side2.pybuffer.buf = NULL; - __pyx_pybuffer_bend_side2.refcount = 0; - __pyx_pybuffernd_bend_side2.data = NULL; - __pyx_pybuffernd_bend_side2.rcbuffer = &__pyx_pybuffer_bend_side2; - __pyx_pybuffer_contour.pybuffer.buf = NULL; - __pyx_pybuffer_contour.refcount = 0; - __pyx_pybuffernd_contour.data = NULL; - __pyx_pybuffernd_contour.rcbuffer = &__pyx_pybuffer_contour; - __pyx_pybuffer_chain_code_len.pybuffer.buf = NULL; - __pyx_pybuffer_chain_code_len.refcount = 0; - __pyx_pybuffernd_chain_code_len.data = NULL; - __pyx_pybuffernd_chain_code_len.rcbuffer = &__pyx_pybuffer_chain_code_len; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bend_side1.rcbuffer->pybuffer, (PyObject*)__pyx_v_bend_side1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 447, __pyx_L1_error) - } - __pyx_pybuffernd_bend_side1.diminfo[0].strides = __pyx_pybuffernd_bend_side1.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bend_side1.diminfo[0].shape = __pyx_pybuffernd_bend_side1.rcbuffer->pybuffer.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bend_side2.rcbuffer->pybuffer, (PyObject*)__pyx_v_bend_side2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 447, __pyx_L1_error) - } - __pyx_pybuffernd_bend_side2.diminfo[0].strides = __pyx_pybuffernd_bend_side2.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bend_side2.diminfo[0].shape = __pyx_pybuffernd_bend_side2.rcbuffer->pybuffer.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_contour.rcbuffer->pybuffer, (PyObject*)__pyx_v_contour, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 447, __pyx_L1_error) - } - __pyx_pybuffernd_contour.diminfo[0].strides = __pyx_pybuffernd_contour.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_contour.diminfo[0].shape = __pyx_pybuffernd_contour.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_contour.diminfo[1].strides = __pyx_pybuffernd_contour.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_contour.diminfo[1].shape = __pyx_pybuffernd_contour.rcbuffer->pybuffer.shape[1]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer, (PyObject*)__pyx_v_chain_code_len, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 447, __pyx_L1_error) - } - __pyx_pybuffernd_chain_code_len.diminfo[0].strides = __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_chain_code_len.diminfo[0].shape = __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.shape[0]; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":449 - * def getInterBendSeeds(np.ndarray[np.int_t, ndim=1] bend_side1, np.ndarray[np.int_t, ndim=1] bend_side2, \ - * np.ndarray[np.float64_t, ndim=2] contour, np.ndarray[np.float64_t, ndim=1] chain_code_len): - * cdef int total_interbends = bend_side1.size-1 # <<<<<<<<<<<<<< - * #% Compute the inter-bend indices. - * cdef np.ndarray[np.int_t, ndim=1] interbend_side1 = np.zeros((total_interbends), dtype = np.int) - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_bend_side1), __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 449, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_t_1, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 449, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 449, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_total_interbends = __pyx_t_3; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":451 - * cdef int total_interbends = bend_side1.size-1 - * #% Compute the inter-bend indices. - * cdef np.ndarray[np.int_t, ndim=1] interbend_side1 = np.zeros((total_interbends), dtype = np.int) # <<<<<<<<<<<<<< - * cdef np.ndarray[np.int_t, ndim=1] interbend_side2 = np.zeros((total_interbends), dtype = np.int) - * cdef int i - */ - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 451, __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, 451, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_total_interbends); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 451, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 451, __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, 451, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 451, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 451, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 451, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 451, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 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, 451, __pyx_L1_error) - __pyx_t_7 = ((PyArrayObject *)__pyx_t_6); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_interbend_side1.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { - __pyx_v_interbend_side1 = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_interbend_side1.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 451, __pyx_L1_error) - } else {__pyx_pybuffernd_interbend_side1.diminfo[0].strides = __pyx_pybuffernd_interbend_side1.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_interbend_side1.diminfo[0].shape = __pyx_pybuffernd_interbend_side1.rcbuffer->pybuffer.shape[0]; - } - } - __pyx_t_7 = 0; - __pyx_v_interbend_side1 = ((PyArrayObject *)__pyx_t_6); - __pyx_t_6 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":452 - * #% Compute the inter-bend indices. - * cdef np.ndarray[np.int_t, ndim=1] interbend_side1 = np.zeros((total_interbends), dtype = np.int) - * cdef np.ndarray[np.int_t, ndim=1] interbend_side2 = np.zeros((total_interbends), dtype = np.int) # <<<<<<<<<<<<<< - * cdef int i - * for i in range(total_interbends): - */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 452, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 452, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_total_interbends); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 452, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 452, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_6); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 452, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 452, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_int); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 452, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 452, __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_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 452, __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_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 452, __pyx_L1_error) - __pyx_t_8 = ((PyArrayObject *)__pyx_t_5); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_interbend_side2.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { - __pyx_v_interbend_side2 = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_interbend_side2.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 452, __pyx_L1_error) - } else {__pyx_pybuffernd_interbend_side2.diminfo[0].strides = __pyx_pybuffernd_interbend_side2.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_interbend_side2.diminfo[0].shape = __pyx_pybuffernd_interbend_side2.rcbuffer->pybuffer.shape[0]; - } - } - __pyx_t_8 = 0; - __pyx_v_interbend_side2 = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":454 - * cdef np.ndarray[np.int_t, ndim=1] interbend_side2 = np.zeros((total_interbends), dtype = np.int) - * cdef int i - * for i in range(total_interbends): # <<<<<<<<<<<<<< - * interbend_side1[i] = chainCodeLength2Index((chain_code_len[bend_side1[i]] + \ - * chain_code_len[bend_side1[i+1]]) / 2., chain_code_len); - */ - __pyx_t_3 = __pyx_v_total_interbends; - __pyx_t_9 = __pyx_t_3; - for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) { - __pyx_v_i = __pyx_t_10; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":455 - * cdef int i - * for i in range(total_interbends): - * interbend_side1[i] = chainCodeLength2Index((chain_code_len[bend_side1[i]] + \ # <<<<<<<<<<<<<< - * chain_code_len[bend_side1[i+1]]) / 2., chain_code_len); - * interbend_side2 = circNearestPoints(interbend_side1, bend_side2[1:], bend_side2[:total_interbends], contour); - */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_chainCodeLength2Index); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 455, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 455, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_bend_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 455, __pyx_L1_error) - } - __pyx_t_11 = __pyx_v_i; - __pyx_t_12 = -1; - if (__pyx_t_11 < 0) { - __pyx_t_11 += __pyx_pybuffernd_bend_side1.diminfo[0].shape; - if (unlikely(__pyx_t_11 < 0)) __pyx_t_12 = 0; - } else if (unlikely(__pyx_t_11 >= __pyx_pybuffernd_bend_side1.diminfo[0].shape)) __pyx_t_12 = 0; - if (unlikely(__pyx_t_12 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_12); - __PYX_ERR(0, 455, __pyx_L1_error) - } - __pyx_t_13 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_bend_side1.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_bend_side1.diminfo[0].strides)); - __pyx_t_12 = -1; - if (__pyx_t_13 < 0) { - __pyx_t_13 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_13 < 0)) __pyx_t_12 = 0; - } else if (unlikely(__pyx_t_13 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_12 = 0; - if (unlikely(__pyx_t_12 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_12); - __PYX_ERR(0, 455, __pyx_L1_error) - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":456 - * for i in range(total_interbends): - * interbend_side1[i] = chainCodeLength2Index((chain_code_len[bend_side1[i]] + \ - * chain_code_len[bend_side1[i+1]]) / 2., chain_code_len); # <<<<<<<<<<<<<< - * interbend_side2 = circNearestPoints(interbend_side1, bend_side2[1:], bend_side2[:total_interbends], contour); - * return interbend_side1, interbend_side2 - */ - if (unlikely(((PyObject *)__pyx_v_chain_code_len) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 456, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_bend_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 456, __pyx_L1_error) - } - __pyx_t_14 = (__pyx_v_i + 1); - __pyx_t_12 = -1; - if (__pyx_t_14 < 0) { - __pyx_t_14 += __pyx_pybuffernd_bend_side1.diminfo[0].shape; - if (unlikely(__pyx_t_14 < 0)) __pyx_t_12 = 0; - } else if (unlikely(__pyx_t_14 >= __pyx_pybuffernd_bend_side1.diminfo[0].shape)) __pyx_t_12 = 0; - if (unlikely(__pyx_t_12 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_12); - __PYX_ERR(0, 456, __pyx_L1_error) - } - __pyx_t_15 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_bend_side1.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_bend_side1.diminfo[0].strides)); - __pyx_t_12 = -1; - if (__pyx_t_15 < 0) { - __pyx_t_15 += __pyx_pybuffernd_chain_code_len.diminfo[0].shape; - if (unlikely(__pyx_t_15 < 0)) __pyx_t_12 = 0; - } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_chain_code_len.diminfo[0].shape)) __pyx_t_12 = 0; - if (unlikely(__pyx_t_12 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_12); - __PYX_ERR(0, 456, __pyx_L1_error) - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":455 - * cdef int i - * for i in range(total_interbends): - * interbend_side1[i] = chainCodeLength2Index((chain_code_len[bend_side1[i]] + \ # <<<<<<<<<<<<<< - * chain_code_len[bend_side1[i+1]]) / 2., chain_code_len); - * interbend_side2 = circNearestPoints(interbend_side1, bend_side2[1:], bend_side2[:total_interbends], contour); - */ - __pyx_t_4 = PyFloat_FromDouble((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_chain_code_len.diminfo[0].strides)) + (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_chain_code_len.diminfo[0].strides))) / 2.)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 456, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":456 - * for i in range(total_interbends): - * interbend_side1[i] = chainCodeLength2Index((chain_code_len[bend_side1[i]] + \ - * chain_code_len[bend_side1[i+1]]) / 2., chain_code_len); # <<<<<<<<<<<<<< - * interbend_side2 = circNearestPoints(interbend_side1, bend_side2[1:], bend_side2[:total_interbends], contour); - * return interbend_side1, interbend_side2 - */ - __pyx_t_2 = NULL; - __pyx_t_12 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); - if (likely(__pyx_t_2)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_6, function); - __pyx_t_12 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_6)) { - PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_4, ((PyObject *)__pyx_v_chain_code_len)}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 455, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { - PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_4, ((PyObject *)__pyx_v_chain_code_len)}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 455, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } else - #endif - { - __pyx_t_1 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 455, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__pyx_t_2) { - __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __pyx_t_2 = NULL; - } - __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_12, __pyx_t_4); - __Pyx_INCREF(((PyObject *)__pyx_v_chain_code_len)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_chain_code_len)); - PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_12, ((PyObject *)__pyx_v_chain_code_len)); - __pyx_t_4 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 455, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":455 - * cdef int i - * for i in range(total_interbends): - * interbend_side1[i] = chainCodeLength2Index((chain_code_len[bend_side1[i]] + \ # <<<<<<<<<<<<<< - * chain_code_len[bend_side1[i+1]]) / 2., chain_code_len); - * interbend_side2 = circNearestPoints(interbend_side1, bend_side2[1:], bend_side2[:total_interbends], contour); - */ - __pyx_t_16 = __Pyx_PyInt_As_npy_long(__pyx_t_5); if (unlikely((__pyx_t_16 == ((npy_long)-1)) && PyErr_Occurred())) __PYX_ERR(0, 455, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(((PyObject *)__pyx_v_interbend_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 455, __pyx_L1_error) - } - __pyx_t_17 = __pyx_v_i; - __pyx_t_12 = -1; - if (__pyx_t_17 < 0) { - __pyx_t_17 += __pyx_pybuffernd_interbend_side1.diminfo[0].shape; - if (unlikely(__pyx_t_17 < 0)) __pyx_t_12 = 0; - } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_interbend_side1.diminfo[0].shape)) __pyx_t_12 = 0; - if (unlikely(__pyx_t_12 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_12); - __PYX_ERR(0, 455, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_interbend_side1.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_interbend_side1.diminfo[0].strides) = __pyx_t_16; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":457 - * interbend_side1[i] = chainCodeLength2Index((chain_code_len[bend_side1[i]] + \ - * chain_code_len[bend_side1[i+1]]) / 2., chain_code_len); - * interbend_side2 = circNearestPoints(interbend_side1, bend_side2[1:], bend_side2[:total_interbends], contour); # <<<<<<<<<<<<<< - * return interbend_side1, interbend_side2 - * - */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_circNearestPoints); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 457, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (unlikely(((PyObject *)__pyx_v_bend_side2) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 457, __pyx_L1_error) - } - __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_bend_side2), __pyx_slice_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 457, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely(((PyObject *)__pyx_v_bend_side2) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 457, __pyx_L1_error) - } - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_total_interbends); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 457, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = PySlice_New(Py_None, __pyx_t_4, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 457, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_bend_side2), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 457, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = NULL; - __pyx_t_3 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); - if (likely(__pyx_t_2)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_6, function); - __pyx_t_3 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_6)) { - PyObject *__pyx_temp[5] = {__pyx_t_2, ((PyObject *)__pyx_v_interbend_side1), __pyx_t_1, __pyx_t_4, ((PyObject *)__pyx_v_contour)}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_3, 4+__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 457, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { - PyObject *__pyx_temp[5] = {__pyx_t_2, ((PyObject *)__pyx_v_interbend_side1), __pyx_t_1, __pyx_t_4, ((PyObject *)__pyx_v_contour)}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_3, 4+__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 457, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } else - #endif - { - __pyx_t_18 = PyTuple_New(4+__pyx_t_3); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 457, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - if (__pyx_t_2) { - __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_2); __pyx_t_2 = NULL; - } - __Pyx_INCREF(((PyObject *)__pyx_v_interbend_side1)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_interbend_side1)); - PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_3, ((PyObject *)__pyx_v_interbend_side1)); - __Pyx_GIVEREF(__pyx_t_1); - PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_3, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_18, 2+__pyx_t_3, __pyx_t_4); - __Pyx_INCREF(((PyObject *)__pyx_v_contour)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_contour)); - PyTuple_SET_ITEM(__pyx_t_18, 3+__pyx_t_3, ((PyObject *)__pyx_v_contour)); - __pyx_t_1 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_18, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 457, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - } - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 457, __pyx_L1_error) - __pyx_t_8 = ((PyArrayObject *)__pyx_t_5); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_interbend_side2.rcbuffer->pybuffer); - __pyx_t_3 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_interbend_side2.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); - if (unlikely(__pyx_t_3 < 0)) { - PyErr_Fetch(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_interbend_side2.rcbuffer->pybuffer, (PyObject*)__pyx_v_interbend_side2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_21); - __Pyx_RaiseBufferFallbackError(); - } else { - PyErr_Restore(__pyx_t_19, __pyx_t_20, __pyx_t_21); - } - __pyx_t_19 = __pyx_t_20 = __pyx_t_21 = 0; - } - __pyx_pybuffernd_interbend_side2.diminfo[0].strides = __pyx_pybuffernd_interbend_side2.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_interbend_side2.diminfo[0].shape = __pyx_pybuffernd_interbend_side2.rcbuffer->pybuffer.shape[0]; - if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 457, __pyx_L1_error) - } - __pyx_t_8 = 0; - __Pyx_DECREF_SET(__pyx_v_interbend_side2, ((PyArrayObject *)__pyx_t_5)); - __pyx_t_5 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":458 - * chain_code_len[bend_side1[i+1]]) / 2., chain_code_len); - * interbend_side2 = circNearestPoints(interbend_side1, bend_side2[1:], bend_side2[:total_interbends], contour); - * return interbend_side1, interbend_side2 # <<<<<<<<<<<<<< - * - * cdef double getDistance(double x1, double x2, double y1, double y2): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 458, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_INCREF(((PyObject *)__pyx_v_interbend_side1)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_interbend_side1)); - PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_interbend_side1)); - __Pyx_INCREF(((PyObject *)__pyx_v_interbend_side2)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_interbend_side2)); - PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_interbend_side2)); - __pyx_r = __pyx_t_5; - __pyx_t_5 = 0; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":447 - * return head_start, head_end, tail_start, tail_end - * - * def getInterBendSeeds(np.ndarray[np.int_t, ndim=1] bend_side1, np.ndarray[np.int_t, ndim=1] bend_side2, \ # <<<<<<<<<<<<<< - * np.ndarray[np.float64_t, ndim=2] contour, np.ndarray[np.float64_t, ndim=1] chain_code_len): - * cdef int total_interbends = bend_side1.size-1 - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_18); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bend_side1.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bend_side2.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_contour.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_interbend_side1.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_interbend_side2.rcbuffer->pybuffer); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython.getInterBendSeeds", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bend_side1.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bend_side2.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_chain_code_len.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_contour.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_interbend_side1.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_interbend_side2.rcbuffer->pybuffer); - __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_interbend_side1); - __Pyx_XDECREF((PyObject *)__pyx_v_interbend_side2); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":460 - * return interbend_side1, interbend_side2 - * - * cdef double getDistance(double x1, double x2, double y1, double y2): # <<<<<<<<<<<<<< - * cdef double d1, d2 - * d1 = x1-x2; - */ - -static double __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_getDistance(double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_y1, double __pyx_v_y2) { - double __pyx_v_d1; - double __pyx_v_d2; - double __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("getDistance", 0); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":462 - * cdef double getDistance(double x1, double x2, double y1, double y2): - * cdef double d1, d2 - * d1 = x1-x2; # <<<<<<<<<<<<<< - * d2 = y1-y2; - * return sqrt(d1*d1 + d2*d2) - */ - __pyx_v_d1 = (__pyx_v_x1 - __pyx_v_x2); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":463 - * cdef double d1, d2 - * d1 = x1-x2; - * d2 = y1-y2; # <<<<<<<<<<<<<< - * return sqrt(d1*d1 + d2*d2) - * - */ - __pyx_v_d2 = (__pyx_v_y1 - __pyx_v_y2); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":464 - * d1 = x1-x2; - * d2 = y1-y2; - * return sqrt(d1*d1 + d2*d2) # <<<<<<<<<<<<<< - * - * cdef tuple getWrappedIndex(int start_side, int end_side, double inc_side, int cnt_size): - */ - __pyx_r = sqrt(((__pyx_v_d1 * __pyx_v_d1) + (__pyx_v_d2 * __pyx_v_d2))); - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":460 - * return interbend_side1, interbend_side2 - * - * cdef double getDistance(double x1, double x2, double y1, double y2): # <<<<<<<<<<<<<< - * cdef double d1, d2 - * d1 = x1-x2; - */ - - /* function exit code */ - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":466 - * return sqrt(d1*d1 + d2*d2) - * - * cdef tuple getWrappedIndex(int start_side, int end_side, double inc_side, int cnt_size): # <<<<<<<<<<<<<< - * if (start_side <= end_side): - * #//% We are going forward. - */ - -static PyObject *__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_getWrappedIndex(int __pyx_v_start_side, int __pyx_v_end_side, double __pyx_v_inc_side, int __pyx_v_cnt_size) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - long __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - double __pyx_t_5; - PyObject *__pyx_t_6 = NULL; - __Pyx_RefNannySetupContext("getWrappedIndex", 0); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":467 - * - * cdef tuple getWrappedIndex(int start_side, int end_side, double inc_side, int cnt_size): - * if (start_side <= end_side): # <<<<<<<<<<<<<< - * #//% We are going forward. - * if (inc_side > 0): - */ - __pyx_t_1 = ((__pyx_v_start_side <= __pyx_v_end_side) != 0); - if (__pyx_t_1) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":469 - * if (start_side <= end_side): - * #//% We are going forward. - * if (inc_side > 0): # <<<<<<<<<<<<<< - * return ((end_side - start_side + 1) / inc_side, -1, -1) - * #//% We are wrapping backward. - */ - __pyx_t_1 = ((__pyx_v_inc_side > 0.0) != 0); - if (__pyx_t_1) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":470 - * #//% We are going forward. - * if (inc_side > 0): - * return ((end_side - start_side + 1) / inc_side, -1, -1) # <<<<<<<<<<<<<< - * #//% We are wrapping backward. - * else: - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = ((__pyx_v_end_side - __pyx_v_start_side) + 1); - if (unlikely(__pyx_v_inc_side == 0)) { - PyErr_SetString(PyExc_ZeroDivisionError, "float division"); - __PYX_ERR(0, 470, __pyx_L1_error) - } - __pyx_t_3 = PyFloat_FromDouble((__pyx_t_2 / __pyx_v_inc_side)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 470, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 470, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); - __Pyx_INCREF(__pyx_int_neg_1); - __Pyx_GIVEREF(__pyx_int_neg_1); - PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_neg_1); - __Pyx_INCREF(__pyx_int_neg_1); - __Pyx_GIVEREF(__pyx_int_neg_1); - PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_int_neg_1); - __pyx_t_3 = 0; - __pyx_r = ((PyObject*)__pyx_t_4); - __pyx_t_4 = 0; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":469 - * if (start_side <= end_side): - * #//% We are going forward. - * if (inc_side > 0): # <<<<<<<<<<<<<< - * return ((end_side - start_side + 1) / inc_side, -1, -1) - * #//% We are wrapping backward. - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":473 - * #//% We are wrapping backward. - * else: - * return ((start_side + cnt_size - end_side + 1) / (-1*inc_side), cnt_size-1, 0) # <<<<<<<<<<<<<< - * #//% The first starting index is after the ending one. - * else: - */ - /*else*/ { - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = (((__pyx_v_start_side + __pyx_v_cnt_size) - __pyx_v_end_side) + 1); - __pyx_t_5 = (-1.0 * __pyx_v_inc_side); - if (unlikely(__pyx_t_5 == 0)) { - PyErr_SetString(PyExc_ZeroDivisionError, "float division"); - __PYX_ERR(0, 473, __pyx_L1_error) - } - __pyx_t_4 = PyFloat_FromDouble((__pyx_t_2 / __pyx_t_5)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 473, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyInt_From_long((__pyx_v_cnt_size - 1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 473, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 473, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); - __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3); - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_int_0); - __pyx_t_4 = 0; - __pyx_t_3 = 0; - __pyx_r = ((PyObject*)__pyx_t_6); - __pyx_t_6 = 0; - goto __pyx_L0; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":467 - * - * cdef tuple getWrappedIndex(int start_side, int end_side, double inc_side, int cnt_size): - * if (start_side <= end_side): # <<<<<<<<<<<<<< - * #//% We are going forward. - * if (inc_side > 0): - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":477 - * else: - * #//% We are going backward. - * if (inc_side < 0): # <<<<<<<<<<<<<< - * return ((start_side - end_side + 1) / (-1*inc_side), -1, -1) - * #//% We are wrapping forward. - */ - /*else*/ { - __pyx_t_1 = ((__pyx_v_inc_side < 0.0) != 0); - if (__pyx_t_1) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":478 - * #//% We are going backward. - * if (inc_side < 0): - * return ((start_side - end_side + 1) / (-1*inc_side), -1, -1) # <<<<<<<<<<<<<< - * #//% We are wrapping forward. - * else: - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = ((__pyx_v_start_side - __pyx_v_end_side) + 1); - __pyx_t_5 = (-1.0 * __pyx_v_inc_side); - if (unlikely(__pyx_t_5 == 0)) { - PyErr_SetString(PyExc_ZeroDivisionError, "float division"); - __PYX_ERR(0, 478, __pyx_L1_error) - } - __pyx_t_6 = PyFloat_FromDouble((__pyx_t_2 / __pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 478, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 478, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_6); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); - __Pyx_INCREF(__pyx_int_neg_1); - __Pyx_GIVEREF(__pyx_int_neg_1); - PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_neg_1); - __Pyx_INCREF(__pyx_int_neg_1); - __Pyx_GIVEREF(__pyx_int_neg_1); - PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_int_neg_1); - __pyx_t_6 = 0; - __pyx_r = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":477 - * else: - * #//% We are going backward. - * if (inc_side < 0): # <<<<<<<<<<<<<< - * return ((start_side - end_side + 1) / (-1*inc_side), -1, -1) - * #//% We are wrapping forward. - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":481 - * #//% We are wrapping forward. - * else: - * return ((cnt_size - start_side + 1 + end_side) / inc_side, 0, cnt_size-1) # <<<<<<<<<<<<<< - * - * def skeletonize(int start_side1, int end_side1, int inc_side1, \ - */ - /*else*/ { - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = (((__pyx_v_cnt_size - __pyx_v_start_side) + 1) + __pyx_v_end_side); - if (unlikely(__pyx_v_inc_side == 0)) { - PyErr_SetString(PyExc_ZeroDivisionError, "float division"); - __PYX_ERR(0, 481, __pyx_L1_error) - } - __pyx_t_3 = PyFloat_FromDouble((__pyx_t_2 / __pyx_v_inc_side)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 481, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = __Pyx_PyInt_From_long((__pyx_v_cnt_size - 1)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 481, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 481, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_0); - __Pyx_GIVEREF(__pyx_t_6); - PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_6); - __pyx_t_3 = 0; - __pyx_t_6 = 0; - __pyx_r = ((PyObject*)__pyx_t_4); - __pyx_t_4 = 0; - goto __pyx_L0; - } - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":466 - * return sqrt(d1*d1 + d2*d2) - * - * cdef tuple getWrappedIndex(int start_side, int end_side, double inc_side, int cnt_size): # <<<<<<<<<<<<<< - * if (start_side <= end_side): - * #//% We are going forward. - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython.getWrappedIndex", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":483 - * return ((cnt_size - start_side + 1 + end_side) / inc_side, 0, cnt_size-1) - * - * def skeletonize(int start_side1, int end_side1, int inc_side1, \ # <<<<<<<<<<<<<< - * int start_side2, int end_side2, int inc_side2, \ - * np.ndarray[np.float_t, ndim=2] cnt_side1, np.ndarray[np.float_t, ndim=2] cnt_side2): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_13skeletonize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_12skeletonize[] = "%SKELETONIZE Skeletonize takes the 2 pairs of start and end points on a\n %contour(s), then traces the skeleton between them using the specified\n %increments.\n %\n % [SKELETON] = SKELETONIZE(start_side1, end_side1, inc_side1, start_side2, end_side2, inc_side2, cnt_side1, cnt_side2)\n %\n % Inputs:\n % start_side1 - The starting index for the first contour segment.\n % end_side1 - The ending index for the first contour segment.\n % inc_side1 - The increment to walk along the first contour segment.\n % Note: a negative increment means walk backwards.\n % Contours are circular, hitting an edge wraps around.\n % start_side2 - The starting index for the second contour segment.\n % end_side2 - The ending index for the second contour segment.\n % inc_side2 - The increment to walk along the second contour segment.\n % Note: a negative increment means walk backwards.\n % Contours are circular, hitting an edge wraps around.\n % cnt_side1 - The contour for the first segment.\n % cnt_side2 - The contour for the second segment.\n %\n % Output:\n % skeleton - the skeleton traced between the 2 sets of contour points.\n % cnt_widths - the widths between the 2 sets of contour points.\n % Note: there are no widths when cutting across.\n %\n %\n % \302\251 Medical Research Council 2012\n % You will not remove any copyright or other notices from the Software;\n % you must reproduce all copyright notices and other proprietary\n % notices on any copies of the Software."; -static PyMethodDef __pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_13skeletonize = {"skeletonize", (PyCFunction)__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_13skeletonize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_12skeletonize}; -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_13skeletonize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - int __pyx_v_start_side1; - int __pyx_v_end_side1; - int __pyx_v_inc_side1; - int __pyx_v_start_side2; - int __pyx_v_end_side2; - int __pyx_v_inc_side2; - PyArrayObject *__pyx_v_cnt_side1 = 0; - PyArrayObject *__pyx_v_cnt_side2 = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("skeletonize (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_start_side1,&__pyx_n_s_end_side1,&__pyx_n_s_inc_side1,&__pyx_n_s_start_side2,&__pyx_n_s_end_side2,&__pyx_n_s_inc_side2,&__pyx_n_s_cnt_side1,&__pyx_n_s_cnt_side2,0}; - PyObject* values[8] = {0,0,0,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 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); - CYTHON_FALLTHROUGH; - case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); - CYTHON_FALLTHROUGH; - 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_start_side1)) != 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_end_side1)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("skeletonize", 1, 8, 8, 1); __PYX_ERR(0, 483, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inc_side1)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("skeletonize", 1, 8, 8, 2); __PYX_ERR(0, 483, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start_side2)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("skeletonize", 1, 8, 8, 3); __PYX_ERR(0, 483, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_end_side2)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("skeletonize", 1, 8, 8, 4); __PYX_ERR(0, 483, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inc_side2)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("skeletonize", 1, 8, 8, 5); __PYX_ERR(0, 483, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 6: - if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cnt_side1)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("skeletonize", 1, 8, 8, 6); __PYX_ERR(0, 483, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 7: - if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cnt_side2)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("skeletonize", 1, 8, 8, 7); __PYX_ERR(0, 483, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "skeletonize") < 0)) __PYX_ERR(0, 483, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 8) { - 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); - values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - values[6] = PyTuple_GET_ITEM(__pyx_args, 6); - values[7] = PyTuple_GET_ITEM(__pyx_args, 7); - } - __pyx_v_start_side1 = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_start_side1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 483, __pyx_L3_error) - __pyx_v_end_side1 = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_end_side1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 483, __pyx_L3_error) - __pyx_v_inc_side1 = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_inc_side1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 483, __pyx_L3_error) - __pyx_v_start_side2 = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_start_side2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 484, __pyx_L3_error) - __pyx_v_end_side2 = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_end_side2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 484, __pyx_L3_error) - __pyx_v_inc_side2 = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_inc_side2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 484, __pyx_L3_error) - __pyx_v_cnt_side1 = ((PyArrayObject *)values[6]); - __pyx_v_cnt_side2 = ((PyArrayObject *)values[7]); - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("skeletonize", 1, 8, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 483, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython.skeletonize", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cnt_side1), __pyx_ptype_5numpy_ndarray, 1, "cnt_side1", 0))) __PYX_ERR(0, 485, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cnt_side2), __pyx_ptype_5numpy_ndarray, 1, "cnt_side2", 0))) __PYX_ERR(0, 485, __pyx_L1_error) - __pyx_r = __pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_12skeletonize(__pyx_self, __pyx_v_start_side1, __pyx_v_end_side1, __pyx_v_inc_side1, __pyx_v_start_side2, __pyx_v_end_side2, __pyx_v_inc_side2, __pyx_v_cnt_side1, __pyx_v_cnt_side2); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_12skeletonize(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_start_side1, int __pyx_v_end_side1, int __pyx_v_inc_side1, int __pyx_v_start_side2, int __pyx_v_end_side2, int __pyx_v_inc_side2, PyArrayObject *__pyx_v_cnt_side1, PyArrayObject *__pyx_v_cnt_side2) { - int __pyx_v_cnt1_size; - int __pyx_v_cnt2_size; - int __pyx_v_wrap_end1; - int __pyx_v_wrap_start1; - int __pyx_v_wrap_end2; - int __pyx_v_wrap_start2; - double __pyx_v_size1; - double __pyx_v_size2; - int __pyx_v_number_points; - PyArrayObject *__pyx_v_skeleton = 0; - PyArrayObject *__pyx_v_cnt_widths = 0; - int __pyx_v_j1; - int __pyx_v_j2; - int __pyx_v_next_j1; - int __pyx_v_next_j2; - double __pyx_v_d1; - double __pyx_v_d2; - double __pyx_v_d12; - double __pyx_v_dnj12_0; - double __pyx_v_dnj12_1; - double __pyx_v_prev_width; - int __pyx_v_ske_ind; - __Pyx_LocalBuf_ND __pyx_pybuffernd_cnt_side1; - __Pyx_Buffer __pyx_pybuffer_cnt_side1; - __Pyx_LocalBuf_ND __pyx_pybuffernd_cnt_side2; - __Pyx_Buffer __pyx_pybuffer_cnt_side2; - __Pyx_LocalBuf_ND __pyx_pybuffernd_cnt_widths; - __Pyx_Buffer __pyx_pybuffer_cnt_widths; - __Pyx_LocalBuf_ND __pyx_pybuffernd_skeleton; - __Pyx_Buffer __pyx_pybuffer_skeleton; - 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; - double __pyx_t_5; - int __pyx_t_6; - int __pyx_t_7; - PyObject *__pyx_t_8 = NULL; - PyArrayObject *__pyx_t_9 = NULL; - PyArrayObject *__pyx_t_10 = NULL; - int __pyx_t_11; - Py_ssize_t __pyx_t_12; - Py_ssize_t __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; - Py_ssize_t __pyx_t_18; - Py_ssize_t __pyx_t_19; - Py_ssize_t __pyx_t_20; - Py_ssize_t __pyx_t_21; - Py_ssize_t __pyx_t_22; - Py_ssize_t __pyx_t_23; - Py_ssize_t __pyx_t_24; - Py_ssize_t __pyx_t_25; - Py_ssize_t __pyx_t_26; - Py_ssize_t __pyx_t_27; - Py_ssize_t __pyx_t_28; - Py_ssize_t __pyx_t_29; - Py_ssize_t __pyx_t_30; - Py_ssize_t __pyx_t_31; - Py_ssize_t __pyx_t_32; - int __pyx_t_33; - Py_ssize_t __pyx_t_34; - Py_ssize_t __pyx_t_35; - Py_ssize_t __pyx_t_36; - Py_ssize_t __pyx_t_37; - Py_ssize_t __pyx_t_38; - Py_ssize_t __pyx_t_39; - Py_ssize_t __pyx_t_40; - Py_ssize_t __pyx_t_41; - Py_ssize_t __pyx_t_42; - Py_ssize_t __pyx_t_43; - Py_ssize_t __pyx_t_44; - Py_ssize_t __pyx_t_45; - Py_ssize_t __pyx_t_46; - Py_ssize_t __pyx_t_47; - Py_ssize_t __pyx_t_48; - Py_ssize_t __pyx_t_49; - Py_ssize_t __pyx_t_50; - Py_ssize_t __pyx_t_51; - Py_ssize_t __pyx_t_52; - Py_ssize_t __pyx_t_53; - Py_ssize_t __pyx_t_54; - Py_ssize_t __pyx_t_55; - Py_ssize_t __pyx_t_56; - Py_ssize_t __pyx_t_57; - Py_ssize_t __pyx_t_58; - Py_ssize_t __pyx_t_59; - Py_ssize_t __pyx_t_60; - Py_ssize_t __pyx_t_61; - Py_ssize_t __pyx_t_62; - Py_ssize_t __pyx_t_63; - Py_ssize_t __pyx_t_64; - Py_ssize_t __pyx_t_65; - Py_ssize_t __pyx_t_66; - Py_ssize_t __pyx_t_67; - Py_ssize_t __pyx_t_68; - Py_ssize_t __pyx_t_69; - Py_ssize_t __pyx_t_70; - Py_ssize_t __pyx_t_71; - Py_ssize_t __pyx_t_72; - Py_ssize_t __pyx_t_73; - Py_ssize_t __pyx_t_74; - Py_ssize_t __pyx_t_75; - Py_ssize_t __pyx_t_76; - Py_ssize_t __pyx_t_77; - Py_ssize_t __pyx_t_78; - Py_ssize_t __pyx_t_79; - Py_ssize_t __pyx_t_80; - Py_ssize_t __pyx_t_81; - Py_ssize_t __pyx_t_82; - Py_ssize_t __pyx_t_83; - Py_ssize_t __pyx_t_84; - Py_ssize_t __pyx_t_85; - Py_ssize_t __pyx_t_86; - Py_ssize_t __pyx_t_87; - Py_ssize_t __pyx_t_88; - Py_ssize_t __pyx_t_89; - Py_ssize_t __pyx_t_90; - Py_ssize_t __pyx_t_91; - Py_ssize_t __pyx_t_92; - Py_ssize_t __pyx_t_93; - Py_ssize_t __pyx_t_94; - Py_ssize_t __pyx_t_95; - Py_ssize_t __pyx_t_96; - Py_ssize_t __pyx_t_97; - Py_ssize_t __pyx_t_98; - Py_ssize_t __pyx_t_99; - Py_ssize_t __pyx_t_100; - Py_ssize_t __pyx_t_101; - Py_ssize_t __pyx_t_102; - Py_ssize_t __pyx_t_103; - Py_ssize_t __pyx_t_104; - Py_ssize_t __pyx_t_105; - Py_ssize_t __pyx_t_106; - Py_ssize_t __pyx_t_107; - Py_ssize_t __pyx_t_108; - Py_ssize_t __pyx_t_109; - Py_ssize_t __pyx_t_110; - Py_ssize_t __pyx_t_111; - Py_ssize_t __pyx_t_112; - Py_ssize_t __pyx_t_113; - PyObject *__pyx_t_114 = NULL; - PyObject *__pyx_t_115 = NULL; - PyObject *__pyx_t_116 = NULL; - __Pyx_RefNannySetupContext("skeletonize", 0); - __pyx_pybuffer_skeleton.pybuffer.buf = NULL; - __pyx_pybuffer_skeleton.refcount = 0; - __pyx_pybuffernd_skeleton.data = NULL; - __pyx_pybuffernd_skeleton.rcbuffer = &__pyx_pybuffer_skeleton; - __pyx_pybuffer_cnt_widths.pybuffer.buf = NULL; - __pyx_pybuffer_cnt_widths.refcount = 0; - __pyx_pybuffernd_cnt_widths.data = NULL; - __pyx_pybuffernd_cnt_widths.rcbuffer = &__pyx_pybuffer_cnt_widths; - __pyx_pybuffer_cnt_side1.pybuffer.buf = NULL; - __pyx_pybuffer_cnt_side1.refcount = 0; - __pyx_pybuffernd_cnt_side1.data = NULL; - __pyx_pybuffernd_cnt_side1.rcbuffer = &__pyx_pybuffer_cnt_side1; - __pyx_pybuffer_cnt_side2.pybuffer.buf = NULL; - __pyx_pybuffer_cnt_side2.refcount = 0; - __pyx_pybuffernd_cnt_side2.data = NULL; - __pyx_pybuffernd_cnt_side2.rcbuffer = &__pyx_pybuffer_cnt_side2; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer, (PyObject*)__pyx_v_cnt_side1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 483, __pyx_L1_error) - } - __pyx_pybuffernd_cnt_side1.diminfo[0].strides = __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cnt_side1.diminfo[0].shape = __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_cnt_side1.diminfo[1].strides = __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_cnt_side1.diminfo[1].shape = __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.shape[1]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cnt_side2.rcbuffer->pybuffer, (PyObject*)__pyx_v_cnt_side2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 483, __pyx_L1_error) - } - __pyx_pybuffernd_cnt_side2.diminfo[0].strides = __pyx_pybuffernd_cnt_side2.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cnt_side2.diminfo[0].shape = __pyx_pybuffernd_cnt_side2.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_cnt_side2.diminfo[1].strides = __pyx_pybuffernd_cnt_side2.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_cnt_side2.diminfo[1].shape = __pyx_pybuffernd_cnt_side2.rcbuffer->pybuffer.shape[1]; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":517 - * % notices on any copies of the Software.''' - * - * cdef int cnt1_size = cnt_side1.shape[0] # <<<<<<<<<<<<<< - * cdef int cnt2_size = cnt_side1.shape[1] - * - */ - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "shape"); - __PYX_ERR(0, 517, __pyx_L1_error) - } - __pyx_v_cnt1_size = (__pyx_v_cnt_side1->dimensions[0]); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":518 - * - * cdef int cnt1_size = cnt_side1.shape[0] - * cdef int cnt2_size = cnt_side1.shape[1] # <<<<<<<<<<<<<< - * - * cdef int wrap_end1, wrap_start1, wrap_end2, wrap_start2; - */ - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "shape"); - __PYX_ERR(0, 518, __pyx_L1_error) - } - __pyx_v_cnt2_size = (__pyx_v_cnt_side1->dimensions[1]); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":524 - * - * #//% The first starting index is before the ending one. - * size1, wrap_start1, wrap_end1 = getWrappedIndex(start_side1, end_side1, inc_side1, cnt1_size) # <<<<<<<<<<<<<< - * - * #//% The second starting index is before the ending one. - */ - __pyx_t_1 = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_getWrappedIndex(__pyx_v_start_side1, __pyx_v_end_side1, __pyx_v_inc_side1, __pyx_v_cnt1_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 524, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (likely(__pyx_t_1 != Py_None)) { - PyObject* sequence = __pyx_t_1; - 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, 524, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); - #else - __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 524, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 524, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 524, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 524, __pyx_L1_error) - } - __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 524, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 524, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 524, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_size1 = __pyx_t_5; - __pyx_v_wrap_start1 = __pyx_t_6; - __pyx_v_wrap_end1 = __pyx_t_7; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":527 - * - * #//% The second starting index is before the ending one. - * size2, wrap_start2, wrap_end2 = getWrappedIndex(start_side2, end_side2, inc_side2, cnt2_size) # <<<<<<<<<<<<<< - * - * #//% Trace the midline between the contour segments. - */ - __pyx_t_1 = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_getWrappedIndex(__pyx_v_start_side2, __pyx_v_end_side2, __pyx_v_inc_side2, __pyx_v_cnt2_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 527, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (likely(__pyx_t_1 != Py_None)) { - PyObject* sequence = __pyx_t_1; - 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, 527, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - #else - __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 527, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 527, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 527, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 527, __pyx_L1_error) - } - __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 527, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 527, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 527, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_size2 = __pyx_t_5; - __pyx_v_wrap_start2 = __pyx_t_7; - __pyx_v_wrap_end2 = __pyx_t_6; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":535 - * - * #// % pre-allocate memory - * cdef int number_points = 2*int(floor(size1 + size2)); #preallocate memory # <<<<<<<<<<<<<< - * cdef np.ndarray[np.float_t, ndim=2] skeleton = np.zeros((number_points,2)) - * cdef np.ndarray[np.float_t, ndim=1] cnt_widths = np.zeros((number_points)) - */ - __pyx_t_1 = __Pyx_PyInt_FromDouble(floor((__pyx_v_size1 + __pyx_v_size2))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 535, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyNumber_Multiply(__pyx_int_2, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 535, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 535, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_number_points = __pyx_t_6; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":536 - * #// % pre-allocate memory - * cdef int number_points = 2*int(floor(size1 + size2)); #preallocate memory - * cdef np.ndarray[np.float_t, ndim=2] skeleton = np.zeros((number_points,2)) # <<<<<<<<<<<<<< - * cdef np.ndarray[np.float_t, ndim=1] cnt_widths = np.zeros((number_points)) - * - */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 536, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 536, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_number_points); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 536, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 536, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); - __Pyx_INCREF(__pyx_int_2); - __Pyx_GIVEREF(__pyx_int_2); - PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_2); - __pyx_t_1 = 0; - __pyx_t_1 = NULL; - 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); - } - } - if (!__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 536, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_2); - } else { - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 536, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GOTREF(__pyx_t_2); - __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[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 536, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } else - #endif - { - __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 536, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1); __pyx_t_1 = NULL; - __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_4); - __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 536, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 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, 536, __pyx_L1_error) - __pyx_t_9 = ((PyArrayObject *)__pyx_t_2); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_skeleton.rcbuffer->pybuffer, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { - __pyx_v_skeleton = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 536, __pyx_L1_error) - } else {__pyx_pybuffernd_skeleton.diminfo[0].strides = __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_skeleton.diminfo[0].shape = __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_skeleton.diminfo[1].strides = __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_skeleton.diminfo[1].shape = __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.shape[1]; - } - } - __pyx_t_9 = 0; - __pyx_v_skeleton = ((PyArrayObject *)__pyx_t_2); - __pyx_t_2 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":537 - * cdef int number_points = 2*int(floor(size1 + size2)); #preallocate memory - * cdef np.ndarray[np.float_t, ndim=2] skeleton = np.zeros((number_points,2)) - * cdef np.ndarray[np.float_t, ndim=1] cnt_widths = np.zeros((number_points)) # <<<<<<<<<<<<<< - * - * cdef int j1 = start_side1; - */ - __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 537, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 537, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_number_points); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 537, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_8, function); - } - } - if (!__pyx_t_4) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 537, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GOTREF(__pyx_t_2); - } else { - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_8)) { - PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_3}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 537, __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; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { - PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_3}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 537, __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; - } else - #endif - { - __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 537, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = NULL; - __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_t_3); - __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 537, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - } - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 537, __pyx_L1_error) - __pyx_t_10 = ((PyArrayObject *)__pyx_t_2); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cnt_widths.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { - __pyx_v_cnt_widths = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_cnt_widths.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 537, __pyx_L1_error) - } else {__pyx_pybuffernd_cnt_widths.diminfo[0].strides = __pyx_pybuffernd_cnt_widths.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cnt_widths.diminfo[0].shape = __pyx_pybuffernd_cnt_widths.rcbuffer->pybuffer.shape[0]; - } - } - __pyx_t_10 = 0; - __pyx_v_cnt_widths = ((PyArrayObject *)__pyx_t_2); - __pyx_t_2 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":539 - * cdef np.ndarray[np.float_t, ndim=1] cnt_widths = np.zeros((number_points)) - * - * cdef int j1 = start_side1; # <<<<<<<<<<<<<< - * cdef int j2 = start_side2; - * cdef int next_j1, next_j2; - */ - __pyx_v_j1 = __pyx_v_start_side1; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":540 - * - * cdef int j1 = start_side1; - * cdef int j2 = start_side2; # <<<<<<<<<<<<<< - * cdef int next_j1, next_j2; - * cdef double d1, d2, d12, dnj12_0, dnj12_1, prev_width; - */ - __pyx_v_j2 = __pyx_v_start_side2; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":545 - * - * - * if (j1 == wrap_end1): #//% wrap # <<<<<<<<<<<<<< - * j1 = wrap_start1; - * - */ - __pyx_t_11 = ((__pyx_v_j1 == __pyx_v_wrap_end1) != 0); - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":546 - * - * if (j1 == wrap_end1): #//% wrap - * j1 = wrap_start1; # <<<<<<<<<<<<<< - * - * if (j2 == wrap_end2): #//% wrap - */ - __pyx_v_j1 = __pyx_v_wrap_start1; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":545 - * - * - * if (j1 == wrap_end1): #//% wrap # <<<<<<<<<<<<<< - * j1 = wrap_start1; - * - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":548 - * j1 = wrap_start1; - * - * if (j2 == wrap_end2): #//% wrap # <<<<<<<<<<<<<< - * j2 = wrap_start2; - * - */ - __pyx_t_11 = ((__pyx_v_j2 == __pyx_v_wrap_end2) != 0); - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":549 - * - * if (j2 == wrap_end2): #//% wrap - * j2 = wrap_start2; # <<<<<<<<<<<<<< - * - * #//% Initialize the skeleton and contour widths. - */ - __pyx_v_j2 = __pyx_v_wrap_start2; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":548 - * j1 = wrap_start1; - * - * if (j2 == wrap_end2): #//% wrap # <<<<<<<<<<<<<< - * j2 = wrap_start2; - * - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":552 - * - * #//% Initialize the skeleton and contour widths. - * skeleton[0,0] = c_round((cnt_side1[j1,0] + cnt_side2[j2,0])/ 2); # <<<<<<<<<<<<<< - * skeleton[0,1] = c_round((cnt_side1[j1,1] + cnt_side2[j2,1])/ 2); - * cnt_widths[0] = getDistance(cnt_side1[j1,0], cnt_side2[j2,0], cnt_side1[j1,1], cnt_side2[j2,1]); - */ - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 552, __pyx_L1_error) - } - __pyx_t_12 = __pyx_v_j1; - __pyx_t_13 = 0; - __pyx_t_6 = -1; - if (__pyx_t_12 < 0) { - __pyx_t_12 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_12 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_12 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_13 < 0) { - __pyx_t_13 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_13 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_13 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 552, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side2) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 552, __pyx_L1_error) - } - __pyx_t_14 = __pyx_v_j2; - __pyx_t_15 = 0; - __pyx_t_6 = -1; - if (__pyx_t_14 < 0) { - __pyx_t_14 += __pyx_pybuffernd_cnt_side2.diminfo[0].shape; - if (unlikely(__pyx_t_14 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_14 >= __pyx_pybuffernd_cnt_side2.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_15 < 0) { - __pyx_t_15 += __pyx_pybuffernd_cnt_side2.diminfo[1].shape; - if (unlikely(__pyx_t_15 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_cnt_side2.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 552, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 552, __pyx_L1_error) - } - __pyx_t_16 = 0; - __pyx_t_17 = 0; - __pyx_t_6 = -1; - if (__pyx_t_16 < 0) { - __pyx_t_16 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_16 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_17 < 0) { - __pyx_t_17 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_17 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 552, __pyx_L1_error) - } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_17, __pyx_pybuffernd_skeleton.diminfo[1].strides) = round((((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_12, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_13, __pyx_pybuffernd_cnt_side1.diminfo[1].strides)) + (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side2.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_cnt_side2.diminfo[0].strides, __pyx_t_15, __pyx_pybuffernd_cnt_side2.diminfo[1].strides))) / 2.0)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":553 - * #//% Initialize the skeleton and contour widths. - * skeleton[0,0] = c_round((cnt_side1[j1,0] + cnt_side2[j2,0])/ 2); - * skeleton[0,1] = c_round((cnt_side1[j1,1] + cnt_side2[j2,1])/ 2); # <<<<<<<<<<<<<< - * cnt_widths[0] = getDistance(cnt_side1[j1,0], cnt_side2[j2,0], cnt_side1[j1,1], cnt_side2[j2,1]); - * - */ - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 553, __pyx_L1_error) - } - __pyx_t_18 = __pyx_v_j1; - __pyx_t_19 = 1; - __pyx_t_6 = -1; - if (__pyx_t_18 < 0) { - __pyx_t_18 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_18 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_19 < 0) { - __pyx_t_19 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_19 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 553, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side2) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 553, __pyx_L1_error) - } - __pyx_t_20 = __pyx_v_j2; - __pyx_t_21 = 1; - __pyx_t_6 = -1; - if (__pyx_t_20 < 0) { - __pyx_t_20 += __pyx_pybuffernd_cnt_side2.diminfo[0].shape; - if (unlikely(__pyx_t_20 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_20 >= __pyx_pybuffernd_cnt_side2.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_21 < 0) { - __pyx_t_21 += __pyx_pybuffernd_cnt_side2.diminfo[1].shape; - if (unlikely(__pyx_t_21 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_cnt_side2.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 553, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 553, __pyx_L1_error) - } - __pyx_t_22 = 0; - __pyx_t_23 = 1; - __pyx_t_6 = -1; - if (__pyx_t_22 < 0) { - __pyx_t_22 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_22 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_23 < 0) { - __pyx_t_23 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_23 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 553, __pyx_L1_error) - } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_23, __pyx_pybuffernd_skeleton.diminfo[1].strides) = round((((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_19, __pyx_pybuffernd_cnt_side1.diminfo[1].strides)) + (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side2.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_cnt_side2.diminfo[0].strides, __pyx_t_21, __pyx_pybuffernd_cnt_side2.diminfo[1].strides))) / 2.0)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":554 - * skeleton[0,0] = c_round((cnt_side1[j1,0] + cnt_side2[j2,0])/ 2); - * skeleton[0,1] = c_round((cnt_side1[j1,1] + cnt_side2[j2,1])/ 2); - * cnt_widths[0] = getDistance(cnt_side1[j1,0], cnt_side2[j2,0], cnt_side1[j1,1], cnt_side2[j2,1]); # <<<<<<<<<<<<<< - * - * cdef int ske_ind = 1; - */ - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 554, __pyx_L1_error) - } - __pyx_t_24 = __pyx_v_j1; - __pyx_t_25 = 0; - __pyx_t_6 = -1; - if (__pyx_t_24 < 0) { - __pyx_t_24 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_24 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_25 < 0) { - __pyx_t_25 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_25 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_25 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 554, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side2) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 554, __pyx_L1_error) - } - __pyx_t_26 = __pyx_v_j2; - __pyx_t_27 = 0; - __pyx_t_6 = -1; - if (__pyx_t_26 < 0) { - __pyx_t_26 += __pyx_pybuffernd_cnt_side2.diminfo[0].shape; - if (unlikely(__pyx_t_26 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_cnt_side2.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_27 < 0) { - __pyx_t_27 += __pyx_pybuffernd_cnt_side2.diminfo[1].shape; - if (unlikely(__pyx_t_27 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_27 >= __pyx_pybuffernd_cnt_side2.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 554, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 554, __pyx_L1_error) - } - __pyx_t_28 = __pyx_v_j1; - __pyx_t_29 = 1; - __pyx_t_6 = -1; - if (__pyx_t_28 < 0) { - __pyx_t_28 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_28 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_29 < 0) { - __pyx_t_29 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_29 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_29 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 554, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side2) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 554, __pyx_L1_error) - } - __pyx_t_30 = __pyx_v_j2; - __pyx_t_31 = 1; - __pyx_t_6 = -1; - if (__pyx_t_30 < 0) { - __pyx_t_30 += __pyx_pybuffernd_cnt_side2.diminfo[0].shape; - if (unlikely(__pyx_t_30 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_cnt_side2.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_31 < 0) { - __pyx_t_31 += __pyx_pybuffernd_cnt_side2.diminfo[1].shape; - if (unlikely(__pyx_t_31 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_cnt_side2.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 554, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 554, __pyx_L1_error) - } - __pyx_t_32 = 0; - __pyx_t_6 = -1; - if (__pyx_t_32 < 0) { - __pyx_t_32 += __pyx_pybuffernd_cnt_widths.diminfo[0].shape; - if (unlikely(__pyx_t_32 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_32 >= __pyx_pybuffernd_cnt_widths.diminfo[0].shape)) __pyx_t_6 = 0; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 554, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_widths.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_cnt_widths.diminfo[0].strides) = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_getDistance((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_25, __pyx_pybuffernd_cnt_side1.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side2.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_cnt_side2.diminfo[0].strides, __pyx_t_27, __pyx_pybuffernd_cnt_side2.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_29, __pyx_pybuffernd_cnt_side1.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side2.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_cnt_side2.diminfo[0].strides, __pyx_t_31, __pyx_pybuffernd_cnt_side2.diminfo[1].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":556 - * cnt_widths[0] = getDistance(cnt_side1[j1,0], cnt_side2[j2,0], cnt_side1[j1,1], cnt_side2[j2,1]); - * - * cdef int ske_ind = 1; # <<<<<<<<<<<<<< - * #//% Skeletonize the contour segments and measure the width. - * while ((j1 != end_side1) and (j2 != end_side2)): - */ - __pyx_v_ske_ind = 1; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":558 - * cdef int ske_ind = 1; - * #//% Skeletonize the contour segments and measure the width. - * while ((j1 != end_side1) and (j2 != end_side2)): # <<<<<<<<<<<<<< - * #//% Compute the widths. - * next_j1 = j1 + inc_side1; - */ - while (1) { - __pyx_t_33 = ((__pyx_v_j1 != __pyx_v_end_side1) != 0); - if (__pyx_t_33) { - } else { - __pyx_t_11 = __pyx_t_33; - goto __pyx_L7_bool_binop_done; - } - __pyx_t_33 = ((__pyx_v_j2 != __pyx_v_end_side2) != 0); - __pyx_t_11 = __pyx_t_33; - __pyx_L7_bool_binop_done:; - if (!__pyx_t_11) break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":560 - * while ((j1 != end_side1) and (j2 != end_side2)): - * #//% Compute the widths. - * next_j1 = j1 + inc_side1; # <<<<<<<<<<<<<< - * if (next_j1 == wrap_end1): #//% wrap - * next_j1 = wrap_start1; - */ - __pyx_v_next_j1 = (__pyx_v_j1 + __pyx_v_inc_side1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":561 - * #//% Compute the widths. - * next_j1 = j1 + inc_side1; - * if (next_j1 == wrap_end1): #//% wrap # <<<<<<<<<<<<<< - * next_j1 = wrap_start1; - * - */ - __pyx_t_11 = ((__pyx_v_next_j1 == __pyx_v_wrap_end1) != 0); - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":562 - * next_j1 = j1 + inc_side1; - * if (next_j1 == wrap_end1): #//% wrap - * next_j1 = wrap_start1; # <<<<<<<<<<<<<< - * - * next_j2 = j2 + inc_side2; - */ - __pyx_v_next_j1 = __pyx_v_wrap_start1; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":561 - * #//% Compute the widths. - * next_j1 = j1 + inc_side1; - * if (next_j1 == wrap_end1): #//% wrap # <<<<<<<<<<<<<< - * next_j1 = wrap_start1; - * - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":564 - * next_j1 = wrap_start1; - * - * next_j2 = j2 + inc_side2; # <<<<<<<<<<<<<< - * if (next_j2 == wrap_end2): #//% wrap - * next_j2 = wrap_start2; - */ - __pyx_v_next_j2 = (__pyx_v_j2 + __pyx_v_inc_side2); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":565 - * - * next_j2 = j2 + inc_side2; - * if (next_j2 == wrap_end2): #//% wrap # <<<<<<<<<<<<<< - * next_j2 = wrap_start2; - * - */ - __pyx_t_11 = ((__pyx_v_next_j2 == __pyx_v_wrap_end2) != 0); - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":566 - * next_j2 = j2 + inc_side2; - * if (next_j2 == wrap_end2): #//% wrap - * next_j2 = wrap_start2; # <<<<<<<<<<<<<< - * - * d1 = getDistance(cnt_side1[next_j1,0], cnt_side2[j2,0], cnt_side1[next_j1,1], cnt_side2[j2,1]) - */ - __pyx_v_next_j2 = __pyx_v_wrap_start2; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":565 - * - * next_j2 = j2 + inc_side2; - * if (next_j2 == wrap_end2): #//% wrap # <<<<<<<<<<<<<< - * next_j2 = wrap_start2; - * - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":568 - * next_j2 = wrap_start2; - * - * d1 = getDistance(cnt_side1[next_j1,0], cnt_side2[j2,0], cnt_side1[next_j1,1], cnt_side2[j2,1]) # <<<<<<<<<<<<<< - * d2 = getDistance(cnt_side1[j1,0], cnt_side2[next_j2,0], cnt_side1[j1,1], cnt_side2[next_j2,1]) - * d12 = getDistance(cnt_side1[next_j1,0], cnt_side2[next_j2,0], cnt_side1[next_j1,1], cnt_side2[next_j2,1]) - */ - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 568, __pyx_L1_error) - } - __pyx_t_34 = __pyx_v_next_j1; - __pyx_t_35 = 0; - __pyx_t_6 = -1; - if (__pyx_t_34 < 0) { - __pyx_t_34 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_34 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_35 < 0) { - __pyx_t_35 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_35 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 568, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side2) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 568, __pyx_L1_error) - } - __pyx_t_36 = __pyx_v_j2; - __pyx_t_37 = 0; - __pyx_t_6 = -1; - if (__pyx_t_36 < 0) { - __pyx_t_36 += __pyx_pybuffernd_cnt_side2.diminfo[0].shape; - if (unlikely(__pyx_t_36 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_cnt_side2.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_37 < 0) { - __pyx_t_37 += __pyx_pybuffernd_cnt_side2.diminfo[1].shape; - if (unlikely(__pyx_t_37 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_cnt_side2.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 568, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 568, __pyx_L1_error) - } - __pyx_t_38 = __pyx_v_next_j1; - __pyx_t_39 = 1; - __pyx_t_6 = -1; - if (__pyx_t_38 < 0) { - __pyx_t_38 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_38 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_39 < 0) { - __pyx_t_39 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_39 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 568, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side2) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 568, __pyx_L1_error) - } - __pyx_t_40 = __pyx_v_j2; - __pyx_t_41 = 1; - __pyx_t_6 = -1; - if (__pyx_t_40 < 0) { - __pyx_t_40 += __pyx_pybuffernd_cnt_side2.diminfo[0].shape; - if (unlikely(__pyx_t_40 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_cnt_side2.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_41 < 0) { - __pyx_t_41 += __pyx_pybuffernd_cnt_side2.diminfo[1].shape; - if (unlikely(__pyx_t_41 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_cnt_side2.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 568, __pyx_L1_error) - } - __pyx_v_d1 = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_getDistance((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_35, __pyx_pybuffernd_cnt_side1.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side2.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_cnt_side2.diminfo[0].strides, __pyx_t_37, __pyx_pybuffernd_cnt_side2.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_39, __pyx_pybuffernd_cnt_side1.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side2.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_cnt_side2.diminfo[0].strides, __pyx_t_41, __pyx_pybuffernd_cnt_side2.diminfo[1].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":569 - * - * d1 = getDistance(cnt_side1[next_j1,0], cnt_side2[j2,0], cnt_side1[next_j1,1], cnt_side2[j2,1]) - * d2 = getDistance(cnt_side1[j1,0], cnt_side2[next_j2,0], cnt_side1[j1,1], cnt_side2[next_j2,1]) # <<<<<<<<<<<<<< - * d12 = getDistance(cnt_side1[next_j1,0], cnt_side2[next_j2,0], cnt_side1[next_j1,1], cnt_side2[next_j2,1]) - * - */ - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 569, __pyx_L1_error) - } - __pyx_t_42 = __pyx_v_j1; - __pyx_t_43 = 0; - __pyx_t_6 = -1; - if (__pyx_t_42 < 0) { - __pyx_t_42 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_42 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_42 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_43 < 0) { - __pyx_t_43 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_43 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_43 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 569, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side2) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 569, __pyx_L1_error) - } - __pyx_t_44 = __pyx_v_next_j2; - __pyx_t_45 = 0; - __pyx_t_6 = -1; - if (__pyx_t_44 < 0) { - __pyx_t_44 += __pyx_pybuffernd_cnt_side2.diminfo[0].shape; - if (unlikely(__pyx_t_44 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_44 >= __pyx_pybuffernd_cnt_side2.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_45 < 0) { - __pyx_t_45 += __pyx_pybuffernd_cnt_side2.diminfo[1].shape; - if (unlikely(__pyx_t_45 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_45 >= __pyx_pybuffernd_cnt_side2.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 569, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 569, __pyx_L1_error) - } - __pyx_t_46 = __pyx_v_j1; - __pyx_t_47 = 1; - __pyx_t_6 = -1; - if (__pyx_t_46 < 0) { - __pyx_t_46 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_46 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_46 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_47 < 0) { - __pyx_t_47 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_47 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_47 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 569, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side2) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 569, __pyx_L1_error) - } - __pyx_t_48 = __pyx_v_next_j2; - __pyx_t_49 = 1; - __pyx_t_6 = -1; - if (__pyx_t_48 < 0) { - __pyx_t_48 += __pyx_pybuffernd_cnt_side2.diminfo[0].shape; - if (unlikely(__pyx_t_48 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_48 >= __pyx_pybuffernd_cnt_side2.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_49 < 0) { - __pyx_t_49 += __pyx_pybuffernd_cnt_side2.diminfo[1].shape; - if (unlikely(__pyx_t_49 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_49 >= __pyx_pybuffernd_cnt_side2.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 569, __pyx_L1_error) - } - __pyx_v_d2 = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_getDistance((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_42, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_43, __pyx_pybuffernd_cnt_side1.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side2.rcbuffer->pybuffer.buf, __pyx_t_44, __pyx_pybuffernd_cnt_side2.diminfo[0].strides, __pyx_t_45, __pyx_pybuffernd_cnt_side2.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_46, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_47, __pyx_pybuffernd_cnt_side1.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side2.rcbuffer->pybuffer.buf, __pyx_t_48, __pyx_pybuffernd_cnt_side2.diminfo[0].strides, __pyx_t_49, __pyx_pybuffernd_cnt_side2.diminfo[1].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":570 - * d1 = getDistance(cnt_side1[next_j1,0], cnt_side2[j2,0], cnt_side1[next_j1,1], cnt_side2[j2,1]) - * d2 = getDistance(cnt_side1[j1,0], cnt_side2[next_j2,0], cnt_side1[j1,1], cnt_side2[next_j2,1]) - * d12 = getDistance(cnt_side1[next_j1,0], cnt_side2[next_j2,0], cnt_side1[next_j1,1], cnt_side2[next_j2,1]) # <<<<<<<<<<<<<< - * - * dnj12_0 = (cnt_side1[next_j1,0]-cnt_side1[j1,0])*(cnt_side1[next_j2,0]-cnt_side1[j2,0]); - */ - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 570, __pyx_L1_error) - } - __pyx_t_50 = __pyx_v_next_j1; - __pyx_t_51 = 0; - __pyx_t_6 = -1; - if (__pyx_t_50 < 0) { - __pyx_t_50 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_50 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_50 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_51 < 0) { - __pyx_t_51 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_51 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_51 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 570, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side2) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 570, __pyx_L1_error) - } - __pyx_t_52 = __pyx_v_next_j2; - __pyx_t_53 = 0; - __pyx_t_6 = -1; - if (__pyx_t_52 < 0) { - __pyx_t_52 += __pyx_pybuffernd_cnt_side2.diminfo[0].shape; - if (unlikely(__pyx_t_52 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_52 >= __pyx_pybuffernd_cnt_side2.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_53 < 0) { - __pyx_t_53 += __pyx_pybuffernd_cnt_side2.diminfo[1].shape; - if (unlikely(__pyx_t_53 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_53 >= __pyx_pybuffernd_cnt_side2.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 570, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 570, __pyx_L1_error) - } - __pyx_t_54 = __pyx_v_next_j1; - __pyx_t_55 = 1; - __pyx_t_6 = -1; - if (__pyx_t_54 < 0) { - __pyx_t_54 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_54 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_54 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_55 < 0) { - __pyx_t_55 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_55 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_55 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 570, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side2) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 570, __pyx_L1_error) - } - __pyx_t_56 = __pyx_v_next_j2; - __pyx_t_57 = 1; - __pyx_t_6 = -1; - if (__pyx_t_56 < 0) { - __pyx_t_56 += __pyx_pybuffernd_cnt_side2.diminfo[0].shape; - if (unlikely(__pyx_t_56 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_56 >= __pyx_pybuffernd_cnt_side2.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_57 < 0) { - __pyx_t_57 += __pyx_pybuffernd_cnt_side2.diminfo[1].shape; - if (unlikely(__pyx_t_57 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_57 >= __pyx_pybuffernd_cnt_side2.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 570, __pyx_L1_error) - } - __pyx_v_d12 = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_getDistance((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_50, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_51, __pyx_pybuffernd_cnt_side1.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side2.rcbuffer->pybuffer.buf, __pyx_t_52, __pyx_pybuffernd_cnt_side2.diminfo[0].strides, __pyx_t_53, __pyx_pybuffernd_cnt_side2.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_54, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_55, __pyx_pybuffernd_cnt_side1.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side2.rcbuffer->pybuffer.buf, __pyx_t_56, __pyx_pybuffernd_cnt_side2.diminfo[0].strides, __pyx_t_57, __pyx_pybuffernd_cnt_side2.diminfo[1].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":572 - * d12 = getDistance(cnt_side1[next_j1,0], cnt_side2[next_j2,0], cnt_side1[next_j1,1], cnt_side2[next_j2,1]) - * - * dnj12_0 = (cnt_side1[next_j1,0]-cnt_side1[j1,0])*(cnt_side1[next_j2,0]-cnt_side1[j2,0]); # <<<<<<<<<<<<<< - * dnj12_1 = (cnt_side1[next_j1,1]-cnt_side1[j1,1])*(cnt_side1[next_j2,1]-cnt_side1[j2,1]); - * - */ - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 572, __pyx_L1_error) - } - __pyx_t_58 = __pyx_v_next_j1; - __pyx_t_59 = 0; - __pyx_t_6 = -1; - if (__pyx_t_58 < 0) { - __pyx_t_58 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_58 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_58 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_59 < 0) { - __pyx_t_59 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_59 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_59 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 572, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 572, __pyx_L1_error) - } - __pyx_t_60 = __pyx_v_j1; - __pyx_t_61 = 0; - __pyx_t_6 = -1; - if (__pyx_t_60 < 0) { - __pyx_t_60 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_60 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_60 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_61 < 0) { - __pyx_t_61 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_61 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_61 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 572, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 572, __pyx_L1_error) - } - __pyx_t_62 = __pyx_v_next_j2; - __pyx_t_63 = 0; - __pyx_t_6 = -1; - if (__pyx_t_62 < 0) { - __pyx_t_62 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_62 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_62 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_63 < 0) { - __pyx_t_63 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_63 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_63 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 572, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 572, __pyx_L1_error) - } - __pyx_t_64 = __pyx_v_j2; - __pyx_t_65 = 0; - __pyx_t_6 = -1; - if (__pyx_t_64 < 0) { - __pyx_t_64 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_64 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_64 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_65 < 0) { - __pyx_t_65 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_65 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_65 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 572, __pyx_L1_error) - } - __pyx_v_dnj12_0 = (((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_58, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_59, __pyx_pybuffernd_cnt_side1.diminfo[1].strides)) - (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_60, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_61, __pyx_pybuffernd_cnt_side1.diminfo[1].strides))) * ((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_62, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_63, __pyx_pybuffernd_cnt_side1.diminfo[1].strides)) - (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_64, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_65, __pyx_pybuffernd_cnt_side1.diminfo[1].strides)))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":573 - * - * dnj12_0 = (cnt_side1[next_j1,0]-cnt_side1[j1,0])*(cnt_side1[next_j2,0]-cnt_side1[j2,0]); - * dnj12_1 = (cnt_side1[next_j1,1]-cnt_side1[j1,1])*(cnt_side1[next_j2,1]-cnt_side1[j2,1]); # <<<<<<<<<<<<<< - * - * #//% Advance along both contours. - */ - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 573, __pyx_L1_error) - } - __pyx_t_66 = __pyx_v_next_j1; - __pyx_t_67 = 1; - __pyx_t_6 = -1; - if (__pyx_t_66 < 0) { - __pyx_t_66 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_66 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_66 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_67 < 0) { - __pyx_t_67 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_67 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_67 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 573, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 573, __pyx_L1_error) - } - __pyx_t_68 = __pyx_v_j1; - __pyx_t_69 = 1; - __pyx_t_6 = -1; - if (__pyx_t_68 < 0) { - __pyx_t_68 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_68 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_68 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_69 < 0) { - __pyx_t_69 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_69 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_69 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 573, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 573, __pyx_L1_error) - } - __pyx_t_70 = __pyx_v_next_j2; - __pyx_t_71 = 1; - __pyx_t_6 = -1; - if (__pyx_t_70 < 0) { - __pyx_t_70 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_70 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_70 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_71 < 0) { - __pyx_t_71 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_71 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_71 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 573, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 573, __pyx_L1_error) - } - __pyx_t_72 = __pyx_v_j2; - __pyx_t_73 = 1; - __pyx_t_6 = -1; - if (__pyx_t_72 < 0) { - __pyx_t_72 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_72 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_72 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_73 < 0) { - __pyx_t_73 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_73 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_73 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 573, __pyx_L1_error) - } - __pyx_v_dnj12_1 = (((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_66, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_67, __pyx_pybuffernd_cnt_side1.diminfo[1].strides)) - (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_68, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_69, __pyx_pybuffernd_cnt_side1.diminfo[1].strides))) * ((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_70, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_71, __pyx_pybuffernd_cnt_side1.diminfo[1].strides)) - (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_72, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_73, __pyx_pybuffernd_cnt_side1.diminfo[1].strides)))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":576 - * - * #//% Advance along both contours. - * if ((d12 <= d1 and d12 <= d2) or d1 == d2): # <<<<<<<<<<<<<< - * j1 = next_j1; - * j2 = next_j2; - */ - __pyx_t_33 = ((__pyx_v_d12 <= __pyx_v_d1) != 0); - if (!__pyx_t_33) { - goto __pyx_L13_next_or; - } else { - } - __pyx_t_33 = ((__pyx_v_d12 <= __pyx_v_d2) != 0); - if (!__pyx_t_33) { - } else { - __pyx_t_11 = __pyx_t_33; - goto __pyx_L12_bool_binop_done; - } - __pyx_L13_next_or:; - __pyx_t_33 = ((__pyx_v_d1 == __pyx_v_d2) != 0); - __pyx_t_11 = __pyx_t_33; - __pyx_L12_bool_binop_done:; - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":577 - * #//% Advance along both contours. - * if ((d12 <= d1 and d12 <= d2) or d1 == d2): - * j1 = next_j1; # <<<<<<<<<<<<<< - * j2 = next_j2; - * cnt_widths[ske_ind] = d12; - */ - __pyx_v_j1 = __pyx_v_next_j1; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":578 - * if ((d12 <= d1 and d12 <= d2) or d1 == d2): - * j1 = next_j1; - * j2 = next_j2; # <<<<<<<<<<<<<< - * cnt_widths[ske_ind] = d12; - * #//% The contours go in similar directions. Follow the smallest width. - */ - __pyx_v_j2 = __pyx_v_next_j2; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":579 - * j1 = next_j1; - * j2 = next_j2; - * cnt_widths[ske_ind] = d12; # <<<<<<<<<<<<<< - * #//% The contours go in similar directions. Follow the smallest width. - * else: - */ - if (unlikely(((PyObject *)__pyx_v_cnt_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 579, __pyx_L1_error) - } - __pyx_t_74 = __pyx_v_ske_ind; - __pyx_t_6 = -1; - if (__pyx_t_74 < 0) { - __pyx_t_74 += __pyx_pybuffernd_cnt_widths.diminfo[0].shape; - if (unlikely(__pyx_t_74 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_74 >= __pyx_pybuffernd_cnt_widths.diminfo[0].shape)) __pyx_t_6 = 0; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 579, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_widths.rcbuffer->pybuffer.buf, __pyx_t_74, __pyx_pybuffernd_cnt_widths.diminfo[0].strides) = __pyx_v_d12; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":576 - * - * #//% Advance along both contours. - * if ((d12 <= d1 and d12 <= d2) or d1 == d2): # <<<<<<<<<<<<<< - * j1 = next_j1; - * j2 = next_j2; - */ - goto __pyx_L11; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":582 - * #//% The contours go in similar directions. Follow the smallest width. - * else: - * if ((dnj12_0> -1) and (dnj12_1> -1)): # <<<<<<<<<<<<<< - * #//% Advance along the the first contour. - * if (d1 <= d2): - */ - /*else*/ { - __pyx_t_33 = ((__pyx_v_dnj12_0 > -1.0) != 0); - if (__pyx_t_33) { - } else { - __pyx_t_11 = __pyx_t_33; - goto __pyx_L16_bool_binop_done; - } - __pyx_t_33 = ((__pyx_v_dnj12_1 > -1.0) != 0); - __pyx_t_11 = __pyx_t_33; - __pyx_L16_bool_binop_done:; - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":584 - * if ((dnj12_0> -1) and (dnj12_1> -1)): - * #//% Advance along the the first contour. - * if (d1 <= d2): # <<<<<<<<<<<<<< - * j1 = next_j1; - * cnt_widths[ske_ind] = d1; - */ - __pyx_t_11 = ((__pyx_v_d1 <= __pyx_v_d2) != 0); - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":585 - * #//% Advance along the the first contour. - * if (d1 <= d2): - * j1 = next_j1; # <<<<<<<<<<<<<< - * cnt_widths[ske_ind] = d1; - * #//% Advance along the the second contour. - */ - __pyx_v_j1 = __pyx_v_next_j1; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":586 - * if (d1 <= d2): - * j1 = next_j1; - * cnt_widths[ske_ind] = d1; # <<<<<<<<<<<<<< - * #//% Advance along the the second contour. - * else: - */ - if (unlikely(((PyObject *)__pyx_v_cnt_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 586, __pyx_L1_error) - } - __pyx_t_75 = __pyx_v_ske_ind; - __pyx_t_6 = -1; - if (__pyx_t_75 < 0) { - __pyx_t_75 += __pyx_pybuffernd_cnt_widths.diminfo[0].shape; - if (unlikely(__pyx_t_75 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_75 >= __pyx_pybuffernd_cnt_widths.diminfo[0].shape)) __pyx_t_6 = 0; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 586, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_widths.rcbuffer->pybuffer.buf, __pyx_t_75, __pyx_pybuffernd_cnt_widths.diminfo[0].strides) = __pyx_v_d1; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":584 - * if ((dnj12_0> -1) and (dnj12_1> -1)): - * #//% Advance along the the first contour. - * if (d1 <= d2): # <<<<<<<<<<<<<< - * j1 = next_j1; - * cnt_widths[ske_ind] = d1; - */ - goto __pyx_L18; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":589 - * #//% Advance along the the second contour. - * else: - * j2 = next_j2; # <<<<<<<<<<<<<< - * cnt_widths[ske_ind] = d2; - * - */ - /*else*/ { - __pyx_v_j2 = __pyx_v_next_j2; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":590 - * else: - * j2 = next_j2; - * cnt_widths[ske_ind] = d2; # <<<<<<<<<<<<<< - * - * #//% The contours go in opposite directions. - */ - if (unlikely(((PyObject *)__pyx_v_cnt_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 590, __pyx_L1_error) - } - __pyx_t_76 = __pyx_v_ske_ind; - __pyx_t_6 = -1; - if (__pyx_t_76 < 0) { - __pyx_t_76 += __pyx_pybuffernd_cnt_widths.diminfo[0].shape; - if (unlikely(__pyx_t_76 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_76 >= __pyx_pybuffernd_cnt_widths.diminfo[0].shape)) __pyx_t_6 = 0; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 590, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_widths.rcbuffer->pybuffer.buf, __pyx_t_76, __pyx_pybuffernd_cnt_widths.diminfo[0].strides) = __pyx_v_d2; - } - __pyx_L18:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":582 - * #//% The contours go in similar directions. Follow the smallest width. - * else: - * if ((dnj12_0> -1) and (dnj12_1> -1)): # <<<<<<<<<<<<<< - * #//% Advance along the the first contour. - * if (d1 <= d2): - */ - goto __pyx_L15; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":598 - * else: - * #//% Advance along both contours. - * prev_width = cnt_widths[ske_ind - 1]; # <<<<<<<<<<<<<< - * if ((d12 <= d1 and d12 <= d2) or d1 == d2 or (d1 > prev_width and d2 > prev_width )): - * j1 = next_j1; - */ - /*else*/ { - if (unlikely(((PyObject *)__pyx_v_cnt_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 598, __pyx_L1_error) - } - __pyx_t_77 = (__pyx_v_ske_ind - 1); - __pyx_t_6 = -1; - if (__pyx_t_77 < 0) { - __pyx_t_77 += __pyx_pybuffernd_cnt_widths.diminfo[0].shape; - if (unlikely(__pyx_t_77 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_77 >= __pyx_pybuffernd_cnt_widths.diminfo[0].shape)) __pyx_t_6 = 0; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 598, __pyx_L1_error) - } - __pyx_v_prev_width = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_widths.rcbuffer->pybuffer.buf, __pyx_t_77, __pyx_pybuffernd_cnt_widths.diminfo[0].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":599 - * #//% Advance along both contours. - * prev_width = cnt_widths[ske_ind - 1]; - * if ((d12 <= d1 and d12 <= d2) or d1 == d2 or (d1 > prev_width and d2 > prev_width )): # <<<<<<<<<<<<<< - * j1 = next_j1; - * j2 = next_j2; - */ - __pyx_t_33 = ((__pyx_v_d12 <= __pyx_v_d1) != 0); - if (!__pyx_t_33) { - goto __pyx_L21_next_or; - } else { - } - __pyx_t_33 = ((__pyx_v_d12 <= __pyx_v_d2) != 0); - if (!__pyx_t_33) { - } else { - __pyx_t_11 = __pyx_t_33; - goto __pyx_L20_bool_binop_done; - } - __pyx_L21_next_or:; - __pyx_t_33 = ((__pyx_v_d1 == __pyx_v_d2) != 0); - if (!__pyx_t_33) { - } else { - __pyx_t_11 = __pyx_t_33; - goto __pyx_L20_bool_binop_done; - } - __pyx_t_33 = ((__pyx_v_d1 > __pyx_v_prev_width) != 0); - if (__pyx_t_33) { - } else { - __pyx_t_11 = __pyx_t_33; - goto __pyx_L20_bool_binop_done; - } - __pyx_t_33 = ((__pyx_v_d2 > __pyx_v_prev_width) != 0); - __pyx_t_11 = __pyx_t_33; - __pyx_L20_bool_binop_done:; - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":600 - * prev_width = cnt_widths[ske_ind - 1]; - * if ((d12 <= d1 and d12 <= d2) or d1 == d2 or (d1 > prev_width and d2 > prev_width )): - * j1 = next_j1; # <<<<<<<<<<<<<< - * j2 = next_j2; - * cnt_widths[ske_ind] = d12; - */ - __pyx_v_j1 = __pyx_v_next_j1; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":601 - * if ((d12 <= d1 and d12 <= d2) or d1 == d2 or (d1 > prev_width and d2 > prev_width )): - * j1 = next_j1; - * j2 = next_j2; # <<<<<<<<<<<<<< - * cnt_widths[ske_ind] = d12; - * #//% Advance along the the first contour. - */ - __pyx_v_j2 = __pyx_v_next_j2; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":602 - * j1 = next_j1; - * j2 = next_j2; - * cnt_widths[ske_ind] = d12; # <<<<<<<<<<<<<< - * #//% Advance along the the first contour. - * else: - */ - if (unlikely(((PyObject *)__pyx_v_cnt_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 602, __pyx_L1_error) - } - __pyx_t_78 = __pyx_v_ske_ind; - __pyx_t_6 = -1; - if (__pyx_t_78 < 0) { - __pyx_t_78 += __pyx_pybuffernd_cnt_widths.diminfo[0].shape; - if (unlikely(__pyx_t_78 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_78 >= __pyx_pybuffernd_cnt_widths.diminfo[0].shape)) __pyx_t_6 = 0; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 602, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_widths.rcbuffer->pybuffer.buf, __pyx_t_78, __pyx_pybuffernd_cnt_widths.diminfo[0].strides) = __pyx_v_d12; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":599 - * #//% Advance along both contours. - * prev_width = cnt_widths[ske_ind - 1]; - * if ((d12 <= d1 and d12 <= d2) or d1 == d2 or (d1 > prev_width and d2 > prev_width )): # <<<<<<<<<<<<<< - * j1 = next_j1; - * j2 = next_j2; - */ - goto __pyx_L19; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":605 - * #//% Advance along the the first contour. - * else: - * if (d1 < d2): # <<<<<<<<<<<<<< - * j1 = next_j1; - * cnt_widths[ske_ind] = d1; - */ - /*else*/ { - __pyx_t_11 = ((__pyx_v_d1 < __pyx_v_d2) != 0); - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":606 - * else: - * if (d1 < d2): - * j1 = next_j1; # <<<<<<<<<<<<<< - * cnt_widths[ske_ind] = d1; - * #//% Advance along the the second contour. - */ - __pyx_v_j1 = __pyx_v_next_j1; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":607 - * if (d1 < d2): - * j1 = next_j1; - * cnt_widths[ske_ind] = d1; # <<<<<<<<<<<<<< - * #//% Advance along the the second contour. - * else: - */ - if (unlikely(((PyObject *)__pyx_v_cnt_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 607, __pyx_L1_error) - } - __pyx_t_79 = __pyx_v_ske_ind; - __pyx_t_6 = -1; - if (__pyx_t_79 < 0) { - __pyx_t_79 += __pyx_pybuffernd_cnt_widths.diminfo[0].shape; - if (unlikely(__pyx_t_79 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_79 >= __pyx_pybuffernd_cnt_widths.diminfo[0].shape)) __pyx_t_6 = 0; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 607, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_widths.rcbuffer->pybuffer.buf, __pyx_t_79, __pyx_pybuffernd_cnt_widths.diminfo[0].strides) = __pyx_v_d1; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":605 - * #//% Advance along the the first contour. - * else: - * if (d1 < d2): # <<<<<<<<<<<<<< - * j1 = next_j1; - * cnt_widths[ske_ind] = d1; - */ - goto __pyx_L25; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":610 - * #//% Advance along the the second contour. - * else: - * j2 = next_j2; # <<<<<<<<<<<<<< - * cnt_widths[ske_ind] = d2; - * - */ - /*else*/ { - __pyx_v_j2 = __pyx_v_next_j2; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":611 - * else: - * j2 = next_j2; - * cnt_widths[ske_ind] = d2; # <<<<<<<<<<<<<< - * - * #//% Compute the skeleton. - */ - if (unlikely(((PyObject *)__pyx_v_cnt_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 611, __pyx_L1_error) - } - __pyx_t_80 = __pyx_v_ske_ind; - __pyx_t_6 = -1; - if (__pyx_t_80 < 0) { - __pyx_t_80 += __pyx_pybuffernd_cnt_widths.diminfo[0].shape; - if (unlikely(__pyx_t_80 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_80 >= __pyx_pybuffernd_cnt_widths.diminfo[0].shape)) __pyx_t_6 = 0; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 611, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_widths.rcbuffer->pybuffer.buf, __pyx_t_80, __pyx_pybuffernd_cnt_widths.diminfo[0].strides) = __pyx_v_d2; - } - __pyx_L25:; - } - __pyx_L19:; - } - __pyx_L15:; - } - __pyx_L11:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":614 - * - * #//% Compute the skeleton. - * skeleton[ske_ind, 0] = c_round((cnt_side1[j1, 0] + cnt_side2[j2, 0]) / 2); # <<<<<<<<<<<<<< - * skeleton[ske_ind, 1] = c_round((cnt_side1[j1, 1] + cnt_side2[j2, 1]) / 2); - * ske_ind +=1; - */ - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 614, __pyx_L1_error) - } - __pyx_t_81 = __pyx_v_j1; - __pyx_t_82 = 0; - __pyx_t_6 = -1; - if (__pyx_t_81 < 0) { - __pyx_t_81 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_81 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_81 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_82 < 0) { - __pyx_t_82 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_82 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_82 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 614, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side2) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 614, __pyx_L1_error) - } - __pyx_t_83 = __pyx_v_j2; - __pyx_t_84 = 0; - __pyx_t_6 = -1; - if (__pyx_t_83 < 0) { - __pyx_t_83 += __pyx_pybuffernd_cnt_side2.diminfo[0].shape; - if (unlikely(__pyx_t_83 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_83 >= __pyx_pybuffernd_cnt_side2.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_84 < 0) { - __pyx_t_84 += __pyx_pybuffernd_cnt_side2.diminfo[1].shape; - if (unlikely(__pyx_t_84 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_84 >= __pyx_pybuffernd_cnt_side2.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 614, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 614, __pyx_L1_error) - } - __pyx_t_85 = __pyx_v_ske_ind; - __pyx_t_86 = 0; - __pyx_t_6 = -1; - if (__pyx_t_85 < 0) { - __pyx_t_85 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_85 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_85 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_86 < 0) { - __pyx_t_86 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_86 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_86 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 614, __pyx_L1_error) - } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_85, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_86, __pyx_pybuffernd_skeleton.diminfo[1].strides) = round((((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_81, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_82, __pyx_pybuffernd_cnt_side1.diminfo[1].strides)) + (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side2.rcbuffer->pybuffer.buf, __pyx_t_83, __pyx_pybuffernd_cnt_side2.diminfo[0].strides, __pyx_t_84, __pyx_pybuffernd_cnt_side2.diminfo[1].strides))) / 2.0)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":615 - * #//% Compute the skeleton. - * skeleton[ske_ind, 0] = c_round((cnt_side1[j1, 0] + cnt_side2[j2, 0]) / 2); - * skeleton[ske_ind, 1] = c_round((cnt_side1[j1, 1] + cnt_side2[j2, 1]) / 2); # <<<<<<<<<<<<<< - * ske_ind +=1; - * - */ - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 615, __pyx_L1_error) - } - __pyx_t_87 = __pyx_v_j1; - __pyx_t_88 = 1; - __pyx_t_6 = -1; - if (__pyx_t_87 < 0) { - __pyx_t_87 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_87 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_87 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_88 < 0) { - __pyx_t_88 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_88 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_88 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 615, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side2) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 615, __pyx_L1_error) - } - __pyx_t_89 = __pyx_v_j2; - __pyx_t_90 = 1; - __pyx_t_6 = -1; - if (__pyx_t_89 < 0) { - __pyx_t_89 += __pyx_pybuffernd_cnt_side2.diminfo[0].shape; - if (unlikely(__pyx_t_89 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_89 >= __pyx_pybuffernd_cnt_side2.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_90 < 0) { - __pyx_t_90 += __pyx_pybuffernd_cnt_side2.diminfo[1].shape; - if (unlikely(__pyx_t_90 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_90 >= __pyx_pybuffernd_cnt_side2.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 615, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 615, __pyx_L1_error) - } - __pyx_t_91 = __pyx_v_ske_ind; - __pyx_t_92 = 1; - __pyx_t_6 = -1; - if (__pyx_t_91 < 0) { - __pyx_t_91 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_91 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_91 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_92 < 0) { - __pyx_t_92 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_92 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_92 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 615, __pyx_L1_error) - } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_91, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_92, __pyx_pybuffernd_skeleton.diminfo[1].strides) = round((((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_87, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_88, __pyx_pybuffernd_cnt_side1.diminfo[1].strides)) + (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side2.rcbuffer->pybuffer.buf, __pyx_t_89, __pyx_pybuffernd_cnt_side2.diminfo[0].strides, __pyx_t_90, __pyx_pybuffernd_cnt_side2.diminfo[1].strides))) / 2.0)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":616 - * skeleton[ske_ind, 0] = c_round((cnt_side1[j1, 0] + cnt_side2[j2, 0]) / 2); - * skeleton[ske_ind, 1] = c_round((cnt_side1[j1, 1] + cnt_side2[j2, 1]) / 2); - * ske_ind +=1; # <<<<<<<<<<<<<< - * - * #//% Add the last point. - */ - __pyx_v_ske_ind = (__pyx_v_ske_ind + 1); - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":619 - * - * #//% Add the last point. - * if (j1 != end_side1) or (j2 != end_side2): # <<<<<<<<<<<<<< - * skeleton[ske_ind, 0] = c_round((cnt_side1[end_side1, 0] + cnt_side2[end_side2, 0]) / 2); - * skeleton[ske_ind, 1] = c_round((cnt_side1[end_side1, 1] + cnt_side2[end_side2, 1]) / 2); - */ - __pyx_t_33 = ((__pyx_v_j1 != __pyx_v_end_side1) != 0); - if (!__pyx_t_33) { - } else { - __pyx_t_11 = __pyx_t_33; - goto __pyx_L27_bool_binop_done; - } - __pyx_t_33 = ((__pyx_v_j2 != __pyx_v_end_side2) != 0); - __pyx_t_11 = __pyx_t_33; - __pyx_L27_bool_binop_done:; - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":620 - * #//% Add the last point. - * if (j1 != end_side1) or (j2 != end_side2): - * skeleton[ske_ind, 0] = c_round((cnt_side1[end_side1, 0] + cnt_side2[end_side2, 0]) / 2); # <<<<<<<<<<<<<< - * skeleton[ske_ind, 1] = c_round((cnt_side1[end_side1, 1] + cnt_side2[end_side2, 1]) / 2); - * cnt_widths[ske_ind] = getDistance(cnt_side1[end_side1,0], cnt_side2[end_side2,0], cnt_side1[end_side1,1], cnt_side2[end_side2,1]) - */ - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 620, __pyx_L1_error) - } - __pyx_t_93 = __pyx_v_end_side1; - __pyx_t_94 = 0; - __pyx_t_6 = -1; - if (__pyx_t_93 < 0) { - __pyx_t_93 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_93 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_93 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_94 < 0) { - __pyx_t_94 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_94 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_94 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 620, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side2) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 620, __pyx_L1_error) - } - __pyx_t_95 = __pyx_v_end_side2; - __pyx_t_96 = 0; - __pyx_t_6 = -1; - if (__pyx_t_95 < 0) { - __pyx_t_95 += __pyx_pybuffernd_cnt_side2.diminfo[0].shape; - if (unlikely(__pyx_t_95 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_95 >= __pyx_pybuffernd_cnt_side2.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_96 < 0) { - __pyx_t_96 += __pyx_pybuffernd_cnt_side2.diminfo[1].shape; - if (unlikely(__pyx_t_96 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_96 >= __pyx_pybuffernd_cnt_side2.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 620, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 620, __pyx_L1_error) - } - __pyx_t_97 = __pyx_v_ske_ind; - __pyx_t_98 = 0; - __pyx_t_6 = -1; - if (__pyx_t_97 < 0) { - __pyx_t_97 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_97 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_97 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_98 < 0) { - __pyx_t_98 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_98 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_98 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 620, __pyx_L1_error) - } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_97, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_98, __pyx_pybuffernd_skeleton.diminfo[1].strides) = round((((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_93, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_94, __pyx_pybuffernd_cnt_side1.diminfo[1].strides)) + (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side2.rcbuffer->pybuffer.buf, __pyx_t_95, __pyx_pybuffernd_cnt_side2.diminfo[0].strides, __pyx_t_96, __pyx_pybuffernd_cnt_side2.diminfo[1].strides))) / 2.0)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":621 - * if (j1 != end_side1) or (j2 != end_side2): - * skeleton[ske_ind, 0] = c_round((cnt_side1[end_side1, 0] + cnt_side2[end_side2, 0]) / 2); - * skeleton[ske_ind, 1] = c_round((cnt_side1[end_side1, 1] + cnt_side2[end_side2, 1]) / 2); # <<<<<<<<<<<<<< - * cnt_widths[ske_ind] = getDistance(cnt_side1[end_side1,0], cnt_side2[end_side2,0], cnt_side1[end_side1,1], cnt_side2[end_side2,1]) - * ske_ind +=1; - */ - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 621, __pyx_L1_error) - } - __pyx_t_99 = __pyx_v_end_side1; - __pyx_t_100 = 1; - __pyx_t_6 = -1; - if (__pyx_t_99 < 0) { - __pyx_t_99 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_99 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_99 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_100 < 0) { - __pyx_t_100 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_100 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_100 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 621, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side2) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 621, __pyx_L1_error) - } - __pyx_t_101 = __pyx_v_end_side2; - __pyx_t_102 = 1; - __pyx_t_6 = -1; - if (__pyx_t_101 < 0) { - __pyx_t_101 += __pyx_pybuffernd_cnt_side2.diminfo[0].shape; - if (unlikely(__pyx_t_101 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_101 >= __pyx_pybuffernd_cnt_side2.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_102 < 0) { - __pyx_t_102 += __pyx_pybuffernd_cnt_side2.diminfo[1].shape; - if (unlikely(__pyx_t_102 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_102 >= __pyx_pybuffernd_cnt_side2.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 621, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 621, __pyx_L1_error) - } - __pyx_t_103 = __pyx_v_ske_ind; - __pyx_t_104 = 1; - __pyx_t_6 = -1; - if (__pyx_t_103 < 0) { - __pyx_t_103 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_103 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_103 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_104 < 0) { - __pyx_t_104 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_104 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_104 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 621, __pyx_L1_error) - } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_103, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_104, __pyx_pybuffernd_skeleton.diminfo[1].strides) = round((((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_99, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_100, __pyx_pybuffernd_cnt_side1.diminfo[1].strides)) + (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side2.rcbuffer->pybuffer.buf, __pyx_t_101, __pyx_pybuffernd_cnt_side2.diminfo[0].strides, __pyx_t_102, __pyx_pybuffernd_cnt_side2.diminfo[1].strides))) / 2.0)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":622 - * skeleton[ske_ind, 0] = c_round((cnt_side1[end_side1, 0] + cnt_side2[end_side2, 0]) / 2); - * skeleton[ske_ind, 1] = c_round((cnt_side1[end_side1, 1] + cnt_side2[end_side2, 1]) / 2); - * cnt_widths[ske_ind] = getDistance(cnt_side1[end_side1,0], cnt_side2[end_side2,0], cnt_side1[end_side1,1], cnt_side2[end_side2,1]) # <<<<<<<<<<<<<< - * ske_ind +=1; - * - */ - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 622, __pyx_L1_error) - } - __pyx_t_105 = __pyx_v_end_side1; - __pyx_t_106 = 0; - __pyx_t_6 = -1; - if (__pyx_t_105 < 0) { - __pyx_t_105 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_105 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_105 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_106 < 0) { - __pyx_t_106 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_106 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_106 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 622, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side2) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 622, __pyx_L1_error) - } - __pyx_t_107 = __pyx_v_end_side2; - __pyx_t_108 = 0; - __pyx_t_6 = -1; - if (__pyx_t_107 < 0) { - __pyx_t_107 += __pyx_pybuffernd_cnt_side2.diminfo[0].shape; - if (unlikely(__pyx_t_107 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_107 >= __pyx_pybuffernd_cnt_side2.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_108 < 0) { - __pyx_t_108 += __pyx_pybuffernd_cnt_side2.diminfo[1].shape; - if (unlikely(__pyx_t_108 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_108 >= __pyx_pybuffernd_cnt_side2.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 622, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side1) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 622, __pyx_L1_error) - } - __pyx_t_109 = __pyx_v_end_side1; - __pyx_t_110 = 1; - __pyx_t_6 = -1; - if (__pyx_t_109 < 0) { - __pyx_t_109 += __pyx_pybuffernd_cnt_side1.diminfo[0].shape; - if (unlikely(__pyx_t_109 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_109 >= __pyx_pybuffernd_cnt_side1.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_110 < 0) { - __pyx_t_110 += __pyx_pybuffernd_cnt_side1.diminfo[1].shape; - if (unlikely(__pyx_t_110 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_110 >= __pyx_pybuffernd_cnt_side1.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 622, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_side2) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 622, __pyx_L1_error) - } - __pyx_t_111 = __pyx_v_end_side2; - __pyx_t_112 = 1; - __pyx_t_6 = -1; - if (__pyx_t_111 < 0) { - __pyx_t_111 += __pyx_pybuffernd_cnt_side2.diminfo[0].shape; - if (unlikely(__pyx_t_111 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_111 >= __pyx_pybuffernd_cnt_side2.diminfo[0].shape)) __pyx_t_6 = 0; - if (__pyx_t_112 < 0) { - __pyx_t_112 += __pyx_pybuffernd_cnt_side2.diminfo[1].shape; - if (unlikely(__pyx_t_112 < 0)) __pyx_t_6 = 1; - } else if (unlikely(__pyx_t_112 >= __pyx_pybuffernd_cnt_side2.diminfo[1].shape)) __pyx_t_6 = 1; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 622, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cnt_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 622, __pyx_L1_error) - } - __pyx_t_113 = __pyx_v_ske_ind; - __pyx_t_6 = -1; - if (__pyx_t_113 < 0) { - __pyx_t_113 += __pyx_pybuffernd_cnt_widths.diminfo[0].shape; - if (unlikely(__pyx_t_113 < 0)) __pyx_t_6 = 0; - } else if (unlikely(__pyx_t_113 >= __pyx_pybuffernd_cnt_widths.diminfo[0].shape)) __pyx_t_6 = 0; - if (unlikely(__pyx_t_6 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_6); - __PYX_ERR(0, 622, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_widths.rcbuffer->pybuffer.buf, __pyx_t_113, __pyx_pybuffernd_cnt_widths.diminfo[0].strides) = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_getDistance((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_105, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_106, __pyx_pybuffernd_cnt_side1.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side2.rcbuffer->pybuffer.buf, __pyx_t_107, __pyx_pybuffernd_cnt_side2.diminfo[0].strides, __pyx_t_108, __pyx_pybuffernd_cnt_side2.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer.buf, __pyx_t_109, __pyx_pybuffernd_cnt_side1.diminfo[0].strides, __pyx_t_110, __pyx_pybuffernd_cnt_side1.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cnt_side2.rcbuffer->pybuffer.buf, __pyx_t_111, __pyx_pybuffernd_cnt_side2.diminfo[0].strides, __pyx_t_112, __pyx_pybuffernd_cnt_side2.diminfo[1].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":623 - * skeleton[ske_ind, 1] = c_round((cnt_side1[end_side1, 1] + cnt_side2[end_side2, 1]) / 2); - * cnt_widths[ske_ind] = getDistance(cnt_side1[end_side1,0], cnt_side2[end_side2,0], cnt_side1[end_side1,1], cnt_side2[end_side2,1]) - * ske_ind +=1; # <<<<<<<<<<<<<< - * - * skeleton = skeleton[:ske_ind,:]; - */ - __pyx_v_ske_ind = (__pyx_v_ske_ind + 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":619 - * - * #//% Add the last point. - * if (j1 != end_side1) or (j2 != end_side2): # <<<<<<<<<<<<<< - * skeleton[ske_ind, 0] = c_round((cnt_side1[end_side1, 0] + cnt_side2[end_side2, 0]) / 2); - * skeleton[ske_ind, 1] = c_round((cnt_side1[end_side1, 1] + cnt_side2[end_side2, 1]) / 2); - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":625 - * ske_ind +=1; - * - * skeleton = skeleton[:ske_ind,:]; # <<<<<<<<<<<<<< - * cnt_widths = cnt_widths[:ske_ind] - * - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 625, __pyx_L1_error) - } - __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ske_ind); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 625, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_8 = PySlice_New(Py_None, __pyx_t_2, Py_None); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 625, __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, 625, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_8); - PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_8); - __Pyx_INCREF(__pyx_slice__2); - __Pyx_GIVEREF(__pyx_slice__2); - PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_slice__2); - __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_skeleton), __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 625, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 625, __pyx_L1_error) - __pyx_t_9 = ((PyArrayObject *)__pyx_t_8); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_skeleton.rcbuffer->pybuffer); - __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_skeleton.rcbuffer->pybuffer, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); - if (unlikely(__pyx_t_6 < 0)) { - PyErr_Fetch(&__pyx_t_114, &__pyx_t_115, &__pyx_t_116); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_skeleton.rcbuffer->pybuffer, (PyObject*)__pyx_v_skeleton, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_114); Py_XDECREF(__pyx_t_115); Py_XDECREF(__pyx_t_116); - __Pyx_RaiseBufferFallbackError(); - } else { - PyErr_Restore(__pyx_t_114, __pyx_t_115, __pyx_t_116); - } - __pyx_t_114 = __pyx_t_115 = __pyx_t_116 = 0; - } - __pyx_pybuffernd_skeleton.diminfo[0].strides = __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_skeleton.diminfo[0].shape = __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_skeleton.diminfo[1].strides = __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_skeleton.diminfo[1].shape = __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.shape[1]; - if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 625, __pyx_L1_error) - } - __pyx_t_9 = 0; - __Pyx_DECREF_SET(__pyx_v_skeleton, ((PyArrayObject *)__pyx_t_8)); - __pyx_t_8 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":626 - * - * skeleton = skeleton[:ske_ind,:]; - * cnt_widths = cnt_widths[:ske_ind] # <<<<<<<<<<<<<< - * - * return (skeleton, cnt_widths) - */ - if (unlikely(((PyObject *)__pyx_v_cnt_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 626, __pyx_L1_error) - } - __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_ske_ind); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 626, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_2 = PySlice_New(Py_None, __pyx_t_8, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 626, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_cnt_widths), __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 626, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 626, __pyx_L1_error) - __pyx_t_10 = ((PyArrayObject *)__pyx_t_8); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cnt_widths.rcbuffer->pybuffer); - __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cnt_widths.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); - if (unlikely(__pyx_t_6 < 0)) { - PyErr_Fetch(&__pyx_t_116, &__pyx_t_115, &__pyx_t_114); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cnt_widths.rcbuffer->pybuffer, (PyObject*)__pyx_v_cnt_widths, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_116); Py_XDECREF(__pyx_t_115); Py_XDECREF(__pyx_t_114); - __Pyx_RaiseBufferFallbackError(); - } else { - PyErr_Restore(__pyx_t_116, __pyx_t_115, __pyx_t_114); - } - __pyx_t_116 = __pyx_t_115 = __pyx_t_114 = 0; - } - __pyx_pybuffernd_cnt_widths.diminfo[0].strides = __pyx_pybuffernd_cnt_widths.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cnt_widths.diminfo[0].shape = __pyx_pybuffernd_cnt_widths.rcbuffer->pybuffer.shape[0]; - if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 626, __pyx_L1_error) - } - __pyx_t_10 = 0; - __Pyx_DECREF_SET(__pyx_v_cnt_widths, ((PyArrayObject *)__pyx_t_8)); - __pyx_t_8 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":628 - * cnt_widths = cnt_widths[:ske_ind] - * - * return (skeleton, cnt_widths) # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 628, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_INCREF(((PyObject *)__pyx_v_skeleton)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_skeleton)); - PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_skeleton)); - __Pyx_INCREF(((PyObject *)__pyx_v_cnt_widths)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_cnt_widths)); - PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_cnt_widths)); - __pyx_r = __pyx_t_8; - __pyx_t_8 = 0; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":483 - * return ((cnt_size - start_side + 1 + end_side) / inc_side, 0, cnt_size-1) - * - * def skeletonize(int start_side1, int end_side1, int inc_side1, \ # <<<<<<<<<<<<<< - * int start_side2, int end_side2, int inc_side2, \ - * np.ndarray[np.float_t, ndim=2] cnt_side1, np.ndarray[np.float_t, ndim=2] cnt_side2): - */ - - /* 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_8); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cnt_side2.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cnt_widths.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_skeleton.rcbuffer->pybuffer); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython.skeletonize", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cnt_side1.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cnt_side2.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cnt_widths.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_skeleton.rcbuffer->pybuffer); - __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_skeleton); - __Pyx_XDECREF((PyObject *)__pyx_v_cnt_widths); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":633 - * - * - * def cleanSkeleton(np.ndarray[np.float_t, ndim=2] skeleton, np.ndarray[np.float_t, ndim=1] widths, double worm_seg_size): # <<<<<<<<<<<<<< - * ''' * %CLEANSKELETON Clean an 8-connected skeleton by removing any overlap and - * * %interpolating any missing points. - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_15cleanSkeleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_14cleanSkeleton[] = " * %CLEANSKELETON Clean an 8-connected skeleton by removing any overlap and\n * %interpolating any missing points.\n * %\n * % [CSKELETON] = CLEANSKELETON(SKELETON)\n * %\n * % Note: the worm's skeleton is still rough. Therefore, index lengths, as\n * % opposed to chain-code lengths, are used as the distance metric\n * % over the worm's skeleton.\n * %\n * % Input:\n * % skeleton - the 8-connected skeleton to clean\n * % widths - the worm's contour widths at each skeleton point\n * % worm_seg_size - the size (in contour points) of a worm segment.\n * % Note: the worm is roughly divided into 24 segments\n * % of musculature (i.e., hinges that represent degrees\n * % of freedom) on each side. Therefore, 48 segments\n * % around a 2-D contour.\n * % Note 2: \"In C. elegans the 95 rhomboid-shaped body\n * % wall muscle cells are arranged as staggered pairs in\n * % four longitudinal bundles located in four quadrants.\n * % Three of these bundles (DL, DR, VR) contain 24 cells\n * % each, whereas VL bundle contains 23 cells.\" -\n * % www.wormatlas.org\n * %\n * % Output:\n * % cSkeleton - the cleaned skeleton (no overlap & no missing points)\n * % cWidths - the cleaned contour widths at each skeleton point\n * %\n * %\n * % \302\251 Medical Research Council 2012\n * % You will not remove any copyright or other notices from the Software;\n * % you must reproduce all copyright notices and other proprietary\n * % notices on any copies of the Software.\n *\n * % If a worm touches itself, the cuticle prevents the worm from folding and\n * % touching adjacent pairs of muscle segme""nts; therefore, the distance\n * % between touching segments must be, at least, the length of 2 muscle\n * % segments."; -static PyMethodDef __pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_15cleanSkeleton = {"cleanSkeleton", (PyCFunction)__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_15cleanSkeleton, METH_VARARGS|METH_KEYWORDS, __pyx_doc_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_14cleanSkeleton}; -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_15cleanSkeleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyArrayObject *__pyx_v_skeleton = 0; - PyArrayObject *__pyx_v_widths = 0; - double __pyx_v_worm_seg_size; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("cleanSkeleton (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_skeleton,&__pyx_n_s_widths,&__pyx_n_s_worm_seg_size,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_skeleton)) != 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_widths)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("cleanSkeleton", 1, 3, 3, 1); __PYX_ERR(0, 633, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worm_seg_size)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("cleanSkeleton", 1, 3, 3, 2); __PYX_ERR(0, 633, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cleanSkeleton") < 0)) __PYX_ERR(0, 633, __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_skeleton = ((PyArrayObject *)values[0]); - __pyx_v_widths = ((PyArrayObject *)values[1]); - __pyx_v_worm_seg_size = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_worm_seg_size == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 633, __pyx_L3_error) - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("cleanSkeleton", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 633, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython.cleanSkeleton", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_skeleton), __pyx_ptype_5numpy_ndarray, 1, "skeleton", 0))) __PYX_ERR(0, 633, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_widths), __pyx_ptype_5numpy_ndarray, 1, "widths", 0))) __PYX_ERR(0, 633, __pyx_L1_error) - __pyx_r = __pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_14cleanSkeleton(__pyx_self, __pyx_v_skeleton, __pyx_v_widths, __pyx_v_worm_seg_size); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_14cleanSkeleton(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_skeleton, PyArrayObject *__pyx_v_widths, double __pyx_v_worm_seg_size) { - int __pyx_v_FLAG_MAX; - int __pyx_v_maxSkeletonOverlap; - int __pyx_v_number_points; - int __pyx_v_last_index; - PyArrayObject *__pyx_v_pSortC = 0; - PyArrayObject *__pyx_v_iSortC = 0; - int __pyx_v_buff_size; - PyArrayObject *__pyx_v_cSkeleton = 0; - PyArrayObject *__pyx_v_cWidths = 0; - PyArrayObject *__pyx_v_keep = 0; - int __pyx_v_minI; - int __pyx_v_maxI; - int __pyx_v_s1I; - int __pyx_v_i; - int __pyx_v_s2I; - int __pyx_v_pI; - double __pyx_v_dSkeleton[2]; - int __pyx_v_newTotal; - int __pyx_v_j; - int __pyx_v_m; - float __pyx_v_x; - float __pyx_v_y; - float __pyx_v_x1; - float __pyx_v_x2; - float __pyx_v_y1; - float __pyx_v_y2; - float __pyx_v_delY; - float __pyx_v_delX; - float __pyx_v_delW; - float __pyx_v_points; - float __pyx_v_xd; - float __pyx_v_yd; - float __pyx_v_xprev; - float __pyx_v_yprev; - int __pyx_v_n_interp; - int __pyx_v_nextI; - __Pyx_LocalBuf_ND __pyx_pybuffernd_cSkeleton; - __Pyx_Buffer __pyx_pybuffer_cSkeleton; - __Pyx_LocalBuf_ND __pyx_pybuffernd_cWidths; - __Pyx_Buffer __pyx_pybuffer_cWidths; - __Pyx_LocalBuf_ND __pyx_pybuffernd_iSortC; - __Pyx_Buffer __pyx_pybuffer_iSortC; - __Pyx_LocalBuf_ND __pyx_pybuffernd_keep; - __Pyx_Buffer __pyx_pybuffer_keep; - __Pyx_LocalBuf_ND __pyx_pybuffernd_pSortC; - __Pyx_Buffer __pyx_pybuffer_pSortC; - __Pyx_LocalBuf_ND __pyx_pybuffernd_skeleton; - __Pyx_Buffer __pyx_pybuffer_skeleton; - __Pyx_LocalBuf_ND __pyx_pybuffernd_widths; - __Pyx_Buffer __pyx_pybuffer_widths; - 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; - PyArrayObject *__pyx_t_6 = NULL; - PyArrayObject *__pyx_t_7 = NULL; - PyArrayObject *__pyx_t_8 = NULL; - PyArrayObject *__pyx_t_9 = NULL; - PyArrayObject *__pyx_t_10 = NULL; - int __pyx_t_11; - Py_ssize_t __pyx_t_12; - 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; - Py_ssize_t __pyx_t_18; - Py_ssize_t __pyx_t_19; - Py_ssize_t __pyx_t_20; - Py_ssize_t __pyx_t_21; - Py_ssize_t __pyx_t_22; - Py_ssize_t __pyx_t_23; - Py_ssize_t __pyx_t_24; - int __pyx_t_25; - Py_ssize_t __pyx_t_26; - Py_ssize_t __pyx_t_27; - Py_ssize_t __pyx_t_28; - Py_ssize_t __pyx_t_29; - Py_ssize_t __pyx_t_30; - Py_ssize_t __pyx_t_31; - Py_ssize_t __pyx_t_32; - Py_ssize_t __pyx_t_33; - Py_ssize_t __pyx_t_34; - Py_ssize_t __pyx_t_35; - Py_ssize_t __pyx_t_36; - Py_ssize_t __pyx_t_37; - Py_ssize_t __pyx_t_38; - Py_ssize_t __pyx_t_39; - Py_ssize_t __pyx_t_40; - Py_ssize_t __pyx_t_41; - Py_ssize_t __pyx_t_42; - Py_ssize_t __pyx_t_43; - Py_ssize_t __pyx_t_44; - Py_ssize_t __pyx_t_45; - Py_ssize_t __pyx_t_46; - Py_ssize_t __pyx_t_47; - int __pyx_t_48; - int __pyx_t_49; - Py_ssize_t __pyx_t_50; - Py_ssize_t __pyx_t_51; - Py_ssize_t __pyx_t_52; - Py_ssize_t __pyx_t_53; - Py_ssize_t __pyx_t_54; - Py_ssize_t __pyx_t_55; - Py_ssize_t __pyx_t_56; - Py_ssize_t __pyx_t_57; - Py_ssize_t __pyx_t_58; - Py_ssize_t __pyx_t_59; - Py_ssize_t __pyx_t_60; - Py_ssize_t __pyx_t_61; - Py_ssize_t __pyx_t_62; - Py_ssize_t __pyx_t_63; - Py_ssize_t __pyx_t_64; - Py_ssize_t __pyx_t_65; - Py_ssize_t __pyx_t_66; - long __pyx_t_67; - long __pyx_t_68; - Py_ssize_t __pyx_t_69; - Py_ssize_t __pyx_t_70; - Py_ssize_t __pyx_t_71; - Py_ssize_t __pyx_t_72; - Py_ssize_t __pyx_t_73; - int __pyx_t_74; - Py_ssize_t __pyx_t_75; - Py_ssize_t __pyx_t_76; - Py_ssize_t __pyx_t_77; - Py_ssize_t __pyx_t_78; - Py_ssize_t __pyx_t_79; - Py_ssize_t __pyx_t_80; - Py_ssize_t __pyx_t_81; - Py_ssize_t __pyx_t_82; - Py_ssize_t __pyx_t_83; - Py_ssize_t __pyx_t_84; - Py_ssize_t __pyx_t_85; - Py_ssize_t __pyx_t_86; - Py_ssize_t __pyx_t_87; - Py_ssize_t __pyx_t_88; - Py_ssize_t __pyx_t_89; - Py_ssize_t __pyx_t_90; - Py_ssize_t __pyx_t_91; - Py_ssize_t __pyx_t_92; - Py_ssize_t __pyx_t_93; - Py_ssize_t __pyx_t_94; - Py_ssize_t __pyx_t_95; - Py_ssize_t __pyx_t_96; - Py_ssize_t __pyx_t_97; - Py_ssize_t __pyx_t_98; - Py_ssize_t __pyx_t_99; - Py_ssize_t __pyx_t_100; - Py_ssize_t __pyx_t_101; - Py_ssize_t __pyx_t_102; - Py_ssize_t __pyx_t_103; - Py_ssize_t __pyx_t_104; - Py_ssize_t __pyx_t_105; - Py_ssize_t __pyx_t_106; - Py_ssize_t __pyx_t_107; - Py_ssize_t __pyx_t_108; - Py_ssize_t __pyx_t_109; - Py_ssize_t __pyx_t_110; - Py_ssize_t __pyx_t_111; - Py_ssize_t __pyx_t_112; - Py_ssize_t __pyx_t_113; - Py_ssize_t __pyx_t_114; - Py_ssize_t __pyx_t_115; - float __pyx_t_116; - Py_ssize_t __pyx_t_117; - Py_ssize_t __pyx_t_118; - Py_ssize_t __pyx_t_119; - Py_ssize_t __pyx_t_120; - Py_ssize_t __pyx_t_121; - Py_ssize_t __pyx_t_122; - __pyx_t_5numpy_float_t __pyx_t_123; - int __pyx_t_124; - int __pyx_t_125; - Py_ssize_t __pyx_t_126; - Py_ssize_t __pyx_t_127; - int __pyx_t_128; - Py_ssize_t __pyx_t_129; - Py_ssize_t __pyx_t_130; - Py_ssize_t __pyx_t_131; - Py_ssize_t __pyx_t_132; - Py_ssize_t __pyx_t_133; - Py_ssize_t __pyx_t_134; - Py_ssize_t __pyx_t_135; - Py_ssize_t __pyx_t_136; - Py_ssize_t __pyx_t_137; - Py_ssize_t __pyx_t_138; - Py_ssize_t __pyx_t_139; - Py_ssize_t __pyx_t_140; - Py_ssize_t __pyx_t_141; - Py_ssize_t __pyx_t_142; - PyObject *__pyx_t_143 = NULL; - PyObject *__pyx_t_144 = NULL; - PyObject *__pyx_t_145 = NULL; - Py_ssize_t __pyx_t_146; - Py_ssize_t __pyx_t_147; - Py_ssize_t __pyx_t_148; - Py_ssize_t __pyx_t_149; - Py_ssize_t __pyx_t_150; - Py_ssize_t __pyx_t_151; - Py_ssize_t __pyx_t_152; - Py_ssize_t __pyx_t_153; - Py_ssize_t __pyx_t_154; - Py_ssize_t __pyx_t_155; - Py_ssize_t __pyx_t_156; - Py_ssize_t __pyx_t_157; - Py_ssize_t __pyx_t_158; - Py_ssize_t __pyx_t_159; - Py_ssize_t __pyx_t_160; - Py_ssize_t __pyx_t_161; - Py_ssize_t __pyx_t_162; - Py_ssize_t __pyx_t_163; - Py_ssize_t __pyx_t_164; - Py_ssize_t __pyx_t_165; - __Pyx_RefNannySetupContext("cleanSkeleton", 0); - __pyx_pybuffer_pSortC.pybuffer.buf = NULL; - __pyx_pybuffer_pSortC.refcount = 0; - __pyx_pybuffernd_pSortC.data = NULL; - __pyx_pybuffernd_pSortC.rcbuffer = &__pyx_pybuffer_pSortC; - __pyx_pybuffer_iSortC.pybuffer.buf = NULL; - __pyx_pybuffer_iSortC.refcount = 0; - __pyx_pybuffernd_iSortC.data = NULL; - __pyx_pybuffernd_iSortC.rcbuffer = &__pyx_pybuffer_iSortC; - __pyx_pybuffer_cSkeleton.pybuffer.buf = NULL; - __pyx_pybuffer_cSkeleton.refcount = 0; - __pyx_pybuffernd_cSkeleton.data = NULL; - __pyx_pybuffernd_cSkeleton.rcbuffer = &__pyx_pybuffer_cSkeleton; - __pyx_pybuffer_cWidths.pybuffer.buf = NULL; - __pyx_pybuffer_cWidths.refcount = 0; - __pyx_pybuffernd_cWidths.data = NULL; - __pyx_pybuffernd_cWidths.rcbuffer = &__pyx_pybuffer_cWidths; - __pyx_pybuffer_keep.pybuffer.buf = NULL; - __pyx_pybuffer_keep.refcount = 0; - __pyx_pybuffernd_keep.data = NULL; - __pyx_pybuffernd_keep.rcbuffer = &__pyx_pybuffer_keep; - __pyx_pybuffer_skeleton.pybuffer.buf = NULL; - __pyx_pybuffer_skeleton.refcount = 0; - __pyx_pybuffernd_skeleton.data = NULL; - __pyx_pybuffernd_skeleton.rcbuffer = &__pyx_pybuffer_skeleton; - __pyx_pybuffer_widths.pybuffer.buf = NULL; - __pyx_pybuffer_widths.refcount = 0; - __pyx_pybuffernd_widths.data = NULL; - __pyx_pybuffernd_widths.rcbuffer = &__pyx_pybuffer_widths; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_skeleton.rcbuffer->pybuffer, (PyObject*)__pyx_v_skeleton, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 633, __pyx_L1_error) - } - __pyx_pybuffernd_skeleton.diminfo[0].strides = __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_skeleton.diminfo[0].shape = __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_skeleton.diminfo[1].strides = __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_skeleton.diminfo[1].shape = __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.shape[1]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_widths.rcbuffer->pybuffer, (PyObject*)__pyx_v_widths, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 633, __pyx_L1_error) - } - __pyx_pybuffernd_widths.diminfo[0].strides = __pyx_pybuffernd_widths.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_widths.diminfo[0].shape = __pyx_pybuffernd_widths.rcbuffer->pybuffer.shape[0]; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":673 - * * % segments.''' - * - * cdef int FLAG_MAX = 2147483647 #max 32 integer. initialization # <<<<<<<<<<<<<< - * cdef int maxSkeletonOverlap = (ceil(2 * worm_seg_size)); - * cdef int number_points = skeleton.shape[0] - */ - __pyx_v_FLAG_MAX = 0x7FFFFFFF; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":674 - * - * cdef int FLAG_MAX = 2147483647 #max 32 integer. initialization - * cdef int maxSkeletonOverlap = (ceil(2 * worm_seg_size)); # <<<<<<<<<<<<<< - * cdef int number_points = skeleton.shape[0] - * cdef int last_index = number_points - 1 - */ - __pyx_v_maxSkeletonOverlap = ((int)ceil((2.0 * __pyx_v_worm_seg_size))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":675 - * cdef int FLAG_MAX = 2147483647 #max 32 integer. initialization - * cdef int maxSkeletonOverlap = (ceil(2 * worm_seg_size)); - * cdef int number_points = skeleton.shape[0] # <<<<<<<<<<<<<< - * cdef int last_index = number_points - 1 - * - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "shape"); - __PYX_ERR(0, 675, __pyx_L1_error) - } - __pyx_v_number_points = (__pyx_v_skeleton->dimensions[0]); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":676 - * cdef int maxSkeletonOverlap = (ceil(2 * worm_seg_size)); - * cdef int number_points = skeleton.shape[0] - * cdef int last_index = number_points - 1 # <<<<<<<<<<<<<< - * - * cdef np.ndarray[np.int_t, ndim=1] pSortC = np.lexsort((skeleton[:,1], skeleton[:,0])) - */ - __pyx_v_last_index = (__pyx_v_number_points - 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":678 - * cdef int last_index = number_points - 1 - * - * cdef np.ndarray[np.int_t, ndim=1] pSortC = np.lexsort((skeleton[:,1], skeleton[:,0])) # <<<<<<<<<<<<<< - * cdef np.ndarray[np.int_t, ndim=1] iSortC = np.argsort(pSortC) - * - */ - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 678, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_lexsort); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 678, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 678, __pyx_L1_error) - } - __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_skeleton), __pyx_tuple__4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 678, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 678, __pyx_L1_error) - } - __pyx_t_4 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_skeleton), __pyx_tuple__6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 678, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 678, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_2); - PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); - __pyx_t_2 = 0; - __pyx_t_4 = 0; - __pyx_t_4 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - } - } - if (!__pyx_t_4) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 678, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else { - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_5}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 678, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_5}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 678, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } else - #endif - { - __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 678, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL; - __Pyx_GIVEREF(__pyx_t_5); - PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_t_5); - __pyx_t_5 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 678, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - } - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 678, __pyx_L1_error) - __pyx_t_6 = ((PyArrayObject *)__pyx_t_1); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pSortC.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { - __pyx_v_pSortC = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_pSortC.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 678, __pyx_L1_error) - } else {__pyx_pybuffernd_pSortC.diminfo[0].strides = __pyx_pybuffernd_pSortC.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pSortC.diminfo[0].shape = __pyx_pybuffernd_pSortC.rcbuffer->pybuffer.shape[0]; - } - } - __pyx_t_6 = 0; - __pyx_v_pSortC = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":679 - * - * cdef np.ndarray[np.int_t, ndim=1] pSortC = np.lexsort((skeleton[:,1], skeleton[:,0])) - * cdef np.ndarray[np.int_t, ndim=1] iSortC = np.argsort(pSortC) # <<<<<<<<<<<<<< - * - * #output - */ - __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 679, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_argsort); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 679, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(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); - } - } - if (!__pyx_t_3) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_pSortC)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 679, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } else { - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[2] = {__pyx_t_3, ((PyObject *)__pyx_v_pSortC)}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 679, __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_2)) { - PyObject *__pyx_temp[2] = {__pyx_t_3, ((PyObject *)__pyx_v_pSortC)}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 679, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 679, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; - __Pyx_INCREF(((PyObject *)__pyx_v_pSortC)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_pSortC)); - PyTuple_SET_ITEM(__pyx_t_5, 0+1, ((PyObject *)__pyx_v_pSortC)); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 679, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 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, 679, __pyx_L1_error) - __pyx_t_7 = ((PyArrayObject *)__pyx_t_1); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_iSortC.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { - __pyx_v_iSortC = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_iSortC.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 679, __pyx_L1_error) - } else {__pyx_pybuffernd_iSortC.diminfo[0].strides = __pyx_pybuffernd_iSortC.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_iSortC.diminfo[0].shape = __pyx_pybuffernd_iSortC.rcbuffer->pybuffer.shape[0]; - } - } - __pyx_t_7 = 0; - __pyx_v_iSortC = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":682 - * - * #output - * cdef int buff_size = 2*number_points; # <<<<<<<<<<<<<< - * cdef np.ndarray[np.float_t, ndim=2] cSkeleton = np.zeros((buff_size, 2), dtype = np.float); #//% pre-allocate memory - * cdef np.ndarray[np.float_t, ndim=1] cWidths = np.zeros(buff_size, dtype = np.float); - */ - __pyx_v_buff_size = (2 * __pyx_v_number_points); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":683 - * #output - * cdef int buff_size = 2*number_points; - * cdef np.ndarray[np.float_t, ndim=2] cSkeleton = np.zeros((buff_size, 2), dtype = np.float); #//% pre-allocate memory # <<<<<<<<<<<<<< - * cdef np.ndarray[np.float_t, ndim=1] cWidths = np.zeros(buff_size, dtype = np.float); - * - */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 683, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 683, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_buff_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 683, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 683, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); - __Pyx_INCREF(__pyx_int_2); - __Pyx_GIVEREF(__pyx_int_2); - PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_2); - __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 683, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_5); - PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); - __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 683, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 683, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_float); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 683, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_4) < 0) __PYX_ERR(0, 683, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 683, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 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, 683, __pyx_L1_error) - __pyx_t_8 = ((PyArrayObject *)__pyx_t_4); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { - __pyx_v_cSkeleton = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 683, __pyx_L1_error) - } else {__pyx_pybuffernd_cSkeleton.diminfo[0].strides = __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cSkeleton.diminfo[0].shape = __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_cSkeleton.diminfo[1].strides = __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_cSkeleton.diminfo[1].shape = __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.shape[1]; - } - } - __pyx_t_8 = 0; - __pyx_v_cSkeleton = ((PyArrayObject *)__pyx_t_4); - __pyx_t_4 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":684 - * cdef int buff_size = 2*number_points; - * cdef np.ndarray[np.float_t, ndim=2] cSkeleton = np.zeros((buff_size, 2), dtype = np.float); #//% pre-allocate memory - * cdef np.ndarray[np.float_t, ndim=1] cWidths = np.zeros(buff_size, dtype = np.float); # <<<<<<<<<<<<<< - * - * #indexes - */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 684, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 684, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_buff_size); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 684, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 684, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 684, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 684, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_float); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 684, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_t_3) < 0) __PYX_ERR(0, 684, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 684, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 684, __pyx_L1_error) - __pyx_t_9 = ((PyArrayObject *)__pyx_t_3); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cWidths.rcbuffer->pybuffer, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { - __pyx_v_cWidths = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_cWidths.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 684, __pyx_L1_error) - } else {__pyx_pybuffernd_cWidths.diminfo[0].strides = __pyx_pybuffernd_cWidths.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cWidths.diminfo[0].shape = __pyx_pybuffernd_cWidths.rcbuffer->pybuffer.shape[0]; - } - } - __pyx_t_9 = 0; - __pyx_v_cWidths = ((PyArrayObject *)__pyx_t_3); - __pyx_t_3 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":687 - * - * #indexes - * cdef np.ndarray[np.int_t, ndim=1] keep = np.arange(number_points) # <<<<<<<<<<<<<< - * cdef int minI, maxI; - * cdef int s1I = 0; #// % the first index for the skeleton loop - */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 687, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_arange); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 687, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_number_points); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 687, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_5)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - } - } - if (!__pyx_t_5) { - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 687, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_3); - } else { - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_4}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 687, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_4}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 687, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } else - #endif - { - __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 687, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __pyx_t_5 = NULL; - __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_t_4); - __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 687, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - } - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error) - __pyx_t_10 = ((PyArrayObject *)__pyx_t_3); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_keep.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { - __pyx_v_keep = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 687, __pyx_L1_error) - } else {__pyx_pybuffernd_keep.diminfo[0].strides = __pyx_pybuffernd_keep.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_keep.diminfo[0].shape = __pyx_pybuffernd_keep.rcbuffer->pybuffer.shape[0]; - } - } - __pyx_t_10 = 0; - __pyx_v_keep = ((PyArrayObject *)__pyx_t_3); - __pyx_t_3 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":689 - * cdef np.ndarray[np.int_t, ndim=1] keep = np.arange(number_points) - * cdef int minI, maxI; - * cdef int s1I = 0; #// % the first index for the skeleton loop # <<<<<<<<<<<<<< - * cdef int i, s2I, pI; - * cdef double dSkeleton[2]; - */ - __pyx_v_s1I = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":693 - * cdef double dSkeleton[2]; - * - * while (s1I < last_index): # <<<<<<<<<<<<<< - * #//% Find small loops. - * #// % Note: distal, looped sections are most likely touching; - */ - while (1) { - __pyx_t_11 = ((__pyx_v_s1I < __pyx_v_last_index) != 0); - if (!__pyx_t_11) break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":697 - * #// % Note: distal, looped sections are most likely touching; - * #// % therefore, we don't remove these. - * if (keep[s1I] != FLAG_MAX): # <<<<<<<<<<<<<< - * minI = s1I; #//% the minimum index for the loop - * maxI = s1I; #//% the maximum index for the loop - */ - if (unlikely(((PyObject *)__pyx_v_keep) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 697, __pyx_L1_error) - } - __pyx_t_12 = __pyx_v_s1I; - __pyx_t_13 = -1; - if (__pyx_t_12 < 0) { - __pyx_t_12 += __pyx_pybuffernd_keep.diminfo[0].shape; - if (unlikely(__pyx_t_12 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_12 >= __pyx_pybuffernd_keep.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); - __PYX_ERR(0, 697, __pyx_L1_error) - } - __pyx_t_11 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_12, __pyx_pybuffernd_keep.diminfo[0].strides)) != __pyx_v_FLAG_MAX) != 0); - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":698 - * #// % therefore, we don't remove these. - * if (keep[s1I] != FLAG_MAX): - * minI = s1I; #//% the minimum index for the loop # <<<<<<<<<<<<<< - * maxI = s1I; #//% the maximum index for the loop - * - */ - __pyx_v_minI = __pyx_v_s1I; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":699 - * if (keep[s1I] != FLAG_MAX): - * minI = s1I; #//% the minimum index for the loop - * maxI = s1I; #//% the maximum index for the loop # <<<<<<<<<<<<<< - * - * #//% Search backwards. - */ - __pyx_v_maxI = __pyx_v_s1I; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":702 - * - * #//% Search backwards. - * if (iSortC[s1I] > 0): # <<<<<<<<<<<<<< - * pI = iSortC[s1I] - 1; #//% the index for the sorted points - * s2I = pSortC[pI]; #// % the second index for the skeleton loop - */ - if (unlikely(((PyObject *)__pyx_v_iSortC) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 702, __pyx_L1_error) - } - __pyx_t_14 = __pyx_v_s1I; - __pyx_t_13 = -1; - if (__pyx_t_14 < 0) { - __pyx_t_14 += __pyx_pybuffernd_iSortC.diminfo[0].shape; - if (unlikely(__pyx_t_14 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_14 >= __pyx_pybuffernd_iSortC.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); - __PYX_ERR(0, 702, __pyx_L1_error) - } - __pyx_t_11 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_iSortC.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_iSortC.diminfo[0].strides)) > 0) != 0); - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":703 - * #//% Search backwards. - * if (iSortC[s1I] > 0): - * pI = iSortC[s1I] - 1; #//% the index for the sorted points # <<<<<<<<<<<<<< - * s2I = pSortC[pI]; #// % the second index for the skeleton loop - * - */ - if (unlikely(((PyObject *)__pyx_v_iSortC) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 703, __pyx_L1_error) - } - __pyx_t_15 = __pyx_v_s1I; - __pyx_t_13 = -1; - if (__pyx_t_15 < 0) { - __pyx_t_15 += __pyx_pybuffernd_iSortC.diminfo[0].shape; - if (unlikely(__pyx_t_15 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_iSortC.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); - __PYX_ERR(0, 703, __pyx_L1_error) - } - __pyx_v_pI = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_iSortC.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_iSortC.diminfo[0].strides)) - 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":704 - * if (iSortC[s1I] > 0): - * pI = iSortC[s1I] - 1; #//% the index for the sorted points - * s2I = pSortC[pI]; #// % the second index for the skeleton loop # <<<<<<<<<<<<<< - * - * dSkeleton[0] = absDiff(skeleton[s1I, 0], skeleton[s2I, 0]); - */ - if (unlikely(((PyObject *)__pyx_v_pSortC) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 704, __pyx_L1_error) - } - __pyx_t_16 = __pyx_v_pI; - __pyx_t_13 = -1; - if (__pyx_t_16 < 0) { - __pyx_t_16 += __pyx_pybuffernd_pSortC.diminfo[0].shape; - if (unlikely(__pyx_t_16 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_pSortC.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); - __PYX_ERR(0, 704, __pyx_L1_error) - } - __pyx_v_s2I = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_pSortC.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_pSortC.diminfo[0].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":706 - * s2I = pSortC[pI]; #// % the second index for the skeleton loop - * - * dSkeleton[0] = absDiff(skeleton[s1I, 0], skeleton[s2I, 0]); # <<<<<<<<<<<<<< - * dSkeleton[1] = absDiff(skeleton[s1I, 1], skeleton[s2I, 1]); - * - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 706, __pyx_L1_error) - } - __pyx_t_17 = __pyx_v_s1I; - __pyx_t_18 = 0; - __pyx_t_13 = -1; - if (__pyx_t_17 < 0) { - __pyx_t_17 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_17 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_18 < 0) { - __pyx_t_18 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_18 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); - __PYX_ERR(0, 706, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 706, __pyx_L1_error) - } - __pyx_t_19 = __pyx_v_s2I; - __pyx_t_20 = 0; - __pyx_t_13 = -1; - if (__pyx_t_19 < 0) { - __pyx_t_19 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_19 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_20 < 0) { - __pyx_t_20 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_20 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_20 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); - __PYX_ERR(0, 706, __pyx_L1_error) - } - (__pyx_v_dSkeleton[0]) = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_18, __pyx_pybuffernd_skeleton.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_20, __pyx_pybuffernd_skeleton.diminfo[1].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":707 - * - * dSkeleton[0] = absDiff(skeleton[s1I, 0], skeleton[s2I, 0]); - * dSkeleton[1] = absDiff(skeleton[s1I, 1], skeleton[s2I, 1]); # <<<<<<<<<<<<<< - * - * while ((dSkeleton[0]<=1) or (dSkeleton[1]<=1)): - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 707, __pyx_L1_error) - } - __pyx_t_21 = __pyx_v_s1I; - __pyx_t_22 = 1; - __pyx_t_13 = -1; - if (__pyx_t_21 < 0) { - __pyx_t_21 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_21 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_22 < 0) { - __pyx_t_22 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_22 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); - __PYX_ERR(0, 707, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 707, __pyx_L1_error) - } - __pyx_t_23 = __pyx_v_s2I; - __pyx_t_24 = 1; - __pyx_t_13 = -1; - if (__pyx_t_23 < 0) { - __pyx_t_23 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_23 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_24 < 0) { - __pyx_t_24 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_24 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); - __PYX_ERR(0, 707, __pyx_L1_error) - } - (__pyx_v_dSkeleton[1]) = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_22, __pyx_pybuffernd_skeleton.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_24, __pyx_pybuffernd_skeleton.diminfo[1].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":709 - * dSkeleton[1] = absDiff(skeleton[s1I, 1], skeleton[s2I, 1]); - * - * while ((dSkeleton[0]<=1) or (dSkeleton[1]<=1)): # <<<<<<<<<<<<<< - * if ((s2I > s1I) and (keep[s2I]!=FLAG_MAX) and (dSkeleton[0]<=1) and \ - * (dSkeleton[1]<=1) and absDiff(s1I, s2I) < maxSkeletonOverlap): - */ - while (1) { - __pyx_t_25 = (((__pyx_v_dSkeleton[0]) <= 1.0) != 0); - if (!__pyx_t_25) { - } else { - __pyx_t_11 = __pyx_t_25; - goto __pyx_L9_bool_binop_done; - } - __pyx_t_25 = (((__pyx_v_dSkeleton[1]) <= 1.0) != 0); - __pyx_t_11 = __pyx_t_25; - __pyx_L9_bool_binop_done:; - if (!__pyx_t_11) break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":710 - * - * while ((dSkeleton[0]<=1) or (dSkeleton[1]<=1)): - * if ((s2I > s1I) and (keep[s2I]!=FLAG_MAX) and (dSkeleton[0]<=1) and \ # <<<<<<<<<<<<<< - * (dSkeleton[1]<=1) and absDiff(s1I, s2I) < maxSkeletonOverlap): - * minI = int_min(minI, s2I); - */ - __pyx_t_25 = ((__pyx_v_s2I > __pyx_v_s1I) != 0); - if (__pyx_t_25) { - } else { - __pyx_t_11 = __pyx_t_25; - goto __pyx_L12_bool_binop_done; - } - if (unlikely(((PyObject *)__pyx_v_keep) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 710, __pyx_L1_error) - } - __pyx_t_26 = __pyx_v_s2I; - __pyx_t_13 = -1; - if (__pyx_t_26 < 0) { - __pyx_t_26 += __pyx_pybuffernd_keep.diminfo[0].shape; - if (unlikely(__pyx_t_26 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_keep.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); - __PYX_ERR(0, 710, __pyx_L1_error) - } - __pyx_t_25 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_keep.diminfo[0].strides)) != __pyx_v_FLAG_MAX) != 0); - if (__pyx_t_25) { - } else { - __pyx_t_11 = __pyx_t_25; - goto __pyx_L12_bool_binop_done; - } - __pyx_t_25 = (((__pyx_v_dSkeleton[0]) <= 1.0) != 0); - if (__pyx_t_25) { - } else { - __pyx_t_11 = __pyx_t_25; - goto __pyx_L12_bool_binop_done; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":711 - * while ((dSkeleton[0]<=1) or (dSkeleton[1]<=1)): - * if ((s2I > s1I) and (keep[s2I]!=FLAG_MAX) and (dSkeleton[0]<=1) and \ - * (dSkeleton[1]<=1) and absDiff(s1I, s2I) < maxSkeletonOverlap): # <<<<<<<<<<<<<< - * minI = int_min(minI, s2I); - * maxI = int_max(maxI, s2I); - */ - __pyx_t_25 = (((__pyx_v_dSkeleton[1]) <= 1.0) != 0); - if (__pyx_t_25) { - } else { - __pyx_t_11 = __pyx_t_25; - goto __pyx_L12_bool_binop_done; - } - __pyx_t_25 = ((__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff(__pyx_v_s1I, __pyx_v_s2I) < __pyx_v_maxSkeletonOverlap) != 0); - __pyx_t_11 = __pyx_t_25; - __pyx_L12_bool_binop_done:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":710 - * - * while ((dSkeleton[0]<=1) or (dSkeleton[1]<=1)): - * if ((s2I > s1I) and (keep[s2I]!=FLAG_MAX) and (dSkeleton[0]<=1) and \ # <<<<<<<<<<<<<< - * (dSkeleton[1]<=1) and absDiff(s1I, s2I) < maxSkeletonOverlap): - * minI = int_min(minI, s2I); - */ - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":712 - * if ((s2I > s1I) and (keep[s2I]!=FLAG_MAX) and (dSkeleton[0]<=1) and \ - * (dSkeleton[1]<=1) and absDiff(s1I, s2I) < maxSkeletonOverlap): - * minI = int_min(minI, s2I); # <<<<<<<<<<<<<< - * maxI = int_max(maxI, s2I); - * - */ - __pyx_v_minI = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_int_min(__pyx_v_minI, __pyx_v_s2I); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":713 - * (dSkeleton[1]<=1) and absDiff(s1I, s2I) < maxSkeletonOverlap): - * minI = int_min(minI, s2I); - * maxI = int_max(maxI, s2I); # <<<<<<<<<<<<<< - * - * #// Advance the second index for the skeleton loop. - */ - __pyx_v_maxI = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_int_max(__pyx_v_maxI, __pyx_v_s2I); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":710 - * - * while ((dSkeleton[0]<=1) or (dSkeleton[1]<=1)): - * if ((s2I > s1I) and (keep[s2I]!=FLAG_MAX) and (dSkeleton[0]<=1) and \ # <<<<<<<<<<<<<< - * (dSkeleton[1]<=1) and absDiff(s1I, s2I) < maxSkeletonOverlap): - * minI = int_min(minI, s2I); - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":716 - * - * #// Advance the second index for the skeleton loop. - * pI = pI - 1; # <<<<<<<<<<<<<< - * if(pI < 1): - * break; - */ - __pyx_v_pI = (__pyx_v_pI - 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":717 - * #// Advance the second index for the skeleton loop. - * pI = pI - 1; - * if(pI < 1): # <<<<<<<<<<<<<< - * break; - * - */ - __pyx_t_11 = ((__pyx_v_pI < 1) != 0); - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":718 - * pI = pI - 1; - * if(pI < 1): - * break; # <<<<<<<<<<<<<< - * - * s2I = pSortC[pI]; - */ - goto __pyx_L8_break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":717 - * #// Advance the second index for the skeleton loop. - * pI = pI - 1; - * if(pI < 1): # <<<<<<<<<<<<<< - * break; - * - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":720 - * break; - * - * s2I = pSortC[pI]; # <<<<<<<<<<<<<< - * dSkeleton[0] = absDiff(skeleton[s1I, 0], skeleton[s2I, 0]); - * dSkeleton[1] = absDiff(skeleton[s1I, 1], skeleton[s2I, 1]); - */ - if (unlikely(((PyObject *)__pyx_v_pSortC) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 720, __pyx_L1_error) - } - __pyx_t_27 = __pyx_v_pI; - __pyx_t_13 = -1; - if (__pyx_t_27 < 0) { - __pyx_t_27 += __pyx_pybuffernd_pSortC.diminfo[0].shape; - if (unlikely(__pyx_t_27 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_27 >= __pyx_pybuffernd_pSortC.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); - __PYX_ERR(0, 720, __pyx_L1_error) - } - __pyx_v_s2I = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_pSortC.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_pSortC.diminfo[0].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":721 - * - * s2I = pSortC[pI]; - * dSkeleton[0] = absDiff(skeleton[s1I, 0], skeleton[s2I, 0]); # <<<<<<<<<<<<<< - * dSkeleton[1] = absDiff(skeleton[s1I, 1], skeleton[s2I, 1]); - * - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 721, __pyx_L1_error) - } - __pyx_t_28 = __pyx_v_s1I; - __pyx_t_29 = 0; - __pyx_t_13 = -1; - if (__pyx_t_28 < 0) { - __pyx_t_28 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_28 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_29 < 0) { - __pyx_t_29 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_29 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_29 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); - __PYX_ERR(0, 721, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 721, __pyx_L1_error) - } - __pyx_t_30 = __pyx_v_s2I; - __pyx_t_31 = 0; - __pyx_t_13 = -1; - if (__pyx_t_30 < 0) { - __pyx_t_30 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_30 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_31 < 0) { - __pyx_t_31 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_31 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); - __PYX_ERR(0, 721, __pyx_L1_error) - } - (__pyx_v_dSkeleton[0]) = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_29, __pyx_pybuffernd_skeleton.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_31, __pyx_pybuffernd_skeleton.diminfo[1].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":722 - * s2I = pSortC[pI]; - * dSkeleton[0] = absDiff(skeleton[s1I, 0], skeleton[s2I, 0]); - * dSkeleton[1] = absDiff(skeleton[s1I, 1], skeleton[s2I, 1]); # <<<<<<<<<<<<<< - * - * #//% Search forwards. - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 722, __pyx_L1_error) - } - __pyx_t_32 = __pyx_v_s1I; - __pyx_t_33 = 1; - __pyx_t_13 = -1; - if (__pyx_t_32 < 0) { - __pyx_t_32 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_32 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_32 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_33 < 0) { - __pyx_t_33 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_33 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); - __PYX_ERR(0, 722, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 722, __pyx_L1_error) - } - __pyx_t_34 = __pyx_v_s2I; - __pyx_t_35 = 1; - __pyx_t_13 = -1; - if (__pyx_t_34 < 0) { - __pyx_t_34 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_34 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_35 < 0) { - __pyx_t_35 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_35 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); - __PYX_ERR(0, 722, __pyx_L1_error) - } - (__pyx_v_dSkeleton[1]) = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_33, __pyx_pybuffernd_skeleton.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_35, __pyx_pybuffernd_skeleton.diminfo[1].strides))); - } - __pyx_L8_break:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":702 - * - * #//% Search backwards. - * if (iSortC[s1I] > 0): # <<<<<<<<<<<<<< - * pI = iSortC[s1I] - 1; #//% the index for the sorted points - * s2I = pSortC[pI]; #// % the second index for the skeleton loop - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":725 - * - * #//% Search forwards. - * if (iSortC[s1I]< last_index): # <<<<<<<<<<<<<< - * pI = iSortC[s1I] + 1; #//% the index for the sorted points - * s2I = pSortC[pI]; #//% the second index for the skeleton loop - */ - if (unlikely(((PyObject *)__pyx_v_iSortC) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 725, __pyx_L1_error) - } - __pyx_t_36 = __pyx_v_s1I; - __pyx_t_13 = -1; - if (__pyx_t_36 < 0) { - __pyx_t_36 += __pyx_pybuffernd_iSortC.diminfo[0].shape; - if (unlikely(__pyx_t_36 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_iSortC.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); - __PYX_ERR(0, 725, __pyx_L1_error) - } - __pyx_t_11 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_iSortC.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_iSortC.diminfo[0].strides)) < __pyx_v_last_index) != 0); - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":726 - * #//% Search forwards. - * if (iSortC[s1I]< last_index): - * pI = iSortC[s1I] + 1; #//% the index for the sorted points # <<<<<<<<<<<<<< - * s2I = pSortC[pI]; #//% the second index for the skeleton loop - * dSkeleton[0] = absDiff(skeleton[s1I, 0], skeleton[s2I, 0]); - */ - if (unlikely(((PyObject *)__pyx_v_iSortC) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 726, __pyx_L1_error) - } - __pyx_t_37 = __pyx_v_s1I; - __pyx_t_13 = -1; - if (__pyx_t_37 < 0) { - __pyx_t_37 += __pyx_pybuffernd_iSortC.diminfo[0].shape; - if (unlikely(__pyx_t_37 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_iSortC.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); - __PYX_ERR(0, 726, __pyx_L1_error) - } - __pyx_v_pI = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_iSortC.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_iSortC.diminfo[0].strides)) + 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":727 - * if (iSortC[s1I]< last_index): - * pI = iSortC[s1I] + 1; #//% the index for the sorted points - * s2I = pSortC[pI]; #//% the second index for the skeleton loop # <<<<<<<<<<<<<< - * dSkeleton[0] = absDiff(skeleton[s1I, 0], skeleton[s2I, 0]); - * dSkeleton[1] = absDiff(skeleton[s1I, 1], skeleton[s2I, 1]); - */ - if (unlikely(((PyObject *)__pyx_v_pSortC) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 727, __pyx_L1_error) - } - __pyx_t_38 = __pyx_v_pI; - __pyx_t_13 = -1; - if (__pyx_t_38 < 0) { - __pyx_t_38 += __pyx_pybuffernd_pSortC.diminfo[0].shape; - if (unlikely(__pyx_t_38 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_pSortC.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); - __PYX_ERR(0, 727, __pyx_L1_error) - } - __pyx_v_s2I = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_pSortC.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_pSortC.diminfo[0].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":728 - * pI = iSortC[s1I] + 1; #//% the index for the sorted points - * s2I = pSortC[pI]; #//% the second index for the skeleton loop - * dSkeleton[0] = absDiff(skeleton[s1I, 0], skeleton[s2I, 0]); # <<<<<<<<<<<<<< - * dSkeleton[1] = absDiff(skeleton[s1I, 1], skeleton[s2I, 1]); - * - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 728, __pyx_L1_error) - } - __pyx_t_39 = __pyx_v_s1I; - __pyx_t_40 = 0; - __pyx_t_13 = -1; - if (__pyx_t_39 < 0) { - __pyx_t_39 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_39 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_40 < 0) { - __pyx_t_40 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_40 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); - __PYX_ERR(0, 728, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 728, __pyx_L1_error) - } - __pyx_t_41 = __pyx_v_s2I; - __pyx_t_42 = 0; - __pyx_t_13 = -1; - if (__pyx_t_41 < 0) { - __pyx_t_41 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_41 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_42 < 0) { - __pyx_t_42 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_42 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_42 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); - __PYX_ERR(0, 728, __pyx_L1_error) - } - (__pyx_v_dSkeleton[0]) = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_40, __pyx_pybuffernd_skeleton.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_42, __pyx_pybuffernd_skeleton.diminfo[1].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":729 - * s2I = pSortC[pI]; #//% the second index for the skeleton loop - * dSkeleton[0] = absDiff(skeleton[s1I, 0], skeleton[s2I, 0]); - * dSkeleton[1] = absDiff(skeleton[s1I, 1], skeleton[s2I, 1]); # <<<<<<<<<<<<<< - * - * while ((dSkeleton[0]<=1) or (dSkeleton[1]<=1)): - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 729, __pyx_L1_error) - } - __pyx_t_43 = __pyx_v_s1I; - __pyx_t_44 = 1; - __pyx_t_13 = -1; - if (__pyx_t_43 < 0) { - __pyx_t_43 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_43 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_43 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_44 < 0) { - __pyx_t_44 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_44 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_44 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); - __PYX_ERR(0, 729, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 729, __pyx_L1_error) - } - __pyx_t_45 = __pyx_v_s2I; - __pyx_t_46 = 1; - __pyx_t_13 = -1; - if (__pyx_t_45 < 0) { - __pyx_t_45 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_45 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_45 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_13 = 0; - if (__pyx_t_46 < 0) { - __pyx_t_46 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_46 < 0)) __pyx_t_13 = 1; - } else if (unlikely(__pyx_t_46 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_13 = 1; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); - __PYX_ERR(0, 729, __pyx_L1_error) - } - (__pyx_v_dSkeleton[1]) = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_43, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_44, __pyx_pybuffernd_skeleton.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_45, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_46, __pyx_pybuffernd_skeleton.diminfo[1].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":731 - * dSkeleton[1] = absDiff(skeleton[s1I, 1], skeleton[s2I, 1]); - * - * while ((dSkeleton[0]<=1) or (dSkeleton[1]<=1)): # <<<<<<<<<<<<<< - * if ((s2I > s1I) and (keep[s2I]!=FLAG_MAX) \ - * and (dSkeleton[0]<=1) and (dSkeleton[1]<=1) \ - */ - while (1) { - __pyx_t_25 = (((__pyx_v_dSkeleton[0]) <= 1.0) != 0); - if (!__pyx_t_25) { - } else { - __pyx_t_11 = __pyx_t_25; - goto __pyx_L21_bool_binop_done; - } - __pyx_t_25 = (((__pyx_v_dSkeleton[1]) <= 1.0) != 0); - __pyx_t_11 = __pyx_t_25; - __pyx_L21_bool_binop_done:; - if (!__pyx_t_11) break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":732 - * - * while ((dSkeleton[0]<=1) or (dSkeleton[1]<=1)): - * if ((s2I > s1I) and (keep[s2I]!=FLAG_MAX) \ # <<<<<<<<<<<<<< - * and (dSkeleton[0]<=1) and (dSkeleton[1]<=1) \ - * and absDiff(s1I, s2I) < maxSkeletonOverlap): - */ - __pyx_t_25 = ((__pyx_v_s2I > __pyx_v_s1I) != 0); - if (__pyx_t_25) { - } else { - __pyx_t_11 = __pyx_t_25; - goto __pyx_L24_bool_binop_done; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":733 - * while ((dSkeleton[0]<=1) or (dSkeleton[1]<=1)): - * if ((s2I > s1I) and (keep[s2I]!=FLAG_MAX) \ - * and (dSkeleton[0]<=1) and (dSkeleton[1]<=1) \ # <<<<<<<<<<<<<< - * and absDiff(s1I, s2I) < maxSkeletonOverlap): - * minI = min(minI, s2I); - */ - if (unlikely(((PyObject *)__pyx_v_keep) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 732, __pyx_L1_error) - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":732 - * - * while ((dSkeleton[0]<=1) or (dSkeleton[1]<=1)): - * if ((s2I > s1I) and (keep[s2I]!=FLAG_MAX) \ # <<<<<<<<<<<<<< - * and (dSkeleton[0]<=1) and (dSkeleton[1]<=1) \ - * and absDiff(s1I, s2I) < maxSkeletonOverlap): - */ - __pyx_t_47 = __pyx_v_s2I; - __pyx_t_13 = -1; - if (__pyx_t_47 < 0) { - __pyx_t_47 += __pyx_pybuffernd_keep.diminfo[0].shape; - if (unlikely(__pyx_t_47 < 0)) __pyx_t_13 = 0; - } else if (unlikely(__pyx_t_47 >= __pyx_pybuffernd_keep.diminfo[0].shape)) __pyx_t_13 = 0; - if (unlikely(__pyx_t_13 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_13); - __PYX_ERR(0, 732, __pyx_L1_error) - } - __pyx_t_25 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_47, __pyx_pybuffernd_keep.diminfo[0].strides)) != __pyx_v_FLAG_MAX) != 0); - if (__pyx_t_25) { - } else { - __pyx_t_11 = __pyx_t_25; - goto __pyx_L24_bool_binop_done; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":733 - * while ((dSkeleton[0]<=1) or (dSkeleton[1]<=1)): - * if ((s2I > s1I) and (keep[s2I]!=FLAG_MAX) \ - * and (dSkeleton[0]<=1) and (dSkeleton[1]<=1) \ # <<<<<<<<<<<<<< - * and absDiff(s1I, s2I) < maxSkeletonOverlap): - * minI = min(minI, s2I); - */ - __pyx_t_25 = (((__pyx_v_dSkeleton[0]) <= 1.0) != 0); - if (__pyx_t_25) { - } else { - __pyx_t_11 = __pyx_t_25; - goto __pyx_L24_bool_binop_done; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":734 - * if ((s2I > s1I) and (keep[s2I]!=FLAG_MAX) \ - * and (dSkeleton[0]<=1) and (dSkeleton[1]<=1) \ - * and absDiff(s1I, s2I) < maxSkeletonOverlap): # <<<<<<<<<<<<<< - * minI = min(minI, s2I); - * maxI = max(maxI, s2I); - */ - __pyx_t_25 = (((__pyx_v_dSkeleton[1]) <= 1.0) != 0); - if (__pyx_t_25) { - } else { - __pyx_t_11 = __pyx_t_25; - goto __pyx_L24_bool_binop_done; - } - __pyx_t_25 = ((__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff(__pyx_v_s1I, __pyx_v_s2I) < __pyx_v_maxSkeletonOverlap) != 0); - __pyx_t_11 = __pyx_t_25; - __pyx_L24_bool_binop_done:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":732 - * - * while ((dSkeleton[0]<=1) or (dSkeleton[1]<=1)): - * if ((s2I > s1I) and (keep[s2I]!=FLAG_MAX) \ # <<<<<<<<<<<<<< - * and (dSkeleton[0]<=1) and (dSkeleton[1]<=1) \ - * and absDiff(s1I, s2I) < maxSkeletonOverlap): - */ - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":735 - * and (dSkeleton[0]<=1) and (dSkeleton[1]<=1) \ - * and absDiff(s1I, s2I) < maxSkeletonOverlap): - * minI = min(minI, s2I); # <<<<<<<<<<<<<< - * maxI = max(maxI, s2I); - * - */ - __pyx_t_13 = __pyx_v_s2I; - __pyx_t_48 = __pyx_v_minI; - if (((__pyx_t_13 < __pyx_t_48) != 0)) { - __pyx_t_49 = __pyx_t_13; - } else { - __pyx_t_49 = __pyx_t_48; - } - __pyx_v_minI = __pyx_t_49; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":736 - * and absDiff(s1I, s2I) < maxSkeletonOverlap): - * minI = min(minI, s2I); - * maxI = max(maxI, s2I); # <<<<<<<<<<<<<< - * - * #// Advance the second index for the skeleton loop. - */ - __pyx_t_49 = __pyx_v_s2I; - __pyx_t_13 = __pyx_v_maxI; - if (((__pyx_t_49 > __pyx_t_13) != 0)) { - __pyx_t_48 = __pyx_t_49; - } else { - __pyx_t_48 = __pyx_t_13; - } - __pyx_v_maxI = __pyx_t_48; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":732 - * - * while ((dSkeleton[0]<=1) or (dSkeleton[1]<=1)): - * if ((s2I > s1I) and (keep[s2I]!=FLAG_MAX) \ # <<<<<<<<<<<<<< - * and (dSkeleton[0]<=1) and (dSkeleton[1]<=1) \ - * and absDiff(s1I, s2I) < maxSkeletonOverlap): - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":739 - * - * #// Advance the second index for the skeleton loop. - * pI = pI + 1; # <<<<<<<<<<<<<< - * if (pI > last_index): - * break; - */ - __pyx_v_pI = (__pyx_v_pI + 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":740 - * #// Advance the second index for the skeleton loop. - * pI = pI + 1; - * if (pI > last_index): # <<<<<<<<<<<<<< - * break; - * - */ - __pyx_t_11 = ((__pyx_v_pI > __pyx_v_last_index) != 0); - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":741 - * pI = pI + 1; - * if (pI > last_index): - * break; # <<<<<<<<<<<<<< - * - * s2I = pSortC[pI]; - */ - goto __pyx_L20_break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":740 - * #// Advance the second index for the skeleton loop. - * pI = pI + 1; - * if (pI > last_index): # <<<<<<<<<<<<<< - * break; - * - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":743 - * break; - * - * s2I = pSortC[pI]; # <<<<<<<<<<<<<< - * dSkeleton[0] = absDiff(skeleton[s1I, 0], skeleton[s2I, 0]); - * dSkeleton[1] = absDiff(skeleton[s1I, 1], skeleton[s2I, 1]); - */ - if (unlikely(((PyObject *)__pyx_v_pSortC) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 743, __pyx_L1_error) - } - __pyx_t_50 = __pyx_v_pI; - __pyx_t_48 = -1; - if (__pyx_t_50 < 0) { - __pyx_t_50 += __pyx_pybuffernd_pSortC.diminfo[0].shape; - if (unlikely(__pyx_t_50 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_50 >= __pyx_pybuffernd_pSortC.diminfo[0].shape)) __pyx_t_48 = 0; - if (unlikely(__pyx_t_48 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_48); - __PYX_ERR(0, 743, __pyx_L1_error) - } - __pyx_v_s2I = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_pSortC.rcbuffer->pybuffer.buf, __pyx_t_50, __pyx_pybuffernd_pSortC.diminfo[0].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":744 - * - * s2I = pSortC[pI]; - * dSkeleton[0] = absDiff(skeleton[s1I, 0], skeleton[s2I, 0]); # <<<<<<<<<<<<<< - * dSkeleton[1] = absDiff(skeleton[s1I, 1], skeleton[s2I, 1]); - * - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 744, __pyx_L1_error) - } - __pyx_t_51 = __pyx_v_s1I; - __pyx_t_52 = 0; - __pyx_t_48 = -1; - if (__pyx_t_51 < 0) { - __pyx_t_51 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_51 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_51 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_52 < 0) { - __pyx_t_52 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_52 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_52 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_48 = 1; - if (unlikely(__pyx_t_48 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_48); - __PYX_ERR(0, 744, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 744, __pyx_L1_error) - } - __pyx_t_53 = __pyx_v_s2I; - __pyx_t_54 = 0; - __pyx_t_48 = -1; - if (__pyx_t_53 < 0) { - __pyx_t_53 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_53 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_53 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_54 < 0) { - __pyx_t_54 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_54 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_54 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_48 = 1; - if (unlikely(__pyx_t_48 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_48); - __PYX_ERR(0, 744, __pyx_L1_error) - } - (__pyx_v_dSkeleton[0]) = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_51, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_52, __pyx_pybuffernd_skeleton.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_53, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_54, __pyx_pybuffernd_skeleton.diminfo[1].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":745 - * s2I = pSortC[pI]; - * dSkeleton[0] = absDiff(skeleton[s1I, 0], skeleton[s2I, 0]); - * dSkeleton[1] = absDiff(skeleton[s1I, 1], skeleton[s2I, 1]); # <<<<<<<<<<<<<< - * - * - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 745, __pyx_L1_error) - } - __pyx_t_55 = __pyx_v_s1I; - __pyx_t_56 = 1; - __pyx_t_48 = -1; - if (__pyx_t_55 < 0) { - __pyx_t_55 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_55 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_55 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_56 < 0) { - __pyx_t_56 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_56 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_56 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_48 = 1; - if (unlikely(__pyx_t_48 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_48); - __PYX_ERR(0, 745, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 745, __pyx_L1_error) - } - __pyx_t_57 = __pyx_v_s2I; - __pyx_t_58 = 1; - __pyx_t_48 = -1; - if (__pyx_t_57 < 0) { - __pyx_t_57 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_57 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_57 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_58 < 0) { - __pyx_t_58 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_58 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_58 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_48 = 1; - if (unlikely(__pyx_t_48 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_48); - __PYX_ERR(0, 745, __pyx_L1_error) - } - (__pyx_v_dSkeleton[1]) = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_55, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_56, __pyx_pybuffernd_skeleton.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_57, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_58, __pyx_pybuffernd_skeleton.diminfo[1].strides))); - } - __pyx_L20_break:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":725 - * - * #//% Search forwards. - * if (iSortC[s1I]< last_index): # <<<<<<<<<<<<<< - * pI = iSortC[s1I] + 1; #//% the index for the sorted points - * s2I = pSortC[pI]; #//% the second index for the skeleton loop - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":749 - * - * #//% Remove small loops. - * if (minI < maxI): # <<<<<<<<<<<<<< - * #//% Remove the overlap. - * if ((skeleton[minI,0] == skeleton[maxI,0]) and \ - */ - __pyx_t_11 = ((__pyx_v_minI < __pyx_v_maxI) != 0); - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":751 - * if (minI < maxI): - * #//% Remove the overlap. - * if ((skeleton[minI,0] == skeleton[maxI,0]) and \ # <<<<<<<<<<<<<< - * (skeleton[minI,1] == skeleton[maxI,1])): - * for i in range(minI+1, maxI+1): - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 751, __pyx_L1_error) - } - __pyx_t_59 = __pyx_v_minI; - __pyx_t_60 = 0; - __pyx_t_48 = -1; - if (__pyx_t_59 < 0) { - __pyx_t_59 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_59 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_59 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_60 < 0) { - __pyx_t_60 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_60 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_60 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_48 = 1; - if (unlikely(__pyx_t_48 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_48); - __PYX_ERR(0, 751, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 751, __pyx_L1_error) - } - __pyx_t_61 = __pyx_v_maxI; - __pyx_t_62 = 0; - __pyx_t_48 = -1; - if (__pyx_t_61 < 0) { - __pyx_t_61 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_61 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_61 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_62 < 0) { - __pyx_t_62 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_62 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_62 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_48 = 1; - if (unlikely(__pyx_t_48 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_48); - __PYX_ERR(0, 751, __pyx_L1_error) - } - __pyx_t_25 = (((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_59, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_60, __pyx_pybuffernd_skeleton.diminfo[1].strides)) == (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_61, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_62, __pyx_pybuffernd_skeleton.diminfo[1].strides))) != 0); - if (__pyx_t_25) { - } else { - __pyx_t_11 = __pyx_t_25; - goto __pyx_L32_bool_binop_done; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":752 - * #//% Remove the overlap. - * if ((skeleton[minI,0] == skeleton[maxI,0]) and \ - * (skeleton[minI,1] == skeleton[maxI,1])): # <<<<<<<<<<<<<< - * for i in range(minI+1, maxI+1): - * keep[i] = FLAG_MAX; - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 752, __pyx_L1_error) - } - __pyx_t_63 = __pyx_v_minI; - __pyx_t_64 = 1; - __pyx_t_48 = -1; - if (__pyx_t_63 < 0) { - __pyx_t_63 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_63 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_63 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_64 < 0) { - __pyx_t_64 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_64 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_64 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_48 = 1; - if (unlikely(__pyx_t_48 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_48); - __PYX_ERR(0, 752, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 752, __pyx_L1_error) - } - __pyx_t_65 = __pyx_v_maxI; - __pyx_t_66 = 1; - __pyx_t_48 = -1; - if (__pyx_t_65 < 0) { - __pyx_t_65 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_65 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_65 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_66 < 0) { - __pyx_t_66 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_66 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_66 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_48 = 1; - if (unlikely(__pyx_t_48 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_48); - __PYX_ERR(0, 752, __pyx_L1_error) - } - __pyx_t_25 = (((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_63, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_64, __pyx_pybuffernd_skeleton.diminfo[1].strides)) == (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_65, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_66, __pyx_pybuffernd_skeleton.diminfo[1].strides))) != 0); - __pyx_t_11 = __pyx_t_25; - __pyx_L32_bool_binop_done:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":751 - * if (minI < maxI): - * #//% Remove the overlap. - * if ((skeleton[minI,0] == skeleton[maxI,0]) and \ # <<<<<<<<<<<<<< - * (skeleton[minI,1] == skeleton[maxI,1])): - * for i in range(minI+1, maxI+1): - */ - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":753 - * if ((skeleton[minI,0] == skeleton[maxI,0]) and \ - * (skeleton[minI,1] == skeleton[maxI,1])): - * for i in range(minI+1, maxI+1): # <<<<<<<<<<<<<< - * keep[i] = FLAG_MAX; - * widths[minI] = fmin(widths[minI], widths[i]); - */ - __pyx_t_67 = (__pyx_v_maxI + 1); - __pyx_t_68 = __pyx_t_67; - for (__pyx_t_48 = (__pyx_v_minI + 1); __pyx_t_48 < __pyx_t_68; __pyx_t_48+=1) { - __pyx_v_i = __pyx_t_48; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":754 - * (skeleton[minI,1] == skeleton[maxI,1])): - * for i in range(minI+1, maxI+1): - * keep[i] = FLAG_MAX; # <<<<<<<<<<<<<< - * widths[minI] = fmin(widths[minI], widths[i]); - * #//% Remove the loop. - */ - if (unlikely(((PyObject *)__pyx_v_keep) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 754, __pyx_L1_error) - } - __pyx_t_69 = __pyx_v_i; - __pyx_t_49 = -1; - if (__pyx_t_69 < 0) { - __pyx_t_69 += __pyx_pybuffernd_keep.diminfo[0].shape; - if (unlikely(__pyx_t_69 < 0)) __pyx_t_49 = 0; - } else if (unlikely(__pyx_t_69 >= __pyx_pybuffernd_keep.diminfo[0].shape)) __pyx_t_49 = 0; - if (unlikely(__pyx_t_49 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_49); - __PYX_ERR(0, 754, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_69, __pyx_pybuffernd_keep.diminfo[0].strides) = __pyx_v_FLAG_MAX; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":755 - * for i in range(minI+1, maxI+1): - * keep[i] = FLAG_MAX; - * widths[minI] = fmin(widths[minI], widths[i]); # <<<<<<<<<<<<<< - * #//% Remove the loop. - * else: - */ - if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 755, __pyx_L1_error) - } - __pyx_t_70 = __pyx_v_minI; - __pyx_t_49 = -1; - if (__pyx_t_70 < 0) { - __pyx_t_70 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_70 < 0)) __pyx_t_49 = 0; - } else if (unlikely(__pyx_t_70 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_49 = 0; - if (unlikely(__pyx_t_49 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_49); - __PYX_ERR(0, 755, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 755, __pyx_L1_error) - } - __pyx_t_71 = __pyx_v_i; - __pyx_t_49 = -1; - if (__pyx_t_71 < 0) { - __pyx_t_71 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_71 < 0)) __pyx_t_49 = 0; - } else if (unlikely(__pyx_t_71 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_49 = 0; - if (unlikely(__pyx_t_49 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_49); - __PYX_ERR(0, 755, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 755, __pyx_L1_error) - } - __pyx_t_72 = __pyx_v_minI; - __pyx_t_49 = -1; - if (__pyx_t_72 < 0) { - __pyx_t_72 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_72 < 0)) __pyx_t_49 = 0; - } else if (unlikely(__pyx_t_72 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_49 = 0; - if (unlikely(__pyx_t_49 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_49); - __PYX_ERR(0, 755, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_72, __pyx_pybuffernd_widths.diminfo[0].strides) = fmin((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_70, __pyx_pybuffernd_widths.diminfo[0].strides)), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_71, __pyx_pybuffernd_widths.diminfo[0].strides))); - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":751 - * if (minI < maxI): - * #//% Remove the overlap. - * if ((skeleton[minI,0] == skeleton[maxI,0]) and \ # <<<<<<<<<<<<<< - * (skeleton[minI,1] == skeleton[maxI,1])): - * for i in range(minI+1, maxI+1): - */ - goto __pyx_L31; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":758 - * #//% Remove the loop. - * else: - * if(minI < maxI - 1): # <<<<<<<<<<<<<< - * for i in range(minI+1, maxI): - * keep[i] = FLAG_MAX; - */ - /*else*/ { - __pyx_t_11 = ((__pyx_v_minI < (__pyx_v_maxI - 1)) != 0); - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":759 - * else: - * if(minI < maxI - 1): - * for i in range(minI+1, maxI): # <<<<<<<<<<<<<< - * keep[i] = FLAG_MAX; - * widths[minI] = fmin(widths[minI], widths[i]); - */ - __pyx_t_48 = __pyx_v_maxI; - __pyx_t_49 = __pyx_t_48; - for (__pyx_t_13 = (__pyx_v_minI + 1); __pyx_t_13 < __pyx_t_49; __pyx_t_13+=1) { - __pyx_v_i = __pyx_t_13; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":760 - * if(minI < maxI - 1): - * for i in range(minI+1, maxI): - * keep[i] = FLAG_MAX; # <<<<<<<<<<<<<< - * widths[minI] = fmin(widths[minI], widths[i]); - * widths[maxI] = fmin(widths[maxI], widths[i]); - */ - if (unlikely(((PyObject *)__pyx_v_keep) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 760, __pyx_L1_error) - } - __pyx_t_73 = __pyx_v_i; - __pyx_t_74 = -1; - if (__pyx_t_73 < 0) { - __pyx_t_73 += __pyx_pybuffernd_keep.diminfo[0].shape; - if (unlikely(__pyx_t_73 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_73 >= __pyx_pybuffernd_keep.diminfo[0].shape)) __pyx_t_74 = 0; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 760, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_73, __pyx_pybuffernd_keep.diminfo[0].strides) = __pyx_v_FLAG_MAX; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":761 - * for i in range(minI+1, maxI): - * keep[i] = FLAG_MAX; - * widths[minI] = fmin(widths[minI], widths[i]); # <<<<<<<<<<<<<< - * widths[maxI] = fmin(widths[maxI], widths[i]); - * - */ - if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 761, __pyx_L1_error) - } - __pyx_t_75 = __pyx_v_minI; - __pyx_t_74 = -1; - if (__pyx_t_75 < 0) { - __pyx_t_75 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_75 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_75 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_74 = 0; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 761, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 761, __pyx_L1_error) - } - __pyx_t_76 = __pyx_v_i; - __pyx_t_74 = -1; - if (__pyx_t_76 < 0) { - __pyx_t_76 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_76 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_76 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_74 = 0; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 761, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 761, __pyx_L1_error) - } - __pyx_t_77 = __pyx_v_minI; - __pyx_t_74 = -1; - if (__pyx_t_77 < 0) { - __pyx_t_77 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_77 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_77 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_74 = 0; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 761, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_77, __pyx_pybuffernd_widths.diminfo[0].strides) = fmin((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_75, __pyx_pybuffernd_widths.diminfo[0].strides)), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_76, __pyx_pybuffernd_widths.diminfo[0].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":762 - * keep[i] = FLAG_MAX; - * widths[minI] = fmin(widths[minI], widths[i]); - * widths[maxI] = fmin(widths[maxI], widths[i]); # <<<<<<<<<<<<<< - * - * #//% Advance the first index for the skeleton loop. - */ - if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 762, __pyx_L1_error) - } - __pyx_t_78 = __pyx_v_maxI; - __pyx_t_74 = -1; - if (__pyx_t_78 < 0) { - __pyx_t_78 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_78 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_78 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_74 = 0; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 762, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 762, __pyx_L1_error) - } - __pyx_t_79 = __pyx_v_i; - __pyx_t_74 = -1; - if (__pyx_t_79 < 0) { - __pyx_t_79 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_79 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_79 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_74 = 0; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 762, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 762, __pyx_L1_error) - } - __pyx_t_80 = __pyx_v_maxI; - __pyx_t_74 = -1; - if (__pyx_t_80 < 0) { - __pyx_t_80 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_80 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_80 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_74 = 0; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 762, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_80, __pyx_pybuffernd_widths.diminfo[0].strides) = fmin((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_78, __pyx_pybuffernd_widths.diminfo[0].strides)), (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_79, __pyx_pybuffernd_widths.diminfo[0].strides))); - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":758 - * #//% Remove the loop. - * else: - * if(minI < maxI - 1): # <<<<<<<<<<<<<< - * for i in range(minI+1, maxI): - * keep[i] = FLAG_MAX; - */ - } - } - __pyx_L31:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":749 - * - * #//% Remove small loops. - * if (minI < maxI): # <<<<<<<<<<<<<< - * #//% Remove the overlap. - * if ((skeleton[minI,0] == skeleton[maxI,0]) and \ - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":765 - * - * #//% Advance the first index for the skeleton loop. - * s1I = maxI if (s1I < maxI) else s1I + 1; # <<<<<<<<<<<<<< - * #//% Advance the first index for the skeleton loop. - * else: - */ - if (((__pyx_v_s1I < __pyx_v_maxI) != 0)) { - __pyx_t_67 = __pyx_v_maxI; - } else { - __pyx_t_67 = (__pyx_v_s1I + 1); - } - __pyx_v_s1I = __pyx_t_67; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":697 - * #// % Note: distal, looped sections are most likely touching; - * #// % therefore, we don't remove these. - * if (keep[s1I] != FLAG_MAX): # <<<<<<<<<<<<<< - * minI = s1I; #//% the minimum index for the loop - * maxI = s1I; #//% the maximum index for the loop - */ - goto __pyx_L5; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":768 - * #//% Advance the first index for the skeleton loop. - * else: - * s1I = s1I + 1; # <<<<<<<<<<<<<< - * - * - */ - /*else*/ { - __pyx_v_s1I = (__pyx_v_s1I + 1); - } - __pyx_L5:; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":771 - * - * - * cdef int newTotal = 0; # <<<<<<<<<<<<<< - * for i in range(number_points): - * if (keep[i] != FLAG_MAX): - */ - __pyx_v_newTotal = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":772 - * - * cdef int newTotal = 0; - * for i in range(number_points): # <<<<<<<<<<<<<< - * if (keep[i] != FLAG_MAX): - * skeleton[newTotal, 0] = skeleton[i,0]; - */ - __pyx_t_48 = __pyx_v_number_points; - __pyx_t_49 = __pyx_t_48; - for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_49; __pyx_t_13+=1) { - __pyx_v_i = __pyx_t_13; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":773 - * cdef int newTotal = 0; - * for i in range(number_points): - * if (keep[i] != FLAG_MAX): # <<<<<<<<<<<<<< - * skeleton[newTotal, 0] = skeleton[i,0]; - * skeleton[newTotal, 1] = skeleton[i,1]; - */ - if (unlikely(((PyObject *)__pyx_v_keep) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 773, __pyx_L1_error) - } - __pyx_t_81 = __pyx_v_i; - __pyx_t_74 = -1; - if (__pyx_t_81 < 0) { - __pyx_t_81 += __pyx_pybuffernd_keep.diminfo[0].shape; - if (unlikely(__pyx_t_81 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_81 >= __pyx_pybuffernd_keep.diminfo[0].shape)) __pyx_t_74 = 0; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 773, __pyx_L1_error) - } - __pyx_t_11 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_81, __pyx_pybuffernd_keep.diminfo[0].strides)) != __pyx_v_FLAG_MAX) != 0); - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":774 - * for i in range(number_points): - * if (keep[i] != FLAG_MAX): - * skeleton[newTotal, 0] = skeleton[i,0]; # <<<<<<<<<<<<<< - * skeleton[newTotal, 1] = skeleton[i,1]; - * widths[newTotal] = widths[i]; - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 774, __pyx_L1_error) - } - __pyx_t_82 = __pyx_v_i; - __pyx_t_83 = 0; - __pyx_t_74 = -1; - if (__pyx_t_82 < 0) { - __pyx_t_82 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_82 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_82 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; - if (__pyx_t_83 < 0) { - __pyx_t_83 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_83 < 0)) __pyx_t_74 = 1; - } else if (unlikely(__pyx_t_83 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 774, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 774, __pyx_L1_error) - } - __pyx_t_84 = __pyx_v_newTotal; - __pyx_t_85 = 0; - __pyx_t_74 = -1; - if (__pyx_t_84 < 0) { - __pyx_t_84 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_84 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_84 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; - if (__pyx_t_85 < 0) { - __pyx_t_85 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_85 < 0)) __pyx_t_74 = 1; - } else if (unlikely(__pyx_t_85 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 774, __pyx_L1_error) - } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_84, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_85, __pyx_pybuffernd_skeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_82, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_83, __pyx_pybuffernd_skeleton.diminfo[1].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":775 - * if (keep[i] != FLAG_MAX): - * skeleton[newTotal, 0] = skeleton[i,0]; - * skeleton[newTotal, 1] = skeleton[i,1]; # <<<<<<<<<<<<<< - * widths[newTotal] = widths[i]; - * newTotal+=1; - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 775, __pyx_L1_error) - } - __pyx_t_86 = __pyx_v_i; - __pyx_t_87 = 1; - __pyx_t_74 = -1; - if (__pyx_t_86 < 0) { - __pyx_t_86 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_86 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_86 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; - if (__pyx_t_87 < 0) { - __pyx_t_87 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_87 < 0)) __pyx_t_74 = 1; - } else if (unlikely(__pyx_t_87 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 775, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 775, __pyx_L1_error) - } - __pyx_t_88 = __pyx_v_newTotal; - __pyx_t_89 = 1; - __pyx_t_74 = -1; - if (__pyx_t_88 < 0) { - __pyx_t_88 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_88 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_88 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; - if (__pyx_t_89 < 0) { - __pyx_t_89 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_89 < 0)) __pyx_t_74 = 1; - } else if (unlikely(__pyx_t_89 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 775, __pyx_L1_error) - } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_88, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_89, __pyx_pybuffernd_skeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_86, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_87, __pyx_pybuffernd_skeleton.diminfo[1].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":776 - * skeleton[newTotal, 0] = skeleton[i,0]; - * skeleton[newTotal, 1] = skeleton[i,1]; - * widths[newTotal] = widths[i]; # <<<<<<<<<<<<<< - * newTotal+=1; - * - */ - if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 776, __pyx_L1_error) - } - __pyx_t_90 = __pyx_v_i; - __pyx_t_74 = -1; - if (__pyx_t_90 < 0) { - __pyx_t_90 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_90 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_90 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_74 = 0; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 776, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 776, __pyx_L1_error) - } - __pyx_t_91 = __pyx_v_newTotal; - __pyx_t_74 = -1; - if (__pyx_t_91 < 0) { - __pyx_t_91 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_91 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_91 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_74 = 0; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 776, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_91, __pyx_pybuffernd_widths.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_90, __pyx_pybuffernd_widths.diminfo[0].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":777 - * skeleton[newTotal, 1] = skeleton[i,1]; - * widths[newTotal] = widths[i]; - * newTotal+=1; # <<<<<<<<<<<<<< - * - * #//% The head and tail have no width. - */ - __pyx_v_newTotal = (__pyx_v_newTotal + 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":773 - * cdef int newTotal = 0; - * for i in range(number_points): - * if (keep[i] != FLAG_MAX): # <<<<<<<<<<<<<< - * skeleton[newTotal, 0] = skeleton[i,0]; - * skeleton[newTotal, 1] = skeleton[i,1]; - */ - } - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":780 - * - * #//% The head and tail have no width. - * widths[0] = 0; # <<<<<<<<<<<<<< - * widths[newTotal-1] = 0; - * number_points = newTotal; - */ - if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 780, __pyx_L1_error) - } - __pyx_t_92 = 0; - __pyx_t_48 = -1; - if (__pyx_t_92 < 0) { - __pyx_t_92 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_92 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_92 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_48 = 0; - if (unlikely(__pyx_t_48 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_48); - __PYX_ERR(0, 780, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_92, __pyx_pybuffernd_widths.diminfo[0].strides) = 0.0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":781 - * #//% The head and tail have no width. - * widths[0] = 0; - * widths[newTotal-1] = 0; # <<<<<<<<<<<<<< - * number_points = newTotal; - * last_index = number_points-1 - */ - if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 781, __pyx_L1_error) - } - __pyx_t_93 = (__pyx_v_newTotal - 1); - __pyx_t_48 = -1; - if (__pyx_t_93 < 0) { - __pyx_t_93 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_93 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_93 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_48 = 0; - if (unlikely(__pyx_t_48 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_48); - __PYX_ERR(0, 781, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_93, __pyx_pybuffernd_widths.diminfo[0].strides) = 0.0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":782 - * widths[0] = 0; - * widths[newTotal-1] = 0; - * number_points = newTotal; # <<<<<<<<<<<<<< - * last_index = number_points-1 - * - */ - __pyx_v_number_points = __pyx_v_newTotal; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":783 - * widths[newTotal-1] = 0; - * number_points = newTotal; - * last_index = number_points-1 # <<<<<<<<<<<<<< - * - * del iSortC, pSortC; - */ - __pyx_v_last_index = (__pyx_v_number_points - 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":785 - * last_index = number_points-1 - * - * del iSortC, pSortC; # <<<<<<<<<<<<<< - * - * #//% Heal the skeleton by interpolating missing points. - */ - __Pyx_DECREF(((PyObject *)__pyx_v_iSortC)); - __pyx_v_iSortC = NULL; - __Pyx_DECREF(((PyObject *)__pyx_v_pSortC)); - __pyx_v_pSortC = NULL; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":789 - * #//% Heal the skeleton by interpolating missing points. - * - * cdef int j = 0, m; # <<<<<<<<<<<<<< - * cdef float x,y, x1,x2, y1, y2, delY, delX, delW; - * cdef float points; - */ - __pyx_v_j = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":797 - * cdef int n_interp - * - * for i in range(last_index): # <<<<<<<<<<<<<< - * #//% Initialize the point differences. - * y = absDiff(skeleton[i + 1, 0], skeleton[i, 0]); - */ - __pyx_t_48 = __pyx_v_last_index; - __pyx_t_49 = __pyx_t_48; - for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_49; __pyx_t_13+=1) { - __pyx_v_i = __pyx_t_13; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":799 - * for i in range(last_index): - * #//% Initialize the point differences. - * y = absDiff(skeleton[i + 1, 0], skeleton[i, 0]); # <<<<<<<<<<<<<< - * x = absDiff(skeleton[i + 1, 1], skeleton[i, 1]); - * - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 799, __pyx_L1_error) - } - __pyx_t_94 = (__pyx_v_i + 1); - __pyx_t_95 = 0; - __pyx_t_74 = -1; - if (__pyx_t_94 < 0) { - __pyx_t_94 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_94 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_94 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; - if (__pyx_t_95 < 0) { - __pyx_t_95 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_95 < 0)) __pyx_t_74 = 1; - } else if (unlikely(__pyx_t_95 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 799, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 799, __pyx_L1_error) - } - __pyx_t_96 = __pyx_v_i; - __pyx_t_97 = 0; - __pyx_t_74 = -1; - if (__pyx_t_96 < 0) { - __pyx_t_96 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_96 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_96 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; - if (__pyx_t_97 < 0) { - __pyx_t_97 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_97 < 0)) __pyx_t_74 = 1; - } else if (unlikely(__pyx_t_97 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 799, __pyx_L1_error) - } - __pyx_v_y = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_94, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_95, __pyx_pybuffernd_skeleton.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_96, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_97, __pyx_pybuffernd_skeleton.diminfo[1].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":800 - * #//% Initialize the point differences. - * y = absDiff(skeleton[i + 1, 0], skeleton[i, 0]); - * x = absDiff(skeleton[i + 1, 1], skeleton[i, 1]); # <<<<<<<<<<<<<< - * - * #//% Add the point. - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 800, __pyx_L1_error) - } - __pyx_t_98 = (__pyx_v_i + 1); - __pyx_t_99 = 1; - __pyx_t_74 = -1; - if (__pyx_t_98 < 0) { - __pyx_t_98 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_98 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_98 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; - if (__pyx_t_99 < 0) { - __pyx_t_99 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_99 < 0)) __pyx_t_74 = 1; - } else if (unlikely(__pyx_t_99 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 800, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 800, __pyx_L1_error) - } - __pyx_t_100 = __pyx_v_i; - __pyx_t_101 = 1; - __pyx_t_74 = -1; - if (__pyx_t_100 < 0) { - __pyx_t_100 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_100 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_100 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; - if (__pyx_t_101 < 0) { - __pyx_t_101 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_101 < 0)) __pyx_t_74 = 1; - } else if (unlikely(__pyx_t_101 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 800, __pyx_L1_error) - } - __pyx_v_x = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_98, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_99, __pyx_pybuffernd_skeleton.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_100, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_101, __pyx_pybuffernd_skeleton.diminfo[1].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":803 - * - * #//% Add the point. - * if ((y == 0. or y == 1.) and (x == 0. or x == 1.)): # <<<<<<<<<<<<<< - * cSkeleton[j,0] = skeleton[i,0]; - * cSkeleton[j,1] = skeleton[i,1]; - */ - __pyx_t_25 = ((__pyx_v_y == 0.) != 0); - if (!__pyx_t_25) { - } else { - goto __pyx_L46_next_and; - } - __pyx_t_25 = ((__pyx_v_y == 1.) != 0); - if (__pyx_t_25) { - } else { - __pyx_t_11 = __pyx_t_25; - goto __pyx_L45_bool_binop_done; - } - __pyx_L46_next_and:; - __pyx_t_25 = ((__pyx_v_x == 0.) != 0); - if (!__pyx_t_25) { - } else { - __pyx_t_11 = __pyx_t_25; - goto __pyx_L45_bool_binop_done; - } - __pyx_t_25 = ((__pyx_v_x == 1.) != 0); - __pyx_t_11 = __pyx_t_25; - __pyx_L45_bool_binop_done:; - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":804 - * #//% Add the point. - * if ((y == 0. or y == 1.) and (x == 0. or x == 1.)): - * cSkeleton[j,0] = skeleton[i,0]; # <<<<<<<<<<<<<< - * cSkeleton[j,1] = skeleton[i,1]; - * - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 804, __pyx_L1_error) - } - __pyx_t_102 = __pyx_v_i; - __pyx_t_103 = 0; - __pyx_t_74 = -1; - if (__pyx_t_102 < 0) { - __pyx_t_102 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_102 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_102 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; - if (__pyx_t_103 < 0) { - __pyx_t_103 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_103 < 0)) __pyx_t_74 = 1; - } else if (unlikely(__pyx_t_103 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 804, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cSkeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 804, __pyx_L1_error) - } - __pyx_t_104 = __pyx_v_j; - __pyx_t_105 = 0; - __pyx_t_74 = -1; - if (__pyx_t_104 < 0) { - __pyx_t_104 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_104 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_104 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_74 = 0; - if (__pyx_t_105 < 0) { - __pyx_t_105 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_105 < 0)) __pyx_t_74 = 1; - } else if (unlikely(__pyx_t_105 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_74 = 1; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 804, __pyx_L1_error) - } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_104, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_105, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_102, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_103, __pyx_pybuffernd_skeleton.diminfo[1].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":805 - * if ((y == 0. or y == 1.) and (x == 0. or x == 1.)): - * cSkeleton[j,0] = skeleton[i,0]; - * cSkeleton[j,1] = skeleton[i,1]; # <<<<<<<<<<<<<< - * - * cWidths[j] = widths[i]; - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 805, __pyx_L1_error) - } - __pyx_t_106 = __pyx_v_i; - __pyx_t_107 = 1; - __pyx_t_74 = -1; - if (__pyx_t_106 < 0) { - __pyx_t_106 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_106 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_106 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; - if (__pyx_t_107 < 0) { - __pyx_t_107 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_107 < 0)) __pyx_t_74 = 1; - } else if (unlikely(__pyx_t_107 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 805, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cSkeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 805, __pyx_L1_error) - } - __pyx_t_108 = __pyx_v_j; - __pyx_t_109 = 1; - __pyx_t_74 = -1; - if (__pyx_t_108 < 0) { - __pyx_t_108 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_108 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_108 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_74 = 0; - if (__pyx_t_109 < 0) { - __pyx_t_109 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_109 < 0)) __pyx_t_74 = 1; - } else if (unlikely(__pyx_t_109 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_74 = 1; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 805, __pyx_L1_error) - } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_108, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_109, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_106, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_107, __pyx_pybuffernd_skeleton.diminfo[1].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":807 - * cSkeleton[j,1] = skeleton[i,1]; - * - * cWidths[j] = widths[i]; # <<<<<<<<<<<<<< - * j +=1; - * - */ - if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 807, __pyx_L1_error) - } - __pyx_t_110 = __pyx_v_i; - __pyx_t_74 = -1; - if (__pyx_t_110 < 0) { - __pyx_t_110 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_110 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_110 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_74 = 0; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 807, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cWidths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 807, __pyx_L1_error) - } - __pyx_t_111 = __pyx_v_j; - __pyx_t_74 = -1; - if (__pyx_t_111 < 0) { - __pyx_t_111 += __pyx_pybuffernd_cWidths.diminfo[0].shape; - if (unlikely(__pyx_t_111 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_111 >= __pyx_pybuffernd_cWidths.diminfo[0].shape)) __pyx_t_74 = 0; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 807, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cWidths.rcbuffer->pybuffer.buf, __pyx_t_111, __pyx_pybuffernd_cWidths.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_110, __pyx_pybuffernd_widths.diminfo[0].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":808 - * - * cWidths[j] = widths[i]; - * j +=1; # <<<<<<<<<<<<<< - * - * #//% Interpolate the missing points. - */ - __pyx_v_j = (__pyx_v_j + 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":803 - * - * #//% Add the point. - * if ((y == 0. or y == 1.) and (x == 0. or x == 1.)): # <<<<<<<<<<<<<< - * cSkeleton[j,0] = skeleton[i,0]; - * cSkeleton[j,1] = skeleton[i,1]; - */ - goto __pyx_L44; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":812 - * #//% Interpolate the missing points. - * else: - * points = fmax(y, x); # <<<<<<<<<<<<<< - * - * if j + points > buff_size: - */ - /*else*/ { - __pyx_v_points = fmax(__pyx_v_y, __pyx_v_x); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":814 - * points = fmax(y, x); - * - * if j + points > buff_size: # <<<<<<<<<<<<<< - * #increase in case there is a buffer overflow - * buff_size *= 2 - */ - __pyx_t_11 = (((__pyx_v_j + __pyx_v_points) > __pyx_v_buff_size) != 0); - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":816 - * if j + points > buff_size: - * #increase in case there is a buffer overflow - * buff_size *= 2 # <<<<<<<<<<<<<< - * cSkeleton.resize((buff_size,2)) - * cWidths.resize(buff_size) - */ - __pyx_v_buff_size = (__pyx_v_buff_size * 2); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":817 - * #increase in case there is a buffer overflow - * buff_size *= 2 - * cSkeleton.resize((buff_size,2)) # <<<<<<<<<<<<<< - * cWidths.resize(buff_size) - * - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cSkeleton), __pyx_n_s_resize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 817, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_buff_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_2); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); - __Pyx_INCREF(__pyx_int_2); - __Pyx_GIVEREF(__pyx_int_2); - PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_2); - __pyx_t_2 = 0; - __pyx_t_2 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_2)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - } - } - if (!__pyx_t_2) { - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_3); - } else { - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } else - #endif - { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; - __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_4); - __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":818 - * buff_size *= 2 - * cSkeleton.resize((buff_size,2)) - * cWidths.resize(buff_size) # <<<<<<<<<<<<<< - * - * y1 = skeleton[i,0]; - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cWidths), __pyx_n_s_resize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 818, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_buff_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 818, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - } - } - if (!__pyx_t_4) { - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 818, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_GOTREF(__pyx_t_3); - } else { - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_5}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 818, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_5}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 818, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } else - #endif - { - __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 818, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL; - __Pyx_GIVEREF(__pyx_t_5); - PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_t_5); - __pyx_t_5 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 818, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - } - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":814 - * points = fmax(y, x); - * - * if j + points > buff_size: # <<<<<<<<<<<<<< - * #increase in case there is a buffer overflow - * buff_size *= 2 - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":820 - * cWidths.resize(buff_size) - * - * y1 = skeleton[i,0]; # <<<<<<<<<<<<<< - * y2 = skeleton[i + 1,0]; - * delY = (y2-y1)/points; - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 820, __pyx_L1_error) - } - __pyx_t_112 = __pyx_v_i; - __pyx_t_113 = 0; - __pyx_t_74 = -1; - if (__pyx_t_112 < 0) { - __pyx_t_112 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_112 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_112 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; - if (__pyx_t_113 < 0) { - __pyx_t_113 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_113 < 0)) __pyx_t_74 = 1; - } else if (unlikely(__pyx_t_113 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 820, __pyx_L1_error) - } - __pyx_v_y1 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_112, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_113, __pyx_pybuffernd_skeleton.diminfo[1].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":821 - * - * y1 = skeleton[i,0]; - * y2 = skeleton[i + 1,0]; # <<<<<<<<<<<<<< - * delY = (y2-y1)/points; - * x1 = skeleton[i,1]; - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 821, __pyx_L1_error) - } - __pyx_t_114 = (__pyx_v_i + 1); - __pyx_t_115 = 0; - __pyx_t_74 = -1; - if (__pyx_t_114 < 0) { - __pyx_t_114 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_114 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_114 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; - if (__pyx_t_115 < 0) { - __pyx_t_115 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_115 < 0)) __pyx_t_74 = 1; - } else if (unlikely(__pyx_t_115 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 821, __pyx_L1_error) - } - __pyx_v_y2 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_114, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_115, __pyx_pybuffernd_skeleton.diminfo[1].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":822 - * y1 = skeleton[i,0]; - * y2 = skeleton[i + 1,0]; - * delY = (y2-y1)/points; # <<<<<<<<<<<<<< - * x1 = skeleton[i,1]; - * x2 = skeleton[i + 1,1]; - */ - __pyx_t_116 = (__pyx_v_y2 - __pyx_v_y1); - if (unlikely(__pyx_v_points == 0)) { - PyErr_SetString(PyExc_ZeroDivisionError, "float division"); - __PYX_ERR(0, 822, __pyx_L1_error) - } - __pyx_v_delY = (__pyx_t_116 / __pyx_v_points); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":823 - * y2 = skeleton[i + 1,0]; - * delY = (y2-y1)/points; - * x1 = skeleton[i,1]; # <<<<<<<<<<<<<< - * x2 = skeleton[i + 1,1]; - * delX = (x2-x1)/points; - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 823, __pyx_L1_error) - } - __pyx_t_117 = __pyx_v_i; - __pyx_t_118 = 1; - __pyx_t_74 = -1; - if (__pyx_t_117 < 0) { - __pyx_t_117 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_117 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_117 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; - if (__pyx_t_118 < 0) { - __pyx_t_118 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_118 < 0)) __pyx_t_74 = 1; - } else if (unlikely(__pyx_t_118 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 823, __pyx_L1_error) - } - __pyx_v_x1 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_117, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_118, __pyx_pybuffernd_skeleton.diminfo[1].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":824 - * delY = (y2-y1)/points; - * x1 = skeleton[i,1]; - * x2 = skeleton[i + 1,1]; # <<<<<<<<<<<<<< - * delX = (x2-x1)/points; - * delW = (widths[i + 1] - widths[i])/points; - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 824, __pyx_L1_error) - } - __pyx_t_119 = (__pyx_v_i + 1); - __pyx_t_120 = 1; - __pyx_t_74 = -1; - if (__pyx_t_119 < 0) { - __pyx_t_119 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_119 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_119 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_74 = 0; - if (__pyx_t_120 < 0) { - __pyx_t_120 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_120 < 0)) __pyx_t_74 = 1; - } else if (unlikely(__pyx_t_120 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_74 = 1; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 824, __pyx_L1_error) - } - __pyx_v_x2 = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_119, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_120, __pyx_pybuffernd_skeleton.diminfo[1].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":825 - * x1 = skeleton[i,1]; - * x2 = skeleton[i + 1,1]; - * delX = (x2-x1)/points; # <<<<<<<<<<<<<< - * delW = (widths[i + 1] - widths[i])/points; - * - */ - __pyx_t_116 = (__pyx_v_x2 - __pyx_v_x1); - if (unlikely(__pyx_v_points == 0)) { - PyErr_SetString(PyExc_ZeroDivisionError, "float division"); - __PYX_ERR(0, 825, __pyx_L1_error) - } - __pyx_v_delX = (__pyx_t_116 / __pyx_v_points); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":826 - * x2 = skeleton[i + 1,1]; - * delX = (x2-x1)/points; - * delW = (widths[i + 1] - widths[i])/points; # <<<<<<<<<<<<<< - * - * #used to avoid repeated points (they can overflow the buffer) - */ - if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 826, __pyx_L1_error) - } - __pyx_t_121 = (__pyx_v_i + 1); - __pyx_t_74 = -1; - if (__pyx_t_121 < 0) { - __pyx_t_121 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_121 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_121 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_74 = 0; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 826, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 826, __pyx_L1_error) - } - __pyx_t_122 = __pyx_v_i; - __pyx_t_74 = -1; - if (__pyx_t_122 < 0) { - __pyx_t_122 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_122 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_122 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_74 = 0; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 826, __pyx_L1_error) - } - __pyx_t_123 = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_121, __pyx_pybuffernd_widths.diminfo[0].strides)) - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_122, __pyx_pybuffernd_widths.diminfo[0].strides))); - if (unlikely(__pyx_v_points == 0)) { - PyErr_SetString(PyExc_ZeroDivisionError, "float division"); - __PYX_ERR(0, 826, __pyx_L1_error) - } - __pyx_v_delW = (__pyx_t_123 / __pyx_v_points); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":829 - * - * #used to avoid repeated points (they can overflow the buffer) - * xprev = -1; # <<<<<<<<<<<<<< - * yprev = -1; - * n_interp = 0; #number of points in the interpolation - */ - __pyx_v_xprev = -1.0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":830 - * #used to avoid repeated points (they can overflow the buffer) - * xprev = -1; - * yprev = -1; # <<<<<<<<<<<<<< - * n_interp = 0; #number of points in the interpolation - * for m in range(points): - */ - __pyx_v_yprev = -1.0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":831 - * xprev = -1; - * yprev = -1; - * n_interp = 0; #number of points in the interpolation # <<<<<<<<<<<<<< - * for m in range(points): - * xd = round(x1 + m*delX); - */ - __pyx_v_n_interp = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":832 - * yprev = -1; - * n_interp = 0; #number of points in the interpolation - * for m in range(points): # <<<<<<<<<<<<<< - * xd = round(x1 + m*delX); - * yd = round(y1 + m*delY); - */ - __pyx_t_74 = ((int)__pyx_v_points); - __pyx_t_124 = __pyx_t_74; - for (__pyx_t_125 = 0; __pyx_t_125 < __pyx_t_124; __pyx_t_125+=1) { - __pyx_v_m = __pyx_t_125; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":833 - * n_interp = 0; #number of points in the interpolation - * for m in range(points): - * xd = round(x1 + m*delX); # <<<<<<<<<<<<<< - * yd = round(y1 + m*delY); - * if (xd != xprev) or (yd !=yprev): - */ - __pyx_t_3 = PyFloat_FromDouble((__pyx_v_x1 + (__pyx_v_m * __pyx_v_delX))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 833, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_round, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 833, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_116 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_116 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 833, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_xd = __pyx_t_116; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":834 - * for m in range(points): - * xd = round(x1 + m*delX); - * yd = round(y1 + m*delY); # <<<<<<<<<<<<<< - * if (xd != xprev) or (yd !=yprev): - * cSkeleton[j+n_interp, 0] = yd; - */ - __pyx_t_1 = PyFloat_FromDouble((__pyx_v_y1 + (__pyx_v_m * __pyx_v_delY))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 834, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_round, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 834, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_116 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_116 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 834, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_v_yd = __pyx_t_116; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":835 - * xd = round(x1 + m*delX); - * yd = round(y1 + m*delY); - * if (xd != xprev) or (yd !=yprev): # <<<<<<<<<<<<<< - * cSkeleton[j+n_interp, 0] = yd; - * cSkeleton[j+n_interp, 1] = xd; - */ - __pyx_t_25 = ((__pyx_v_xd != __pyx_v_xprev) != 0); - if (!__pyx_t_25) { - } else { - __pyx_t_11 = __pyx_t_25; - goto __pyx_L53_bool_binop_done; - } - __pyx_t_25 = ((__pyx_v_yd != __pyx_v_yprev) != 0); - __pyx_t_11 = __pyx_t_25; - __pyx_L53_bool_binop_done:; - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":836 - * yd = round(y1 + m*delY); - * if (xd != xprev) or (yd !=yprev): - * cSkeleton[j+n_interp, 0] = yd; # <<<<<<<<<<<<<< - * cSkeleton[j+n_interp, 1] = xd; - * cWidths[j+n_interp] = round(widths[i] + m*delW); - */ - if (unlikely(((PyObject *)__pyx_v_cSkeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 836, __pyx_L1_error) - } - __pyx_t_126 = (__pyx_v_j + __pyx_v_n_interp); - __pyx_t_127 = 0; - __pyx_t_128 = -1; - if (__pyx_t_126 < 0) { - __pyx_t_126 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_126 < 0)) __pyx_t_128 = 0; - } else if (unlikely(__pyx_t_126 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_128 = 0; - if (__pyx_t_127 < 0) { - __pyx_t_127 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_127 < 0)) __pyx_t_128 = 1; - } else if (unlikely(__pyx_t_127 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_128 = 1; - if (unlikely(__pyx_t_128 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_128); - __PYX_ERR(0, 836, __pyx_L1_error) - } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_126, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_127, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = __pyx_v_yd; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":837 - * if (xd != xprev) or (yd !=yprev): - * cSkeleton[j+n_interp, 0] = yd; - * cSkeleton[j+n_interp, 1] = xd; # <<<<<<<<<<<<<< - * cWidths[j+n_interp] = round(widths[i] + m*delW); - * n_interp += 1; - */ - if (unlikely(((PyObject *)__pyx_v_cSkeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 837, __pyx_L1_error) - } - __pyx_t_129 = (__pyx_v_j + __pyx_v_n_interp); - __pyx_t_130 = 1; - __pyx_t_128 = -1; - if (__pyx_t_129 < 0) { - __pyx_t_129 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_129 < 0)) __pyx_t_128 = 0; - } else if (unlikely(__pyx_t_129 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_128 = 0; - if (__pyx_t_130 < 0) { - __pyx_t_130 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_130 < 0)) __pyx_t_128 = 1; - } else if (unlikely(__pyx_t_130 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_128 = 1; - if (unlikely(__pyx_t_128 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_128); - __PYX_ERR(0, 837, __pyx_L1_error) - } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_129, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_130, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = __pyx_v_xd; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":838 - * cSkeleton[j+n_interp, 0] = yd; - * cSkeleton[j+n_interp, 1] = xd; - * cWidths[j+n_interp] = round(widths[i] + m*delW); # <<<<<<<<<<<<<< - * n_interp += 1; - * j += n_interp+1; - */ - if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 838, __pyx_L1_error) - } - __pyx_t_131 = __pyx_v_i; - __pyx_t_128 = -1; - if (__pyx_t_131 < 0) { - __pyx_t_131 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_131 < 0)) __pyx_t_128 = 0; - } else if (unlikely(__pyx_t_131 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_128 = 0; - if (unlikely(__pyx_t_128 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_128); - __PYX_ERR(0, 838, __pyx_L1_error) - } - __pyx_t_3 = PyFloat_FromDouble(((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_131, __pyx_pybuffernd_widths.diminfo[0].strides)) + (__pyx_v_m * __pyx_v_delW))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 838, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_round, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 838, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_123 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_123 == ((npy_double)-1)) && PyErr_Occurred())) __PYX_ERR(0, 838, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(((PyObject *)__pyx_v_cWidths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 838, __pyx_L1_error) - } - __pyx_t_132 = (__pyx_v_j + __pyx_v_n_interp); - __pyx_t_128 = -1; - if (__pyx_t_132 < 0) { - __pyx_t_132 += __pyx_pybuffernd_cWidths.diminfo[0].shape; - if (unlikely(__pyx_t_132 < 0)) __pyx_t_128 = 0; - } else if (unlikely(__pyx_t_132 >= __pyx_pybuffernd_cWidths.diminfo[0].shape)) __pyx_t_128 = 0; - if (unlikely(__pyx_t_128 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_128); - __PYX_ERR(0, 838, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cWidths.rcbuffer->pybuffer.buf, __pyx_t_132, __pyx_pybuffernd_cWidths.diminfo[0].strides) = __pyx_t_123; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":839 - * cSkeleton[j+n_interp, 1] = xd; - * cWidths[j+n_interp] = round(widths[i] + m*delW); - * n_interp += 1; # <<<<<<<<<<<<<< - * j += n_interp+1; - * - */ - __pyx_v_n_interp = (__pyx_v_n_interp + 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":835 - * xd = round(x1 + m*delX); - * yd = round(y1 + m*delY); - * if (xd != xprev) or (yd !=yprev): # <<<<<<<<<<<<<< - * cSkeleton[j+n_interp, 0] = yd; - * cSkeleton[j+n_interp, 1] = xd; - */ - } - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":840 - * cWidths[j+n_interp] = round(widths[i] + m*delW); - * n_interp += 1; - * j += n_interp+1; # <<<<<<<<<<<<<< - * - * - */ - __pyx_v_j = (__pyx_v_j + (__pyx_v_n_interp + 1)); - } - __pyx_L44:; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":844 - * - * #//% Add the last point. - * cSkeleton[j,0] = skeleton[last_index,0]; # <<<<<<<<<<<<<< - * cSkeleton[j,1] = skeleton[last_index,1]; - * cWidths[j] = widths[last_index]; - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 844, __pyx_L1_error) - } - __pyx_t_133 = __pyx_v_last_index; - __pyx_t_134 = 0; - __pyx_t_48 = -1; - if (__pyx_t_133 < 0) { - __pyx_t_133 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_133 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_133 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_134 < 0) { - __pyx_t_134 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_134 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_134 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_48 = 1; - if (unlikely(__pyx_t_48 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_48); - __PYX_ERR(0, 844, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cSkeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 844, __pyx_L1_error) - } - __pyx_t_135 = __pyx_v_j; - __pyx_t_136 = 0; - __pyx_t_48 = -1; - if (__pyx_t_135 < 0) { - __pyx_t_135 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_135 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_135 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_136 < 0) { - __pyx_t_136 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_136 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_136 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_48 = 1; - if (unlikely(__pyx_t_48 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_48); - __PYX_ERR(0, 844, __pyx_L1_error) - } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_135, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_136, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_133, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_134, __pyx_pybuffernd_skeleton.diminfo[1].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":845 - * #//% Add the last point. - * cSkeleton[j,0] = skeleton[last_index,0]; - * cSkeleton[j,1] = skeleton[last_index,1]; # <<<<<<<<<<<<<< - * cWidths[j] = widths[last_index]; - * j+=1; - */ - if (unlikely(((PyObject *)__pyx_v_skeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 845, __pyx_L1_error) - } - __pyx_t_137 = __pyx_v_last_index; - __pyx_t_138 = 1; - __pyx_t_48 = -1; - if (__pyx_t_137 < 0) { - __pyx_t_137 += __pyx_pybuffernd_skeleton.diminfo[0].shape; - if (unlikely(__pyx_t_137 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_137 >= __pyx_pybuffernd_skeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_138 < 0) { - __pyx_t_138 += __pyx_pybuffernd_skeleton.diminfo[1].shape; - if (unlikely(__pyx_t_138 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_138 >= __pyx_pybuffernd_skeleton.diminfo[1].shape)) __pyx_t_48 = 1; - if (unlikely(__pyx_t_48 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_48); - __PYX_ERR(0, 845, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cSkeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 845, __pyx_L1_error) - } - __pyx_t_139 = __pyx_v_j; - __pyx_t_140 = 1; - __pyx_t_48 = -1; - if (__pyx_t_139 < 0) { - __pyx_t_139 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_139 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_139 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_140 < 0) { - __pyx_t_140 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_140 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_140 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_48 = 1; - if (unlikely(__pyx_t_48 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_48); - __PYX_ERR(0, 845, __pyx_L1_error) - } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_139, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_140, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_skeleton.rcbuffer->pybuffer.buf, __pyx_t_137, __pyx_pybuffernd_skeleton.diminfo[0].strides, __pyx_t_138, __pyx_pybuffernd_skeleton.diminfo[1].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":846 - * cSkeleton[j,0] = skeleton[last_index,0]; - * cSkeleton[j,1] = skeleton[last_index,1]; - * cWidths[j] = widths[last_index]; # <<<<<<<<<<<<<< - * j+=1; - * - */ - if (unlikely(((PyObject *)__pyx_v_widths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 846, __pyx_L1_error) - } - __pyx_t_141 = __pyx_v_last_index; - __pyx_t_48 = -1; - if (__pyx_t_141 < 0) { - __pyx_t_141 += __pyx_pybuffernd_widths.diminfo[0].shape; - if (unlikely(__pyx_t_141 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_141 >= __pyx_pybuffernd_widths.diminfo[0].shape)) __pyx_t_48 = 0; - if (unlikely(__pyx_t_48 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_48); - __PYX_ERR(0, 846, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cWidths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 846, __pyx_L1_error) - } - __pyx_t_142 = __pyx_v_j; - __pyx_t_48 = -1; - if (__pyx_t_142 < 0) { - __pyx_t_142 += __pyx_pybuffernd_cWidths.diminfo[0].shape; - if (unlikely(__pyx_t_142 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_142 >= __pyx_pybuffernd_cWidths.diminfo[0].shape)) __pyx_t_48 = 0; - if (unlikely(__pyx_t_48 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_48); - __PYX_ERR(0, 846, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cWidths.rcbuffer->pybuffer.buf, __pyx_t_142, __pyx_pybuffernd_cWidths.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_widths.rcbuffer->pybuffer.buf, __pyx_t_141, __pyx_pybuffernd_widths.diminfo[0].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":847 - * cSkeleton[j,1] = skeleton[last_index,1]; - * cWidths[j] = widths[last_index]; - * j+=1; # <<<<<<<<<<<<<< - * - * number_points = j; - */ - __pyx_v_j = (__pyx_v_j + 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":849 - * j+=1; - * - * number_points = j; # <<<<<<<<<<<<<< - * - * #//% Anti alias. - */ - __pyx_v_number_points = __pyx_v_j; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":852 - * - * #//% Anti alias. - * keep = np.arange(number_points) # <<<<<<<<<<<<<< - * cdef int nextI - * i = 0; - */ - __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 852, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_arange); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 852, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_number_points); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 852, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __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); - } - } - if (!__pyx_t_5) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 852, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else { - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_3}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 852, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_3}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 852, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } else - #endif - { - __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 852, __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 = NULL; - __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_t_3); - __pyx_t_3 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 852, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 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, 852, __pyx_L1_error) - __pyx_t_10 = ((PyArrayObject *)__pyx_t_1); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_keep.rcbuffer->pybuffer); - __pyx_t_48 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_keep.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); - if (unlikely(__pyx_t_48 < 0)) { - PyErr_Fetch(&__pyx_t_143, &__pyx_t_144, &__pyx_t_145); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_keep.rcbuffer->pybuffer, (PyObject*)__pyx_v_keep, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_143); Py_XDECREF(__pyx_t_144); Py_XDECREF(__pyx_t_145); - __Pyx_RaiseBufferFallbackError(); - } else { - PyErr_Restore(__pyx_t_143, __pyx_t_144, __pyx_t_145); - } - __pyx_t_143 = __pyx_t_144 = __pyx_t_145 = 0; - } - __pyx_pybuffernd_keep.diminfo[0].strides = __pyx_pybuffernd_keep.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_keep.diminfo[0].shape = __pyx_pybuffernd_keep.rcbuffer->pybuffer.shape[0]; - if (unlikely(__pyx_t_48 < 0)) __PYX_ERR(0, 852, __pyx_L1_error) - } - __pyx_t_10 = 0; - __Pyx_DECREF_SET(__pyx_v_keep, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":854 - * keep = np.arange(number_points) - * cdef int nextI - * i = 0; # <<<<<<<<<<<<<< - * - * while (i < number_points - 2): - */ - __pyx_v_i = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":856 - * i = 0; - * - * while (i < number_points - 2): # <<<<<<<<<<<<<< - * #//% Smooth any stairs. - * nextI = i + 2; - */ - while (1) { - __pyx_t_11 = ((__pyx_v_i < (__pyx_v_number_points - 2)) != 0); - if (!__pyx_t_11) break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":858 - * while (i < number_points - 2): - * #//% Smooth any stairs. - * nextI = i + 2; # <<<<<<<<<<<<<< - * if ((absDiff(cSkeleton[i,0], cSkeleton[nextI,0])<=1) and (absDiff(cSkeleton[i,1], cSkeleton[nextI,1])<=1)): - * keep[i + 1] = FLAG_MAX; - */ - __pyx_v_nextI = (__pyx_v_i + 2); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":859 - * #//% Smooth any stairs. - * nextI = i + 2; - * if ((absDiff(cSkeleton[i,0], cSkeleton[nextI,0])<=1) and (absDiff(cSkeleton[i,1], cSkeleton[nextI,1])<=1)): # <<<<<<<<<<<<<< - * keep[i + 1] = FLAG_MAX; - * #//% Advance. - */ - if (unlikely(((PyObject *)__pyx_v_cSkeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 859, __pyx_L1_error) - } - __pyx_t_146 = __pyx_v_i; - __pyx_t_147 = 0; - __pyx_t_48 = -1; - if (__pyx_t_146 < 0) { - __pyx_t_146 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_146 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_146 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_147 < 0) { - __pyx_t_147 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_147 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_147 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_48 = 1; - if (unlikely(__pyx_t_48 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_48); - __PYX_ERR(0, 859, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cSkeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 859, __pyx_L1_error) - } - __pyx_t_148 = __pyx_v_nextI; - __pyx_t_149 = 0; - __pyx_t_48 = -1; - if (__pyx_t_148 < 0) { - __pyx_t_148 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_148 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_148 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_149 < 0) { - __pyx_t_149 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_149 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_149 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_48 = 1; - if (unlikely(__pyx_t_48 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_48); - __PYX_ERR(0, 859, __pyx_L1_error) - } - __pyx_t_25 = ((__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_146, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_147, __pyx_pybuffernd_cSkeleton.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_148, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_149, __pyx_pybuffernd_cSkeleton.diminfo[1].strides))) <= 1.0) != 0); - if (__pyx_t_25) { - } else { - __pyx_t_11 = __pyx_t_25; - goto __pyx_L58_bool_binop_done; - } - if (unlikely(((PyObject *)__pyx_v_cSkeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 859, __pyx_L1_error) - } - __pyx_t_150 = __pyx_v_i; - __pyx_t_151 = 1; - __pyx_t_48 = -1; - if (__pyx_t_150 < 0) { - __pyx_t_150 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_150 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_150 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_151 < 0) { - __pyx_t_151 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_151 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_151 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_48 = 1; - if (unlikely(__pyx_t_48 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_48); - __PYX_ERR(0, 859, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cSkeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 859, __pyx_L1_error) - } - __pyx_t_152 = __pyx_v_nextI; - __pyx_t_153 = 1; - __pyx_t_48 = -1; - if (__pyx_t_152 < 0) { - __pyx_t_152 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_152 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_152 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_48 = 0; - if (__pyx_t_153 < 0) { - __pyx_t_153 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_153 < 0)) __pyx_t_48 = 1; - } else if (unlikely(__pyx_t_153 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_48 = 1; - if (unlikely(__pyx_t_48 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_48); - __PYX_ERR(0, 859, __pyx_L1_error) - } - __pyx_t_25 = ((__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_150, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_151, __pyx_pybuffernd_cSkeleton.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_152, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_153, __pyx_pybuffernd_cSkeleton.diminfo[1].strides))) <= 1.0) != 0); - __pyx_t_11 = __pyx_t_25; - __pyx_L58_bool_binop_done:; - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":860 - * nextI = i + 2; - * if ((absDiff(cSkeleton[i,0], cSkeleton[nextI,0])<=1) and (absDiff(cSkeleton[i,1], cSkeleton[nextI,1])<=1)): - * keep[i + 1] = FLAG_MAX; # <<<<<<<<<<<<<< - * #//% Advance. - * i = nextI; - */ - if (unlikely(((PyObject *)__pyx_v_keep) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 860, __pyx_L1_error) - } - __pyx_t_154 = (__pyx_v_i + 1); - __pyx_t_48 = -1; - if (__pyx_t_154 < 0) { - __pyx_t_154 += __pyx_pybuffernd_keep.diminfo[0].shape; - if (unlikely(__pyx_t_154 < 0)) __pyx_t_48 = 0; - } else if (unlikely(__pyx_t_154 >= __pyx_pybuffernd_keep.diminfo[0].shape)) __pyx_t_48 = 0; - if (unlikely(__pyx_t_48 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_48); - __PYX_ERR(0, 860, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_154, __pyx_pybuffernd_keep.diminfo[0].strides) = __pyx_v_FLAG_MAX; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":862 - * keep[i + 1] = FLAG_MAX; - * #//% Advance. - * i = nextI; # <<<<<<<<<<<<<< - * #//% Advance. - * else: - */ - __pyx_v_i = __pyx_v_nextI; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":859 - * #//% Smooth any stairs. - * nextI = i + 2; - * if ((absDiff(cSkeleton[i,0], cSkeleton[nextI,0])<=1) and (absDiff(cSkeleton[i,1], cSkeleton[nextI,1])<=1)): # <<<<<<<<<<<<<< - * keep[i + 1] = FLAG_MAX; - * #//% Advance. - */ - goto __pyx_L57; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":865 - * #//% Advance. - * else: - * i+=1; # <<<<<<<<<<<<<< - * - * newTotal = 0; - */ - /*else*/ { - __pyx_v_i = (__pyx_v_i + 1); - } - __pyx_L57:; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":867 - * i+=1; - * - * newTotal = 0; # <<<<<<<<<<<<<< - * for i in range(number_points): - * if (keep[i] != FLAG_MAX): - */ - __pyx_v_newTotal = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":868 - * - * newTotal = 0; - * for i in range(number_points): # <<<<<<<<<<<<<< - * if (keep[i] != FLAG_MAX): - * cSkeleton[newTotal,0] = cSkeleton[i,0]; - */ - __pyx_t_48 = __pyx_v_number_points; - __pyx_t_49 = __pyx_t_48; - for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_49; __pyx_t_13+=1) { - __pyx_v_i = __pyx_t_13; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":869 - * newTotal = 0; - * for i in range(number_points): - * if (keep[i] != FLAG_MAX): # <<<<<<<<<<<<<< - * cSkeleton[newTotal,0] = cSkeleton[i,0]; - * cSkeleton[newTotal,1] = cSkeleton[i,1]; - */ - if (unlikely(((PyObject *)__pyx_v_keep) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 869, __pyx_L1_error) - } - __pyx_t_155 = __pyx_v_i; - __pyx_t_74 = -1; - if (__pyx_t_155 < 0) { - __pyx_t_155 += __pyx_pybuffernd_keep.diminfo[0].shape; - if (unlikely(__pyx_t_155 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_155 >= __pyx_pybuffernd_keep.diminfo[0].shape)) __pyx_t_74 = 0; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 869, __pyx_L1_error) - } - __pyx_t_11 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_pybuffernd_keep.rcbuffer->pybuffer.buf, __pyx_t_155, __pyx_pybuffernd_keep.diminfo[0].strides)) != __pyx_v_FLAG_MAX) != 0); - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":870 - * for i in range(number_points): - * if (keep[i] != FLAG_MAX): - * cSkeleton[newTotal,0] = cSkeleton[i,0]; # <<<<<<<<<<<<<< - * cSkeleton[newTotal,1] = cSkeleton[i,1]; - * cWidths[newTotal] = cWidths[i]; - */ - if (unlikely(((PyObject *)__pyx_v_cSkeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 870, __pyx_L1_error) - } - __pyx_t_156 = __pyx_v_i; - __pyx_t_157 = 0; - __pyx_t_74 = -1; - if (__pyx_t_156 < 0) { - __pyx_t_156 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_156 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_156 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_74 = 0; - if (__pyx_t_157 < 0) { - __pyx_t_157 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_157 < 0)) __pyx_t_74 = 1; - } else if (unlikely(__pyx_t_157 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_74 = 1; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 870, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cSkeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 870, __pyx_L1_error) - } - __pyx_t_158 = __pyx_v_newTotal; - __pyx_t_159 = 0; - __pyx_t_74 = -1; - if (__pyx_t_158 < 0) { - __pyx_t_158 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_158 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_158 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_74 = 0; - if (__pyx_t_159 < 0) { - __pyx_t_159 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_159 < 0)) __pyx_t_74 = 1; - } else if (unlikely(__pyx_t_159 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_74 = 1; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 870, __pyx_L1_error) - } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_158, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_159, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_156, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_157, __pyx_pybuffernd_cSkeleton.diminfo[1].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":871 - * if (keep[i] != FLAG_MAX): - * cSkeleton[newTotal,0] = cSkeleton[i,0]; - * cSkeleton[newTotal,1] = cSkeleton[i,1]; # <<<<<<<<<<<<<< - * cWidths[newTotal] = cWidths[i]; - * newTotal+=1; - */ - if (unlikely(((PyObject *)__pyx_v_cSkeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 871, __pyx_L1_error) - } - __pyx_t_160 = __pyx_v_i; - __pyx_t_161 = 1; - __pyx_t_74 = -1; - if (__pyx_t_160 < 0) { - __pyx_t_160 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_160 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_160 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_74 = 0; - if (__pyx_t_161 < 0) { - __pyx_t_161 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_161 < 0)) __pyx_t_74 = 1; - } else if (unlikely(__pyx_t_161 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_74 = 1; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 871, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cSkeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 871, __pyx_L1_error) - } - __pyx_t_162 = __pyx_v_newTotal; - __pyx_t_163 = 1; - __pyx_t_74 = -1; - if (__pyx_t_162 < 0) { - __pyx_t_162 += __pyx_pybuffernd_cSkeleton.diminfo[0].shape; - if (unlikely(__pyx_t_162 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_162 >= __pyx_pybuffernd_cSkeleton.diminfo[0].shape)) __pyx_t_74 = 0; - if (__pyx_t_163 < 0) { - __pyx_t_163 += __pyx_pybuffernd_cSkeleton.diminfo[1].shape; - if (unlikely(__pyx_t_163 < 0)) __pyx_t_74 = 1; - } else if (unlikely(__pyx_t_163 >= __pyx_pybuffernd_cSkeleton.diminfo[1].shape)) __pyx_t_74 = 1; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 871, __pyx_L1_error) - } - *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_162, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_163, __pyx_pybuffernd_cSkeleton.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.buf, __pyx_t_160, __pyx_pybuffernd_cSkeleton.diminfo[0].strides, __pyx_t_161, __pyx_pybuffernd_cSkeleton.diminfo[1].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":872 - * cSkeleton[newTotal,0] = cSkeleton[i,0]; - * cSkeleton[newTotal,1] = cSkeleton[i,1]; - * cWidths[newTotal] = cWidths[i]; # <<<<<<<<<<<<<< - * newTotal+=1; - * - */ - if (unlikely(((PyObject *)__pyx_v_cWidths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 872, __pyx_L1_error) - } - __pyx_t_164 = __pyx_v_i; - __pyx_t_74 = -1; - if (__pyx_t_164 < 0) { - __pyx_t_164 += __pyx_pybuffernd_cWidths.diminfo[0].shape; - if (unlikely(__pyx_t_164 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_164 >= __pyx_pybuffernd_cWidths.diminfo[0].shape)) __pyx_t_74 = 0; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 872, __pyx_L1_error) - } - if (unlikely(((PyObject *)__pyx_v_cWidths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 872, __pyx_L1_error) - } - __pyx_t_165 = __pyx_v_newTotal; - __pyx_t_74 = -1; - if (__pyx_t_165 < 0) { - __pyx_t_165 += __pyx_pybuffernd_cWidths.diminfo[0].shape; - if (unlikely(__pyx_t_165 < 0)) __pyx_t_74 = 0; - } else if (unlikely(__pyx_t_165 >= __pyx_pybuffernd_cWidths.diminfo[0].shape)) __pyx_t_74 = 0; - if (unlikely(__pyx_t_74 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_74); - __PYX_ERR(0, 872, __pyx_L1_error) - } - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cWidths.rcbuffer->pybuffer.buf, __pyx_t_165, __pyx_pybuffernd_cWidths.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_cWidths.rcbuffer->pybuffer.buf, __pyx_t_164, __pyx_pybuffernd_cWidths.diminfo[0].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":873 - * cSkeleton[newTotal,1] = cSkeleton[i,1]; - * cWidths[newTotal] = cWidths[i]; - * newTotal+=1; # <<<<<<<<<<<<<< - * - * - */ - __pyx_v_newTotal = (__pyx_v_newTotal + 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":869 - * newTotal = 0; - * for i in range(number_points): - * if (keep[i] != FLAG_MAX): # <<<<<<<<<<<<<< - * cSkeleton[newTotal,0] = cSkeleton[i,0]; - * cSkeleton[newTotal,1] = cSkeleton[i,1]; - */ - } - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":876 - * - * - * cSkeleton = cSkeleton[:newTotal, :] # <<<<<<<<<<<<<< - * cWidths = cWidths[:newTotal] - * - */ - if (unlikely(((PyObject *)__pyx_v_cSkeleton) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 876, __pyx_L1_error) - } - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_newTotal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 876, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PySlice_New(Py_None, __pyx_t_1, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 876, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 876, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_2); - PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); - __Pyx_INCREF(__pyx_slice__7); - __Pyx_GIVEREF(__pyx_slice__7); - PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_slice__7); - __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_cSkeleton), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 876, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __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, 876, __pyx_L1_error) - __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer); - __pyx_t_48 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); - if (unlikely(__pyx_t_48 < 0)) { - PyErr_Fetch(&__pyx_t_145, &__pyx_t_144, &__pyx_t_143); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer, (PyObject*)__pyx_v_cSkeleton, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_145); Py_XDECREF(__pyx_t_144); Py_XDECREF(__pyx_t_143); - __Pyx_RaiseBufferFallbackError(); - } else { - PyErr_Restore(__pyx_t_145, __pyx_t_144, __pyx_t_143); - } - __pyx_t_145 = __pyx_t_144 = __pyx_t_143 = 0; - } - __pyx_pybuffernd_cSkeleton.diminfo[0].strides = __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cSkeleton.diminfo[0].shape = __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_cSkeleton.diminfo[1].strides = __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_cSkeleton.diminfo[1].shape = __pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer.shape[1]; - if (unlikely(__pyx_t_48 < 0)) __PYX_ERR(0, 876, __pyx_L1_error) - } - __pyx_t_8 = 0; - __Pyx_DECREF_SET(__pyx_v_cSkeleton, ((PyArrayObject *)__pyx_t_2)); - __pyx_t_2 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":877 - * - * cSkeleton = cSkeleton[:newTotal, :] - * cWidths = cWidths[:newTotal] # <<<<<<<<<<<<<< - * - * return cSkeleton, cWidths - */ - if (unlikely(((PyObject *)__pyx_v_cWidths) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 877, __pyx_L1_error) - } - __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_newTotal); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 877, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = PySlice_New(Py_None, __pyx_t_2, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 877, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_cWidths), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 877, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __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, 877, __pyx_L1_error) - __pyx_t_9 = ((PyArrayObject *)__pyx_t_2); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cWidths.rcbuffer->pybuffer); - __pyx_t_48 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cWidths.rcbuffer->pybuffer, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); - if (unlikely(__pyx_t_48 < 0)) { - PyErr_Fetch(&__pyx_t_143, &__pyx_t_144, &__pyx_t_145); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cWidths.rcbuffer->pybuffer, (PyObject*)__pyx_v_cWidths, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_143); Py_XDECREF(__pyx_t_144); Py_XDECREF(__pyx_t_145); - __Pyx_RaiseBufferFallbackError(); - } else { - PyErr_Restore(__pyx_t_143, __pyx_t_144, __pyx_t_145); - } - __pyx_t_143 = __pyx_t_144 = __pyx_t_145 = 0; - } - __pyx_pybuffernd_cWidths.diminfo[0].strides = __pyx_pybuffernd_cWidths.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cWidths.diminfo[0].shape = __pyx_pybuffernd_cWidths.rcbuffer->pybuffer.shape[0]; - if (unlikely(__pyx_t_48 < 0)) __PYX_ERR(0, 877, __pyx_L1_error) - } - __pyx_t_9 = 0; - __Pyx_DECREF_SET(__pyx_v_cWidths, ((PyArrayObject *)__pyx_t_2)); - __pyx_t_2 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":879 - * cWidths = cWidths[:newTotal] - * - * return cSkeleton, cWidths # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 879, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(((PyObject *)__pyx_v_cSkeleton)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_cSkeleton)); - PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_cSkeleton)); - __Pyx_INCREF(((PyObject *)__pyx_v_cWidths)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_cWidths)); - PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_cWidths)); - __pyx_r = __pyx_t_2; - __pyx_t_2 = 0; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":633 - * - * - * def cleanSkeleton(np.ndarray[np.float_t, ndim=2] skeleton, np.ndarray[np.float_t, ndim=1] widths, double worm_seg_size): # <<<<<<<<<<<<<< - * ''' * %CLEANSKELETON Clean an 8-connected skeleton by removing any overlap and - * * %interpolating any missing points. - */ - - /* 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); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cWidths.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_iSortC.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_keep.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pSortC.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_skeleton.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_widths.rcbuffer->pybuffer); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython.cleanSkeleton", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cSkeleton.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cWidths.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_iSortC.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_keep.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pSortC.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_skeleton.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_widths.rcbuffer->pybuffer); - __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_pSortC); - __Pyx_XDECREF((PyObject *)__pyx_v_iSortC); - __Pyx_XDECREF((PyObject *)__pyx_v_cSkeleton); - __Pyx_XDECREF((PyObject *)__pyx_v_cWidths); - __Pyx_XDECREF((PyObject *)__pyx_v_keep); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 - * # 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; - PyObject *__pyx_t_7 = NULL; - char *__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); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":222 - * - * cdef int i, ndim - * cdef int endian_detector = 1 # <<<<<<<<<<<<<< - * cdef bint little_endian = ((&endian_detector)[0] != 0) - * - */ - __pyx_v_endian_detector = 1; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":223 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":225 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 - * ndim = PyArray_NDIM(self) - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":228 - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< - * raise ValueError(u"ndarray is not C contiguous") - * - */ - __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_C_CONTIGUOUS) != 0)) != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L4_bool_binop_done:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 - * ndim = PyArray_NDIM(self) - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): - * raise ValueError(u"ndarray is not C contiguous") - */ - if (unlikely(__pyx_t_1)) { - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_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__8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 229, __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, 229, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 - * ndim = PyArray_NDIM(self) - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): - * raise ValueError(u"ndarray is not C contiguous") - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 - * raise ValueError(u"ndarray is not C contiguous") - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":232 - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< - * raise ValueError(u"ndarray is not Fortran contiguous") - * - */ - __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_F_CONTIGUOUS) != 0)) != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L7_bool_binop_done:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 - * raise ValueError(u"ndarray is not C contiguous") - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): - * raise ValueError(u"ndarray is not Fortran contiguous") - */ - if (unlikely(__pyx_t_1)) { - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_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__9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 233, __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, 233, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 - * raise ValueError(u"ndarray is not C contiguous") - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): - * raise ValueError(u"ndarray is not Fortran contiguous") - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":235 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":236 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":240 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":241 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":242 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":243 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":244 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":246 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":247 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":248 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":249 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":250 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":253 - * - * cdef int t - * cdef char* f = NULL # <<<<<<<<<<<<<< - * cdef dtype descr = self.descr - * cdef int offset - */ - __pyx_v_f = NULL; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":254 - * cdef int t - * cdef char* f = NULL - * cdef dtype descr = self.descr # <<<<<<<<<<<<<< - * cdef int offset - * - */ - __pyx_t_3 = ((PyObject *)__pyx_v_self->descr); - __Pyx_INCREF(__pyx_t_3); - __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); - __pyx_t_3 = 0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":257 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":260 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":262 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 - * 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__10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 263, __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, 263, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":264 - * (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; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":265 - * 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" - */ - case NPY_UBYTE: - __pyx_v_f = ((char *)"B"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":266 - * 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" - */ - case NPY_SHORT: - __pyx_v_f = ((char *)"h"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":267 - * 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" - */ - case NPY_USHORT: - __pyx_v_f = ((char *)"H"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":268 - * 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" - */ - case NPY_INT: - __pyx_v_f = ((char *)"i"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":269 - * 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" - */ - case NPY_UINT: - __pyx_v_f = ((char *)"I"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":270 - * 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" - */ - case NPY_LONG: - __pyx_v_f = ((char *)"l"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":271 - * 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" - */ - case NPY_ULONG: - __pyx_v_f = ((char *)"L"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":272 - * 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" - */ - case NPY_LONGLONG: - __pyx_v_f = ((char *)"q"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":273 - * 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" - */ - case NPY_ULONGLONG: - __pyx_v_f = ((char *)"Q"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":274 - * 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" - */ - case NPY_FLOAT: - __pyx_v_f = ((char *)"f"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":275 - * 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" - */ - case NPY_DOUBLE: - __pyx_v_f = ((char *)"d"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":276 - * 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" - */ - case NPY_LONGDOUBLE: - __pyx_v_f = ((char *)"g"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":277 - * 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" - */ - case NPY_CFLOAT: - __pyx_v_f = ((char *)"Zf"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":278 - * 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" - */ - case NPY_CDOUBLE: - __pyx_v_f = ((char *)"Zd"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":279 - * 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: - */ - case NPY_CLONGDOUBLE: - __pyx_v_f = ((char *)"Zg"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":280 - * 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) - */ - case NPY_OBJECT: - __pyx_v_f = ((char *)"O"); - break; - default: - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":282 - * 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, 282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 282, __pyx_L1_error) - break; - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":283 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":284 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 - * info.obj = self - * - * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< - * t = descr.type_num - * if ((descr.byteorder == c'>' and little_endian) or - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":286 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":287 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":288 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":289 - * 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_8 = __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_8 == ((char *)NULL))) __PYX_ERR(1, 289, __pyx_L1_error) - __pyx_v_f = __pyx_t_8; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":292 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 - * # 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_7); - __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":296 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":298 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":776 - * - * 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, 776, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":779 - * - * 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, 779, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":782 - * - * 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, 782, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":785 - * - * 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, 785, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":788 - * - * 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, 788, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":792 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< - * return d.subarray.shape - * else: - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":794 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":801 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":802 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 - * 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, 805, __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, 805, __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, 805, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); - __pyx_t_3 = 0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":806 - * - * 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, 806, __pyx_L1_error) - } - __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 806, __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, 806, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); - __pyx_t_3 = 0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":807 - * 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, 807, __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, 807, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 807, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } else { - __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 807, __pyx_L1_error) - } - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(1, 807, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 - * 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, 809, __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, 809, __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, 809, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 - * - * 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__11, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 810, __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, 810, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":813 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 - * 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__12, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 814, __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, 814, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":824 - * - * # 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, 824, __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, 824, __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, 824, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!__pyx_t_6) break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":825 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":826 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":827 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":829 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":832 - * - * 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, 832, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); - __pyx_t_4 = 0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 - * 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__13, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 834, __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, 834, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 - * if not PyDataType_HASFIELDS(child): - * t = child.type_num - * if end - f < 5: # <<<<<<<<<<<<<< - * raise RuntimeError(u"Format string allocated too short.") - * - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":837 - * - * # 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, 837, __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, 837, __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, 837, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":838 - * # 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, 838, __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, 838, __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, 838, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":839 - * 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, 839, __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, 839, __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, 839, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":840 - * 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, 840, __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, 840, __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, 840, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":841 - * 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, 841, __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, 841, __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, 841, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":842 - * 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, 842, __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, 842, __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, 842, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":843 - * 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, 843, __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, 843, __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, 843, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":844 - * 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, 844, __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, 844, __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, 844, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":845 - * 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, 845, __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, 845, __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, 845, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":846 - * 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, 846, __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, 846, __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, 846, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":847 - * 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, 847, __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, 847, __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, 847, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":848 - * 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, 848, __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, 848, __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, 848, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":849 - * 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, 849, __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, 849, __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, 849, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":850 - * 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, 850, __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, 850, __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, 850, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":851 - * 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, 851, __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, 851, __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, 851, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":852 - * 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, 852, __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, 852, __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, 852, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":853 - * 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, 853, __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, 853, __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, 853, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":855 - * 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 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 855, __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, 855, __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, 855, __pyx_L1_error) - } - __pyx_L15:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":856 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 - * offset[0] += child.itemsize - * - * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< - * t = child.type_num - * if end - f < 5: - */ - goto __pyx_L13; - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":860 - * # 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, 860, __pyx_L1_error) - __pyx_v_f = __pyx_t_9; - } - __pyx_L13:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":861 - * # so don't output it - * f = _util_dtypestring(child, f, end, offset) - * return f # <<<<<<<<<<<<<< - * - * - */ - __pyx_r = __pyx_v_f; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 - * - * - * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< - * cdef PyObject* baseptr - * if base is None: - */ - -static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { - PyObject *__pyx_v_baseptr; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - __Pyx_RefNannySetupContext("set_array_base", 0); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 - * cdef inline void set_array_base(ndarray arr, object base): - * cdef PyObject* baseptr - * if base is None: # <<<<<<<<<<<<<< - * baseptr = NULL - * else: - */ - __pyx_t_1 = (__pyx_v_base == Py_None); - __pyx_t_2 = (__pyx_t_1 != 0); - if (__pyx_t_2) { - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":980 - * cdef PyObject* baseptr - * if base is None: - * baseptr = NULL # <<<<<<<<<<<<<< - * else: - * Py_INCREF(base) # important to do this before decref below! - */ - __pyx_v_baseptr = NULL; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 - * cdef inline void set_array_base(ndarray arr, object base): - * cdef PyObject* baseptr - * if base is None: # <<<<<<<<<<<<<< - * baseptr = NULL - * else: - */ - goto __pyx_L3; - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":982 - * baseptr = NULL - * else: - * Py_INCREF(base) # important to do this before decref below! # <<<<<<<<<<<<<< - * baseptr = base - * Py_XDECREF(arr.base) - */ - /*else*/ { - Py_INCREF(__pyx_v_base); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":983 - * else: - * Py_INCREF(base) # important to do this before decref below! - * baseptr = base # <<<<<<<<<<<<<< - * Py_XDECREF(arr.base) - * arr.base = baseptr - */ - __pyx_v_baseptr = ((PyObject *)__pyx_v_base); - } - __pyx_L3:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":984 - * Py_INCREF(base) # important to do this before decref below! - * baseptr = base - * Py_XDECREF(arr.base) # <<<<<<<<<<<<<< - * arr.base = baseptr - * - */ - Py_XDECREF(__pyx_v_arr->base); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":985 - * baseptr = base - * Py_XDECREF(arr.base) - * arr.base = baseptr # <<<<<<<<<<<<<< - * - * cdef inline object get_array_base(ndarray arr): - */ - __pyx_v_arr->base = __pyx_v_baseptr; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 - * - * - * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< - * cdef PyObject* baseptr - * if base is None: - */ - - /* function exit code */ - __Pyx_RefNannyFinishContext(); -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 - * arr.base = baseptr - * - * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< - * if arr.base is NULL: - * return None - */ - -static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - __Pyx_RefNannySetupContext("get_array_base", 0); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 - * - * cdef inline object get_array_base(ndarray arr): - * if arr.base is NULL: # <<<<<<<<<<<<<< - * return None - * else: - */ - __pyx_t_1 = ((__pyx_v_arr->base == NULL) != 0); - if (__pyx_t_1) { - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":989 - * cdef inline object get_array_base(ndarray arr): - * if arr.base is NULL: - * return None # <<<<<<<<<<<<<< - * else: - * return arr.base - */ - __Pyx_XDECREF(__pyx_r); - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 - * - * cdef inline object get_array_base(ndarray arr): - * if arr.base is NULL: # <<<<<<<<<<<<<< - * return None - * else: - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":991 - * return None - * else: - * return arr.base # <<<<<<<<<<<<<< - * - * - */ - /*else*/ { - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(((PyObject *)__pyx_v_arr->base)); - __pyx_r = ((PyObject *)__pyx_v_arr->base); - goto __pyx_L0; - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 - * arr.base = baseptr - * - * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< - * if arr.base is NULL: - * return None - */ - - /* function exit code */ - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":998 - * 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, 998, __pyx_L3_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":999 - * 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, 999, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 - * _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__14, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1000, __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, 1000, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1004 - * 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, 1004, __pyx_L3_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1005 - * 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, 1005, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 - * _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__15, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1006, __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, 1006, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1010 - * 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, 1010, __pyx_L3_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1011 - * 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, 1011, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - */ - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1012, __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, 1012, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 - * 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; -} - -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_linearSkeleton_cython(PyObject* module); /*proto*/ -static PyModuleDef_Slot __pyx_moduledef_slots[] = { - {Py_mod_create, (void*)__pyx_pymod_create}, - {Py_mod_exec, (void*)__pyx_pymod_exec_linearSkeleton_cython}, - {0, NULL} -}; -#endif - -static struct PyModuleDef __pyx_moduledef = { - PyModuleDef_HEAD_INIT, - "linearSkeleton_cython", - __pyx_k_Created_on_Sun_May_24_19_42_56, /* 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 - -static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_FLAG_MAX, __pyx_k_FLAG_MAX, sizeof(__pyx_k_FLAG_MAX), 0, 0, 1, 1}, - {&__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_n_s_ISMAX, __pyx_k_ISMAX, sizeof(__pyx_k_ISMAX), 0, 0, 1, 1}, - {&__pyx_n_s_ISMIN, __pyx_k_ISMIN, sizeof(__pyx_k_ISMIN), 0, 0, 1, 1}, - {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, - {&__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_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s_SIDE1, __pyx_k_SIDE1, sizeof(__pyx_k_SIDE1), 0, 0, 1, 1}, - {&__pyx_n_s_SIDE2, __pyx_k_SIDE2, sizeof(__pyx_k_SIDE2), 0, 0, 1, 1}, - {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_arange, __pyx_k_arange, sizeof(__pyx_k_arange), 0, 0, 1, 1}, - {&__pyx_n_s_argsort, __pyx_k_argsort, sizeof(__pyx_k_argsort), 0, 0, 1, 1}, - {&__pyx_n_s_bend_side1, __pyx_k_bend_side1, sizeof(__pyx_k_bend_side1), 0, 0, 1, 1}, - {&__pyx_n_s_bend_side2, __pyx_k_bend_side2, sizeof(__pyx_k_bend_side2), 0, 0, 1, 1}, - {&__pyx_n_s_buff_size, __pyx_k_buff_size, sizeof(__pyx_k_buff_size), 0, 0, 1, 1}, - {&__pyx_n_s_cSkeleton, __pyx_k_cSkeleton, sizeof(__pyx_k_cSkeleton), 0, 0, 1, 1}, - {&__pyx_n_s_cWidths, __pyx_k_cWidths, sizeof(__pyx_k_cWidths), 0, 0, 1, 1}, - {&__pyx_n_s_chainCodeLength2Index, __pyx_k_chainCodeLength2Index, sizeof(__pyx_k_chainCodeLength2Index), 0, 0, 1, 1}, - {&__pyx_n_s_chain_code_len, __pyx_k_chain_code_len, sizeof(__pyx_k_chain_code_len), 0, 0, 1, 1}, - {&__pyx_n_s_circNearestPoints, __pyx_k_circNearestPoints, sizeof(__pyx_k_circNearestPoints), 0, 0, 1, 1}, - {&__pyx_n_s_circOpposingNearestPoints, __pyx_k_circOpposingNearestPoints, sizeof(__pyx_k_circOpposingNearestPoints), 0, 0, 1, 1}, - {&__pyx_n_s_circOpposingPoints, __pyx_k_circOpposingPoints, sizeof(__pyx_k_circOpposingPoints), 0, 0, 1, 1}, - {&__pyx_n_s_cleanSkeleton, __pyx_k_cleanSkeleton, sizeof(__pyx_k_cleanSkeleton), 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_cnt1_size, __pyx_k_cnt1_size, sizeof(__pyx_k_cnt1_size), 0, 0, 1, 1}, - {&__pyx_n_s_cnt2_size, __pyx_k_cnt2_size, sizeof(__pyx_k_cnt2_size), 0, 0, 1, 1}, - {&__pyx_n_s_cnt_side1, __pyx_k_cnt_side1, sizeof(__pyx_k_cnt_side1), 0, 0, 1, 1}, - {&__pyx_n_s_cnt_side2, __pyx_k_cnt_side2, sizeof(__pyx_k_cnt_side2), 0, 0, 1, 1}, - {&__pyx_n_s_cnt_widths, __pyx_k_cnt_widths, sizeof(__pyx_k_cnt_widths), 0, 0, 1, 1}, - {&__pyx_n_s_contour, __pyx_k_contour, sizeof(__pyx_k_contour), 0, 0, 1, 1}, - {&__pyx_n_s_copy, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1}, - {&__pyx_n_s_cur_ind, __pyx_k_cur_ind, sizeof(__pyx_k_cur_ind), 0, 0, 1, 1}, - {&__pyx_n_s_d1, __pyx_k_d1, sizeof(__pyx_k_d1), 0, 0, 1, 1}, - {&__pyx_n_s_d12, __pyx_k_d12, sizeof(__pyx_k_d12), 0, 0, 1, 1}, - {&__pyx_n_s_d2, __pyx_k_d2, sizeof(__pyx_k_d2), 0, 0, 1, 1}, - {&__pyx_n_s_dSkeleton, __pyx_k_dSkeleton, sizeof(__pyx_k_dSkeleton), 0, 0, 1, 1}, - {&__pyx_n_s_delW, __pyx_k_delW, sizeof(__pyx_k_delW), 0, 0, 1, 1}, - {&__pyx_n_s_delX, __pyx_k_delX, sizeof(__pyx_k_delX), 0, 0, 1, 1}, - {&__pyx_n_s_delY, __pyx_k_delY, sizeof(__pyx_k_delY), 0, 0, 1, 1}, - {&__pyx_n_s_delta_dist, __pyx_k_delta_dist, sizeof(__pyx_k_delta_dist), 0, 0, 1, 1}, - {&__pyx_n_s_dist_j, __pyx_k_dist_j, sizeof(__pyx_k_dist_j), 0, 0, 1, 1}, - {&__pyx_n_s_dist_next_j, __pyx_k_dist_next_j, sizeof(__pyx_k_dist_next_j), 0, 0, 1, 1}, - {&__pyx_n_s_dnj12_0, __pyx_k_dnj12_0, sizeof(__pyx_k_dnj12_0), 0, 0, 1, 1}, - {&__pyx_n_s_dnj12_1, __pyx_k_dnj12_1, sizeof(__pyx_k_dnj12_1), 0, 0, 1, 1}, - {&__pyx_n_s_dtype, __pyx_k_dtype, sizeof(__pyx_k_dtype), 0, 0, 1, 1}, - {&__pyx_n_s_end1, __pyx_k_end1, sizeof(__pyx_k_end1), 0, 0, 1, 1}, - {&__pyx_n_s_end2, __pyx_k_end2, sizeof(__pyx_k_end2), 0, 0, 1, 1}, - {&__pyx_n_s_end_ind, __pyx_k_end_ind, sizeof(__pyx_k_end_ind), 0, 0, 1, 1}, - {&__pyx_n_s_end_ind1, __pyx_k_end_ind1, sizeof(__pyx_k_end_ind1), 0, 0, 1, 1}, - {&__pyx_n_s_end_ind2, __pyx_k_end_ind2, sizeof(__pyx_k_end_ind2), 0, 0, 1, 1}, - {&__pyx_n_s_end_side1, __pyx_k_end_side1, sizeof(__pyx_k_end_side1), 0, 0, 1, 1}, - {&__pyx_n_s_end_side2, __pyx_k_end_side2, sizeof(__pyx_k_end_side2), 0, 0, 1, 1}, - {&__pyx_n_s_first_chain_len, __pyx_k_first_chain_len, sizeof(__pyx_k_first_chain_len), 0, 0, 1, 1}, - {&__pyx_n_s_float, __pyx_k_float, sizeof(__pyx_k_float), 0, 0, 1, 1}, - {&__pyx_n_s_getHeadTailRegion, __pyx_k_getHeadTailRegion, sizeof(__pyx_k_getHeadTailRegion), 0, 0, 1, 1}, - {&__pyx_n_s_getInterBendSeeds, __pyx_k_getInterBendSeeds, sizeof(__pyx_k_getInterBendSeeds), 0, 0, 1, 1}, - {&__pyx_n_s_head_end, __pyx_k_head_end, sizeof(__pyx_k_head_end), 0, 0, 1, 1}, - {&__pyx_n_s_head_ind, __pyx_k_head_ind, sizeof(__pyx_k_head_ind), 0, 0, 1, 1}, - {&__pyx_n_s_head_start, __pyx_k_head_start, sizeof(__pyx_k_head_start), 0, 0, 1, 1}, - {&__pyx_n_s_head_tail_seg, __pyx_k_head_tail_seg, sizeof(__pyx_k_head_tail_seg), 0, 0, 1, 1}, - {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1}, - {&__pyx_n_s_iSortC, __pyx_k_iSortC, sizeof(__pyx_k_iSortC), 0, 0, 1, 1}, - {&__pyx_n_s_ii, __pyx_k_ii, sizeof(__pyx_k_ii), 0, 0, 1, 1}, - {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, - {&__pyx_n_s_inc_side1, __pyx_k_inc_side1, sizeof(__pyx_k_inc_side1), 0, 0, 1, 1}, - {&__pyx_n_s_inc_side2, __pyx_k_inc_side2, sizeof(__pyx_k_inc_side2), 0, 0, 1, 1}, - {&__pyx_n_s_index, __pyx_k_index, sizeof(__pyx_k_index), 0, 0, 1, 1}, - {&__pyx_n_s_int, __pyx_k_int, sizeof(__pyx_k_int), 0, 0, 1, 1}, - {&__pyx_n_s_interbend_side1, __pyx_k_interbend_side1, sizeof(__pyx_k_interbend_side1), 0, 0, 1, 1}, - {&__pyx_n_s_interbend_side2, __pyx_k_interbend_side2, sizeof(__pyx_k_interbend_side2), 0, 0, 1, 1}, - {&__pyx_n_s_is2Wrap, __pyx_k_is2Wrap, sizeof(__pyx_k_is2Wrap), 0, 0, 1, 1}, - {&__pyx_n_s_j, __pyx_k_j, sizeof(__pyx_k_j), 0, 0, 1, 1}, - {&__pyx_n_s_j1, __pyx_k_j1, sizeof(__pyx_k_j1), 0, 0, 1, 1}, - {&__pyx_n_s_j2, __pyx_k_j2, sizeof(__pyx_k_j2), 0, 0, 1, 1}, - {&__pyx_n_s_keep, __pyx_k_keep, sizeof(__pyx_k_keep), 0, 0, 1, 1}, - {&__pyx_n_s_last_chain_index, __pyx_k_last_chain_index, sizeof(__pyx_k_last_chain_index), 0, 0, 1, 1}, - {&__pyx_n_s_last_chain_len, __pyx_k_last_chain_len, sizeof(__pyx_k_last_chain_len), 0, 0, 1, 1}, - {&__pyx_n_s_last_index, __pyx_k_last_index, sizeof(__pyx_k_last_index), 0, 0, 1, 1}, - {&__pyx_n_s_last_index_chain, __pyx_k_last_index_chain, sizeof(__pyx_k_last_index_chain), 0, 0, 1, 1}, - {&__pyx_n_s_length, __pyx_k_length, sizeof(__pyx_k_length), 0, 0, 1, 1}, - {&__pyx_n_s_lexsort, __pyx_k_lexsort, sizeof(__pyx_k_lexsort), 0, 0, 1, 1}, - {&__pyx_n_s_m, __pyx_k_m, sizeof(__pyx_k_m), 0, 0, 1, 1}, - {&__pyx_n_s_mag1, __pyx_k_mag1, sizeof(__pyx_k_mag1), 0, 0, 1, 1}, - {&__pyx_n_s_mag2, __pyx_k_mag2, sizeof(__pyx_k_mag2), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, - {&__pyx_n_s_maxI, __pyx_k_maxI, sizeof(__pyx_k_maxI), 0, 0, 1, 1}, - {&__pyx_n_s_maxOpoints_ind, __pyx_k_maxOpoints_ind, sizeof(__pyx_k_maxOpoints_ind), 0, 0, 1, 1}, - {&__pyx_n_s_maxSkeletonOverlap, __pyx_k_maxSkeletonOverlap, sizeof(__pyx_k_maxSkeletonOverlap), 0, 0, 1, 1}, - {&__pyx_n_s_max_ind, __pyx_k_max_ind, sizeof(__pyx_k_max_ind), 0, 0, 1, 1}, - {&__pyx_n_s_max_opposite, __pyx_k_max_opposite, sizeof(__pyx_k_max_opposite), 0, 0, 1, 1}, - {&__pyx_n_s_minI, __pyx_k_minI, sizeof(__pyx_k_minI), 0, 0, 1, 1}, - {&__pyx_n_s_minOpoints_ind, __pyx_k_minOpoints_ind, sizeof(__pyx_k_minOpoints_ind), 0, 0, 1, 1}, - {&__pyx_n_s_min_ind, __pyx_k_min_ind, sizeof(__pyx_k_min_ind), 0, 0, 1, 1}, - {&__pyx_n_s_min_opposite, __pyx_k_min_opposite, sizeof(__pyx_k_min_opposite), 0, 0, 1, 1}, - {&__pyx_n_s_n_interp, __pyx_k_n_interp, sizeof(__pyx_k_n_interp), 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_near_ind, __pyx_k_near_ind, sizeof(__pyx_k_near_ind), 0, 0, 1, 1}, - {&__pyx_n_s_near_ind1, __pyx_k_near_ind1, sizeof(__pyx_k_near_ind1), 0, 0, 1, 1}, - {&__pyx_n_s_near_ind2, __pyx_k_near_ind2, sizeof(__pyx_k_near_ind2), 0, 0, 1, 1}, - {&__pyx_n_s_newTotal, __pyx_k_newTotal, sizeof(__pyx_k_newTotal), 0, 0, 1, 1}, - {&__pyx_n_s_nextI, __pyx_k_nextI, sizeof(__pyx_k_nextI), 0, 0, 1, 1}, - {&__pyx_n_s_next_j1, __pyx_k_next_j1, sizeof(__pyx_k_next_j1), 0, 0, 1, 1}, - {&__pyx_n_s_next_j2, __pyx_k_next_j2, sizeof(__pyx_k_next_j2), 0, 0, 1, 1}, - {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1}, - {&__pyx_n_s_number_points, __pyx_k_number_points, sizeof(__pyx_k_number_points), 0, 0, 1, 1}, - {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1}, - {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, - {&__pyx_n_s_opposite_ind, __pyx_k_opposite_ind, sizeof(__pyx_k_opposite_ind), 0, 0, 1, 1}, - {&__pyx_n_s_pI, __pyx_k_pI, sizeof(__pyx_k_pI), 0, 0, 1, 1}, - {&__pyx_n_s_pSortC, __pyx_k_pSortC, sizeof(__pyx_k_pSortC), 0, 0, 1, 1}, - {&__pyx_n_s_point_dist, __pyx_k_point_dist, sizeof(__pyx_k_point_dist), 0, 0, 1, 1}, - {&__pyx_n_s_points, __pyx_k_points, sizeof(__pyx_k_points), 0, 0, 1, 1}, - {&__pyx_n_s_points_ind, __pyx_k_points_ind, sizeof(__pyx_k_points_ind), 0, 0, 1, 1}, - {&__pyx_n_s_points_ind_out, __pyx_k_points_ind_out, sizeof(__pyx_k_points_ind_out), 0, 0, 1, 1}, - {&__pyx_n_s_prev_width, __pyx_k_prev_width, sizeof(__pyx_k_prev_width), 0, 0, 1, 1}, - {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_resize, __pyx_k_resize, sizeof(__pyx_k_resize), 0, 0, 1, 1}, - {&__pyx_n_s_round, __pyx_k_round, sizeof(__pyx_k_round), 0, 0, 1, 1}, - {&__pyx_n_s_s1I, __pyx_k_s1I, sizeof(__pyx_k_s1I), 0, 0, 1, 1}, - {&__pyx_n_s_s2I, __pyx_k_s2I, sizeof(__pyx_k_s2I), 0, 0, 1, 1}, - {&__pyx_n_s_scale1to2, __pyx_k_scale1to2, sizeof(__pyx_k_scale1to2), 0, 0, 1, 1}, - {&__pyx_n_s_scale2to1, __pyx_k_scale2to1, sizeof(__pyx_k_scale2to1), 0, 0, 1, 1}, - {&__pyx_n_s_search_len, __pyx_k_search_len, sizeof(__pyx_k_search_len), 0, 0, 1, 1}, - {&__pyx_n_s_side12, __pyx_k_side12, sizeof(__pyx_k_side12), 0, 0, 1, 1}, - {&__pyx_n_s_side1_size, __pyx_k_side1_size, sizeof(__pyx_k_side1_size), 0, 0, 1, 1}, - {&__pyx_n_s_side2_size, __pyx_k_side2_size, sizeof(__pyx_k_side2_size), 0, 0, 1, 1}, - {&__pyx_n_s_size, __pyx_k_size, sizeof(__pyx_k_size), 0, 0, 1, 1}, - {&__pyx_n_s_size1, __pyx_k_size1, sizeof(__pyx_k_size1), 0, 0, 1, 1}, - {&__pyx_n_s_size2, __pyx_k_size2, sizeof(__pyx_k_size2), 0, 0, 1, 1}, - {&__pyx_n_s_ske_ind, __pyx_k_ske_ind, sizeof(__pyx_k_ske_ind), 0, 0, 1, 1}, - {&__pyx_n_s_skeleton, __pyx_k_skeleton, sizeof(__pyx_k_skeleton), 0, 0, 1, 1}, - {&__pyx_n_s_skeletonize, __pyx_k_skeletonize, sizeof(__pyx_k_skeletonize), 0, 0, 1, 1}, - {&__pyx_n_s_start1, __pyx_k_start1, sizeof(__pyx_k_start1), 0, 0, 1, 1}, - {&__pyx_n_s_start2, __pyx_k_start2, sizeof(__pyx_k_start2), 0, 0, 1, 1}, - {&__pyx_n_s_start_ind, __pyx_k_start_ind, sizeof(__pyx_k_start_ind), 0, 0, 1, 1}, - {&__pyx_n_s_start_ind1, __pyx_k_start_ind1, sizeof(__pyx_k_start_ind1), 0, 0, 1, 1}, - {&__pyx_n_s_start_ind2, __pyx_k_start_ind2, sizeof(__pyx_k_start_ind2), 0, 0, 1, 1}, - {&__pyx_n_s_start_side1, __pyx_k_start_side1, sizeof(__pyx_k_start_side1), 0, 0, 1, 1}, - {&__pyx_n_s_start_side2, __pyx_k_start_side2, sizeof(__pyx_k_start_side2), 0, 0, 1, 1}, - {&__pyx_n_s_tail_end, __pyx_k_tail_end, sizeof(__pyx_k_tail_end), 0, 0, 1, 1}, - {&__pyx_n_s_tail_ind, __pyx_k_tail_ind, sizeof(__pyx_k_tail_ind), 0, 0, 1, 1}, - {&__pyx_n_s_tail_start, __pyx_k_tail_start, sizeof(__pyx_k_tail_start), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, - {&__pyx_kp_s_tierpsy_analysis_ske_create_segW, __pyx_k_tierpsy_analysis_ske_create_segW, sizeof(__pyx_k_tierpsy_analysis_ske_create_segW), 0, 0, 1, 0}, - {&__pyx_n_s_tierpsy_analysis_ske_create_segW_2, __pyx_k_tierpsy_analysis_ske_create_segW_2, sizeof(__pyx_k_tierpsy_analysis_ske_create_segW_2), 0, 0, 1, 1}, - {&__pyx_n_s_tmp, __pyx_k_tmp, sizeof(__pyx_k_tmp), 0, 0, 1, 1}, - {&__pyx_n_s_total_interbends, __pyx_k_total_interbends, sizeof(__pyx_k_total_interbends), 0, 0, 1, 1}, - {&__pyx_n_s_total_points, __pyx_k_total_points, sizeof(__pyx_k_total_points), 0, 0, 1, 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_vec_last_index, __pyx_k_vec_last_index, sizeof(__pyx_k_vec_last_index), 0, 0, 1, 1}, - {&__pyx_n_s_widths, __pyx_k_widths, sizeof(__pyx_k_widths), 0, 0, 1, 1}, - {&__pyx_n_s_worm_seg_length, __pyx_k_worm_seg_length, sizeof(__pyx_k_worm_seg_length), 0, 0, 1, 1}, - {&__pyx_n_s_worm_seg_size, __pyx_k_worm_seg_size, sizeof(__pyx_k_worm_seg_size), 0, 0, 1, 1}, - {&__pyx_n_s_wrap_end1, __pyx_k_wrap_end1, sizeof(__pyx_k_wrap_end1), 0, 0, 1, 1}, - {&__pyx_n_s_wrap_end2, __pyx_k_wrap_end2, sizeof(__pyx_k_wrap_end2), 0, 0, 1, 1}, - {&__pyx_n_s_wrap_start1, __pyx_k_wrap_start1, sizeof(__pyx_k_wrap_start1), 0, 0, 1, 1}, - {&__pyx_n_s_wrap_start2, __pyx_k_wrap_start2, sizeof(__pyx_k_wrap_start2), 0, 0, 1, 1}, - {&__pyx_n_s_x, __pyx_k_x, sizeof(__pyx_k_x), 0, 0, 1, 1}, - {&__pyx_n_s_x1, __pyx_k_x1, sizeof(__pyx_k_x1), 0, 0, 1, 1}, - {&__pyx_n_s_x2, __pyx_k_x2, sizeof(__pyx_k_x2), 0, 0, 1, 1}, - {&__pyx_n_s_x_last_index, __pyx_k_x_last_index, sizeof(__pyx_k_x_last_index), 0, 0, 1, 1}, - {&__pyx_n_s_xd, __pyx_k_xd, sizeof(__pyx_k_xd), 0, 0, 1, 1}, - {&__pyx_n_s_xprev, __pyx_k_xprev, sizeof(__pyx_k_xprev), 0, 0, 1, 1}, - {&__pyx_n_s_y, __pyx_k_y, sizeof(__pyx_k_y), 0, 0, 1, 1}, - {&__pyx_n_s_y1, __pyx_k_y1, sizeof(__pyx_k_y1), 0, 0, 1, 1}, - {&__pyx_n_s_y2, __pyx_k_y2, sizeof(__pyx_k_y2), 0, 0, 1, 1}, - {&__pyx_n_s_yd, __pyx_k_yd, sizeof(__pyx_k_yd), 0, 0, 1, 1}, - {&__pyx_n_s_yprev, __pyx_k_yprev, sizeof(__pyx_k_yprev), 0, 0, 1, 1}, - {&__pyx_n_s_zeros, __pyx_k_zeros, sizeof(__pyx_k_zeros), 0, 0, 1, 1}, - {&__pyx_n_s_zeros_like, __pyx_k_zeros_like, sizeof(__pyx_k_zeros_like), 0, 0, 1, 1}, - {0, 0, 0, 0, 0, 0, 0} -}; -static int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 175, __pyx_L1_error) - __pyx_builtin_round = __Pyx_GetBuiltinName(__pyx_n_s_round); if (!__pyx_builtin_round) __PYX_ERR(0, 833, __pyx_L1_error) - __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 229, __pyx_L1_error) - __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 810, __pyx_L1_error) - __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 1000, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -} - -static int __Pyx_InitCachedConstants(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":457 - * interbend_side1[i] = chainCodeLength2Index((chain_code_len[bend_side1[i]] + \ - * chain_code_len[bend_side1[i+1]]) / 2., chain_code_len); - * interbend_side2 = circNearestPoints(interbend_side1, bend_side2[1:], bend_side2[:total_interbends], contour); # <<<<<<<<<<<<<< - * return interbend_side1, interbend_side2 - * - */ - __pyx_slice_ = PySlice_New(__pyx_int_1, Py_None, Py_None); if (unlikely(!__pyx_slice_)) __PYX_ERR(0, 457, __pyx_L1_error) - __Pyx_GOTREF(__pyx_slice_); - __Pyx_GIVEREF(__pyx_slice_); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":625 - * ske_ind +=1; - * - * skeleton = skeleton[:ske_ind,:]; # <<<<<<<<<<<<<< - * cnt_widths = cnt_widths[:ske_ind] - * - */ - __pyx_slice__2 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__2)) __PYX_ERR(0, 625, __pyx_L1_error) - __Pyx_GOTREF(__pyx_slice__2); - __Pyx_GIVEREF(__pyx_slice__2); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":678 - * cdef int last_index = number_points - 1 - * - * cdef np.ndarray[np.int_t, ndim=1] pSortC = np.lexsort((skeleton[:,1], skeleton[:,0])) # <<<<<<<<<<<<<< - * cdef np.ndarray[np.int_t, ndim=1] iSortC = np.argsort(pSortC) - * - */ - __pyx_slice__3 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__3)) __PYX_ERR(0, 678, __pyx_L1_error) - __Pyx_GOTREF(__pyx_slice__3); - __Pyx_GIVEREF(__pyx_slice__3); - __pyx_tuple__4 = PyTuple_Pack(2, __pyx_slice__3, __pyx_int_1); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 678, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__4); - __Pyx_GIVEREF(__pyx_tuple__4); - __pyx_slice__5 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__5)) __PYX_ERR(0, 678, __pyx_L1_error) - __Pyx_GOTREF(__pyx_slice__5); - __Pyx_GIVEREF(__pyx_slice__5); - __pyx_tuple__6 = PyTuple_Pack(2, __pyx_slice__5, __pyx_int_0); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(0, 678, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__6); - __Pyx_GIVEREF(__pyx_tuple__6); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":876 - * - * - * cSkeleton = cSkeleton[:newTotal, :] # <<<<<<<<<<<<<< - * cWidths = cWidths[:newTotal] - * - */ - __pyx_slice__7 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__7)) __PYX_ERR(0, 876, __pyx_L1_error) - __Pyx_GOTREF(__pyx_slice__7); - __Pyx_GIVEREF(__pyx_slice__7); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): - * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - */ - __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 229, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__8); - __Pyx_GIVEREF(__pyx_tuple__8); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): - * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< - * - * info.buf = PyArray_DATA(self) - */ - __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 233, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__9); - __Pyx_GIVEREF(__pyx_tuple__9); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 - * 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__10 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(1, 263, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__10); - __Pyx_GIVEREF(__pyx_tuple__10); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 - * - * 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__11 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(1, 810, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__11); - __Pyx_GIVEREF(__pyx_tuple__11); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 - * 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_tuple__12 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(1, 814, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__12); - __Pyx_GIVEREF(__pyx_tuple__12); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 - * 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__13 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(1, 834, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__13); - __Pyx_GIVEREF(__pyx_tuple__13); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 - * _import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ - __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(1, 1000, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__14); - __Pyx_GIVEREF(__pyx_tuple__14); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ - __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(1, 1006, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__15); - __Pyx_GIVEREF(__pyx_tuple__15); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - */ - __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(1, 1012, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__16); - __Pyx_GIVEREF(__pyx_tuple__16); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":27 - * return a if a 0) else ind + last_index; - * - * def circOpposingPoints(np.ndarray[np.int_t, ndim=1] points_ind, \ # <<<<<<<<<<<<<< - * int start_ind, int end_ind, int vec_last_index, np.ndarray[np.float64_t, ndim=1] chain_code_len): - * '''%CIRCOPPOSINGPOINTS Find the equivalent point indices on the opposing side - */ - __pyx_tuple__19 = PyTuple_Pack(19, __pyx_n_s_points_ind, __pyx_n_s_start_ind, __pyx_n_s_end_ind, __pyx_n_s_vec_last_index, __pyx_n_s_chain_code_len, __pyx_n_s_start_ind1, __pyx_n_s_start_ind2, __pyx_n_s_end_ind1, __pyx_n_s_end_ind2, __pyx_n_s_side1_size, __pyx_n_s_side2_size, __pyx_n_s_scale1to2, __pyx_n_s_scale2to1, __pyx_n_s_ii, __pyx_n_s_cur_ind, __pyx_n_s_delta_dist, __pyx_n_s_point_dist, __pyx_n_s_points_ind_out, __pyx_n_s_tmp); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 106, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__19); - __Pyx_GIVEREF(__pyx_tuple__19); - __pyx_codeobj__20 = (PyObject*)__Pyx_PyCode_New(5, 0, 19, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__19, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tierpsy_analysis_ske_create_segW, __pyx_n_s_circOpposingPoints, 106, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__20)) __PYX_ERR(0, 106, __pyx_L1_error) - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":223 - * return min_r, near_ind - * - * def circNearestPoints(np.ndarray[np.int_t, ndim=1] points_ind, \ # <<<<<<<<<<<<<< - * np.ndarray[np.int_t, ndim=1] min_ind, \ - * np.ndarray[np.int_t, ndim=1] max_ind, \ - */ - __pyx_tuple__21 = PyTuple_Pack(12, __pyx_n_s_points_ind, __pyx_n_s_min_ind, __pyx_n_s_max_ind, __pyx_n_s_x, __pyx_n_s_total_points, __pyx_n_s_last_index, __pyx_n_s_near_ind, __pyx_n_s_i, __pyx_n_s_near_ind1, __pyx_n_s_near_ind2, __pyx_n_s_mag1, __pyx_n_s_mag2); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 223, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__21); - __Pyx_GIVEREF(__pyx_tuple__21); - __pyx_codeobj__22 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tierpsy_analysis_ske_create_segW, __pyx_n_s_circNearestPoints, 223, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__22)) __PYX_ERR(0, 223, __pyx_L1_error) - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":296 - * return chainCodeLength2Index(cur_len, lenghts); - * - * def circOpposingNearestPoints(np.ndarray[np.int_t, ndim=1] points_ind, np.ndarray[np.float64_t, ndim=2] x, \ # <<<<<<<<<<<<<< - * int start_ind, int end_ind, double search_len, np.ndarray[np.float64_t, ndim=1] chain_code_len): - * '''%CIRCOPPOSINGNEARESTPOINTS Find the nearest equivalent point indices on the - */ - __pyx_tuple__23 = PyTuple_Pack(27, __pyx_n_s_points_ind, __pyx_n_s_x, __pyx_n_s_start_ind, __pyx_n_s_end_ind, __pyx_n_s_search_len, __pyx_n_s_chain_code_len, __pyx_n_s_x_last_index, __pyx_n_s_last_chain_index, __pyx_n_s_start1, __pyx_n_s_start2, __pyx_n_s_end1, __pyx_n_s_end2, __pyx_n_s_ii, __pyx_n_s_cur_ind, __pyx_n_s_min_opposite, __pyx_n_s_max_opposite, __pyx_n_s_opposite_ind, __pyx_n_s_points_ind_out, __pyx_n_s_SIDE1, __pyx_n_s_SIDE2, __pyx_n_s_ISMAX, __pyx_n_s_ISMIN, __pyx_n_s_is2Wrap, __pyx_n_s_tmp, __pyx_n_s_side12, __pyx_n_s_minOpoints_ind, __pyx_n_s_maxOpoints_ind); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__23); - __Pyx_GIVEREF(__pyx_tuple__23); - __pyx_codeobj__24 = (PyObject*)__Pyx_PyCode_New(6, 0, 27, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__23, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tierpsy_analysis_ske_create_segW, __pyx_n_s_circOpposingNearestPoints, 296, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__24)) __PYX_ERR(0, 296, __pyx_L1_error) - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":423 - * return C - * - * def getHeadTailRegion(int head_ind, int tail_ind, np.ndarray[np.float64_t, ndim=1] chain_code_len, double worm_seg_length): # <<<<<<<<<<<<<< - * cdef double head_tail_seg = worm_seg_length * 4; - * cdef int head_start, head_end, tail_start, tail_end - */ - __pyx_tuple__25 = PyTuple_Pack(12, __pyx_n_s_head_ind, __pyx_n_s_tail_ind, __pyx_n_s_chain_code_len, __pyx_n_s_worm_seg_length, __pyx_n_s_head_tail_seg, __pyx_n_s_head_start, __pyx_n_s_head_end, __pyx_n_s_tail_start, __pyx_n_s_tail_end, __pyx_n_s_tmp, __pyx_n_s_last_chain_len, __pyx_n_s_first_chain_len); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 423, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__25); - __Pyx_GIVEREF(__pyx_tuple__25); - __pyx_codeobj__26 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__25, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tierpsy_analysis_ske_create_segW, __pyx_n_s_getHeadTailRegion, 423, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__26)) __PYX_ERR(0, 423, __pyx_L1_error) - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":447 - * return head_start, head_end, tail_start, tail_end - * - * def getInterBendSeeds(np.ndarray[np.int_t, ndim=1] bend_side1, np.ndarray[np.int_t, ndim=1] bend_side2, \ # <<<<<<<<<<<<<< - * np.ndarray[np.float64_t, ndim=2] contour, np.ndarray[np.float64_t, ndim=1] chain_code_len): - * cdef int total_interbends = bend_side1.size-1 - */ - __pyx_tuple__27 = PyTuple_Pack(8, __pyx_n_s_bend_side1, __pyx_n_s_bend_side2, __pyx_n_s_contour, __pyx_n_s_chain_code_len, __pyx_n_s_total_interbends, __pyx_n_s_interbend_side1, __pyx_n_s_interbend_side2, __pyx_n_s_i); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 447, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__27); - __Pyx_GIVEREF(__pyx_tuple__27); - __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(4, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__27, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tierpsy_analysis_ske_create_segW, __pyx_n_s_getInterBendSeeds, 447, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(0, 447, __pyx_L1_error) - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":483 - * return ((cnt_size - start_side + 1 + end_side) / inc_side, 0, cnt_size-1) - * - * def skeletonize(int start_side1, int end_side1, int inc_side1, \ # <<<<<<<<<<<<<< - * int start_side2, int end_side2, int inc_side2, \ - * np.ndarray[np.float_t, ndim=2] cnt_side1, np.ndarray[np.float_t, ndim=2] cnt_side2): - */ - __pyx_tuple__29 = PyTuple_Pack(30, __pyx_n_s_start_side1, __pyx_n_s_end_side1, __pyx_n_s_inc_side1, __pyx_n_s_start_side2, __pyx_n_s_end_side2, __pyx_n_s_inc_side2, __pyx_n_s_cnt_side1, __pyx_n_s_cnt_side2, __pyx_n_s_cnt1_size, __pyx_n_s_cnt2_size, __pyx_n_s_wrap_end1, __pyx_n_s_wrap_start1, __pyx_n_s_wrap_end2, __pyx_n_s_wrap_start2, __pyx_n_s_size1, __pyx_n_s_size2, __pyx_n_s_number_points, __pyx_n_s_skeleton, __pyx_n_s_cnt_widths, __pyx_n_s_j1, __pyx_n_s_j2, __pyx_n_s_next_j1, __pyx_n_s_next_j2, __pyx_n_s_d1, __pyx_n_s_d2, __pyx_n_s_d12, __pyx_n_s_dnj12_0, __pyx_n_s_dnj12_1, __pyx_n_s_prev_width, __pyx_n_s_ske_ind); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 483, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__29); - __Pyx_GIVEREF(__pyx_tuple__29); - __pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(8, 0, 30, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tierpsy_analysis_ske_create_segW, __pyx_n_s_skeletonize, 483, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(0, 483, __pyx_L1_error) - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":633 - * - * - * def cleanSkeleton(np.ndarray[np.float_t, ndim=2] skeleton, np.ndarray[np.float_t, ndim=1] widths, double worm_seg_size): # <<<<<<<<<<<<<< - * ''' * %CLEANSKELETON Clean an 8-connected skeleton by removing any overlap and - * * %interpolating any missing points. - */ - __pyx_tuple__31 = PyTuple_Pack(39, __pyx_n_s_skeleton, __pyx_n_s_widths, __pyx_n_s_worm_seg_size, __pyx_n_s_FLAG_MAX, __pyx_n_s_maxSkeletonOverlap, __pyx_n_s_number_points, __pyx_n_s_last_index, __pyx_n_s_pSortC, __pyx_n_s_iSortC, __pyx_n_s_buff_size, __pyx_n_s_cSkeleton, __pyx_n_s_cWidths, __pyx_n_s_keep, __pyx_n_s_minI, __pyx_n_s_maxI, __pyx_n_s_s1I, __pyx_n_s_i, __pyx_n_s_s2I, __pyx_n_s_pI, __pyx_n_s_dSkeleton, __pyx_n_s_newTotal, __pyx_n_s_j, __pyx_n_s_m, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_y1, __pyx_n_s_y2, __pyx_n_s_delY, __pyx_n_s_delX, __pyx_n_s_delW, __pyx_n_s_points, __pyx_n_s_xd, __pyx_n_s_yd, __pyx_n_s_xprev, __pyx_n_s_yprev, __pyx_n_s_n_interp, __pyx_n_s_nextI); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 633, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__31); - __Pyx_GIVEREF(__pyx_tuple__31); - __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(3, 0, 39, 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_tierpsy_analysis_ske_create_segW, __pyx_n_s_cleanSkeleton, 633, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 633, __pyx_L1_error) - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __Pyx_RefNannyFinishContext(); - return -1; -} - -static 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_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 int __Pyx_modinit_global_init_code(void); /*proto*/ -static int __Pyx_modinit_variable_export_code(void); /*proto*/ -static int __Pyx_modinit_function_export_code(void); /*proto*/ -static int __Pyx_modinit_type_init_code(void); /*proto*/ -static int __Pyx_modinit_type_import_code(void); /*proto*/ -static int __Pyx_modinit_variable_import_code(void); /*proto*/ -static 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_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_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "type", - #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 - sizeof(PyTypeObject), - #else - sizeof(PyHeapTypeObject), - #endif - 0); if (unlikely(!__pyx_ptype_7cpython_4type_type)) __PYX_ERR(2, 9, __pyx_L1_error) - __pyx_ptype_5numpy_dtype = __Pyx_ImportType("numpy", "dtype", sizeof(PyArray_Descr), 0); if (unlikely(!__pyx_ptype_5numpy_dtype)) __PYX_ERR(1, 164, __pyx_L1_error) - __pyx_ptype_5numpy_flatiter = __Pyx_ImportType("numpy", "flatiter", sizeof(PyArrayIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_flatiter)) __PYX_ERR(1, 186, __pyx_L1_error) - __pyx_ptype_5numpy_broadcast = __Pyx_ImportType("numpy", "broadcast", sizeof(PyArrayMultiIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_broadcast)) __PYX_ERR(1, 190, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType("numpy", "ndarray", sizeof(PyArrayObject), 0); if (unlikely(!__pyx_ptype_5numpy_ndarray)) __PYX_ERR(1, 199, __pyx_L1_error) - __pyx_ptype_5numpy_ufunc = __Pyx_ImportType("numpy", "ufunc", sizeof(PyUFuncObject), 0); if (unlikely(!__pyx_ptype_5numpy_ufunc)) __PYX_ERR(1, 872, __pyx_L1_error) - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __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 - __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); - /*--- Function import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - - -#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 -#ifndef CYTHON_SMALL_CODE -#if defined(__clang__) - #define CYTHON_SMALL_CODE -#elif defined(__GNUC__) && (!(defined(__cplusplus)) || (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 4))) - #define CYTHON_SMALL_CODE __attribute__((optimize("Os"))) -#else - #define CYTHON_SMALL_CODE -#endif -#endif - - -#if PY_MAJOR_VERSION < 3 -__Pyx_PyMODINIT_FUNC initlinearSkeleton_cython(void) CYTHON_SMALL_CODE; /*proto*/ -__Pyx_PyMODINIT_FUNC initlinearSkeleton_cython(void) -#else -__Pyx_PyMODINIT_FUNC PyInit_linearSkeleton_cython(void) CYTHON_SMALL_CODE; /*proto*/ -__Pyx_PyMODINIT_FUNC PyInit_linearSkeleton_cython(void) -#if CYTHON_PEP489_MULTI_PHASE_INIT -{ - return PyModuleDef_Init(&__pyx_moduledef); -} -static int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name) { - PyObject *value = PyObject_GetAttrString(spec, from_name); - int result = 0; - if (likely(value)) { - result = PyDict_SetItemString(moddict, to_name, value); - Py_DECREF(value); - } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { - PyErr_Clear(); - } else { - result = -1; - } - return result; -} -static PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) { - PyObject *module = NULL, *moddict, *modname; - 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__") < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__") < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__") < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__") < 0)) goto bad; - return module; -bad: - Py_XDECREF(module); - return NULL; -} - - -static int __pyx_pymod_exec_linearSkeleton_cython(PyObject *__pyx_pyinit_module) -#endif -#endif -{ - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m && __pyx_m == __pyx_pyinit_module) return 0; - #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_linearSkeleton_cython(void)", 0); - if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __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("linearSkeleton_cython", __pyx_methods, __pyx_k_Created_on_Sun_May_24_19_42_56, 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) - __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error) - #if CYTHON_COMPILING_IN_PYPY - Py_INCREF(__pyx_b); - #endif - 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_tierpsy__analysis__ske_create__segWormPython__cython_files__linearSkeleton_cython) { - if (PyObject_SetAttrString(__pyx_m, "__name__", __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, "tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython")) { - if (unlikely(PyDict_SetItemString(modules, "tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error) - } - } - #endif - /*--- Builtin init code ---*/ - if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Constants init code ---*/ - if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __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(); - (void)__Pyx_modinit_type_init_code(); - if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); - /*--- Execution code ---*/ - #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) - if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":11 - * """ - * - * import numpy as np # <<<<<<<<<<<<<< - * cimport numpy as np - * cimport cython - */ - __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, -1); 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_np, __pyx_t_1) < 0) __PYX_ERR(0, 11, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":27 - * return a if a 0) else ind + last_index; - * - * def circOpposingPoints(np.ndarray[np.int_t, ndim=1] points_ind, \ # <<<<<<<<<<<<<< - * int start_ind, int end_ind, int vec_last_index, np.ndarray[np.float64_t, ndim=1] chain_code_len): - * '''%CIRCOPPOSINGPOINTS Find the equivalent point indices on the opposing side - */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_3circOpposingPoints, NULL, __pyx_n_s_tierpsy_analysis_ske_create_segW_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 106, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_circOpposingPoints, __pyx_t_1) < 0) __PYX_ERR(0, 106, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":223 - * return min_r, near_ind - * - * def circNearestPoints(np.ndarray[np.int_t, ndim=1] points_ind, \ # <<<<<<<<<<<<<< - * np.ndarray[np.int_t, ndim=1] min_ind, \ - * np.ndarray[np.int_t, ndim=1] max_ind, \ - */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_5circNearestPoints, NULL, __pyx_n_s_tierpsy_analysis_ske_create_segW_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 223, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_circNearestPoints, __pyx_t_1) < 0) __PYX_ERR(0, 223, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":296 - * return chainCodeLength2Index(cur_len, lenghts); - * - * def circOpposingNearestPoints(np.ndarray[np.int_t, ndim=1] points_ind, np.ndarray[np.float64_t, ndim=2] x, \ # <<<<<<<<<<<<<< - * int start_ind, int end_ind, double search_len, np.ndarray[np.float64_t, ndim=1] chain_code_len): - * '''%CIRCOPPOSINGNEARESTPOINTS Find the nearest equivalent point indices on the - */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_7circOpposingNearestPoints, NULL, __pyx_n_s_tierpsy_analysis_ske_create_segW_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_circOpposingNearestPoints, __pyx_t_1) < 0) __PYX_ERR(0, 296, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":423 - * return C - * - * def getHeadTailRegion(int head_ind, int tail_ind, np.ndarray[np.float64_t, ndim=1] chain_code_len, double worm_seg_length): # <<<<<<<<<<<<<< - * cdef double head_tail_seg = worm_seg_length * 4; - * cdef int head_start, head_end, tail_start, tail_end - */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_9getHeadTailRegion, NULL, __pyx_n_s_tierpsy_analysis_ske_create_segW_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 423, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_getHeadTailRegion, __pyx_t_1) < 0) __PYX_ERR(0, 423, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":447 - * return head_start, head_end, tail_start, tail_end - * - * def getInterBendSeeds(np.ndarray[np.int_t, ndim=1] bend_side1, np.ndarray[np.int_t, ndim=1] bend_side2, \ # <<<<<<<<<<<<<< - * np.ndarray[np.float64_t, ndim=2] contour, np.ndarray[np.float64_t, ndim=1] chain_code_len): - * cdef int total_interbends = bend_side1.size-1 - */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_11getInterBendSeeds, NULL, __pyx_n_s_tierpsy_analysis_ske_create_segW_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 447, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_getInterBendSeeds, __pyx_t_1) < 0) __PYX_ERR(0, 447, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":483 - * return ((cnt_size - start_side + 1 + end_side) / inc_side, 0, cnt_size-1) - * - * def skeletonize(int start_side1, int end_side1, int inc_side1, \ # <<<<<<<<<<<<<< - * int start_side2, int end_side2, int inc_side2, \ - * np.ndarray[np.float_t, ndim=2] cnt_side1, np.ndarray[np.float_t, ndim=2] cnt_side2): - */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_13skeletonize, NULL, __pyx_n_s_tierpsy_analysis_ske_create_segW_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 483, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_skeletonize, __pyx_t_1) < 0) __PYX_ERR(0, 483, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":633 - * - * - * def cleanSkeleton(np.ndarray[np.float_t, ndim=2] skeleton, np.ndarray[np.float_t, ndim=1] widths, double worm_seg_size): # <<<<<<<<<<<<<< - * ''' * %CLEANSKELETON Clean an 8-connected skeleton by removing any overlap and - * * %interpolating any missing points. - */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_21linearSkeleton_cython_15cleanSkeleton, NULL, __pyx_n_s_tierpsy_analysis_ske_create_segW_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 633, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_cleanSkeleton, __pyx_t_1) < 0) __PYX_ERR(0, 633, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.pyx":1 - * # -*- coding: utf-8 -*- # <<<<<<<<<<<<<< - * # cython: profile=False - * # cython: boundscheck=True - */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< - * try: - * _import_umath() - */ - - /*--- Wrapped vars code ---*/ - - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - if (__pyx_m) { - if (__pyx_d) { - __Pyx_AddTraceback("init tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython", 0, __pyx_lineno, __pyx_filename); - } - Py_DECREF(__pyx_m); __pyx_m = 0; - } else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_ImportError, "init tierpsy.analysis.ske_create.segWormPython.cython_files.linearSkeleton_cython"); - } - __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((char *)modname); - if (!m) goto end; - p = PyObject_GetAttrString(m, (char *)"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; -} - -/* 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; -} - -/* 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; - } - } - } -} - -/* BufferGetAndValidate */ - static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) { - if (unlikely(info->buf == NULL)) return; - if (info->suboffsets == __Pyx_minusones) info->suboffsets = NULL; - __Pyx_ReleaseBuffer(info); -} -static void __Pyx_ZeroBuffer(Py_buffer* buf) { - buf->buf = NULL; - buf->obj = NULL; - buf->strides = __Pyx_zeros; - buf->shape = __Pyx_zeros; - buf->suboffsets = __Pyx_minusones; -} -static int __Pyx__GetBufferAndValidate( - Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, - int nd, int cast, __Pyx_BufFmt_StackElem* stack) -{ - buf->buf = NULL; - if (unlikely(__Pyx_GetBuffer(obj, buf, flags) == -1)) { - __Pyx_ZeroBuffer(buf); - return -1; - } - if (unlikely(buf->ndim != nd)) { - PyErr_Format(PyExc_ValueError, - "Buffer has wrong number of dimensions (expected %d, got %d)", - nd, buf->ndim); - goto fail; - } - if (!cast) { - __Pyx_BufFmt_Context ctx; - __Pyx_BufFmt_Init(&ctx, stack, dtype); - if (!__Pyx_BufFmt_CheckString(&ctx, buf->format)) goto fail; - } - if (unlikely((unsigned)buf->itemsize != dtype->size)) { - PyErr_Format(PyExc_ValueError, - "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "d byte%s) does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "d byte%s)", - buf->itemsize, (buf->itemsize > 1) ? "s" : "", - dtype->name, (Py_ssize_t)dtype->size, (dtype->size > 1) ? "s" : ""); - goto fail; - } - if (buf->suboffsets == NULL) buf->suboffsets = __Pyx_minusones; - return 0; -fail:; - __Pyx_SafeReleaseBuffer(buf); - return -1; -} - -/* PyIntBinop */ - #if !CYTHON_COMPILING_IN_PYPY -static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED int inplace) { - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_CheckExact(op1))) { - const long b = intval; - long x; - long a = PyInt_AS_LONG(op1); - x = (long)((unsigned long)a - b); - if (likely((x^a) >= 0 || (x^~b) >= 0)) - return PyInt_FromLong(x); - return PyLong_Type.tp_as_number->nb_subtract(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_subtract(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("subtract", return NULL) - result = ((double)a) - (double)b; - PyFPE_END_PROTECT(result) - return PyFloat_FromDouble(result); - } - return (inplace ? PyNumber_InPlaceSubtract : PyNumber_Subtract)(op1, op2); -} -#endif - -/* BufferIndexError */ - static void __Pyx_RaiseBufferIndexError(int axis) { - PyErr_Format(PyExc_IndexError, - "Out of bounds on buffer access (axis %d)", axis); -} - -/* 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 - -/* 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))); - 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)meth)) (self, args, nargs, NULL); - } else { - return (*((__Pyx_PyCFunctionFast)meth)) (self, args, nargs); - } -} -#endif - -/* PyFunctionFastCall */ - #if CYTHON_FAST_PYCALL -#include "frameobject.h" -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 = f->f_localsplus; - 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, int 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, nargs, - k, (int)nk, - d, (int)nd, kwdefs, closure); -#else - result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, - args, 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 - -/* 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_TypeCheck(func, __pyx_CyFunctionType))) { -#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 - -/* 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; -} - -/* GetModuleGlobalName */ - static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name) { - 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); - if (likely(result)) { - Py_INCREF(result); - } else if (unlikely(PyErr_Occurred())) { - result = NULL; - } else { -#else - result = PyDict_GetItem(__pyx_d, name); - if (likely(result)) { - Py_INCREF(result); - } else { -#endif -#else - result = PyObject_GetItem(__pyx_d, name); - if (!result) { - PyErr_Clear(); -#endif - result = __Pyx_GetBuiltinName(name); - } - return result; -} - -/* 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"); -} - -/* RaiseNoneIterError */ - static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -} - -/* 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 -} - -/* BufferFallbackError */ - static void __Pyx_RaiseBufferFallbackError(void) { - PyErr_SetString(PyExc_ValueError, - "Buffer acquisition failed on assignment; and then reacquiring the old buffer failed too!"); -} - -/* 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((0 <= wrapped_i) & (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((0 <= wrapped_i) & (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((n >= 0) & (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((n >= 0) & (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 - -/* PyIntFromDouble */ - #if PY_MAJOR_VERSION < 3 -static CYTHON_INLINE PyObject* __Pyx_PyInt_FromDouble(double value) { - if (value >= (double)LONG_MIN && value <= (double)LONG_MAX) { - return PyInt_FromLong((long)value); - } - return PyLong_FromDouble(value); -} -#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()) { - PyObject* args = PyTuple_Pack(1, key); - if (likely(args)) - PyErr_SetObject(PyExc_KeyError, args); - Py_XDECREF(args); - } - return NULL; - } - Py_INCREF(value); - return value; -} -#endif - -/* SaveResetException */ - #if CYTHON_FAST_THREAD_STATE -static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { - #if PY_VERSION_HEX >= 0x030700A2 - *type = tstate->exc_state.exc_type; - *value = tstate->exc_state.exc_value; - *tb = tstate->exc_state.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 PY_VERSION_HEX >= 0x030700A2 - tmp_type = tstate->exc_state.exc_type; - tmp_value = tstate->exc_state.exc_value; - tmp_tb = tstate->exc_state.exc_traceback; - tstate->exc_state.exc_type = type; - tstate->exc_state.exc_value = value; - tstate->exc_state.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 PY_VERSION_HEX >= 0x030700A2 - tmp_type = tstate->exc_state.exc_type; - tmp_value = tstate->exc_state.exc_value; - tmp_tb = tstate->exc_state.exc_traceback; - tstate->exc_state.exc_type = local_type; - tstate->exc_state.exc_value = local_value; - tstate->exc_state.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; -} - -/* 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, 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; -} - -/* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK -static int __Pyx_CLineForTraceback(CYTHON_UNUSED 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)) { - use_cline = __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 (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); - 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 - - - /* 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) -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_Py_intptr_t(Py_intptr_t value) { - const Py_intptr_t neg_one = (Py_intptr_t) -1, const_zero = (Py_intptr_t) 0; - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(Py_intptr_t) < sizeof(long)) { - return PyInt_FromLong((long) value); - } else if (sizeof(Py_intptr_t) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(Py_intptr_t) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -#endif - } - } else { - if (sizeof(Py_intptr_t) <= sizeof(long)) { - return PyInt_FromLong((long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(Py_intptr_t) <= 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(Py_intptr_t), - little, !is_unsigned); - } -} - -/* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - const long neg_one = (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); - } -} - -/* 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 = 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 = 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, -1); - } - } 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 = 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 = 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, -1); - } - } 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_enum__NPY_TYPES(enum NPY_TYPES value) { - const enum NPY_TYPES neg_one = (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); - } -} - -/* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - const int neg_one = (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 npy_long __Pyx_PyInt_As_npy_long(PyObject *x) { - const npy_long neg_one = (npy_long) -1, const_zero = (npy_long) 0; - const int is_unsigned = neg_one > const_zero; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { - if (sizeof(npy_long) < sizeof(long)) { - __PYX_VERIFY_RETURN_INT(npy_long, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } - return (npy_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 (npy_long) 0; - case 1: __PYX_VERIFY_RETURN_INT(npy_long, digit, digits[0]) - case 2: - if (8 * sizeof(npy_long) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(npy_long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(npy_long) >= 2 * PyLong_SHIFT) { - return (npy_long) (((((npy_long)digits[1]) << PyLong_SHIFT) | (npy_long)digits[0])); - } - } - break; - case 3: - if (8 * sizeof(npy_long) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(npy_long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(npy_long) >= 3 * PyLong_SHIFT) { - return (npy_long) (((((((npy_long)digits[2]) << PyLong_SHIFT) | (npy_long)digits[1]) << PyLong_SHIFT) | (npy_long)digits[0])); - } - } - break; - case 4: - if (8 * sizeof(npy_long) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(npy_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(npy_long) >= 4 * PyLong_SHIFT) { - return (npy_long) (((((((((npy_long)digits[3]) << PyLong_SHIFT) | (npy_long)digits[2]) << PyLong_SHIFT) | (npy_long)digits[1]) << PyLong_SHIFT) | (npy_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 (npy_long) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } -#endif - if (sizeof(npy_long) <= sizeof(unsigned long)) { - __PYX_VERIFY_RETURN_INT_EXC(npy_long, unsigned long, PyLong_AsUnsignedLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(npy_long) <= sizeof(unsigned PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(npy_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 (npy_long) 0; - case -1: __PYX_VERIFY_RETURN_INT(npy_long, sdigit, (sdigit) (-(sdigit)digits[0])) - case 1: __PYX_VERIFY_RETURN_INT(npy_long, digit, +digits[0]) - case -2: - if (8 * sizeof(npy_long) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(npy_long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(npy_long) - 1 > 2 * PyLong_SHIFT) { - return (npy_long) (((npy_long)-1)*(((((npy_long)digits[1]) << PyLong_SHIFT) | (npy_long)digits[0]))); - } - } - break; - case 2: - if (8 * sizeof(npy_long) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(npy_long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(npy_long) - 1 > 2 * PyLong_SHIFT) { - return (npy_long) ((((((npy_long)digits[1]) << PyLong_SHIFT) | (npy_long)digits[0]))); - } - } - break; - case -3: - if (8 * sizeof(npy_long) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(npy_long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(npy_long) - 1 > 3 * PyLong_SHIFT) { - return (npy_long) (((npy_long)-1)*(((((((npy_long)digits[2]) << PyLong_SHIFT) | (npy_long)digits[1]) << PyLong_SHIFT) | (npy_long)digits[0]))); - } - } - break; - case 3: - if (8 * sizeof(npy_long) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(npy_long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(npy_long) - 1 > 3 * PyLong_SHIFT) { - return (npy_long) ((((((((npy_long)digits[2]) << PyLong_SHIFT) | (npy_long)digits[1]) << PyLong_SHIFT) | (npy_long)digits[0]))); - } - } - break; - case -4: - if (8 * sizeof(npy_long) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(npy_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(npy_long) - 1 > 4 * PyLong_SHIFT) { - return (npy_long) (((npy_long)-1)*(((((((((npy_long)digits[3]) << PyLong_SHIFT) | (npy_long)digits[2]) << PyLong_SHIFT) | (npy_long)digits[1]) << PyLong_SHIFT) | (npy_long)digits[0]))); - } - } - break; - case 4: - if (8 * sizeof(npy_long) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(npy_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(npy_long) - 1 > 4 * PyLong_SHIFT) { - return (npy_long) ((((((((((npy_long)digits[3]) << PyLong_SHIFT) | (npy_long)digits[2]) << PyLong_SHIFT) | (npy_long)digits[1]) << PyLong_SHIFT) | (npy_long)digits[0]))); - } - } - break; - } -#endif - if (sizeof(npy_long) <= sizeof(long)) { - __PYX_VERIFY_RETURN_INT_EXC(npy_long, long, PyLong_AsLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(npy_long) <= sizeof(PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(npy_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 - npy_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 (npy_long) -1; - } - } else { - npy_long val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (npy_long) -1; - val = __Pyx_PyInt_As_npy_long(tmp); - Py_DECREF(tmp); - return val; - } -raise_overflow: - PyErr_SetString(PyExc_OverflowError, - "value too large to convert to npy_long"); - return (npy_long) -1; -raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to npy_long"); - return (npy_long) -1; -} - -/* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - const long neg_one = (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; -} - -/* 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 CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) { - if (likely(err == exc_type)) return 1; - if (likely(PyExceptionClass_Check(err))) { - return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type); - } - return PyErr_GivenExceptionMatches(err, exc_type); -} -static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) { - if (likely(err == exc_type1 || err == exc_type2)) return 1; - if (likely(PyExceptionClass_Check(err))) { - return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2); - } - return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2)); -} -#endif - -/* 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; -} - -/* ModuleImport */ - #ifndef __PYX_HAVE_RT_ImportModule -#define __PYX_HAVE_RT_ImportModule -static PyObject *__Pyx_ImportModule(const char *name) { - PyObject *py_name = 0; - PyObject *py_module = 0; - py_name = __Pyx_PyIdentifier_FromString(name); - if (!py_name) - goto bad; - py_module = PyImport_Import(py_name); - Py_DECREF(py_name); - return py_module; -bad: - Py_XDECREF(py_name); - return 0; -} -#endif - -/* TypeImport */ - #ifndef __PYX_HAVE_RT_ImportType -#define __PYX_HAVE_RT_ImportType -static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, - size_t size, int strict) -{ - PyObject *py_module = 0; - PyObject *result = 0; - PyObject *py_name = 0; - char warning[200]; - Py_ssize_t basicsize; -#ifdef Py_LIMITED_API - PyObject *py_basicsize; -#endif - py_module = __Pyx_ImportModule(module_name); - if (!py_module) - goto bad; - py_name = __Pyx_PyIdentifier_FromString(class_name); - if (!py_name) - goto bad; - result = PyObject_GetAttr(py_module, py_name); - Py_DECREF(py_name); - py_name = 0; - Py_DECREF(py_module); - py_module = 0; - 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 (!strict && (size_t)basicsize > size) { - PyOS_snprintf(warning, sizeof(warning), - "%s.%s size changed, may indicate binary incompatibility. Expected %zd, got %zd", - module_name, class_name, basicsize, size); - if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad; - } - else if ((size_t)basicsize != size) { - PyErr_Format(PyExc_ValueError, - "%.200s.%.200s has the wrong size, try recompiling. Expected %zd, got %zd", - module_name, class_name, basicsize, size); - goto bad; - } - return (PyTypeObject *)result; -bad: - Py_XDECREF(py_module); - Py_XDECREF(result); - return NULL; -} -#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 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(x); - } -#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 */ diff --git a/tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.cp35-win_amd64.pyd b/tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.cp35-win_amd64.pyd deleted file mode 100755 index 70a6c4213cb09f45099f58ffc5890358d2dee8c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144384 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 s^OPPhi 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 L!j#Vk==c8tD=wC@ diff --git a/tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.cpython-35m-darwin.so b/tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.cpython-35m-darwin.so deleted file mode 100755 index e1f6ca9a919b12eab3498e35d100be639999c186..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 212508 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�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 Qz45=*_5*d~SSa*=0YT`{sQ>@~ diff --git a/tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.c b/tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.c deleted file mode 100644 index 9b7a4611..00000000 --- a/tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.c +++ /dev/null @@ -1,9856 +0,0 @@ -/* Generated by Cython 0.28.3 */ - -/* BEGIN: Cython Metadata -{ - "distutils": { - "depends": [], - "name": "tierpsy.analysis.ske_create.segWormPython.cython_files.segWorm_cython", - "sources": [ - "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx" - ] - }, - "module_name": "tierpsy.analysis.ske_create.segWormPython.cython_files.segWorm_cython" -} -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_28_3" -#define CYTHON_FUTURE_DIVISION 0 -#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 -#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 -#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 (0 && PY_VERSION_HEX >= 0x03050000) - #endif - #ifndef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) - #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 -#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" - #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 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 -#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))))) -#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_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; // PyThread_create_key reports success always -} -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 // TSS (Thread Specific Storage) API -#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)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) -#define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? 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__tierpsy__analysis__ske_create__segWormPython__cython_files__segWorm_cython -#define __PYX_HAVE_API__tierpsy__analysis__ske_create__segWormPython__cython_files__segWorm_cython -/* Early includes */ -#include -#include -#include "numpy/arrayobject.h" -#include "numpy/ufuncobject.h" -#include -#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_DEFAULT 0 -#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))) ) -#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 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)); - 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[] = { - "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx", - "__init__.pxd", - "type.pxd", -}; -/* 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":730 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":731 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":732 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":733 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":737 - * #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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":738 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":739 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":740 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":744 - * #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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":745 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":754 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":755 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":756 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":758 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":759 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":760 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":762 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":763 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":765 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":766 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":767 - * 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; -/* 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 ---*/ - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":769 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":770 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":771 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":773 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< - * - * cdef inline object PyArray_MultiIterNew1(a): - */ -typedef npy_cdouble __pyx_t_5numpy_complex_t; - -/* --- 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); - -/* 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 - -/* Profile.proto */ -#ifndef CYTHON_PROFILE -#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON - #define CYTHON_PROFILE 0 -#else - #define CYTHON_PROFILE 1 -#endif -#endif -#ifndef CYTHON_TRACE_NOGIL - #define CYTHON_TRACE_NOGIL 0 -#else - #if CYTHON_TRACE_NOGIL && !defined(CYTHON_TRACE) - #define CYTHON_TRACE 1 - #endif -#endif -#ifndef CYTHON_TRACE - #define CYTHON_TRACE 0 -#endif -#if CYTHON_TRACE - #undef CYTHON_PROFILE_REUSE_FRAME -#endif -#ifndef CYTHON_PROFILE_REUSE_FRAME - #define CYTHON_PROFILE_REUSE_FRAME 0 -#endif -#if CYTHON_PROFILE || CYTHON_TRACE - #include "compile.h" - #include "frameobject.h" - #include "traceback.h" - #if CYTHON_PROFILE_REUSE_FRAME - #define CYTHON_FRAME_MODIFIER static - #define CYTHON_FRAME_DEL(frame) - #else - #define CYTHON_FRAME_MODIFIER - #define CYTHON_FRAME_DEL(frame) Py_CLEAR(frame) - #endif - #define __Pyx_TraceDeclarations\ - static PyCodeObject *__pyx_frame_code = NULL;\ - CYTHON_FRAME_MODIFIER PyFrameObject *__pyx_frame = NULL;\ - int __Pyx_use_tracing = 0; - #define __Pyx_TraceFrameInit(codeobj)\ - if (codeobj) __pyx_frame_code = (PyCodeObject*) codeobj; - #ifdef WITH_THREAD - #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error)\ - if (nogil) {\ - if (CYTHON_TRACE_NOGIL) {\ - PyThreadState *tstate;\ - PyGILState_STATE state = PyGILState_Ensure();\ - tstate = __Pyx_PyThreadState_Current;\ - if (unlikely(tstate->use_tracing) && !tstate->tracing &&\ - (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\ - __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\ - }\ - PyGILState_Release(state);\ - if (unlikely(__Pyx_use_tracing < 0)) goto_error;\ - }\ - } else {\ - PyThreadState* tstate = PyThreadState_GET();\ - if (unlikely(tstate->use_tracing) && !tstate->tracing &&\ - (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\ - __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\ - if (unlikely(__Pyx_use_tracing < 0)) goto_error;\ - }\ - } - #else - #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error)\ - { PyThreadState* tstate = PyThreadState_GET();\ - if (unlikely(tstate->use_tracing) && !tstate->tracing &&\ - (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\ - __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\ - if (unlikely(__Pyx_use_tracing < 0)) goto_error;\ - }\ - } - #endif - #define __Pyx_TraceException()\ - if (likely(!__Pyx_use_tracing)); else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ - if (tstate->use_tracing &&\ - (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\ - tstate->tracing++;\ - tstate->use_tracing = 0;\ - PyObject *exc_info = __Pyx_GetExceptionTuple(tstate);\ - if (exc_info) {\ - if (CYTHON_TRACE && tstate->c_tracefunc)\ - tstate->c_tracefunc(\ - tstate->c_traceobj, __pyx_frame, PyTrace_EXCEPTION, exc_info);\ - tstate->c_profilefunc(\ - tstate->c_profileobj, __pyx_frame, PyTrace_EXCEPTION, exc_info);\ - Py_DECREF(exc_info);\ - }\ - tstate->use_tracing = 1;\ - tstate->tracing--;\ - }\ - } - static void __Pyx_call_return_trace_func(PyThreadState *tstate, PyFrameObject *frame, PyObject *result) { - PyObject *type, *value, *traceback; - __Pyx_ErrFetchInState(tstate, &type, &value, &traceback); - tstate->tracing++; - tstate->use_tracing = 0; - if (CYTHON_TRACE && tstate->c_tracefunc) - tstate->c_tracefunc(tstate->c_traceobj, frame, PyTrace_RETURN, result); - if (tstate->c_profilefunc) - tstate->c_profilefunc(tstate->c_profileobj, frame, PyTrace_RETURN, result); - CYTHON_FRAME_DEL(frame); - tstate->use_tracing = 1; - tstate->tracing--; - __Pyx_ErrRestoreInState(tstate, type, value, traceback); - } - #ifdef WITH_THREAD - #define __Pyx_TraceReturn(result, nogil)\ - if (likely(!__Pyx_use_tracing)); else {\ - if (nogil) {\ - if (CYTHON_TRACE_NOGIL) {\ - PyThreadState *tstate;\ - PyGILState_STATE state = PyGILState_Ensure();\ - tstate = __Pyx_PyThreadState_Current;\ - if (tstate->use_tracing) {\ - __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\ - }\ - PyGILState_Release(state);\ - }\ - } else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ - if (tstate->use_tracing) {\ - __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\ - }\ - }\ - } - #else - #define __Pyx_TraceReturn(result, nogil)\ - if (likely(!__Pyx_use_tracing)); else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ - if (tstate->use_tracing) {\ - __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\ - }\ - } - #endif - static PyCodeObject *__Pyx_createFrameCodeObject(const char *funcname, const char *srcfile, int firstlineno); - static int __Pyx_TraceSetupAndCall(PyCodeObject** code, PyFrameObject** frame, PyThreadState* tstate, const char *funcname, const char *srcfile, int firstlineno); -#else - #define __Pyx_TraceDeclarations - #define __Pyx_TraceFrameInit(codeobj) - #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error) if ((1)); else goto_error; - #define __Pyx_TraceException() - #define __Pyx_TraceReturn(result, nogil) -#endif -#if CYTHON_TRACE - static int __Pyx_call_line_trace_func(PyThreadState *tstate, PyFrameObject *frame, int lineno) { - int ret; - PyObject *type, *value, *traceback; - __Pyx_ErrFetchInState(tstate, &type, &value, &traceback); - __Pyx_PyFrame_SetLineNumber(frame, lineno); - tstate->tracing++; - tstate->use_tracing = 0; - ret = tstate->c_tracefunc(tstate->c_traceobj, frame, PyTrace_LINE, NULL); - tstate->use_tracing = 1; - tstate->tracing--; - if (likely(!ret)) { - __Pyx_ErrRestoreInState(tstate, type, value, traceback); - } else { - Py_XDECREF(type); - Py_XDECREF(value); - Py_XDECREF(traceback); - } - return ret; - } - #ifdef WITH_THREAD - #define __Pyx_TraceLine(lineno, nogil, goto_error)\ - if (likely(!__Pyx_use_tracing)); else {\ - if (nogil) {\ - if (CYTHON_TRACE_NOGIL) {\ - int ret = 0;\ - PyThreadState *tstate;\ - PyGILState_STATE state = PyGILState_Ensure();\ - tstate = __Pyx_PyThreadState_Current;\ - if (unlikely(tstate->use_tracing && tstate->c_tracefunc && __pyx_frame->f_trace)) {\ - ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\ - }\ - PyGILState_Release(state);\ - if (unlikely(ret)) goto_error;\ - }\ - } else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ - if (unlikely(tstate->use_tracing && tstate->c_tracefunc && __pyx_frame->f_trace)) {\ - int ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\ - if (unlikely(ret)) goto_error;\ - }\ - }\ - } - #else - #define __Pyx_TraceLine(lineno, nogil, goto_error)\ - if (likely(!__Pyx_use_tracing)); else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ - if (unlikely(tstate->use_tracing && tstate->c_tracefunc && __pyx_frame->f_trace)) {\ - int ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\ - if (unlikely(ret)) goto_error;\ - }\ - } - #endif -#else - #define __Pyx_TraceLine(lineno, nogil, goto_error) if ((1)); else goto_error; -#endif - -/* WriteUnraisableException.proto */ -static void __Pyx_WriteUnraisable(const char *name, int clineno, - int lineno, const char *filename, - int full_traceback, int nogil); - -/* 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); - -/* 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); - -/* BufferGetAndValidate.proto */ -#define __Pyx_GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack)\ - ((obj == Py_None || obj == NULL) ?\ - (__Pyx_ZeroBuffer(buf), 0) :\ - __Pyx__GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack)) -static int __Pyx__GetBufferAndValidate(Py_buffer* buf, PyObject* obj, - __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack); -static void __Pyx_ZeroBuffer(Py_buffer* buf); -static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info); -static Py_ssize_t __Pyx_minusones[] = { -1, -1, -1, -1, -1, -1, -1, -1 }; -static Py_ssize_t __Pyx_zeros[] = { 0, 0, 0, 0, 0, 0, 0, 0 }; - -/* GetModuleGlobalName.proto */ -static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(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 - -/* ExtTypeTest.proto */ -static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); - -#define __Pyx_BufPtrStrided2d(type, buf, i0, s0, i1, s1) (type)((char*)buf + i0 * s0 + i1 * s1) -#define __Pyx_BufPtrStrided1d(type, buf, i0, s0) (type)((char*)buf + i0 * s0) -/* 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); - -/* RaiseException.proto */ -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - -/* 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, int nargs, PyObject *kwargs); -#else -#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) -#endif -#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); - -/* 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 - -/* RaiseTooManyValuesToUnpack.proto */ -static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); - -/* RaiseNeedMoreValuesToUnpack.proto */ -static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); - -/* RaiseNoneIterError.proto */ -static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); - -/* 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 - -/* Import.proto */ -static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); - -/* 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); - -/* 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; - -#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 - - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(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_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_enum__NPY_TYPES(enum NPY_TYPES value); - -/* CIntFromPy.proto */ -static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); - -/* CIntFromPy.proto */ -static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -/* 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) - -/* CheckBinaryVersion.proto */ -static int __Pyx_check_binary_version(void); - -/* PyIdentifierFromString.proto */ -#if !defined(__Pyx_PyIdentifier_FromString) -#if PY_MAJOR_VERSION < 3 - #define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s) -#else - #define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s) -#endif -#endif - -/* ModuleImport.proto */ -static PyObject *__Pyx_ImportModule(const char *name); - -/* TypeImport.proto */ -static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict); - -/* InitStrings.proto */ -static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); - - -/* 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 'cython' */ - -/* Module declarations from 'libc.math' */ - -/* Module declarations from 'tierpsy.analysis.ske_create.segWormPython.cython_files.segWorm_cython' */ -static CYTHON_INLINE double __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_absDiff(double, double); /*proto*/ -static double __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_calculate_displacement(double, double); /*proto*/ -static CYTHON_INLINE double __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_getSign(double); /*proto*/ -static PyObject *__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_computeFractionalPixel(PyArrayObject *, int, int, double, double *); /*proto*/ -static CYTHON_INLINE double __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_getEdgeLengthLeft(double, double, double); /*proto*/ -static CYTHON_INLINE double __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_getEdgeLengthRight(double, double, double); /*proto*/ -static CYTHON_INLINE int __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_plusCircIndex(int, int); /*proto*/ -static CYTHON_INLINE int __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_minusCircIndex(int, int); /*proto*/ -static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_float_t = { "float_t", NULL, sizeof(__pyx_t_5numpy_float_t), { 0 }, 0, 'R', 0, 0 }; -#define __Pyx_MODULE_NAME "tierpsy.analysis.ske_create.segWormPython.cython_files.segWorm_cython" -extern int __pyx_module_is_main_tierpsy__analysis__ske_create__segWormPython__cython_files__segWorm_cython; -int __pyx_module_is_main_tierpsy__analysis__ske_create__segWormPython__cython_files__segWorm_cython = 0; - -/* Implementation of 'tierpsy.analysis.ske_create.segWormPython.cython_files.segWorm_cython' */ -static PyObject *__pyx_builtin_range; -static PyObject *__pyx_builtin_ValueError; -static PyObject *__pyx_builtin_RuntimeError; -static PyObject *__pyx_builtin_ImportError; -static const char __pyx_k_i[] = "i"; -static const char __pyx_k_p[] = "p"; -static const char __pyx_k_a1[] = "a1"; -static const char __pyx_k_a2[] = "a2"; -static const char __pyx_k_np[] = "np"; -static const char __pyx_k_p1[] = "p1"; -static const char __pyx_k_p2[] = "p2"; -static const char __pyx_k_pv[] = "pv"; -static const char __pyx_k_dPx[] = "dPx"; -static const char __pyx_k_dPy[] = "dPy"; -static const char __pyx_k_main[] = "__main__"; -static const char __pyx_k_ones[] = "ones"; -static const char __pyx_k_test[] = "__test__"; -static const char __pyx_k_angle[] = "angle"; -static const char __pyx_k_dtype[] = "dtype"; -static const char __pyx_k_edge1[] = "edge1"; -static const char __pyx_k_edge2[] = "edge2"; -static const char __pyx_k_float[] = "float"; -static const char __pyx_k_numpy[] = "numpy"; -static const char __pyx_k_range[] = "range"; -static const char __pyx_k_sqrt2[] = "sqrt2"; -static const char __pyx_k_zeros[] = "zeros"; -static const char __pyx_k_angles[] = "angles"; -static const char __pyx_k_import[] = "__import__"; -static const char __pyx_k_nextE1[] = "nextE1"; -static const char __pyx_k_p1_ind[] = "p1_ind"; -static const char __pyx_k_p2_ind[] = "p2_ind"; -static const char __pyx_k_points[] = "points"; -static const char __pyx_k_pv_ind[] = "pv_ind"; -static const char __pyx_k_lengths[] = "lengths"; -static const char __pyx_k_lastIndex[] = "lastIndex"; -static const char __pyx_k_pv_length[] = "pv_length"; -static const char __pyx_k_ValueError[] = "ValueError"; -static const char __pyx_k_edgeLength[] = "edgeLength"; -static const char __pyx_k_last_index[] = "last_index"; -static const char __pyx_k_nextP1_ind[] = "nextP1_ind"; -static const char __pyx_k_prevP2_ind[] = "prevP2_ind"; -static const char __pyx_k_ImportError[] = "ImportError"; -static const char __pyx_k_delta_edge1[] = "delta_edge1"; -static const char __pyx_k_delta_edge2[] = "delta_edge2"; -static const char __pyx_k_last_length[] = "last_length"; -static const char __pyx_k_RuntimeError[] = "RuntimeError"; -static const char __pyx_k_chainCodeLengths[] = "chainCodeLengths"; -static const char __pyx_k_number_of_points[] = "number_of_points"; -static const char __pyx_k_circCurvature_old[] = "circCurvature_old"; -static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; -static const char __pyx_k_circComputeChainCodeLengths[] = "circComputeChainCodeLengths"; -static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; -static const char __pyx_k_Created_on_Wed_May_20_14_56_35[] = "\nCreated on Wed May 20 14:56:35 2015\n\n@author: ajaver\n"; -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_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; -static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; -static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; -static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; -static const char __pyx_k_tierpsy_analysis_ske_create_segW[] = "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx"; -static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; -static const char __pyx_k_tierpsy_analysis_ske_create_segW_2[] = "tierpsy.analysis.ske_create.segWormPython.cython_files.segWorm_cython"; -static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; -static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; -static PyObject *__pyx_n_s_ImportError; -static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; -static PyObject *__pyx_n_s_RuntimeError; -static PyObject *__pyx_n_s_ValueError; -static PyObject *__pyx_n_s_a1; -static PyObject *__pyx_n_s_a2; -static PyObject *__pyx_n_s_angle; -static PyObject *__pyx_n_s_angles; -static PyObject *__pyx_n_s_chainCodeLengths; -static PyObject *__pyx_n_s_circComputeChainCodeLengths; -static PyObject *__pyx_n_s_circCurvature_old; -static PyObject *__pyx_n_s_cline_in_traceback; -static PyObject *__pyx_n_s_dPx; -static PyObject *__pyx_n_s_dPy; -static PyObject *__pyx_n_s_delta_edge1; -static PyObject *__pyx_n_s_delta_edge2; -static PyObject *__pyx_n_s_dtype; -static PyObject *__pyx_n_s_edge1; -static PyObject *__pyx_n_s_edge2; -static PyObject *__pyx_n_s_edgeLength; -static PyObject *__pyx_n_s_float; -static PyObject *__pyx_n_s_i; -static PyObject *__pyx_n_s_import; -static PyObject *__pyx_n_s_lastIndex; -static PyObject *__pyx_n_s_last_index; -static PyObject *__pyx_n_s_last_length; -static PyObject *__pyx_n_s_lengths; -static PyObject *__pyx_n_s_main; -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_nextE1; -static PyObject *__pyx_n_s_nextP1_ind; -static PyObject *__pyx_n_s_np; -static PyObject *__pyx_n_s_number_of_points; -static PyObject *__pyx_n_s_numpy; -static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; -static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; -static PyObject *__pyx_n_s_ones; -static PyObject *__pyx_n_s_p; -static PyObject *__pyx_n_s_p1; -static PyObject *__pyx_n_s_p1_ind; -static PyObject *__pyx_n_s_p2; -static PyObject *__pyx_n_s_p2_ind; -static PyObject *__pyx_n_s_points; -static PyObject *__pyx_n_s_prevP2_ind; -static PyObject *__pyx_n_s_pv; -static PyObject *__pyx_n_s_pv_ind; -static PyObject *__pyx_n_s_pv_length; -static PyObject *__pyx_n_s_range; -static PyObject *__pyx_n_s_sqrt2; -static PyObject *__pyx_n_s_test; -static PyObject *__pyx_kp_s_tierpsy_analysis_ske_create_segW; -static PyObject *__pyx_n_s_tierpsy_analysis_ske_create_segW_2; -static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; -static PyObject *__pyx_n_s_zeros; -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_circComputeChainCodeLengths(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_points); /* proto */ -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_2circCurvature_old(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_points, double __pyx_v_edgeLength, PyArrayObject *__pyx_v_chainCodeLengths); /* 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 PyObject *__pyx_codeobj_; -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_tuple__10; -static PyObject *__pyx_tuple__11; -static PyObject *__pyx_tuple__12; -static PyObject *__pyx_tuple__13; -static PyObject *__pyx_codeobj__2; -/* Late includes */ - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":19 - * from libc.math cimport sqrt, atan2, M_PI, abs - * - * cdef inline double absDiff(double a, double b): # <<<<<<<<<<<<<< - * return a-b if a>b else b-a - * - */ - -static CYTHON_INLINE double __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_absDiff(double __pyx_v_a, double __pyx_v_b) { - double __pyx_r; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - double __pyx_t_1; - __Pyx_RefNannySetupContext("absDiff", 0); - __Pyx_TraceCall("absDiff", __pyx_f[0], 19, 0, __PYX_ERR(0, 19, __pyx_L1_error)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":20 - * - * cdef inline double absDiff(double a, double b): - * return a-b if a>b else b-a # <<<<<<<<<<<<<< - * - * cdef double calculate_displacement(double dPx, double dPy): - */ - if (((__pyx_v_a > __pyx_v_b) != 0)) { - __pyx_t_1 = (__pyx_v_a - __pyx_v_b); - } else { - __pyx_t_1 = (__pyx_v_b - __pyx_v_a); - } - __pyx_r = __pyx_t_1; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":19 - * from libc.math cimport sqrt, atan2, M_PI, abs - * - * cdef inline double absDiff(double a, double b): # <<<<<<<<<<<<<< - * return a-b if a>b else b-a - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_WriteUnraisable("tierpsy.analysis.ske_create.segWormPython.cython_files.segWorm_cython.absDiff", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); - __pyx_r = 0; - __pyx_L0:; - __Pyx_TraceReturn(Py_None, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":22 - * return a-b if a>b else b-a - * - * cdef double calculate_displacement(double dPx, double dPy): # <<<<<<<<<<<<<< - * #//% No change or we walked in a straight line. - * if (dPx ==0 or dPy ==0): - */ - -static double __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_calculate_displacement(double __pyx_v_dPx, double __pyx_v_dPy) { - double __pyx_r; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - __Pyx_RefNannySetupContext("calculate_displacement", 0); - __Pyx_TraceCall("calculate_displacement", __pyx_f[0], 22, 0, __PYX_ERR(0, 22, __pyx_L1_error)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":24 - * cdef double calculate_displacement(double dPx, double dPy): - * #//% No change or we walked in a straight line. - * if (dPx ==0 or dPy ==0): # <<<<<<<<<<<<<< - * return dPx + dPy; - * #//% We walked one point diagonally. - */ - __pyx_t_2 = ((__pyx_v_dPx == 0.0) != 0); - if (!__pyx_t_2) { - } else { - __pyx_t_1 = __pyx_t_2; - goto __pyx_L4_bool_binop_done; - } - __pyx_t_2 = ((__pyx_v_dPy == 0.0) != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L4_bool_binop_done:; - if (__pyx_t_1) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":25 - * #//% No change or we walked in a straight line. - * if (dPx ==0 or dPy ==0): - * return dPx + dPy; # <<<<<<<<<<<<<< - * #//% We walked one point diagonally. - * elif dPx ==1 and dPy ==1: - */ - __pyx_r = (__pyx_v_dPx + __pyx_v_dPy); - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":24 - * cdef double calculate_displacement(double dPx, double dPy): - * #//% No change or we walked in a straight line. - * if (dPx ==0 or dPy ==0): # <<<<<<<<<<<<<< - * return dPx + dPy; - * #//% We walked one point diagonally. - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":27 - * return dPx + dPy; - * #//% We walked one point diagonally. - * elif dPx ==1 and dPy ==1: # <<<<<<<<<<<<<< - * return 1.4142135623730951; #sqrt(2) - * #//% We walked fractionally or more than one point. - */ - __pyx_t_2 = ((__pyx_v_dPx == 1.0) != 0); - if (__pyx_t_2) { - } else { - __pyx_t_1 = __pyx_t_2; - goto __pyx_L6_bool_binop_done; - } - __pyx_t_2 = ((__pyx_v_dPy == 1.0) != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L6_bool_binop_done:; - if (__pyx_t_1) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":28 - * #//% We walked one point diagonally. - * elif dPx ==1 and dPy ==1: - * return 1.4142135623730951; #sqrt(2) # <<<<<<<<<<<<<< - * #//% We walked fractionally or more than one point. - * else: - */ - __pyx_r = 1.4142135623730951; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":27 - * return dPx + dPy; - * #//% We walked one point diagonally. - * elif dPx ==1 and dPy ==1: # <<<<<<<<<<<<<< - * return 1.4142135623730951; #sqrt(2) - * #//% We walked fractionally or more than one point. - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":31 - * #//% We walked fractionally or more than one point. - * else: - * return sqrt(dPx*dPx + dPy*dPy); # <<<<<<<<<<<<<< - * - * def circComputeChainCodeLengths(np.ndarray[np.float_t, ndim=2] points): - */ - /*else*/ { - __pyx_r = sqrt(((__pyx_v_dPx * __pyx_v_dPx) + (__pyx_v_dPy * __pyx_v_dPy))); - goto __pyx_L0; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":22 - * return a-b if a>b else b-a - * - * cdef double calculate_displacement(double dPx, double dPy): # <<<<<<<<<<<<<< - * #//% No change or we walked in a straight line. - * if (dPx ==0 or dPy ==0): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_WriteUnraisable("tierpsy.analysis.ske_create.segWormPython.cython_files.segWorm_cython.calculate_displacement", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); - __pyx_r = 0; - __pyx_L0:; - __Pyx_TraceReturn(Py_None, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":33 - * return sqrt(dPx*dPx + dPy*dPy); - * - * def circComputeChainCodeLengths(np.ndarray[np.float_t, ndim=2] points): # <<<<<<<<<<<<<< - * ''' - * %CIRCCOMPUTECHAINCODELENGTHS Compute the chain-code length, at each point, - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_1circComputeChainCodeLengths(PyObject *__pyx_self, PyObject *__pyx_v_points); /*proto*/ -static char __pyx_doc_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_circComputeChainCodeLengths[] = "\n %CIRCCOMPUTECHAINCODELENGTHS Compute the chain-code length, at each point,\n % for a circularly-connected, continuous line of points.\n %\n % LENGTHS = CIRCCOMPUTECHAINCODELENGTHS(POINTS)\n %\n % Input:\n % points - the circularly-connected, continuous line of points on\n % which to measure the chain-code length\n %\n % Output:\n % lengths - the chain-code length at each point\n %\n % See also CHAINCODELENGTH2INDEX, COMPUTECHAINCODELENGTHS\n %\n %\n % \302\251 Medical Research Council 2012\n % You will not remove any copyright or other notices from the Software;\n % you must reproduce all copyright notices and other proprietary\n % notices on any copies of the Software.\n "; -static PyMethodDef __pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_1circComputeChainCodeLengths = {"circComputeChainCodeLengths", (PyCFunction)__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_1circComputeChainCodeLengths, METH_O, __pyx_doc_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_circComputeChainCodeLengths}; -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_1circComputeChainCodeLengths(PyObject *__pyx_self, PyObject *__pyx_v_points) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("circComputeChainCodeLengths (wrapper)", 0); - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_points), __pyx_ptype_5numpy_ndarray, 1, "points", 0))) __PYX_ERR(0, 33, __pyx_L1_error) - __pyx_r = __pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_circComputeChainCodeLengths(__pyx_self, ((PyArrayObject *)__pyx_v_points)); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_circComputeChainCodeLengths(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_points) { - int __pyx_v_number_of_points; - CYTHON_UNUSED double __pyx_v_sqrt2; - int __pyx_v_lastIndex; - double __pyx_v_dPx; - double __pyx_v_dPy; - PyArrayObject *__pyx_v_lengths = 0; - int __pyx_v_i; - __Pyx_LocalBuf_ND __pyx_pybuffernd_lengths; - __Pyx_Buffer __pyx_pybuffer_lengths; - __Pyx_LocalBuf_ND __pyx_pybuffernd_points; - __Pyx_Buffer __pyx_pybuffer_points; - PyObject *__pyx_r = NULL; - __Pyx_TraceDeclarations - __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; - PyArrayObject *__pyx_t_6 = NULL; - Py_ssize_t __pyx_t_7; - Py_ssize_t __pyx_t_8; - Py_ssize_t __pyx_t_9; - Py_ssize_t __pyx_t_10; - Py_ssize_t __pyx_t_11; - 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; - int __pyx_t_18; - Py_ssize_t __pyx_t_19; - Py_ssize_t __pyx_t_20; - Py_ssize_t __pyx_t_21; - Py_ssize_t __pyx_t_22; - Py_ssize_t __pyx_t_23; - Py_ssize_t __pyx_t_24; - Py_ssize_t __pyx_t_25; - Py_ssize_t __pyx_t_26; - Py_ssize_t __pyx_t_27; - Py_ssize_t __pyx_t_28; - __Pyx_TraceFrameInit(__pyx_codeobj_) - __Pyx_RefNannySetupContext("circComputeChainCodeLengths", 0); - __Pyx_TraceCall("circComputeChainCodeLengths", __pyx_f[0], 33, 0, __PYX_ERR(0, 33, __pyx_L1_error)); - __pyx_pybuffer_lengths.pybuffer.buf = NULL; - __pyx_pybuffer_lengths.refcount = 0; - __pyx_pybuffernd_lengths.data = NULL; - __pyx_pybuffernd_lengths.rcbuffer = &__pyx_pybuffer_lengths; - __pyx_pybuffer_points.pybuffer.buf = NULL; - __pyx_pybuffer_points.refcount = 0; - __pyx_pybuffernd_points.data = NULL; - __pyx_pybuffernd_points.rcbuffer = &__pyx_pybuffer_points; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_points.rcbuffer->pybuffer, (PyObject*)__pyx_v_points, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 33, __pyx_L1_error) - } - __pyx_pybuffernd_points.diminfo[0].strides = __pyx_pybuffernd_points.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_points.diminfo[0].shape = __pyx_pybuffernd_points.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_points.diminfo[1].strides = __pyx_pybuffernd_points.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_points.diminfo[1].shape = __pyx_pybuffernd_points.rcbuffer->pybuffer.shape[1]; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":55 - * % notices on any copies of the Software. - * ''' - * cdef int number_of_points = points.shape[0]; # <<<<<<<<<<<<<< - * #//% Pre-compute values. - * cdef double sqrt2 = sqrt(2); - */ - __pyx_v_number_of_points = (__pyx_v_points->dimensions[0]); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":57 - * cdef int number_of_points = points.shape[0]; - * #//% Pre-compute values. - * cdef double sqrt2 = sqrt(2); # <<<<<<<<<<<<<< - * cdef int lastIndex = number_of_points-1; - * - */ - __pyx_v_sqrt2 = sqrt(2.0); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":58 - * #//% Pre-compute values. - * cdef double sqrt2 = sqrt(2); - * cdef int lastIndex = number_of_points-1; # <<<<<<<<<<<<<< - * - * #//% Measure the difference between subsequent points. - */ - __pyx_v_lastIndex = (__pyx_v_number_of_points - 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":62 - * #//% Measure the difference between subsequent points. - * cdef double dPx, dPy; - * cdef np.ndarray[np.float_t, ndim=1] lengths = np.ones(number_of_points, dtype = np.float); # <<<<<<<<<<<<<< - * cdef int i - * - */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); 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_ones); 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 = __Pyx_PyInt_From_int(__pyx_v_number_of_points); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 62, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_1); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 62, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_float); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 62, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 62, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 62, __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_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 62, __pyx_L1_error) - __pyx_t_6 = ((PyArrayObject *)__pyx_t_5); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lengths.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { - __pyx_v_lengths = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_lengths.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 62, __pyx_L1_error) - } else {__pyx_pybuffernd_lengths.diminfo[0].strides = __pyx_pybuffernd_lengths.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lengths.diminfo[0].shape = __pyx_pybuffernd_lengths.rcbuffer->pybuffer.shape[0]; - } - } - __pyx_t_6 = 0; - __pyx_v_lengths = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":65 - * cdef int i - * - * dPx = absDiff(points[0,0], points[lastIndex,0]); # <<<<<<<<<<<<<< - * dPy = absDiff(points[0,1], points[lastIndex,1]); - * lengths[0] = calculate_displacement(dPx, dPy) - */ - __pyx_t_7 = 0; - __pyx_t_8 = 0; - __pyx_t_9 = __pyx_v_lastIndex; - __pyx_t_10 = 0; - __pyx_v_dPx = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_8, __pyx_pybuffernd_points.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_9, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_10, __pyx_pybuffernd_points.diminfo[1].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":66 - * - * dPx = absDiff(points[0,0], points[lastIndex,0]); - * dPy = absDiff(points[0,1], points[lastIndex,1]); # <<<<<<<<<<<<<< - * lengths[0] = calculate_displacement(dPx, dPy) - * - */ - __pyx_t_11 = 0; - __pyx_t_12 = 1; - __pyx_t_13 = __pyx_v_lastIndex; - __pyx_t_14 = 1; - __pyx_v_dPy = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_12, __pyx_pybuffernd_points.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_14, __pyx_pybuffernd_points.diminfo[1].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":67 - * dPx = absDiff(points[0,0], points[lastIndex,0]); - * dPy = absDiff(points[0,1], points[lastIndex,1]); - * lengths[0] = calculate_displacement(dPx, dPy) # <<<<<<<<<<<<<< - * - * #//% Measure the chain code length. - */ - __pyx_t_15 = 0; - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_lengths.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_lengths.diminfo[0].strides) = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_calculate_displacement(__pyx_v_dPx, __pyx_v_dPy); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":70 - * - * #//% Measure the chain code length. - * for i in range(1, number_of_points): # <<<<<<<<<<<<<< - * #//% Measure the difference between subsequent points. - * dPx = absDiff(points[i,0], points[i-1,0]); - */ - __pyx_t_16 = __pyx_v_number_of_points; - __pyx_t_17 = __pyx_t_16; - for (__pyx_t_18 = 1; __pyx_t_18 < __pyx_t_17; __pyx_t_18+=1) { - __pyx_v_i = __pyx_t_18; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":72 - * for i in range(1, number_of_points): - * #//% Measure the difference between subsequent points. - * dPx = absDiff(points[i,0], points[i-1,0]); # <<<<<<<<<<<<<< - * dPy = absDiff(points[i,1], points[i-1,1]); - * lengths[i] = lengths[i-1] + calculate_displacement(dPx, dPy) - */ - __pyx_t_19 = __pyx_v_i; - __pyx_t_20 = 0; - __pyx_t_21 = (__pyx_v_i - 1); - __pyx_t_22 = 0; - __pyx_v_dPx = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_20, __pyx_pybuffernd_points.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_22, __pyx_pybuffernd_points.diminfo[1].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":73 - * #//% Measure the difference between subsequent points. - * dPx = absDiff(points[i,0], points[i-1,0]); - * dPy = absDiff(points[i,1], points[i-1,1]); # <<<<<<<<<<<<<< - * lengths[i] = lengths[i-1] + calculate_displacement(dPx, dPy) - * return lengths - */ - __pyx_t_23 = __pyx_v_i; - __pyx_t_24 = 1; - __pyx_t_25 = (__pyx_v_i - 1); - __pyx_t_26 = 1; - __pyx_v_dPy = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_absDiff((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_24, __pyx_pybuffernd_points.diminfo[1].strides)), (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_26, __pyx_pybuffernd_points.diminfo[1].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":74 - * dPx = absDiff(points[i,0], points[i-1,0]); - * dPy = absDiff(points[i,1], points[i-1,1]); - * lengths[i] = lengths[i-1] + calculate_displacement(dPx, dPy) # <<<<<<<<<<<<<< - * return lengths - * - */ - __pyx_t_27 = (__pyx_v_i - 1); - __pyx_t_28 = __pyx_v_i; - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_lengths.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_lengths.diminfo[0].strides) = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_lengths.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_lengths.diminfo[0].strides)) + __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_calculate_displacement(__pyx_v_dPx, __pyx_v_dPy)); - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":75 - * dPy = absDiff(points[i,1], points[i-1,1]); - * lengths[i] = lengths[i-1] + calculate_displacement(dPx, dPy) - * return lengths # <<<<<<<<<<<<<< - * - * cdef inline double getSign(double x): - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(((PyObject *)__pyx_v_lengths)); - __pyx_r = ((PyObject *)__pyx_v_lengths); - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":33 - * return sqrt(dPx*dPx + dPy*dPy); - * - * def circComputeChainCodeLengths(np.ndarray[np.float_t, ndim=2] points): # <<<<<<<<<<<<<< - * ''' - * %CIRCCOMPUTECHAINCODELENGTHS Compute the chain-code length, at each point, - */ - - /* 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); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lengths.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_points.rcbuffer->pybuffer); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.segWorm_cython.circComputeChainCodeLengths", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lengths.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_points.rcbuffer->pybuffer); - __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_lengths); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_TraceReturn(__pyx_r, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":77 - * return lengths - * - * cdef inline double getSign(double x): # <<<<<<<<<<<<<< - * return (0 < x) - (x < 0) - * - */ - -static CYTHON_INLINE double __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_getSign(double __pyx_v_x) { - double __pyx_r; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("getSign", 0); - __Pyx_TraceCall("getSign", __pyx_f[0], 77, 0, __PYX_ERR(0, 77, __pyx_L1_error)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":78 - * - * cdef inline double getSign(double x): - * return (0 < x) - (x < 0) # <<<<<<<<<<<<<< - * - * cdef computeFractionalPixel(np.ndarray[np.float_t, ndim=2] points, \ - */ - __pyx_r = ((0.0 < __pyx_v_x) - (__pyx_v_x < 0.0)); - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":77 - * return lengths - * - * cdef inline double getSign(double x): # <<<<<<<<<<<<<< - * return (0 < x) - (x < 0) - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_WriteUnraisable("tierpsy.analysis.ske_create.segWormPython.cython_files.segWorm_cython.getSign", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); - __pyx_r = 0; - __pyx_L0:; - __Pyx_TraceReturn(Py_None, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":80 - * return (0 < x) - (x < 0) - * - * cdef computeFractionalPixel(np.ndarray[np.float_t, ndim=2] points, \ # <<<<<<<<<<<<<< - * int curr_ind, int next_ind, \ - * double delta_edge, double * point_fractional): - */ - -static PyObject *__pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_computeFractionalPixel(PyArrayObject *__pyx_v_points, int __pyx_v_curr_ind, int __pyx_v_next_ind, double __pyx_v_delta_edge, double *__pyx_v_point_fractional) { - double __pyx_v_SQRT2; - double __pyx_v_delta_p[2]; - double __pyx_v_r; - double __pyx_v_dy1; - double __pyx_v_dx1; - double __pyx_v_y_curr; - double __pyx_v_x_curr; - __Pyx_LocalBuf_ND __pyx_pybuffernd_points; - __Pyx_Buffer __pyx_pybuffer_points; - PyObject *__pyx_r = NULL; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - Py_ssize_t __pyx_t_1; - Py_ssize_t __pyx_t_2; - Py_ssize_t __pyx_t_3; - Py_ssize_t __pyx_t_4; - Py_ssize_t __pyx_t_5; - Py_ssize_t __pyx_t_6; - Py_ssize_t __pyx_t_7; - Py_ssize_t __pyx_t_8; - int __pyx_t_9; - int __pyx_t_10; - double __pyx_t_11; - __Pyx_RefNannySetupContext("computeFractionalPixel", 0); - __Pyx_TraceCall("computeFractionalPixel", __pyx_f[0], 80, 0, __PYX_ERR(0, 80, __pyx_L1_error)); - __pyx_pybuffer_points.pybuffer.buf = NULL; - __pyx_pybuffer_points.refcount = 0; - __pyx_pybuffernd_points.data = NULL; - __pyx_pybuffernd_points.rcbuffer = &__pyx_pybuffer_points; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_points.rcbuffer->pybuffer, (PyObject*)__pyx_v_points, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 80, __pyx_L1_error) - } - __pyx_pybuffernd_points.diminfo[0].strides = __pyx_pybuffernd_points.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_points.diminfo[0].shape = __pyx_pybuffernd_points.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_points.diminfo[1].strides = __pyx_pybuffernd_points.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_points.diminfo[1].shape = __pyx_pybuffernd_points.rcbuffer->pybuffer.shape[1]; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":101 - * //% But, Matlab uses (r,c) = (y,x), so x & y are reversed.''' - * - * cdef double SQRT2 = 1.414213562373095; # <<<<<<<<<<<<<< - * cdef int j - * cdef double delta_p[2] - */ - __pyx_v_SQRT2 = 1.414213562373095; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":106 - * cdef double r, dy1, dx1 - * - * cdef double y_curr = points[curr_ind, 0] # <<<<<<<<<<<<<< - * cdef double x_curr = points[curr_ind, 1] - * - */ - __pyx_t_1 = __pyx_v_curr_ind; - __pyx_t_2 = 0; - __pyx_v_y_curr = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_2, __pyx_pybuffernd_points.diminfo[1].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":107 - * - * cdef double y_curr = points[curr_ind, 0] - * cdef double x_curr = points[curr_ind, 1] # <<<<<<<<<<<<<< - * - * delta_p[0] = points[next_ind, 0] - y_curr; - */ - __pyx_t_3 = __pyx_v_curr_ind; - __pyx_t_4 = 1; - __pyx_v_x_curr = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_4, __pyx_pybuffernd_points.diminfo[1].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":109 - * cdef double x_curr = points[curr_ind, 1] - * - * delta_p[0] = points[next_ind, 0] - y_curr; # <<<<<<<<<<<<<< - * delta_p[1] = points[next_ind, 1] - x_curr; - * - */ - __pyx_t_5 = __pyx_v_next_ind; - __pyx_t_6 = 0; - (__pyx_v_delta_p[0]) = ((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_6, __pyx_pybuffernd_points.diminfo[1].strides)) - __pyx_v_y_curr); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":110 - * - * delta_p[0] = points[next_ind, 0] - y_curr; - * delta_p[1] = points[next_ind, 1] - x_curr; # <<<<<<<<<<<<<< - * - * if ((delta_p[0] == 0) or (delta_p[1] == 0)): - */ - __pyx_t_7 = __pyx_v_next_ind; - __pyx_t_8 = 1; - (__pyx_v_delta_p[1]) = ((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_8, __pyx_pybuffernd_points.diminfo[1].strides)) - __pyx_v_x_curr); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":112 - * delta_p[1] = points[next_ind, 1] - x_curr; - * - * if ((delta_p[0] == 0) or (delta_p[1] == 0)): # <<<<<<<<<<<<<< - * point_fractional[0] = y_curr + delta_edge*getSign(delta_p[0]); - * point_fractional[1] = x_curr + delta_edge*getSign(delta_p[1]); - */ - __pyx_t_10 = (((__pyx_v_delta_p[0]) == 0.0) != 0); - if (!__pyx_t_10) { - } else { - __pyx_t_9 = __pyx_t_10; - goto __pyx_L4_bool_binop_done; - } - __pyx_t_10 = (((__pyx_v_delta_p[1]) == 0.0) != 0); - __pyx_t_9 = __pyx_t_10; - __pyx_L4_bool_binop_done:; - if (__pyx_t_9) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":113 - * - * if ((delta_p[0] == 0) or (delta_p[1] == 0)): - * point_fractional[0] = y_curr + delta_edge*getSign(delta_p[0]); # <<<<<<<<<<<<<< - * point_fractional[1] = x_curr + delta_edge*getSign(delta_p[1]); - * - */ - (__pyx_v_point_fractional[0]) = (__pyx_v_y_curr + (__pyx_v_delta_edge * __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_getSign((__pyx_v_delta_p[0])))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":114 - * if ((delta_p[0] == 0) or (delta_p[1] == 0)): - * point_fractional[0] = y_curr + delta_edge*getSign(delta_p[0]); - * point_fractional[1] = x_curr + delta_edge*getSign(delta_p[1]); # <<<<<<<<<<<<<< - * - * elif ((abs(delta_p[0]) == 1) and (abs(delta_p[1]) == 1)): - */ - (__pyx_v_point_fractional[1]) = (__pyx_v_x_curr + (__pyx_v_delta_edge * __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_getSign((__pyx_v_delta_p[1])))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":112 - * delta_p[1] = points[next_ind, 1] - x_curr; - * - * if ((delta_p[0] == 0) or (delta_p[1] == 0)): # <<<<<<<<<<<<<< - * point_fractional[0] = y_curr + delta_edge*getSign(delta_p[0]); - * point_fractional[1] = x_curr + delta_edge*getSign(delta_p[1]); - */ - goto __pyx_L3; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":116 - * point_fractional[1] = x_curr + delta_edge*getSign(delta_p[1]); - * - * elif ((abs(delta_p[0]) == 1) and (abs(delta_p[1]) == 1)): # <<<<<<<<<<<<<< - * point_fractional[0] = y_curr + (delta_p[0] * delta_edge / SQRT2); - * point_fractional[1] = x_curr + (delta_p[1] * delta_edge / SQRT2); - */ - __pyx_t_10 = ((fabs((__pyx_v_delta_p[0])) == 1.0) != 0); - if (__pyx_t_10) { - } else { - __pyx_t_9 = __pyx_t_10; - goto __pyx_L6_bool_binop_done; - } - __pyx_t_10 = ((fabs((__pyx_v_delta_p[1])) == 1.0) != 0); - __pyx_t_9 = __pyx_t_10; - __pyx_L6_bool_binop_done:; - if (__pyx_t_9) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":117 - * - * elif ((abs(delta_p[0]) == 1) and (abs(delta_p[1]) == 1)): - * point_fractional[0] = y_curr + (delta_p[0] * delta_edge / SQRT2); # <<<<<<<<<<<<<< - * point_fractional[1] = x_curr + (delta_p[1] * delta_edge / SQRT2); - * - */ - __pyx_t_11 = ((__pyx_v_delta_p[0]) * __pyx_v_delta_edge); - if (unlikely(__pyx_v_SQRT2 == 0)) { - PyErr_SetString(PyExc_ZeroDivisionError, "float division"); - __PYX_ERR(0, 117, __pyx_L1_error) - } - (__pyx_v_point_fractional[0]) = (__pyx_v_y_curr + (__pyx_t_11 / __pyx_v_SQRT2)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":118 - * elif ((abs(delta_p[0]) == 1) and (abs(delta_p[1]) == 1)): - * point_fractional[0] = y_curr + (delta_p[0] * delta_edge / SQRT2); - * point_fractional[1] = x_curr + (delta_p[1] * delta_edge / SQRT2); # <<<<<<<<<<<<<< - * - * else: - */ - __pyx_t_11 = ((__pyx_v_delta_p[1]) * __pyx_v_delta_edge); - if (unlikely(__pyx_v_SQRT2 == 0)) { - PyErr_SetString(PyExc_ZeroDivisionError, "float division"); - __PYX_ERR(0, 118, __pyx_L1_error) - } - (__pyx_v_point_fractional[1]) = (__pyx_v_x_curr + (__pyx_t_11 / __pyx_v_SQRT2)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":116 - * point_fractional[1] = x_curr + delta_edge*getSign(delta_p[1]); - * - * elif ((abs(delta_p[0]) == 1) and (abs(delta_p[1]) == 1)): # <<<<<<<<<<<<<< - * point_fractional[0] = y_curr + (delta_p[0] * delta_edge / SQRT2); - * point_fractional[1] = x_curr + (delta_p[1] * delta_edge / SQRT2); - */ - goto __pyx_L3; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":121 - * - * else: - * r = (delta_p[1] / delta_p[0]); # <<<<<<<<<<<<<< - * dy1 = delta_edge / sqrt(1 + r*r); - * - */ - /*else*/ { - if (unlikely((__pyx_v_delta_p[0]) == 0)) { - PyErr_SetString(PyExc_ZeroDivisionError, "float division"); - __PYX_ERR(0, 121, __pyx_L1_error) - } - __pyx_v_r = ((__pyx_v_delta_p[1]) / (__pyx_v_delta_p[0])); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":122 - * else: - * r = (delta_p[1] / delta_p[0]); - * dy1 = delta_edge / sqrt(1 + r*r); # <<<<<<<<<<<<<< - * - * r = (delta_p[0] / delta_p[1]); - */ - __pyx_t_11 = sqrt((1.0 + (__pyx_v_r * __pyx_v_r))); - if (unlikely(__pyx_t_11 == 0)) { - PyErr_SetString(PyExc_ZeroDivisionError, "float division"); - __PYX_ERR(0, 122, __pyx_L1_error) - } - __pyx_v_dy1 = (__pyx_v_delta_edge / __pyx_t_11); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":124 - * dy1 = delta_edge / sqrt(1 + r*r); - * - * r = (delta_p[0] / delta_p[1]); # <<<<<<<<<<<<<< - * dx1 = delta_edge / sqrt(1 + r*r); - * - */ - if (unlikely((__pyx_v_delta_p[1]) == 0)) { - PyErr_SetString(PyExc_ZeroDivisionError, "float division"); - __PYX_ERR(0, 124, __pyx_L1_error) - } - __pyx_v_r = ((__pyx_v_delta_p[0]) / (__pyx_v_delta_p[1])); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":125 - * - * r = (delta_p[0] / delta_p[1]); - * dx1 = delta_edge / sqrt(1 + r*r); # <<<<<<<<<<<<<< - * - * point_fractional[0] = y_curr + dy1 * getSign(delta_p[0]); - */ - __pyx_t_11 = sqrt((1.0 + (__pyx_v_r * __pyx_v_r))); - if (unlikely(__pyx_t_11 == 0)) { - PyErr_SetString(PyExc_ZeroDivisionError, "float division"); - __PYX_ERR(0, 125, __pyx_L1_error) - } - __pyx_v_dx1 = (__pyx_v_delta_edge / __pyx_t_11); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":127 - * dx1 = delta_edge / sqrt(1 + r*r); - * - * point_fractional[0] = y_curr + dy1 * getSign(delta_p[0]); # <<<<<<<<<<<<<< - * point_fractional[1] = x_curr + dx1 * getSign(delta_p[1]); - * - */ - (__pyx_v_point_fractional[0]) = (__pyx_v_y_curr + (__pyx_v_dy1 * __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_getSign((__pyx_v_delta_p[0])))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":128 - * - * point_fractional[0] = y_curr + dy1 * getSign(delta_p[0]); - * point_fractional[1] = x_curr + dx1 * getSign(delta_p[1]); # <<<<<<<<<<<<<< - * - * - */ - (__pyx_v_point_fractional[1]) = (__pyx_v_x_curr + (__pyx_v_dx1 * __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_getSign((__pyx_v_delta_p[1])))); - } - __pyx_L3:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":80 - * return (0 < x) - (x < 0) - * - * cdef computeFractionalPixel(np.ndarray[np.float_t, ndim=2] points, \ # <<<<<<<<<<<<<< - * int curr_ind, int next_ind, \ - * double delta_edge, double * point_fractional): - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_points.rcbuffer->pybuffer); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.segWorm_cython.computeFractionalPixel", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_points.rcbuffer->pybuffer); - __pyx_L2:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_TraceReturn(__pyx_r, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":131 - * - * - * cdef inline double getEdgeLengthLeft(double last_length, double pv, double p): # <<<<<<<<<<<<<< - * return (pv - p) if (p <= pv) else (last_length + pv - p) - * - */ - -static CYTHON_INLINE double __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_getEdgeLengthLeft(double __pyx_v_last_length, double __pyx_v_pv, double __pyx_v_p) { - double __pyx_r; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - double __pyx_t_1; - __Pyx_RefNannySetupContext("getEdgeLengthLeft", 0); - __Pyx_TraceCall("getEdgeLengthLeft", __pyx_f[0], 131, 0, __PYX_ERR(0, 131, __pyx_L1_error)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":132 - * - * cdef inline double getEdgeLengthLeft(double last_length, double pv, double p): - * return (pv - p) if (p <= pv) else (last_length + pv - p) # <<<<<<<<<<<<<< - * - * cdef inline double getEdgeLengthRight(double last_length, double pv, double p): - */ - if (((__pyx_v_p <= __pyx_v_pv) != 0)) { - __pyx_t_1 = (__pyx_v_pv - __pyx_v_p); - } else { - __pyx_t_1 = ((__pyx_v_last_length + __pyx_v_pv) - __pyx_v_p); - } - __pyx_r = __pyx_t_1; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":131 - * - * - * cdef inline double getEdgeLengthLeft(double last_length, double pv, double p): # <<<<<<<<<<<<<< - * return (pv - p) if (p <= pv) else (last_length + pv - p) - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_WriteUnraisable("tierpsy.analysis.ske_create.segWormPython.cython_files.segWorm_cython.getEdgeLengthLeft", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); - __pyx_r = 0; - __pyx_L0:; - __Pyx_TraceReturn(Py_None, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":134 - * return (pv - p) if (p <= pv) else (last_length + pv - p) - * - * cdef inline double getEdgeLengthRight(double last_length, double pv, double p): # <<<<<<<<<<<<<< - * return (p-pv) if (p >= pv) else (last_length + p - pv) - * - */ - -static CYTHON_INLINE double __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_getEdgeLengthRight(double __pyx_v_last_length, double __pyx_v_pv, double __pyx_v_p) { - double __pyx_r; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - double __pyx_t_1; - __Pyx_RefNannySetupContext("getEdgeLengthRight", 0); - __Pyx_TraceCall("getEdgeLengthRight", __pyx_f[0], 134, 0, __PYX_ERR(0, 134, __pyx_L1_error)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":135 - * - * cdef inline double getEdgeLengthRight(double last_length, double pv, double p): - * return (p-pv) if (p >= pv) else (last_length + p - pv) # <<<<<<<<<<<<<< - * - * cdef inline int plusCircIndex(int ind, int last_index): - */ - if (((__pyx_v_p >= __pyx_v_pv) != 0)) { - __pyx_t_1 = (__pyx_v_p - __pyx_v_pv); - } else { - __pyx_t_1 = ((__pyx_v_last_length + __pyx_v_p) - __pyx_v_pv); - } - __pyx_r = __pyx_t_1; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":134 - * return (pv - p) if (p <= pv) else (last_length + pv - p) - * - * cdef inline double getEdgeLengthRight(double last_length, double pv, double p): # <<<<<<<<<<<<<< - * return (p-pv) if (p >= pv) else (last_length + p - pv) - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_WriteUnraisable("tierpsy.analysis.ske_create.segWormPython.cython_files.segWorm_cython.getEdgeLengthRight", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); - __pyx_r = 0; - __pyx_L0:; - __Pyx_TraceReturn(Py_None, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":137 - * return (p-pv) if (p >= pv) else (last_length + p - pv) - * - * cdef inline int plusCircIndex(int ind, int last_index): # <<<<<<<<<<<<<< - * return ind + 1 if (ind < last_index) else ind - last_index; - * - */ - -static CYTHON_INLINE int __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_plusCircIndex(int __pyx_v_ind, int __pyx_v_last_index) { - int __pyx_r; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - long __pyx_t_1; - __Pyx_RefNannySetupContext("plusCircIndex", 0); - __Pyx_TraceCall("plusCircIndex", __pyx_f[0], 137, 0, __PYX_ERR(0, 137, __pyx_L1_error)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":138 - * - * cdef inline int plusCircIndex(int ind, int last_index): - * return ind + 1 if (ind < last_index) else ind - last_index; # <<<<<<<<<<<<<< - * - * cdef inline int minusCircIndex(int ind, int last_index): - */ - if (((__pyx_v_ind < __pyx_v_last_index) != 0)) { - __pyx_t_1 = (__pyx_v_ind + 1); - } else { - __pyx_t_1 = (__pyx_v_ind - __pyx_v_last_index); - } - __pyx_r = __pyx_t_1; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":137 - * return (p-pv) if (p >= pv) else (last_length + p - pv) - * - * cdef inline int plusCircIndex(int ind, int last_index): # <<<<<<<<<<<<<< - * return ind + 1 if (ind < last_index) else ind - last_index; - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_WriteUnraisable("tierpsy.analysis.ske_create.segWormPython.cython_files.segWorm_cython.plusCircIndex", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); - __pyx_r = 0; - __pyx_L0:; - __Pyx_TraceReturn(Py_None, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":140 - * return ind + 1 if (ind < last_index) else ind - last_index; - * - * cdef inline int minusCircIndex(int ind, int last_index): # <<<<<<<<<<<<<< - * return ind - 1 if (ind > 0) else ind + last_index; - * - */ - -static CYTHON_INLINE int __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_minusCircIndex(int __pyx_v_ind, int __pyx_v_last_index) { - int __pyx_r; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - long __pyx_t_1; - __Pyx_RefNannySetupContext("minusCircIndex", 0); - __Pyx_TraceCall("minusCircIndex", __pyx_f[0], 140, 0, __PYX_ERR(0, 140, __pyx_L1_error)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":141 - * - * cdef inline int minusCircIndex(int ind, int last_index): - * return ind - 1 if (ind > 0) else ind + last_index; # <<<<<<<<<<<<<< - * - * - */ - if (((__pyx_v_ind > 0) != 0)) { - __pyx_t_1 = (__pyx_v_ind - 1); - } else { - __pyx_t_1 = (__pyx_v_ind + __pyx_v_last_index); - } - __pyx_r = __pyx_t_1; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":140 - * return ind + 1 if (ind < last_index) else ind - last_index; - * - * cdef inline int minusCircIndex(int ind, int last_index): # <<<<<<<<<<<<<< - * return ind - 1 if (ind > 0) else ind + last_index; - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_WriteUnraisable("tierpsy.analysis.ske_create.segWormPython.cython_files.segWorm_cython.minusCircIndex", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); - __pyx_r = 0; - __pyx_L0:; - __Pyx_TraceReturn(Py_None, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":144 - * - * - * def circCurvature_old(np.ndarray[np.float_t, ndim=2] points, double edgeLength, np.ndarray[np.float_t, ndim=1] chainCodeLengths): # <<<<<<<<<<<<<< - * ''' - * // Inputs: - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_3circCurvature_old(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_2circCurvature_old[] = "\n // Inputs:\n // points - the vector of clockwise, circularly-connected\n // points ((x,y) pairs).\n // edgeLength - the length of edges from the angle vertex.\n // chainCodeLengths - the chain-code length at each point;\n // if empty, the array indices are used instead\n // Output:\n // angles - the angles of curvature per point (0 = none to +-180 =\n // maximum curvature). The sign represents whether the angle\n // is convex (+) or concave (-).\n "; -static PyMethodDef __pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_3circCurvature_old = {"circCurvature_old", (PyCFunction)__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_3circCurvature_old, METH_VARARGS|METH_KEYWORDS, __pyx_doc_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_2circCurvature_old}; -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_3circCurvature_old(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyArrayObject *__pyx_v_points = 0; - double __pyx_v_edgeLength; - PyArrayObject *__pyx_v_chainCodeLengths = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("circCurvature_old (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_points,&__pyx_n_s_edgeLength,&__pyx_n_s_chainCodeLengths,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_points)) != 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_edgeLength)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("circCurvature_old", 1, 3, 3, 1); __PYX_ERR(0, 144, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_chainCodeLengths)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("circCurvature_old", 1, 3, 3, 2); __PYX_ERR(0, 144, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "circCurvature_old") < 0)) __PYX_ERR(0, 144, __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_points = ((PyArrayObject *)values[0]); - __pyx_v_edgeLength = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_edgeLength == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 144, __pyx_L3_error) - __pyx_v_chainCodeLengths = ((PyArrayObject *)values[2]); - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("circCurvature_old", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 144, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.segWorm_cython.circCurvature_old", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_points), __pyx_ptype_5numpy_ndarray, 1, "points", 0))) __PYX_ERR(0, 144, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_chainCodeLengths), __pyx_ptype_5numpy_ndarray, 1, "chainCodeLengths", 0))) __PYX_ERR(0, 144, __pyx_L1_error) - __pyx_r = __pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_2circCurvature_old(__pyx_self, __pyx_v_points, __pyx_v_edgeLength, __pyx_v_chainCodeLengths); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_2circCurvature_old(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_points, double __pyx_v_edgeLength, PyArrayObject *__pyx_v_chainCodeLengths) { - int __pyx_v_number_of_points; - int __pyx_v_last_index; - PyObject *__pyx_v_last_length = 0; - PyArrayObject *__pyx_v_angles = 0; - double __pyx_v_edge1; - double __pyx_v_edge2; - int __pyx_v_pv_ind; - int __pyx_v_p1_ind; - int __pyx_v_p2_ind; - double __pyx_v_pv_length; - double __pyx_v_p; - double __pyx_v_pv; - int __pyx_v_nextP1_ind; - int __pyx_v_prevP2_ind; - double __pyx_v_delta_edge1; - double __pyx_v_delta_edge2; - double __pyx_v_nextE1; - double __pyx_v_p1[2]; - double __pyx_v_p2[2]; - double __pyx_v_a1; - double __pyx_v_a2; - double __pyx_v_angle; - __Pyx_LocalBuf_ND __pyx_pybuffernd_angles; - __Pyx_Buffer __pyx_pybuffer_angles; - __Pyx_LocalBuf_ND __pyx_pybuffernd_chainCodeLengths; - __Pyx_Buffer __pyx_pybuffer_chainCodeLengths; - __Pyx_LocalBuf_ND __pyx_pybuffernd_points; - __Pyx_Buffer __pyx_pybuffer_points; - PyObject *__pyx_r = NULL; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - Py_ssize_t __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 = NULL; - PyArrayObject *__pyx_t_7 = NULL; - Py_ssize_t __pyx_t_8; - Py_ssize_t __pyx_t_9; - Py_ssize_t __pyx_t_10; - int __pyx_t_11; - int __pyx_t_12; - Py_ssize_t __pyx_t_13; - Py_ssize_t __pyx_t_14; - Py_ssize_t __pyx_t_15; - double __pyx_t_16; - Py_ssize_t __pyx_t_17; - Py_ssize_t __pyx_t_18; - Py_ssize_t __pyx_t_19; - Py_ssize_t __pyx_t_20; - Py_ssize_t __pyx_t_21; - Py_ssize_t __pyx_t_22; - Py_ssize_t __pyx_t_23; - Py_ssize_t __pyx_t_24; - Py_ssize_t __pyx_t_25; - Py_ssize_t __pyx_t_26; - Py_ssize_t __pyx_t_27; - Py_ssize_t __pyx_t_28; - Py_ssize_t __pyx_t_29; - __Pyx_TraceFrameInit(__pyx_codeobj__2) - __Pyx_RefNannySetupContext("circCurvature_old", 0); - __Pyx_TraceCall("circCurvature_old", __pyx_f[0], 144, 0, __PYX_ERR(0, 144, __pyx_L1_error)); - __pyx_pybuffer_angles.pybuffer.buf = NULL; - __pyx_pybuffer_angles.refcount = 0; - __pyx_pybuffernd_angles.data = NULL; - __pyx_pybuffernd_angles.rcbuffer = &__pyx_pybuffer_angles; - __pyx_pybuffer_points.pybuffer.buf = NULL; - __pyx_pybuffer_points.refcount = 0; - __pyx_pybuffernd_points.data = NULL; - __pyx_pybuffernd_points.rcbuffer = &__pyx_pybuffer_points; - __pyx_pybuffer_chainCodeLengths.pybuffer.buf = NULL; - __pyx_pybuffer_chainCodeLengths.refcount = 0; - __pyx_pybuffernd_chainCodeLengths.data = NULL; - __pyx_pybuffernd_chainCodeLengths.rcbuffer = &__pyx_pybuffer_chainCodeLengths; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_points.rcbuffer->pybuffer, (PyObject*)__pyx_v_points, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 144, __pyx_L1_error) - } - __pyx_pybuffernd_points.diminfo[0].strides = __pyx_pybuffernd_points.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_points.diminfo[0].shape = __pyx_pybuffernd_points.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_points.diminfo[1].strides = __pyx_pybuffernd_points.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_points.diminfo[1].shape = __pyx_pybuffernd_points.rcbuffer->pybuffer.shape[1]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer, (PyObject*)__pyx_v_chainCodeLengths, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 144, __pyx_L1_error) - } - __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides = __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_chainCodeLengths.diminfo[0].shape = __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.shape[0]; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":158 - * ''' - * - * cdef int number_of_points = points.shape[0]; # <<<<<<<<<<<<<< - * cdef int last_index = (number_of_points-1); - * cdef last_length = chainCodeLengths[last_index] - */ - __pyx_v_number_of_points = (__pyx_v_points->dimensions[0]); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":159 - * - * cdef int number_of_points = points.shape[0]; - * cdef int last_index = (number_of_points-1); # <<<<<<<<<<<<<< - * cdef last_length = chainCodeLengths[last_index] - * - */ - __pyx_v_last_index = (__pyx_v_number_of_points - 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":160 - * cdef int number_of_points = points.shape[0]; - * cdef int last_index = (number_of_points-1); - * cdef last_length = chainCodeLengths[last_index] # <<<<<<<<<<<<<< - * - * cdef np.ndarray[np.float_t, ndim=1] angles = np.zeros(number_of_points, dtype = np.float) - */ - __pyx_t_1 = __pyx_v_last_index; - __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 160, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_last_length = __pyx_t_2; - __pyx_t_2 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":162 - * cdef last_length = chainCodeLengths[last_index] - * - * cdef np.ndarray[np.float_t, ndim=1] angles = np.zeros(number_of_points, dtype = np.float) # <<<<<<<<<<<<<< - * - * cdef double edge1, edge2; - */ - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 162, __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, 162, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_number_of_points); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 162, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 162, __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, 162, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 162, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_float); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 162, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 162, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); 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_DECREF(__pyx_t_4); __pyx_t_4 = 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, 162, __pyx_L1_error) - __pyx_t_7 = ((PyArrayObject *)__pyx_t_6); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_angles.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { - __pyx_v_angles = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_angles.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 162, __pyx_L1_error) - } else {__pyx_pybuffernd_angles.diminfo[0].strides = __pyx_pybuffernd_angles.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_angles.diminfo[0].shape = __pyx_pybuffernd_angles.rcbuffer->pybuffer.shape[0]; - } - } - __pyx_t_7 = 0; - __pyx_v_angles = ((PyArrayObject *)__pyx_t_6); - __pyx_t_6 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":178 - * - * #initialize indexes - * pv_ind = 0 # <<<<<<<<<<<<<< - * p1_ind = last_index - * p2_ind = pv_ind; - */ - __pyx_v_pv_ind = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":179 - * #initialize indexes - * pv_ind = 0 - * p1_ind = last_index # <<<<<<<<<<<<<< - * p2_ind = pv_ind; - * - */ - __pyx_v_p1_ind = __pyx_v_last_index; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":180 - * pv_ind = 0 - * p1_ind = last_index - * p2_ind = pv_ind; # <<<<<<<<<<<<<< - * - * #initialize the first edge - */ - __pyx_v_p2_ind = __pyx_v_pv_ind; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":183 - * - * #initialize the first edge - * pv_length = chainCodeLengths[p1_ind] + chainCodeLengths[pv_ind]; # <<<<<<<<<<<<<< - * edge1 = pv_length - chainCodeLengths[p1_ind]; - * while ((p1_ind > 0) and (edge1 < edgeLength)): - */ - __pyx_t_8 = __pyx_v_p1_ind; - __pyx_t_9 = __pyx_v_pv_ind; - __pyx_v_pv_length = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides)) + (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_9, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":184 - * #initialize the first edge - * pv_length = chainCodeLengths[p1_ind] + chainCodeLengths[pv_ind]; - * edge1 = pv_length - chainCodeLengths[p1_ind]; # <<<<<<<<<<<<<< - * while ((p1_ind > 0) and (edge1 < edgeLength)): - * p1_ind = p1_ind - 1; - */ - __pyx_t_10 = __pyx_v_p1_ind; - __pyx_v_edge1 = (__pyx_v_pv_length - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":185 - * pv_length = chainCodeLengths[p1_ind] + chainCodeLengths[pv_ind]; - * edge1 = pv_length - chainCodeLengths[p1_ind]; - * while ((p1_ind > 0) and (edge1 < edgeLength)): # <<<<<<<<<<<<<< - * p1_ind = p1_ind - 1; - * edge1 = pv_length - chainCodeLengths[p1_ind]; - */ - while (1) { - __pyx_t_12 = ((__pyx_v_p1_ind > 0) != 0); - if (__pyx_t_12) { - } else { - __pyx_t_11 = __pyx_t_12; - goto __pyx_L5_bool_binop_done; - } - __pyx_t_12 = ((__pyx_v_edge1 < __pyx_v_edgeLength) != 0); - __pyx_t_11 = __pyx_t_12; - __pyx_L5_bool_binop_done:; - if (!__pyx_t_11) break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":186 - * edge1 = pv_length - chainCodeLengths[p1_ind]; - * while ((p1_ind > 0) and (edge1 < edgeLength)): - * p1_ind = p1_ind - 1; # <<<<<<<<<<<<<< - * edge1 = pv_length - chainCodeLengths[p1_ind]; - * - */ - __pyx_v_p1_ind = (__pyx_v_p1_ind - 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":187 - * while ((p1_ind > 0) and (edge1 < edgeLength)): - * p1_ind = p1_ind - 1; - * edge1 = pv_length - chainCodeLengths[p1_ind]; # <<<<<<<<<<<<<< - * - * while True: - */ - __pyx_t_13 = __pyx_v_p1_ind; - __pyx_v_edge1 = (__pyx_v_pv_length - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides))); - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":189 - * edge1 = pv_length - chainCodeLengths[p1_ind]; - * - * while True: # <<<<<<<<<<<<<< - * #// Compute the second edge length. - * pv = chainCodeLengths[pv_ind] - */ - while (1) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":191 - * while True: - * #// Compute the second edge length. - * pv = chainCodeLengths[pv_ind] # <<<<<<<<<<<<<< - * p = chainCodeLengths[p2_ind] - * edge2 = getEdgeLengthRight(last_length, pv, p) - */ - __pyx_t_14 = __pyx_v_pv_ind; - __pyx_v_pv = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":192 - * #// Compute the second edge length. - * pv = chainCodeLengths[pv_ind] - * p = chainCodeLengths[p2_ind] # <<<<<<<<<<<<<< - * edge2 = getEdgeLengthRight(last_length, pv, p) - * #// Find the second edge. - */ - __pyx_t_15 = __pyx_v_p2_ind; - __pyx_v_p = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":193 - * pv = chainCodeLengths[pv_ind] - * p = chainCodeLengths[p2_ind] - * edge2 = getEdgeLengthRight(last_length, pv, p) # <<<<<<<<<<<<<< - * #// Find the second edge. - * while (edge2 < edgeLength): - */ - __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_v_last_length); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 193, __pyx_L1_error) - __pyx_v_edge2 = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_getEdgeLengthRight(__pyx_t_16, __pyx_v_pv, __pyx_v_p); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":195 - * edge2 = getEdgeLengthRight(last_length, pv, p) - * #// Find the second edge. - * while (edge2 < edgeLength): # <<<<<<<<<<<<<< - * p2_ind = plusCircIndex(p2_ind, last_index); - * - */ - while (1) { - __pyx_t_11 = ((__pyx_v_edge2 < __pyx_v_edgeLength) != 0); - if (!__pyx_t_11) break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":196 - * #// Find the second edge. - * while (edge2 < edgeLength): - * p2_ind = plusCircIndex(p2_ind, last_index); # <<<<<<<<<<<<<< - * - * p = chainCodeLengths[p2_ind] - */ - __pyx_v_p2_ind = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_plusCircIndex(__pyx_v_p2_ind, __pyx_v_last_index); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":198 - * p2_ind = plusCircIndex(p2_ind, last_index); - * - * p = chainCodeLengths[p2_ind] # <<<<<<<<<<<<<< - * edge2 = getEdgeLengthRight(last_length, pv, p) - * - */ - __pyx_t_17 = __pyx_v_p2_ind; - __pyx_v_p = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":199 - * - * p = chainCodeLengths[p2_ind] - * edge2 = getEdgeLengthRight(last_length, pv, p) # <<<<<<<<<<<<<< - * - * - */ - __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_v_last_length); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 199, __pyx_L1_error) - __pyx_v_edge2 = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_getEdgeLengthRight(__pyx_t_16, __pyx_v_pv, __pyx_v_p); - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":203 - * - * #// Compute fractional pixels for the second edge (uses the next point). - * delta_edge1 = edge1 - edgeLength; # <<<<<<<<<<<<<< - * nextP1_ind = plusCircIndex(p1_ind, last_index); - * - */ - __pyx_v_delta_edge1 = (__pyx_v_edge1 - __pyx_v_edgeLength); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":204 - * #// Compute fractional pixels for the second edge (uses the next point). - * delta_edge1 = edge1 - edgeLength; - * nextP1_ind = plusCircIndex(p1_ind, last_index); # <<<<<<<<<<<<<< - * - * computeFractionalPixel(points, p1_ind, nextP1_ind, delta_edge1, p1); - */ - __pyx_v_nextP1_ind = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_plusCircIndex(__pyx_v_p1_ind, __pyx_v_last_index); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":206 - * nextP1_ind = plusCircIndex(p1_ind, last_index); - * - * computeFractionalPixel(points, p1_ind, nextP1_ind, delta_edge1, p1); # <<<<<<<<<<<<<< - * - * #// Compute fractional pixels for the second edge (uses the previous point). - */ - __pyx_t_6 = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_computeFractionalPixel(((PyArrayObject *)__pyx_v_points), __pyx_v_p1_ind, __pyx_v_nextP1_ind, __pyx_v_delta_edge1, __pyx_v_p1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 206, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":209 - * - * #// Compute fractional pixels for the second edge (uses the previous point). - * delta_edge2 = edge2 - edgeLength; # <<<<<<<<<<<<<< - * prevP2_ind = minusCircIndex(p2_ind, last_index); - * computeFractionalPixel(points, p2_ind, prevP2_ind, delta_edge2, p2); - */ - __pyx_v_delta_edge2 = (__pyx_v_edge2 - __pyx_v_edgeLength); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":210 - * #// Compute fractional pixels for the second edge (uses the previous point). - * delta_edge2 = edge2 - edgeLength; - * prevP2_ind = minusCircIndex(p2_ind, last_index); # <<<<<<<<<<<<<< - * computeFractionalPixel(points, p2_ind, prevP2_ind, delta_edge2, p2); - * - */ - __pyx_v_prevP2_ind = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_minusCircIndex(__pyx_v_p2_ind, __pyx_v_last_index); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":211 - * delta_edge2 = edge2 - edgeLength; - * prevP2_ind = minusCircIndex(p2_ind, last_index); - * computeFractionalPixel(points, p2_ind, prevP2_ind, delta_edge2, p2); # <<<<<<<<<<<<<< - * - * #// Use the difference in tangents to measure the angle. - */ - __pyx_t_6 = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_computeFractionalPixel(((PyArrayObject *)__pyx_v_points), __pyx_v_p2_ind, __pyx_v_prevP2_ind, __pyx_v_delta_edge2, __pyx_v_p2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 211, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":214 - * - * #// Use the difference in tangents to measure the angle. - * a2 = atan2(points[pv_ind,0] - p2[0], points[pv_ind,1] - p2[1]); # <<<<<<<<<<<<<< - * a1 = atan2(p1[0] - points[pv_ind,0], p1[1] - points[pv_ind,1]); - * angle = a2-a1; - */ - __pyx_t_18 = __pyx_v_pv_ind; - __pyx_t_19 = 0; - __pyx_t_20 = __pyx_v_pv_ind; - __pyx_t_21 = 1; - __pyx_v_a2 = atan2(((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_19, __pyx_pybuffernd_points.diminfo[1].strides)) - (__pyx_v_p2[0])), ((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_21, __pyx_pybuffernd_points.diminfo[1].strides)) - (__pyx_v_p2[1]))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":215 - * #// Use the difference in tangents to measure the angle. - * a2 = atan2(points[pv_ind,0] - p2[0], points[pv_ind,1] - p2[1]); - * a1 = atan2(p1[0] - points[pv_ind,0], p1[1] - points[pv_ind,1]); # <<<<<<<<<<<<<< - * angle = a2-a1; - * - */ - __pyx_t_22 = __pyx_v_pv_ind; - __pyx_t_23 = 0; - __pyx_t_24 = __pyx_v_pv_ind; - __pyx_t_25 = 1; - __pyx_v_a1 = atan2(((__pyx_v_p1[0]) - (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_23, __pyx_pybuffernd_points.diminfo[1].strides))), ((__pyx_v_p1[1]) - (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_25, __pyx_pybuffernd_points.diminfo[1].strides)))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":216 - * a2 = atan2(points[pv_ind,0] - p2[0], points[pv_ind,1] - p2[1]); - * a1 = atan2(p1[0] - points[pv_ind,0], p1[1] - points[pv_ind,1]); - * angle = a2-a1; # <<<<<<<<<<<<<< - * - * if (angle > M_PI): - */ - __pyx_v_angle = (__pyx_v_a2 - __pyx_v_a1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":218 - * angle = a2-a1; - * - * if (angle > M_PI): # <<<<<<<<<<<<<< - * angle -= 2 * M_PI; - * elif (angle < -1*M_PI): - */ - __pyx_t_11 = ((__pyx_v_angle > M_PI) != 0); - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":219 - * - * if (angle > M_PI): - * angle -= 2 * M_PI; # <<<<<<<<<<<<<< - * elif (angle < -1*M_PI): - * angle += 2 * M_PI; - */ - __pyx_v_angle = (__pyx_v_angle - (2.0 * M_PI)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":218 - * angle = a2-a1; - * - * if (angle > M_PI): # <<<<<<<<<<<<<< - * angle -= 2 * M_PI; - * elif (angle < -1*M_PI): - */ - goto __pyx_L11; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":220 - * if (angle > M_PI): - * angle -= 2 * M_PI; - * elif (angle < -1*M_PI): # <<<<<<<<<<<<<< - * angle += 2 * M_PI; - * - */ - __pyx_t_11 = ((__pyx_v_angle < (-1.0 * M_PI)) != 0); - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":221 - * angle -= 2 * M_PI; - * elif (angle < -1*M_PI): - * angle += 2 * M_PI; # <<<<<<<<<<<<<< - * - * angles[pv_ind] = angle * 180 / M_PI; - */ - __pyx_v_angle = (__pyx_v_angle + (2.0 * M_PI)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":220 - * if (angle > M_PI): - * angle -= 2 * M_PI; - * elif (angle < -1*M_PI): # <<<<<<<<<<<<<< - * angle += 2 * M_PI; - * - */ - } - __pyx_L11:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":223 - * angle += 2 * M_PI; - * - * angles[pv_ind] = angle * 180 / M_PI; # <<<<<<<<<<<<<< - * - * #// Advance. - */ - __pyx_t_16 = (__pyx_v_angle * 180.0); - if (unlikely(M_PI == 0)) { - PyErr_SetString(PyExc_ZeroDivisionError, "float division"); - __PYX_ERR(0, 223, __pyx_L1_error) - } - __pyx_t_26 = __pyx_v_pv_ind; - *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_angles.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_angles.diminfo[0].strides) = (__pyx_t_16 / M_PI); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":226 - * - * #// Advance. - * pv_ind = pv_ind + 1; # <<<<<<<<<<<<<< - * if (pv_ind > last_index): - * break; #exit - */ - __pyx_v_pv_ind = (__pyx_v_pv_ind + 1); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":227 - * #// Advance. - * pv_ind = pv_ind + 1; - * if (pv_ind > last_index): # <<<<<<<<<<<<<< - * break; #exit - * else: - */ - __pyx_t_11 = ((__pyx_v_pv_ind > __pyx_v_last_index) != 0); - if (__pyx_t_11) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":228 - * pv_ind = pv_ind + 1; - * if (pv_ind > last_index): - * break; #exit # <<<<<<<<<<<<<< - * else: - * #// Compute the first edge length. - */ - goto __pyx_L8_break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":227 - * #// Advance. - * pv_ind = pv_ind + 1; - * if (pv_ind > last_index): # <<<<<<<<<<<<<< - * break; #exit - * else: - */ - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":231 - * else: - * #// Compute the first edge length. - * pv = chainCodeLengths[pv_ind] # <<<<<<<<<<<<<< - * p = chainCodeLengths[p1_ind] - * - */ - /*else*/ { - __pyx_t_27 = __pyx_v_pv_ind; - __pyx_v_pv = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":232 - * #// Compute the first edge length. - * pv = chainCodeLengths[pv_ind] - * p = chainCodeLengths[p1_ind] # <<<<<<<<<<<<<< - * - * edge1 = getEdgeLengthLeft(last_length, pv, p) - */ - __pyx_t_28 = __pyx_v_p1_ind; - __pyx_v_p = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":234 - * p = chainCodeLengths[p1_ind] - * - * edge1 = getEdgeLengthLeft(last_length, pv, p) # <<<<<<<<<<<<<< - * nextE1 = edge1; - * nextP1_ind = p1_ind; - */ - __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_v_last_length); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 234, __pyx_L1_error) - __pyx_v_edge1 = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_getEdgeLengthLeft(__pyx_t_16, __pyx_v_pv, __pyx_v_p); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":235 - * - * edge1 = getEdgeLengthLeft(last_length, pv, p) - * nextE1 = edge1; # <<<<<<<<<<<<<< - * nextP1_ind = p1_ind; - * while (nextE1 > edgeLength): - */ - __pyx_v_nextE1 = __pyx_v_edge1; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":236 - * edge1 = getEdgeLengthLeft(last_length, pv, p) - * nextE1 = edge1; - * nextP1_ind = p1_ind; # <<<<<<<<<<<<<< - * while (nextE1 > edgeLength): - * edge1 = nextE1; - */ - __pyx_v_nextP1_ind = __pyx_v_p1_ind; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":237 - * nextE1 = edge1; - * nextP1_ind = p1_ind; - * while (nextE1 > edgeLength): # <<<<<<<<<<<<<< - * edge1 = nextE1; - * p1_ind = nextP1_ind; - */ - while (1) { - __pyx_t_11 = ((__pyx_v_nextE1 > __pyx_v_edgeLength) != 0); - if (!__pyx_t_11) break; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":238 - * nextP1_ind = p1_ind; - * while (nextE1 > edgeLength): - * edge1 = nextE1; # <<<<<<<<<<<<<< - * p1_ind = nextP1_ind; - * nextP1_ind = plusCircIndex(p1_ind, last_index) - */ - __pyx_v_edge1 = __pyx_v_nextE1; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":239 - * while (nextE1 > edgeLength): - * edge1 = nextE1; - * p1_ind = nextP1_ind; # <<<<<<<<<<<<<< - * nextP1_ind = plusCircIndex(p1_ind, last_index) - * - */ - __pyx_v_p1_ind = __pyx_v_nextP1_ind; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":240 - * edge1 = nextE1; - * p1_ind = nextP1_ind; - * nextP1_ind = plusCircIndex(p1_ind, last_index) # <<<<<<<<<<<<<< - * - * p = chainCodeLengths[nextP1_ind] - */ - __pyx_v_nextP1_ind = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_plusCircIndex(__pyx_v_p1_ind, __pyx_v_last_index); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":242 - * nextP1_ind = plusCircIndex(p1_ind, last_index) - * - * p = chainCodeLengths[nextP1_ind] # <<<<<<<<<<<<<< - * nextE1 = getEdgeLengthLeft(last_length, pv, p) - * - */ - __pyx_t_29 = __pyx_v_nextP1_ind; - __pyx_v_p = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":243 - * - * p = chainCodeLengths[nextP1_ind] - * nextE1 = getEdgeLengthLeft(last_length, pv, p) # <<<<<<<<<<<<<< - * - * return angles - */ - __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_v_last_length); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 243, __pyx_L1_error) - __pyx_v_nextE1 = __pyx_f_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_getEdgeLengthLeft(__pyx_t_16, __pyx_v_pv, __pyx_v_p); - } - } - } - __pyx_L8_break:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":245 - * nextE1 = getEdgeLengthLeft(last_length, pv, p) - * - * return angles # <<<<<<<<<<<<<< - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(((PyObject *)__pyx_v_angles)); - __pyx_r = ((PyObject *)__pyx_v_angles); - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":144 - * - * - * def circCurvature_old(np.ndarray[np.float_t, ndim=2] points, double edgeLength, np.ndarray[np.float_t, ndim=1] chainCodeLengths): # <<<<<<<<<<<<<< - * ''' - * // Inputs: - */ - - /* 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(__pyx_t_6); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_angles.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_points.rcbuffer->pybuffer); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.segWorm_cython.circCurvature_old", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_angles.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_points.rcbuffer->pybuffer); - __pyx_L2:; - __Pyx_XDECREF(__pyx_v_last_length); - __Pyx_XDECREF((PyObject *)__pyx_v_angles); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_TraceReturn(__pyx_r, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 - * # 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_TraceDeclarations - __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; - PyObject *__pyx_t_7 = NULL; - char *__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); - __Pyx_TraceCall("__getbuffer__", __pyx_f[1], 215, 0, __PYX_ERR(1, 215, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":222 - * - * cdef int i, ndim - * cdef int endian_detector = 1 # <<<<<<<<<<<<<< - * cdef bint little_endian = ((&endian_detector)[0] != 0) - * - */ - __pyx_v_endian_detector = 1; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":223 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":225 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 - * ndim = PyArray_NDIM(self) - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":228 - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< - * raise ValueError(u"ndarray is not C contiguous") - * - */ - __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_C_CONTIGUOUS) != 0)) != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L4_bool_binop_done:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 - * ndim = PyArray_NDIM(self) - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): - * raise ValueError(u"ndarray is not C contiguous") - */ - if (unlikely(__pyx_t_1)) { - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_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__3, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 229, __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, 229, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 - * ndim = PyArray_NDIM(self) - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): - * raise ValueError(u"ndarray is not C contiguous") - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 - * raise ValueError(u"ndarray is not C contiguous") - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":232 - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< - * raise ValueError(u"ndarray is not Fortran contiguous") - * - */ - __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_F_CONTIGUOUS) != 0)) != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L7_bool_binop_done:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 - * raise ValueError(u"ndarray is not C contiguous") - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): - * raise ValueError(u"ndarray is not Fortran contiguous") - */ - if (unlikely(__pyx_t_1)) { - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_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__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 233, __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, 233, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 - * raise ValueError(u"ndarray is not C contiguous") - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): - * raise ValueError(u"ndarray is not Fortran contiguous") - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":235 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":236 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":240 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":241 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":242 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":243 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":244 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":246 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":247 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":248 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":249 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":250 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":253 - * - * cdef int t - * cdef char* f = NULL # <<<<<<<<<<<<<< - * cdef dtype descr = self.descr - * cdef int offset - */ - __pyx_v_f = NULL; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":254 - * cdef int t - * cdef char* f = NULL - * cdef dtype descr = self.descr # <<<<<<<<<<<<<< - * cdef int offset - * - */ - __pyx_t_3 = ((PyObject *)__pyx_v_self->descr); - __Pyx_INCREF(__pyx_t_3); - __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); - __pyx_t_3 = 0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":257 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":260 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":262 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 - * 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__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 263, __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, 263, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":264 - * (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; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":265 - * 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" - */ - case NPY_UBYTE: - __pyx_v_f = ((char *)"B"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":266 - * 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" - */ - case NPY_SHORT: - __pyx_v_f = ((char *)"h"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":267 - * 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" - */ - case NPY_USHORT: - __pyx_v_f = ((char *)"H"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":268 - * 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" - */ - case NPY_INT: - __pyx_v_f = ((char *)"i"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":269 - * 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" - */ - case NPY_UINT: - __pyx_v_f = ((char *)"I"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":270 - * 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" - */ - case NPY_LONG: - __pyx_v_f = ((char *)"l"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":271 - * 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" - */ - case NPY_ULONG: - __pyx_v_f = ((char *)"L"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":272 - * 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" - */ - case NPY_LONGLONG: - __pyx_v_f = ((char *)"q"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":273 - * 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" - */ - case NPY_ULONGLONG: - __pyx_v_f = ((char *)"Q"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":274 - * 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" - */ - case NPY_FLOAT: - __pyx_v_f = ((char *)"f"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":275 - * 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" - */ - case NPY_DOUBLE: - __pyx_v_f = ((char *)"d"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":276 - * 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" - */ - case NPY_LONGDOUBLE: - __pyx_v_f = ((char *)"g"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":277 - * 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" - */ - case NPY_CFLOAT: - __pyx_v_f = ((char *)"Zf"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":278 - * 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" - */ - case NPY_CDOUBLE: - __pyx_v_f = ((char *)"Zd"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":279 - * 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: - */ - case NPY_CLONGDOUBLE: - __pyx_v_f = ((char *)"Zg"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":280 - * 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) - */ - case NPY_OBJECT: - __pyx_v_f = ((char *)"O"); - break; - default: - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":282 - * 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, 282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 282, __pyx_L1_error) - break; - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":283 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":284 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 - * info.obj = self - * - * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< - * t = descr.type_num - * if ((descr.byteorder == c'>' and little_endian) or - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":286 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":287 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":288 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":289 - * 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_8 = __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_8 == ((char *)NULL))) __PYX_ERR(1, 289, __pyx_L1_error) - __pyx_v_f = __pyx_t_8; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":292 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 - * # 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_7); - __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_TraceReturn(Py_None, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 - * 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_TraceDeclarations - __Pyx_RefNannyDeclarations - int __pyx_t_1; - __Pyx_RefNannySetupContext("__releasebuffer__", 0); - __Pyx_TraceCall("__releasebuffer__", __pyx_f[1], 294, 0, __PYX_ERR(1, 294, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":296 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":298 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 - * 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 */ - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_WriteUnraisable("numpy.ndarray.__releasebuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); - __pyx_L0:; - __Pyx_TraceReturn(Py_None, 0); - __Pyx_RefNannyFinishContext(); -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 - * 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_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); - __Pyx_TraceCall("PyArray_MultiIterNew1", __pyx_f[1], 775, 0, __PYX_ERR(1, 775, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":776 - * - * 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, 776, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 - * 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_TraceReturn(__pyx_r, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 - * 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_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); - __Pyx_TraceCall("PyArray_MultiIterNew2", __pyx_f[1], 778, 0, __PYX_ERR(1, 778, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":779 - * - * 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, 779, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 - * 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_TraceReturn(__pyx_r, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 - * 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_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); - __Pyx_TraceCall("PyArray_MultiIterNew3", __pyx_f[1], 781, 0, __PYX_ERR(1, 781, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":782 - * - * 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, 782, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 - * 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_TraceReturn(__pyx_r, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 - * 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_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); - __Pyx_TraceCall("PyArray_MultiIterNew4", __pyx_f[1], 784, 0, __PYX_ERR(1, 784, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":785 - * - * 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, 785, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 - * 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_TraceReturn(__pyx_r, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 - * 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_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); - __Pyx_TraceCall("PyArray_MultiIterNew5", __pyx_f[1], 787, 0, __PYX_ERR(1, 787, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":788 - * - * 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, 788, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 - * 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_TraceReturn(__pyx_r, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 - * 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_TraceDeclarations - __Pyx_RefNannyDeclarations - int __pyx_t_1; - __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); - __Pyx_TraceCall("PyDataType_SHAPE", __pyx_f[1], 790, 0, __PYX_ERR(1, 790, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":792 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< - * return d.subarray.shape - * else: - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":794 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 - * 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_L1_error:; - __Pyx_AddTraceback("numpy.PyDataType_SHAPE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_TraceReturn(__pyx_r, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 - * 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_TraceDeclarations - __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); - __Pyx_TraceCall("_util_dtypestring", __pyx_f[1], 796, 0, __PYX_ERR(1, 796, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":801 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":802 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 - * 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, 805, __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, 805, __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, 805, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); - __pyx_t_3 = 0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":806 - * - * 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, 806, __pyx_L1_error) - } - __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 806, __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, 806, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); - __pyx_t_3 = 0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":807 - * 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, 807, __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, 807, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 807, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } else { - __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 807, __pyx_L1_error) - } - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(1, 807, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 - * 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, 809, __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, 809, __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, 809, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 - * - * 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__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 810, __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, 810, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":813 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 - * 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__7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 814, __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, 814, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":824 - * - * # 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, 824, __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, 824, __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, 824, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!__pyx_t_6) break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":825 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":826 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":827 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":829 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":832 - * - * 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, 832, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); - __pyx_t_4 = 0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 - * 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__8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 834, __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, 834, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 - * if not PyDataType_HASFIELDS(child): - * t = child.type_num - * if end - f < 5: # <<<<<<<<<<<<<< - * raise RuntimeError(u"Format string allocated too short.") - * - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":837 - * - * # 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, 837, __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, 837, __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, 837, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":838 - * # 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, 838, __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, 838, __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, 838, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":839 - * 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, 839, __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, 839, __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, 839, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":840 - * 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, 840, __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, 840, __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, 840, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":841 - * 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, 841, __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, 841, __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, 841, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":842 - * 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, 842, __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, 842, __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, 842, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":843 - * 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, 843, __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, 843, __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, 843, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":844 - * 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, 844, __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, 844, __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, 844, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":845 - * 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, 845, __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, 845, __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, 845, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":846 - * 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, 846, __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, 846, __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, 846, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":847 - * 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, 847, __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, 847, __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, 847, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":848 - * 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, 848, __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, 848, __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, 848, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":849 - * 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, 849, __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, 849, __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, 849, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":850 - * 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, 850, __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, 850, __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, 850, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":851 - * 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, 851, __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, 851, __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, 851, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":852 - * 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, 852, __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, 852, __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, 852, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":853 - * 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, 853, __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, 853, __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, 853, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":855 - * 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 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 855, __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, 855, __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, 855, __pyx_L1_error) - } - __pyx_L15:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":856 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 - * offset[0] += child.itemsize - * - * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< - * t = child.type_num - * if end - f < 5: - */ - goto __pyx_L13; - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":860 - * # 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, 860, __pyx_L1_error) - __pyx_v_f = __pyx_t_9; - } - __pyx_L13:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":861 - * # so don't output it - * f = _util_dtypestring(child, f, end, offset) - * return f # <<<<<<<<<<<<<< - * - * - */ - __pyx_r = __pyx_v_f; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 - * 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_TraceReturn(Py_None, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 - * - * - * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< - * cdef PyObject* baseptr - * if base is None: - */ - -static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { - PyObject *__pyx_v_baseptr; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - __Pyx_RefNannySetupContext("set_array_base", 0); - __Pyx_TraceCall("set_array_base", __pyx_f[1], 977, 0, __PYX_ERR(1, 977, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 - * cdef inline void set_array_base(ndarray arr, object base): - * cdef PyObject* baseptr - * if base is None: # <<<<<<<<<<<<<< - * baseptr = NULL - * else: - */ - __pyx_t_1 = (__pyx_v_base == Py_None); - __pyx_t_2 = (__pyx_t_1 != 0); - if (__pyx_t_2) { - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":980 - * cdef PyObject* baseptr - * if base is None: - * baseptr = NULL # <<<<<<<<<<<<<< - * else: - * Py_INCREF(base) # important to do this before decref below! - */ - __pyx_v_baseptr = NULL; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 - * cdef inline void set_array_base(ndarray arr, object base): - * cdef PyObject* baseptr - * if base is None: # <<<<<<<<<<<<<< - * baseptr = NULL - * else: - */ - goto __pyx_L3; - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":982 - * baseptr = NULL - * else: - * Py_INCREF(base) # important to do this before decref below! # <<<<<<<<<<<<<< - * baseptr = base - * Py_XDECREF(arr.base) - */ - /*else*/ { - Py_INCREF(__pyx_v_base); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":983 - * else: - * Py_INCREF(base) # important to do this before decref below! - * baseptr = base # <<<<<<<<<<<<<< - * Py_XDECREF(arr.base) - * arr.base = baseptr - */ - __pyx_v_baseptr = ((PyObject *)__pyx_v_base); - } - __pyx_L3:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":984 - * Py_INCREF(base) # important to do this before decref below! - * baseptr = base - * Py_XDECREF(arr.base) # <<<<<<<<<<<<<< - * arr.base = baseptr - * - */ - Py_XDECREF(__pyx_v_arr->base); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":985 - * baseptr = base - * Py_XDECREF(arr.base) - * arr.base = baseptr # <<<<<<<<<<<<<< - * - * cdef inline object get_array_base(ndarray arr): - */ - __pyx_v_arr->base = __pyx_v_baseptr; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 - * - * - * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< - * cdef PyObject* baseptr - * if base is None: - */ - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_WriteUnraisable("numpy.set_array_base", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); - __pyx_L0:; - __Pyx_TraceReturn(Py_None, 0); - __Pyx_RefNannyFinishContext(); -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 - * arr.base = baseptr - * - * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< - * if arr.base is NULL: - * return None - */ - -static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) { - PyObject *__pyx_r = NULL; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - int __pyx_t_1; - __Pyx_RefNannySetupContext("get_array_base", 0); - __Pyx_TraceCall("get_array_base", __pyx_f[1], 987, 0, __PYX_ERR(1, 987, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 - * - * cdef inline object get_array_base(ndarray arr): - * if arr.base is NULL: # <<<<<<<<<<<<<< - * return None - * else: - */ - __pyx_t_1 = ((__pyx_v_arr->base == NULL) != 0); - if (__pyx_t_1) { - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":989 - * cdef inline object get_array_base(ndarray arr): - * if arr.base is NULL: - * return None # <<<<<<<<<<<<<< - * else: - * return arr.base - */ - __Pyx_XDECREF(__pyx_r); - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 - * - * cdef inline object get_array_base(ndarray arr): - * if arr.base is NULL: # <<<<<<<<<<<<<< - * return None - * else: - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":991 - * return None - * else: - * return arr.base # <<<<<<<<<<<<<< - * - * - */ - /*else*/ { - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(((PyObject *)__pyx_v_arr->base)); - __pyx_r = ((PyObject *)__pyx_v_arr->base); - goto __pyx_L0; - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 - * arr.base = baseptr - * - * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< - * if arr.base is NULL: - * return None - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("numpy.get_array_base", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_TraceReturn(__pyx_r, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 - * # 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_TraceDeclarations - __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); - __Pyx_TraceCall("import_array", __pyx_f[1], 996, 0, __PYX_ERR(1, 996, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":998 - * 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, 998, __pyx_L3_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":999 - * 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, 999, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 - * _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__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1000, __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, 1000, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 - * # 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_TraceReturn(Py_None, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 - * 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_TraceDeclarations - __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); - __Pyx_TraceCall("import_umath", __pyx_f[1], 1002, 0, __PYX_ERR(1, 1002, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1004 - * 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, 1004, __pyx_L3_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1005 - * 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, 1005, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 - * _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__10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1006, __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, 1006, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 - * 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_TraceReturn(Py_None, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 - * 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_TraceDeclarations - __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); - __Pyx_TraceCall("import_ufunc", __pyx_f[1], 1008, 0, __PYX_ERR(1, 1008, __pyx_L1_error)); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1010 - * 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, 1010, __pyx_L3_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1011 - * 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, 1011, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - */ - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1012, __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, 1012, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 - * 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_TraceReturn(Py_None, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -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_segWorm_cython(PyObject* module); /*proto*/ -static PyModuleDef_Slot __pyx_moduledef_slots[] = { - {Py_mod_create, (void*)__pyx_pymod_create}, - {Py_mod_exec, (void*)__pyx_pymod_exec_segWorm_cython}, - {0, NULL} -}; -#endif - -static struct PyModuleDef __pyx_moduledef = { - PyModuleDef_HEAD_INIT, - "segWorm_cython", - __pyx_k_Created_on_Wed_May_20_14_56_35, /* 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 - -static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__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_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, - {&__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_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_a1, __pyx_k_a1, sizeof(__pyx_k_a1), 0, 0, 1, 1}, - {&__pyx_n_s_a2, __pyx_k_a2, sizeof(__pyx_k_a2), 0, 0, 1, 1}, - {&__pyx_n_s_angle, __pyx_k_angle, sizeof(__pyx_k_angle), 0, 0, 1, 1}, - {&__pyx_n_s_angles, __pyx_k_angles, sizeof(__pyx_k_angles), 0, 0, 1, 1}, - {&__pyx_n_s_chainCodeLengths, __pyx_k_chainCodeLengths, sizeof(__pyx_k_chainCodeLengths), 0, 0, 1, 1}, - {&__pyx_n_s_circComputeChainCodeLengths, __pyx_k_circComputeChainCodeLengths, sizeof(__pyx_k_circComputeChainCodeLengths), 0, 0, 1, 1}, - {&__pyx_n_s_circCurvature_old, __pyx_k_circCurvature_old, sizeof(__pyx_k_circCurvature_old), 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_dPx, __pyx_k_dPx, sizeof(__pyx_k_dPx), 0, 0, 1, 1}, - {&__pyx_n_s_dPy, __pyx_k_dPy, sizeof(__pyx_k_dPy), 0, 0, 1, 1}, - {&__pyx_n_s_delta_edge1, __pyx_k_delta_edge1, sizeof(__pyx_k_delta_edge1), 0, 0, 1, 1}, - {&__pyx_n_s_delta_edge2, __pyx_k_delta_edge2, sizeof(__pyx_k_delta_edge2), 0, 0, 1, 1}, - {&__pyx_n_s_dtype, __pyx_k_dtype, sizeof(__pyx_k_dtype), 0, 0, 1, 1}, - {&__pyx_n_s_edge1, __pyx_k_edge1, sizeof(__pyx_k_edge1), 0, 0, 1, 1}, - {&__pyx_n_s_edge2, __pyx_k_edge2, sizeof(__pyx_k_edge2), 0, 0, 1, 1}, - {&__pyx_n_s_edgeLength, __pyx_k_edgeLength, sizeof(__pyx_k_edgeLength), 0, 0, 1, 1}, - {&__pyx_n_s_float, __pyx_k_float, sizeof(__pyx_k_float), 0, 0, 1, 1}, - {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1}, - {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, - {&__pyx_n_s_lastIndex, __pyx_k_lastIndex, sizeof(__pyx_k_lastIndex), 0, 0, 1, 1}, - {&__pyx_n_s_last_index, __pyx_k_last_index, sizeof(__pyx_k_last_index), 0, 0, 1, 1}, - {&__pyx_n_s_last_length, __pyx_k_last_length, sizeof(__pyx_k_last_length), 0, 0, 1, 1}, - {&__pyx_n_s_lengths, __pyx_k_lengths, sizeof(__pyx_k_lengths), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 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_nextE1, __pyx_k_nextE1, sizeof(__pyx_k_nextE1), 0, 0, 1, 1}, - {&__pyx_n_s_nextP1_ind, __pyx_k_nextP1_ind, sizeof(__pyx_k_nextP1_ind), 0, 0, 1, 1}, - {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1}, - {&__pyx_n_s_number_of_points, __pyx_k_number_of_points, sizeof(__pyx_k_number_of_points), 0, 0, 1, 1}, - {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1}, - {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, - {&__pyx_n_s_ones, __pyx_k_ones, sizeof(__pyx_k_ones), 0, 0, 1, 1}, - {&__pyx_n_s_p, __pyx_k_p, sizeof(__pyx_k_p), 0, 0, 1, 1}, - {&__pyx_n_s_p1, __pyx_k_p1, sizeof(__pyx_k_p1), 0, 0, 1, 1}, - {&__pyx_n_s_p1_ind, __pyx_k_p1_ind, sizeof(__pyx_k_p1_ind), 0, 0, 1, 1}, - {&__pyx_n_s_p2, __pyx_k_p2, sizeof(__pyx_k_p2), 0, 0, 1, 1}, - {&__pyx_n_s_p2_ind, __pyx_k_p2_ind, sizeof(__pyx_k_p2_ind), 0, 0, 1, 1}, - {&__pyx_n_s_points, __pyx_k_points, sizeof(__pyx_k_points), 0, 0, 1, 1}, - {&__pyx_n_s_prevP2_ind, __pyx_k_prevP2_ind, sizeof(__pyx_k_prevP2_ind), 0, 0, 1, 1}, - {&__pyx_n_s_pv, __pyx_k_pv, sizeof(__pyx_k_pv), 0, 0, 1, 1}, - {&__pyx_n_s_pv_ind, __pyx_k_pv_ind, sizeof(__pyx_k_pv_ind), 0, 0, 1, 1}, - {&__pyx_n_s_pv_length, __pyx_k_pv_length, sizeof(__pyx_k_pv_length), 0, 0, 1, 1}, - {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_sqrt2, __pyx_k_sqrt2, sizeof(__pyx_k_sqrt2), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, - {&__pyx_kp_s_tierpsy_analysis_ske_create_segW, __pyx_k_tierpsy_analysis_ske_create_segW, sizeof(__pyx_k_tierpsy_analysis_ske_create_segW), 0, 0, 1, 0}, - {&__pyx_n_s_tierpsy_analysis_ske_create_segW_2, __pyx_k_tierpsy_analysis_ske_create_segW_2, sizeof(__pyx_k_tierpsy_analysis_ske_create_segW_2), 0, 0, 1, 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_zeros, __pyx_k_zeros, sizeof(__pyx_k_zeros), 0, 0, 1, 1}, - {0, 0, 0, 0, 0, 0, 0} -}; -static int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 70, __pyx_L1_error) - __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 229, __pyx_L1_error) - __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 810, __pyx_L1_error) - __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 1000, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -} - -static int __Pyx_InitCachedConstants(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): - * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - */ - __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(1, 229, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__3); - __Pyx_GIVEREF(__pyx_tuple__3); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): - * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< - * - * info.buf = PyArray_DATA(self) - */ - __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(1, 233, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__4); - __Pyx_GIVEREF(__pyx_tuple__4); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 - * 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__5 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(1, 263, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__5); - __Pyx_GIVEREF(__pyx_tuple__5); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 - * - * 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__6 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(1, 810, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__6); - __Pyx_GIVEREF(__pyx_tuple__6); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 - * 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_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(1, 814, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__7); - __Pyx_GIVEREF(__pyx_tuple__7); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 - * 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__8 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 834, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__8); - __Pyx_GIVEREF(__pyx_tuple__8); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 - * _import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ - __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 1000, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__9); - __Pyx_GIVEREF(__pyx_tuple__9); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ - __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(1, 1006, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__10); - __Pyx_GIVEREF(__pyx_tuple__10); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - */ - __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(1, 1012, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__11); - __Pyx_GIVEREF(__pyx_tuple__11); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":33 - * return sqrt(dPx*dPx + dPy*dPy); - * - * def circComputeChainCodeLengths(np.ndarray[np.float_t, ndim=2] points): # <<<<<<<<<<<<<< - * ''' - * %CIRCCOMPUTECHAINCODELENGTHS Compute the chain-code length, at each point, - */ - __pyx_tuple__12 = PyTuple_Pack(8, __pyx_n_s_points, __pyx_n_s_number_of_points, __pyx_n_s_sqrt2, __pyx_n_s_lastIndex, __pyx_n_s_dPx, __pyx_n_s_dPy, __pyx_n_s_lengths, __pyx_n_s_i); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 33, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__12); - __Pyx_GIVEREF(__pyx_tuple__12); - __pyx_codeobj_ = (PyObject*)__Pyx_PyCode_New(1, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__12, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tierpsy_analysis_ske_create_segW, __pyx_n_s_circComputeChainCodeLengths, 33, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj_)) __PYX_ERR(0, 33, __pyx_L1_error) - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":144 - * - * - * def circCurvature_old(np.ndarray[np.float_t, ndim=2] points, double edgeLength, np.ndarray[np.float_t, ndim=1] chainCodeLengths): # <<<<<<<<<<<<<< - * ''' - * // Inputs: - */ - __pyx_tuple__13 = PyTuple_Pack(25, __pyx_n_s_points, __pyx_n_s_edgeLength, __pyx_n_s_chainCodeLengths, __pyx_n_s_number_of_points, __pyx_n_s_last_index, __pyx_n_s_last_length, __pyx_n_s_angles, __pyx_n_s_edge1, __pyx_n_s_edge2, __pyx_n_s_pv_ind, __pyx_n_s_p1_ind, __pyx_n_s_p2_ind, __pyx_n_s_pv_length, __pyx_n_s_p, __pyx_n_s_pv, __pyx_n_s_nextP1_ind, __pyx_n_s_prevP2_ind, __pyx_n_s_delta_edge1, __pyx_n_s_delta_edge2, __pyx_n_s_nextE1, __pyx_n_s_p1, __pyx_n_s_p2, __pyx_n_s_a1, __pyx_n_s_a2, __pyx_n_s_angle); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__13); - __Pyx_GIVEREF(__pyx_tuple__13); - __pyx_codeobj__2 = (PyObject*)__Pyx_PyCode_New(3, 0, 25, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tierpsy_analysis_ske_create_segW, __pyx_n_s_circCurvature_old, 144, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__2)) __PYX_ERR(0, 144, __pyx_L1_error) - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __Pyx_RefNannyFinishContext(); - return -1; -} - -static int __Pyx_InitGlobals(void) { - if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error); - return 0; - __pyx_L1_error:; - return -1; -} - -static int __Pyx_modinit_global_init_code(void); /*proto*/ -static int __Pyx_modinit_variable_export_code(void); /*proto*/ -static int __Pyx_modinit_function_export_code(void); /*proto*/ -static int __Pyx_modinit_type_init_code(void); /*proto*/ -static int __Pyx_modinit_type_import_code(void); /*proto*/ -static int __Pyx_modinit_variable_import_code(void); /*proto*/ -static 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_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_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "type", - #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 - sizeof(PyTypeObject), - #else - sizeof(PyHeapTypeObject), - #endif - 0); if (unlikely(!__pyx_ptype_7cpython_4type_type)) __PYX_ERR(2, 9, __pyx_L1_error) - __pyx_ptype_5numpy_dtype = __Pyx_ImportType("numpy", "dtype", sizeof(PyArray_Descr), 0); if (unlikely(!__pyx_ptype_5numpy_dtype)) __PYX_ERR(1, 164, __pyx_L1_error) - __pyx_ptype_5numpy_flatiter = __Pyx_ImportType("numpy", "flatiter", sizeof(PyArrayIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_flatiter)) __PYX_ERR(1, 186, __pyx_L1_error) - __pyx_ptype_5numpy_broadcast = __Pyx_ImportType("numpy", "broadcast", sizeof(PyArrayMultiIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_broadcast)) __PYX_ERR(1, 190, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType("numpy", "ndarray", sizeof(PyArrayObject), 0); if (unlikely(!__pyx_ptype_5numpy_ndarray)) __PYX_ERR(1, 199, __pyx_L1_error) - __pyx_ptype_5numpy_ufunc = __Pyx_ImportType("numpy", "ufunc", sizeof(PyUFuncObject), 0); if (unlikely(!__pyx_ptype_5numpy_ufunc)) __PYX_ERR(1, 872, __pyx_L1_error) - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __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 - __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); - /*--- Function import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - - -#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 -#ifndef CYTHON_SMALL_CODE -#if defined(__clang__) - #define CYTHON_SMALL_CODE -#elif defined(__GNUC__) && (!(defined(__cplusplus)) || (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 4))) - #define CYTHON_SMALL_CODE __attribute__((optimize("Os"))) -#else - #define CYTHON_SMALL_CODE -#endif -#endif - - -#if PY_MAJOR_VERSION < 3 -__Pyx_PyMODINIT_FUNC initsegWorm_cython(void) CYTHON_SMALL_CODE; /*proto*/ -__Pyx_PyMODINIT_FUNC initsegWorm_cython(void) -#else -__Pyx_PyMODINIT_FUNC PyInit_segWorm_cython(void) CYTHON_SMALL_CODE; /*proto*/ -__Pyx_PyMODINIT_FUNC PyInit_segWorm_cython(void) -#if CYTHON_PEP489_MULTI_PHASE_INIT -{ - return PyModuleDef_Init(&__pyx_moduledef); -} -static int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name) { - PyObject *value = PyObject_GetAttrString(spec, from_name); - int result = 0; - if (likely(value)) { - result = PyDict_SetItemString(moddict, to_name, value); - Py_DECREF(value); - } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { - PyErr_Clear(); - } else { - result = -1; - } - return result; -} -static PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) { - PyObject *module = NULL, *moddict, *modname; - 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__") < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__") < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__") < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__") < 0)) goto bad; - return module; -bad: - Py_XDECREF(module); - return NULL; -} - - -static int __pyx_pymod_exec_segWorm_cython(PyObject *__pyx_pyinit_module) -#endif -#endif -{ - __Pyx_TraceDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m && __pyx_m == __pyx_pyinit_module) return 0; - #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_segWorm_cython(void)", 0); - if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __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("segWorm_cython", __pyx_methods, __pyx_k_Created_on_Wed_May_20_14_56_35, 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) - __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error) - #if CYTHON_COMPILING_IN_PYPY - Py_INCREF(__pyx_b); - #endif - 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_tierpsy__analysis__ske_create__segWormPython__cython_files__segWorm_cython) { - if (PyObject_SetAttrString(__pyx_m, "__name__", __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, "tierpsy.analysis.ske_create.segWormPython.cython_files.segWorm_cython")) { - if (unlikely(PyDict_SetItemString(modules, "tierpsy.analysis.ske_create.segWormPython.cython_files.segWorm_cython", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error) - } - } - #endif - /*--- Builtin init code ---*/ - if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Constants init code ---*/ - if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __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(); - (void)__Pyx_modinit_type_init_code(); - if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); - /*--- Execution code ---*/ - #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) - if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - __Pyx_TraceCall("__Pyx_PyMODINIT_FUNC PyInit_segWorm_cython(void)", __pyx_f[0], 1, 0, __PYX_ERR(0, 1, __pyx_L1_error)); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":13 - * @author: ajaver - * """ - * import numpy as np # <<<<<<<<<<<<<< - * cimport numpy as np - * cimport cython - */ - __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 13, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":33 - * return sqrt(dPx*dPx + dPy*dPy); - * - * def circComputeChainCodeLengths(np.ndarray[np.float_t, ndim=2] points): # <<<<<<<<<<<<<< - * ''' - * %CIRCCOMPUTECHAINCODELENGTHS Compute the chain-code length, at each point, - */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_1circComputeChainCodeLengths, NULL, __pyx_n_s_tierpsy_analysis_ske_create_segW_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 33, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_circComputeChainCodeLengths, __pyx_t_1) < 0) __PYX_ERR(0, 33, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":144 - * - * - * def circCurvature_old(np.ndarray[np.float_t, ndim=2] points, double edgeLength, np.ndarray[np.float_t, ndim=1] chainCodeLengths): # <<<<<<<<<<<<<< - * ''' - * // Inputs: - */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_14segWorm_cython_3circCurvature_old, NULL, __pyx_n_s_tierpsy_analysis_ske_create_segW_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_circCurvature_old, __pyx_t_1) < 0) __PYX_ERR(0, 144, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.pyx":1 - * # -*- coding: utf-8 -*- # <<<<<<<<<<<<<< - * # cython: profile=True - * # cython: boundscheck=False - */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< - * try: - * _import_umath() - */ - __Pyx_TraceReturn(Py_None, 0); - - /*--- Wrapped vars code ---*/ - - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - if (__pyx_m) { - if (__pyx_d) { - __Pyx_AddTraceback("init tierpsy.analysis.ske_create.segWormPython.cython_files.segWorm_cython", 0, __pyx_lineno, __pyx_filename); - } - Py_DECREF(__pyx_m); __pyx_m = 0; - } else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_ImportError, "init tierpsy.analysis.ske_create.segWormPython.cython_files.segWorm_cython"); - } - __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((char *)modname); - if (!m) goto end; - p = PyObject_GetAttrString(m, (char *)"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; -} - -/* 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 - -/* Profile */ -#if CYTHON_PROFILE -static int __Pyx_TraceSetupAndCall(PyCodeObject** code, - PyFrameObject** frame, - PyThreadState* tstate, - const char *funcname, - const char *srcfile, - int firstlineno) { - PyObject *type, *value, *traceback; - int retval; - if (*frame == NULL || !CYTHON_PROFILE_REUSE_FRAME) { - if (*code == NULL) { - *code = __Pyx_createFrameCodeObject(funcname, srcfile, firstlineno); - if (*code == NULL) return 0; - } - *frame = PyFrame_New( - tstate, /*PyThreadState *tstate*/ - *code, /*PyCodeObject *code*/ - __pyx_d, /*PyObject *globals*/ - 0 /*PyObject *locals*/ - ); - if (*frame == NULL) return 0; - if (CYTHON_TRACE && (*frame)->f_trace == NULL) { - Py_INCREF(Py_None); - (*frame)->f_trace = Py_None; - } -#if PY_VERSION_HEX < 0x030400B1 - } else { - (*frame)->f_tstate = tstate; -#endif - } - __Pyx_PyFrame_SetLineNumber(*frame, firstlineno); - retval = 1; - tstate->tracing++; - tstate->use_tracing = 0; - __Pyx_ErrFetchInState(tstate, &type, &value, &traceback); - #if CYTHON_TRACE - if (tstate->c_tracefunc) - retval = tstate->c_tracefunc(tstate->c_traceobj, *frame, PyTrace_CALL, NULL) == 0; - if (retval && tstate->c_profilefunc) - #endif - retval = tstate->c_profilefunc(tstate->c_profileobj, *frame, PyTrace_CALL, NULL) == 0; - tstate->use_tracing = (tstate->c_profilefunc || - (CYTHON_TRACE && tstate->c_tracefunc)); - tstate->tracing--; - if (retval) { - __Pyx_ErrRestoreInState(tstate, type, value, traceback); - return tstate->use_tracing && retval; - } else { - Py_XDECREF(type); - Py_XDECREF(value); - Py_XDECREF(traceback); - return -1; - } -} -static PyCodeObject *__Pyx_createFrameCodeObject(const char *funcname, const char *srcfile, int firstlineno) { - PyObject *py_srcfile = 0; - PyObject *py_funcname = 0; - PyCodeObject *py_code = 0; - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); - py_srcfile = PyString_FromString(srcfile); - #else - py_funcname = PyUnicode_FromString(funcname); - py_srcfile = PyUnicode_FromString(srcfile); - #endif - if (!py_funcname | !py_srcfile) goto bad; - py_code = PyCode_New( - 0, - #if PY_MAJOR_VERSION >= 3 - 0, - #endif - 0, - 0, - CO_OPTIMIZED | CO_NEWLOCALS, - __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,*/ - firstlineno, - __pyx_empty_bytes /*PyObject *lnotab*/ - ); -bad: - Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); - return py_code; -} -#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 -} - -/* 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; -} - -/* 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; - } - } - } -} - -/* BufferGetAndValidate */ - static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) { - if (unlikely(info->buf == NULL)) return; - if (info->suboffsets == __Pyx_minusones) info->suboffsets = NULL; - __Pyx_ReleaseBuffer(info); -} -static void __Pyx_ZeroBuffer(Py_buffer* buf) { - buf->buf = NULL; - buf->obj = NULL; - buf->strides = __Pyx_zeros; - buf->shape = __Pyx_zeros; - buf->suboffsets = __Pyx_minusones; -} -static int __Pyx__GetBufferAndValidate( - Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, - int nd, int cast, __Pyx_BufFmt_StackElem* stack) -{ - buf->buf = NULL; - if (unlikely(__Pyx_GetBuffer(obj, buf, flags) == -1)) { - __Pyx_ZeroBuffer(buf); - return -1; - } - if (unlikely(buf->ndim != nd)) { - PyErr_Format(PyExc_ValueError, - "Buffer has wrong number of dimensions (expected %d, got %d)", - nd, buf->ndim); - goto fail; - } - if (!cast) { - __Pyx_BufFmt_Context ctx; - __Pyx_BufFmt_Init(&ctx, stack, dtype); - if (!__Pyx_BufFmt_CheckString(&ctx, buf->format)) goto fail; - } - if (unlikely((unsigned)buf->itemsize != dtype->size)) { - PyErr_Format(PyExc_ValueError, - "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "d byte%s) does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "d byte%s)", - buf->itemsize, (buf->itemsize > 1) ? "s" : "", - dtype->name, (Py_ssize_t)dtype->size, (dtype->size > 1) ? "s" : ""); - goto fail; - } - if (buf->suboffsets == NULL) buf->suboffsets = __Pyx_minusones; - return 0; -fail:; - __Pyx_SafeReleaseBuffer(buf); - return -1; -} - -/* GetModuleGlobalName */ - static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name) { - 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); - if (likely(result)) { - Py_INCREF(result); - } else if (unlikely(PyErr_Occurred())) { - result = NULL; - } else { -#else - result = PyDict_GetItem(__pyx_d, name); - if (likely(result)) { - Py_INCREF(result); - } else { -#endif -#else - result = PyObject_GetItem(__pyx_d, name); - if (!result) { - PyErr_Clear(); -#endif - result = __Pyx_GetBuiltinName(name); - } - 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 - -/* 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; -} - -/* 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; -} - -/* 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 - -/* 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))); - 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)meth)) (self, args, nargs, NULL); - } else { - return (*((__Pyx_PyCFunctionFast)meth)) (self, args, nargs); - } -} -#endif - -/* PyFunctionFastCall */ - #if CYTHON_FAST_PYCALL -#include "frameobject.h" -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 = f->f_localsplus; - 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, int 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, nargs, - k, (int)nk, - d, (int)nd, kwdefs, closure); -#else - result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, - args, 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 - -/* 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()) { - PyObject* args = PyTuple_Pack(1, key); - if (likely(args)) - PyErr_SetObject(PyExc_KeyError, args); - Py_XDECREF(args); - } - return NULL; - } - Py_INCREF(value); - return value; -} -#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"); -} - -/* RaiseNoneIterError */ - static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -} - -/* SaveResetException */ - #if CYTHON_FAST_THREAD_STATE -static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { - #if PY_VERSION_HEX >= 0x030700A2 - *type = tstate->exc_state.exc_type; - *value = tstate->exc_state.exc_value; - *tb = tstate->exc_state.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 PY_VERSION_HEX >= 0x030700A2 - tmp_type = tstate->exc_state.exc_type; - tmp_value = tstate->exc_state.exc_value; - tmp_tb = tstate->exc_state.exc_traceback; - tstate->exc_state.exc_type = type; - tstate->exc_state.exc_value = value; - tstate->exc_state.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 PY_VERSION_HEX >= 0x030700A2 - tmp_type = tstate->exc_state.exc_type; - tmp_value = tstate->exc_state.exc_value; - tmp_tb = tstate->exc_state.exc_traceback; - tstate->exc_state.exc_type = local_type; - tstate->exc_state.exc_value = local_value; - tstate->exc_state.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; -} - -/* 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, 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; -} - -/* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK -static int __Pyx_CLineForTraceback(CYTHON_UNUSED 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)) { - use_cline = __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 (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); - 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 - - - /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - const int neg_one = (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); - } -} - -/* 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 = 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 = 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, -1); - } - } 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 = 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 = 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, -1); - } - } 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_enum__NPY_TYPES(enum NPY_TYPES value) { - const enum NPY_TYPES neg_one = (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); - } -} - -/* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - const int neg_one = (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; -} - -/* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - const long neg_one = (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); - } -} - -/* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - const long neg_one = (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; -} - -/* 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 CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) { - if (likely(err == exc_type)) return 1; - if (likely(PyExceptionClass_Check(err))) { - return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type); - } - return PyErr_GivenExceptionMatches(err, exc_type); -} -static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) { - if (likely(err == exc_type1 || err == exc_type2)) return 1; - if (likely(PyExceptionClass_Check(err))) { - return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2); - } - return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2)); -} -#endif - -/* 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; -} - -/* ModuleImport */ - #ifndef __PYX_HAVE_RT_ImportModule -#define __PYX_HAVE_RT_ImportModule -static PyObject *__Pyx_ImportModule(const char *name) { - PyObject *py_name = 0; - PyObject *py_module = 0; - py_name = __Pyx_PyIdentifier_FromString(name); - if (!py_name) - goto bad; - py_module = PyImport_Import(py_name); - Py_DECREF(py_name); - return py_module; -bad: - Py_XDECREF(py_name); - return 0; -} -#endif - -/* TypeImport */ - #ifndef __PYX_HAVE_RT_ImportType -#define __PYX_HAVE_RT_ImportType -static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, - size_t size, int strict) -{ - PyObject *py_module = 0; - PyObject *result = 0; - PyObject *py_name = 0; - char warning[200]; - Py_ssize_t basicsize; -#ifdef Py_LIMITED_API - PyObject *py_basicsize; -#endif - py_module = __Pyx_ImportModule(module_name); - if (!py_module) - goto bad; - py_name = __Pyx_PyIdentifier_FromString(class_name); - if (!py_name) - goto bad; - result = PyObject_GetAttr(py_module, py_name); - Py_DECREF(py_name); - py_name = 0; - Py_DECREF(py_module); - py_module = 0; - 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 (!strict && (size_t)basicsize > size) { - PyOS_snprintf(warning, sizeof(warning), - "%s.%s size changed, may indicate binary incompatibility. Expected %zd, got %zd", - module_name, class_name, basicsize, size); - if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad; - } - else if ((size_t)basicsize != size) { - PyErr_Format(PyExc_ValueError, - "%.200s.%.200s has the wrong size, try recompiling. Expected %zd, got %zd", - module_name, class_name, basicsize, size); - goto bad; - } - return (PyTypeObject *)result; -bad: - Py_XDECREF(py_module); - Py_XDECREF(result); - return NULL; -} -#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 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(x); - } -#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 */ diff --git a/tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.cp35-win_amd64.pyd b/tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.cp35-win_amd64.pyd deleted file mode 100755 index a04e643960e7dbf7a371eda487670760b84fadb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50176 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 diff --git a/tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.cpython-35m-darwin.so b/tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.cpython-35m-darwin.so deleted file mode 100755 index 1c0f8f646c92a655c3a81a70b27bb8c25d475083..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77004 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 XG*+nHcWKp*CgXpZzf)JJOQrt -#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 -#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 -#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 (0 && PY_VERSION_HEX >= 0x03050000) - #endif - #ifndef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) - #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 -#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" - #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 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 -#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))))) -#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_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; // PyThread_create_key reports success always -} -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 // TSS (Thread Specific Storage) API -#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)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) -#define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? 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__tierpsy__analysis__stage_aligment__get_mask_diff_var -#define __PYX_HAVE_API__tierpsy__analysis__stage_aligment__get_mask_diff_var -/* Early includes */ -#include -#include -#include "numpy/arrayobject.h" -#include "numpy/ufuncobject.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_DEFAULT 0 -#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))) ) -#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 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)); - 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[] = { - "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx", - "__init__.pxd", - "type.pxd", -}; -/* 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":730 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":731 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":732 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":733 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":737 - * #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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":738 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":739 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":740 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":744 - * #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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":745 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":754 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":755 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":756 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":758 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":759 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":760 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":762 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":763 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":765 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":766 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":767 - * 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; -/* 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 ---*/ - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":769 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":770 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":771 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":773 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< - * - * cdef inline object PyArray_MultiIterNew1(a): - */ -typedef npy_cdouble __pyx_t_5numpy_complex_t; - -/* --- 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); - -/* 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); - -/* 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); - -/* BufferGetAndValidate.proto */ -#define __Pyx_GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack)\ - ((obj == Py_None || obj == NULL) ?\ - (__Pyx_ZeroBuffer(buf), 0) :\ - __Pyx__GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack)) -static int __Pyx__GetBufferAndValidate(Py_buffer* buf, PyObject* obj, - __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack); -static void __Pyx_ZeroBuffer(Py_buffer* buf); -static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info); -static Py_ssize_t __Pyx_minusones[] = { -1, -1, -1, -1, -1, -1, -1, -1 }; -static Py_ssize_t __Pyx_zeros[] = { 0, 0, 0, 0, 0, 0, 0, 0 }; - -#define __Pyx_BufPtrStrided2d(type, buf, i0, s0, i1, s1) (type)((char*)buf + i0 * s0 + i1 * s1) -/* GetModuleGlobalName.proto */ -static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name); - -/* 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 - -/* 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 - -/* RaiseException.proto */ -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - -/* 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, int nargs, PyObject *kwargs); -#else -#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) -#endif -#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); - -/* 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 - -/* RaiseTooManyValuesToUnpack.proto */ -static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); - -/* RaiseNeedMoreValuesToUnpack.proto */ -static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); - -/* RaiseNoneIterError.proto */ -static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); - -/* ExtTypeTest.proto */ -static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); - -/* 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 - -/* Import.proto */ -static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); - -/* 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); - -/* 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; - -#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 - - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(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_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_enum__NPY_TYPES(enum NPY_TYPES value); - -/* CIntFromPy.proto */ -static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); - -/* CIntFromPy.proto */ -static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -/* 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) - -/* CheckBinaryVersion.proto */ -static int __Pyx_check_binary_version(void); - -/* PyIdentifierFromString.proto */ -#if !defined(__Pyx_PyIdentifier_FromString) -#if PY_MAJOR_VERSION < 3 - #define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s) -#else - #define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s) -#endif -#endif - -/* ModuleImport.proto */ -static PyObject *__Pyx_ImportModule(const char *name); - -/* TypeImport.proto */ -static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict); - -/* InitStrings.proto */ -static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); - - -/* 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 'cython' */ - -/* Module declarations from 'tierpsy.analysis.stage_aligment.get_mask_diff_var' */ -static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t = { "uint8_t", NULL, sizeof(__pyx_t_5numpy_uint8_t), { 0 }, 0, IS_UNSIGNED(__pyx_t_5numpy_uint8_t) ? 'U' : 'I', IS_UNSIGNED(__pyx_t_5numpy_uint8_t), 0 }; -#define __Pyx_MODULE_NAME "tierpsy.analysis.stage_aligment.get_mask_diff_var" -extern int __pyx_module_is_main_tierpsy__analysis__stage_aligment__get_mask_diff_var; -int __pyx_module_is_main_tierpsy__analysis__stage_aligment__get_mask_diff_var = 0; - -/* Implementation of 'tierpsy.analysis.stage_aligment.get_mask_diff_var' */ -static PyObject *__pyx_builtin_range; -static PyObject *__pyx_builtin_ValueError; -static PyObject *__pyx_builtin_RuntimeError; -static PyObject *__pyx_builtin_ImportError; -static const char __pyx_k_f[] = "f"; -static const char __pyx_k_g[] = "g"; -static const char __pyx_k_i[] = "i"; -static const char __pyx_k_j[] = "j"; -static const char __pyx_k_k[] = "k"; -static const char __pyx_k_np[] = "np"; -static const char __pyx_k_nan[] = "nan"; -static const char __pyx_k_main[] = "__main__"; -static const char __pyx_k_test[] = "__test__"; -static const char __pyx_k_n_col[] = "n_col"; -static const char __pyx_k_n_row[] = "n_row"; -static const char __pyx_k_numpy[] = "numpy"; -static const char __pyx_k_range[] = "range"; -static const char __pyx_k_import[] = "__import__"; -static const char __pyx_k_mean_x[] = "mean_x"; -static const char __pyx_k_sum_x2[] = "sum_x2"; -static const char __pyx_k_pix_diff[] = "pix_diff"; -static const char __pyx_k_var_diff[] = "var_diff"; -static const char __pyx_k_tot_valid[] = "tot_valid"; -static const char __pyx_k_ValueError[] = "ValueError"; -static const char __pyx_k_ImportError[] = "ImportError"; -static const char __pyx_k_RuntimeError[] = "RuntimeError"; -static const char __pyx_k_get_mask_diff_var[] = "get_mask_diff_var"; -static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; -static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; -static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import"; -static const char __pyx_k_tierpsy_analysis_stage_aligment[] = "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx"; -static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%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_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; -static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; -static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; -static const char __pyx_k_tierpsy_analysis_stage_aligment_2[] = "tierpsy.analysis.stage_aligment.get_mask_diff_var"; -static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; -static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; -static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; -static PyObject *__pyx_n_s_ImportError; -static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; -static PyObject *__pyx_n_s_RuntimeError; -static PyObject *__pyx_n_s_ValueError; -static PyObject *__pyx_n_s_cline_in_traceback; -static PyObject *__pyx_n_s_f; -static PyObject *__pyx_n_s_g; -static PyObject *__pyx_n_s_get_mask_diff_var; -static PyObject *__pyx_n_s_i; -static PyObject *__pyx_n_s_import; -static PyObject *__pyx_n_s_j; -static PyObject *__pyx_n_s_k; -static PyObject *__pyx_n_s_main; -static PyObject *__pyx_n_s_mean_x; -static PyObject *__pyx_n_s_n_col; -static PyObject *__pyx_n_s_n_row; -static PyObject *__pyx_n_s_nan; -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_np; -static PyObject *__pyx_n_s_numpy; -static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; -static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; -static PyObject *__pyx_n_s_pix_diff; -static PyObject *__pyx_n_s_range; -static PyObject *__pyx_n_s_sum_x2; -static PyObject *__pyx_n_s_test; -static PyObject *__pyx_kp_s_tierpsy_analysis_stage_aligment; -static PyObject *__pyx_n_s_tierpsy_analysis_stage_aligment_2; -static PyObject *__pyx_n_s_tot_valid; -static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; -static PyObject *__pyx_n_s_var_diff; -static PyObject *__pyx_pf_7tierpsy_8analysis_14stage_aligment_17get_mask_diff_var_get_mask_diff_var(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_g); /* 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 PyObject *__pyx_tuple_; -static PyObject *__pyx_tuple__2; -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_tuple__10; -static PyObject *__pyx_codeobj__11; -/* Late includes */ - -/* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":7 - * @cython.boundscheck(False) - * @cython.wraparound(False) - * def get_mask_diff_var(np.ndarray[np.uint8_t, ndim=2] f, np.ndarray[np.uint8_t, ndim=2] g): # <<<<<<<<<<<<<< - * #f, g are to one dim vector - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7tierpsy_8analysis_14stage_aligment_17get_mask_diff_var_1get_mask_diff_var(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_7tierpsy_8analysis_14stage_aligment_17get_mask_diff_var_1get_mask_diff_var = {"get_mask_diff_var", (PyCFunction)__pyx_pw_7tierpsy_8analysis_14stage_aligment_17get_mask_diff_var_1get_mask_diff_var, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_7tierpsy_8analysis_14stage_aligment_17get_mask_diff_var_1get_mask_diff_var(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyArrayObject *__pyx_v_f = 0; - PyArrayObject *__pyx_v_g = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_mask_diff_var (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_f,&__pyx_n_s_g,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_f)) != 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_g)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("get_mask_diff_var", 1, 2, 2, 1); __PYX_ERR(0, 7, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_mask_diff_var") < 0)) __PYX_ERR(0, 7, __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_f = ((PyArrayObject *)values[0]); - __pyx_v_g = ((PyArrayObject *)values[1]); - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("get_mask_diff_var", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("tierpsy.analysis.stage_aligment.get_mask_diff_var.get_mask_diff_var", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 7, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_g), __pyx_ptype_5numpy_ndarray, 1, "g", 0))) __PYX_ERR(0, 7, __pyx_L1_error) - __pyx_r = __pyx_pf_7tierpsy_8analysis_14stage_aligment_17get_mask_diff_var_get_mask_diff_var(__pyx_self, __pyx_v_f, __pyx_v_g); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7tierpsy_8analysis_14stage_aligment_17get_mask_diff_var_get_mask_diff_var(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_g) { - int __pyx_v_n_row; - int __pyx_v_n_col; - int __pyx_v_i; - double __pyx_v_var_diff; - double __pyx_v_mean_x; - double __pyx_v_sum_x2; - double __pyx_v_pix_diff; - double __pyx_v_tot_valid; - int __pyx_v_j; - __Pyx_LocalBuf_ND __pyx_pybuffernd_f; - __Pyx_Buffer __pyx_pybuffer_f; - __Pyx_LocalBuf_ND __pyx_pybuffernd_g; - __Pyx_Buffer __pyx_pybuffer_g; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - int __pyx_t_3; - int __pyx_t_4; - int __pyx_t_5; - int __pyx_t_6; - int __pyx_t_7; - Py_ssize_t __pyx_t_8; - Py_ssize_t __pyx_t_9; - int __pyx_t_10; - Py_ssize_t __pyx_t_11; - Py_ssize_t __pyx_t_12; - Py_ssize_t __pyx_t_13; - Py_ssize_t __pyx_t_14; - Py_ssize_t __pyx_t_15; - Py_ssize_t __pyx_t_16; - PyObject *__pyx_t_17 = NULL; - PyObject *__pyx_t_18 = NULL; - __Pyx_RefNannySetupContext("get_mask_diff_var", 0); - __pyx_pybuffer_f.pybuffer.buf = NULL; - __pyx_pybuffer_f.refcount = 0; - __pyx_pybuffernd_f.data = NULL; - __pyx_pybuffernd_f.rcbuffer = &__pyx_pybuffer_f; - __pyx_pybuffer_g.pybuffer.buf = NULL; - __pyx_pybuffer_g.refcount = 0; - __pyx_pybuffernd_g.data = NULL; - __pyx_pybuffernd_g.rcbuffer = &__pyx_pybuffer_g; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_f.rcbuffer->pybuffer, (PyObject*)__pyx_v_f, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 7, __pyx_L1_error) - } - __pyx_pybuffernd_f.diminfo[0].strides = __pyx_pybuffernd_f.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_f.diminfo[0].shape = __pyx_pybuffernd_f.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_f.diminfo[1].strides = __pyx_pybuffernd_f.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_f.diminfo[1].shape = __pyx_pybuffernd_f.rcbuffer->pybuffer.shape[1]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_g.rcbuffer->pybuffer, (PyObject*)__pyx_v_g, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 7, __pyx_L1_error) - } - __pyx_pybuffernd_g.diminfo[0].strides = __pyx_pybuffernd_g.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_g.diminfo[0].shape = __pyx_pybuffernd_g.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_g.diminfo[1].strides = __pyx_pybuffernd_g.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_g.diminfo[1].shape = __pyx_pybuffernd_g.rcbuffer->pybuffer.shape[1]; - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":10 - * #f, g are to one dim vector - * - * cdef int n_row = f.shape[0]; # <<<<<<<<<<<<<< - * cdef int n_col = f.shape[1]; - * cdef int i, k - */ - __pyx_v_n_row = (__pyx_v_f->dimensions[0]); - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":11 - * - * cdef int n_row = f.shape[0]; - * cdef int n_col = f.shape[1]; # <<<<<<<<<<<<<< - * cdef int i, k - * cdef double var_diff; - */ - __pyx_v_n_col = (__pyx_v_f->dimensions[1]); - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":14 - * cdef int i, k - * cdef double var_diff; - * cdef double mean_x = 0; # <<<<<<<<<<<<<< - * cdef double sum_x2 = 0; - * cdef double pix_diff = 0; - */ - __pyx_v_mean_x = 0.0; - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":15 - * cdef double var_diff; - * cdef double mean_x = 0; - * cdef double sum_x2 = 0; # <<<<<<<<<<<<<< - * cdef double pix_diff = 0; - * cdef double tot_valid = 0; - */ - __pyx_v_sum_x2 = 0.0; - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":16 - * cdef double mean_x = 0; - * cdef double sum_x2 = 0; - * cdef double pix_diff = 0; # <<<<<<<<<<<<<< - * cdef double tot_valid = 0; - * - */ - __pyx_v_pix_diff = 0.0; - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":17 - * cdef double sum_x2 = 0; - * cdef double pix_diff = 0; - * cdef double tot_valid = 0; # <<<<<<<<<<<<<< - * - * for i in range(n_row): - */ - __pyx_v_tot_valid = 0.0; - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":19 - * cdef double tot_valid = 0; - * - * for i in range(n_row): # <<<<<<<<<<<<<< - * for j in range(n_col): - * if ( f[i,j] != 0 ) and ( g[i,j] != 0 ): - */ - __pyx_t_1 = __pyx_v_n_row; - __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; - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":20 - * - * for i in range(n_row): - * for j in range(n_col): # <<<<<<<<<<<<<< - * if ( f[i,j] != 0 ) and ( g[i,j] != 0 ): - * pix_diff = f[i,j] - g[i,j]; - */ - __pyx_t_4 = __pyx_v_n_col; - __pyx_t_5 = __pyx_t_4; - for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { - __pyx_v_j = __pyx_t_6; - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":21 - * for i in range(n_row): - * for j in range(n_col): - * if ( f[i,j] != 0 ) and ( g[i,j] != 0 ): # <<<<<<<<<<<<<< - * pix_diff = f[i,j] - g[i,j]; - * mean_x += pix_diff; - */ - __pyx_t_8 = __pyx_v_i; - __pyx_t_9 = __pyx_v_j; - __pyx_t_10 = (((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_f.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_f.diminfo[0].strides, __pyx_t_9, __pyx_pybuffernd_f.diminfo[1].strides)) != 0) != 0); - if (__pyx_t_10) { - } else { - __pyx_t_7 = __pyx_t_10; - goto __pyx_L8_bool_binop_done; - } - __pyx_t_11 = __pyx_v_i; - __pyx_t_12 = __pyx_v_j; - __pyx_t_10 = (((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_g.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_g.diminfo[0].strides, __pyx_t_12, __pyx_pybuffernd_g.diminfo[1].strides)) != 0) != 0); - __pyx_t_7 = __pyx_t_10; - __pyx_L8_bool_binop_done:; - if (__pyx_t_7) { - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":22 - * for j in range(n_col): - * if ( f[i,j] != 0 ) and ( g[i,j] != 0 ): - * pix_diff = f[i,j] - g[i,j]; # <<<<<<<<<<<<<< - * mean_x += pix_diff; - * sum_x2 += pix_diff*pix_diff; - */ - __pyx_t_13 = __pyx_v_i; - __pyx_t_14 = __pyx_v_j; - __pyx_t_15 = __pyx_v_i; - __pyx_t_16 = __pyx_v_j; - __pyx_v_pix_diff = (((double)(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_f.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_f.diminfo[0].strides, __pyx_t_14, __pyx_pybuffernd_f.diminfo[1].strides))) - ((double)(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_g.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_g.diminfo[0].strides, __pyx_t_16, __pyx_pybuffernd_g.diminfo[1].strides)))); - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":23 - * if ( f[i,j] != 0 ) and ( g[i,j] != 0 ): - * pix_diff = f[i,j] - g[i,j]; - * mean_x += pix_diff; # <<<<<<<<<<<<<< - * sum_x2 += pix_diff*pix_diff; - * tot_valid += 1; - */ - __pyx_v_mean_x = (__pyx_v_mean_x + __pyx_v_pix_diff); - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":24 - * pix_diff = f[i,j] - g[i,j]; - * mean_x += pix_diff; - * sum_x2 += pix_diff*pix_diff; # <<<<<<<<<<<<<< - * tot_valid += 1; - * #print tot_pix - */ - __pyx_v_sum_x2 = (__pyx_v_sum_x2 + (__pyx_v_pix_diff * __pyx_v_pix_diff)); - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":25 - * mean_x += pix_diff; - * sum_x2 += pix_diff*pix_diff; - * tot_valid += 1; # <<<<<<<<<<<<<< - * #print tot_pix - * if tot_valid > 0: - */ - __pyx_v_tot_valid = (__pyx_v_tot_valid + 1.0); - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":21 - * for i in range(n_row): - * for j in range(n_col): - * if ( f[i,j] != 0 ) and ( g[i,j] != 0 ): # <<<<<<<<<<<<<< - * pix_diff = f[i,j] - g[i,j]; - * mean_x += pix_diff; - */ - } - } - } - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":27 - * tot_valid += 1; - * #print tot_pix - * if tot_valid > 0: # <<<<<<<<<<<<<< - * mean_x /= tot_valid; - * var_diff = sum_x2/tot_valid - mean_x*mean_x; - */ - __pyx_t_7 = ((__pyx_v_tot_valid > 0.0) != 0); - if (__pyx_t_7) { - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":28 - * #print tot_pix - * if tot_valid > 0: - * mean_x /= tot_valid; # <<<<<<<<<<<<<< - * var_diff = sum_x2/tot_valid - mean_x*mean_x; - * return var_diff; - */ - if (unlikely(__pyx_v_tot_valid == 0)) { - PyErr_SetString(PyExc_ZeroDivisionError, "float division"); - __PYX_ERR(0, 28, __pyx_L1_error) - } - __pyx_v_mean_x = (__pyx_v_mean_x / __pyx_v_tot_valid); - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":29 - * if tot_valid > 0: - * mean_x /= tot_valid; - * var_diff = sum_x2/tot_valid - mean_x*mean_x; # <<<<<<<<<<<<<< - * return var_diff; - * else: - */ - if (unlikely(__pyx_v_tot_valid == 0)) { - PyErr_SetString(PyExc_ZeroDivisionError, "float division"); - __PYX_ERR(0, 29, __pyx_L1_error) - } - __pyx_v_var_diff = ((__pyx_v_sum_x2 / __pyx_v_tot_valid) - (__pyx_v_mean_x * __pyx_v_mean_x)); - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":30 - * mean_x /= tot_valid; - * var_diff = sum_x2/tot_valid - mean_x*mean_x; - * return var_diff; # <<<<<<<<<<<<<< - * else: - * return np.nan; - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_17 = PyFloat_FromDouble(__pyx_v_var_diff); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 30, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_17); - __pyx_r = __pyx_t_17; - __pyx_t_17 = 0; - goto __pyx_L0; - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":27 - * tot_valid += 1; - * #print tot_pix - * if tot_valid > 0: # <<<<<<<<<<<<<< - * mean_x /= tot_valid; - * var_diff = sum_x2/tot_valid - mean_x*mean_x; - */ - } - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":32 - * return var_diff; - * else: - * return np.nan; # <<<<<<<<<<<<<< - * - */ - /*else*/ { - __Pyx_XDECREF(__pyx_r); - __pyx_t_17 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 32, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_17); - __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_nan); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 32, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; - __pyx_r = __pyx_t_18; - __pyx_t_18 = 0; - goto __pyx_L0; - } - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":7 - * @cython.boundscheck(False) - * @cython.wraparound(False) - * def get_mask_diff_var(np.ndarray[np.uint8_t, ndim=2] f, np.ndarray[np.uint8_t, ndim=2] g): # <<<<<<<<<<<<<< - * #f, g are to one dim vector - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_17); - __Pyx_XDECREF(__pyx_t_18); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_f.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_g.rcbuffer->pybuffer); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("tierpsy.analysis.stage_aligment.get_mask_diff_var.get_mask_diff_var", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_f.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_g.rcbuffer->pybuffer); - __pyx_L2:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 - * # 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; - PyObject *__pyx_t_7 = NULL; - char *__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); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":222 - * - * cdef int i, ndim - * cdef int endian_detector = 1 # <<<<<<<<<<<<<< - * cdef bint little_endian = ((&endian_detector)[0] != 0) - * - */ - __pyx_v_endian_detector = 1; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":223 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":225 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 - * ndim = PyArray_NDIM(self) - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":228 - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< - * raise ValueError(u"ndarray is not C contiguous") - * - */ - __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_C_CONTIGUOUS) != 0)) != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L4_bool_binop_done:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 - * ndim = PyArray_NDIM(self) - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): - * raise ValueError(u"ndarray is not C contiguous") - */ - if (unlikely(__pyx_t_1)) { - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_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_, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 229, __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, 229, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":227 - * ndim = PyArray_NDIM(self) - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): - * raise ValueError(u"ndarray is not C contiguous") - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 - * raise ValueError(u"ndarray is not C contiguous") - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":232 - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< - * raise ValueError(u"ndarray is not Fortran contiguous") - * - */ - __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_F_CONTIGUOUS) != 0)) != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L7_bool_binop_done:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 - * raise ValueError(u"ndarray is not C contiguous") - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): - * raise ValueError(u"ndarray is not Fortran contiguous") - */ - if (unlikely(__pyx_t_1)) { - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_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__2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 233, __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, 233, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 - * raise ValueError(u"ndarray is not C contiguous") - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): - * raise ValueError(u"ndarray is not Fortran contiguous") - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":235 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":236 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":240 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":241 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":242 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":243 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":244 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":246 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":247 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":248 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":249 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":250 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":253 - * - * cdef int t - * cdef char* f = NULL # <<<<<<<<<<<<<< - * cdef dtype descr = self.descr - * cdef int offset - */ - __pyx_v_f = NULL; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":254 - * cdef int t - * cdef char* f = NULL - * cdef dtype descr = self.descr # <<<<<<<<<<<<<< - * cdef int offset - * - */ - __pyx_t_3 = ((PyObject *)__pyx_v_self->descr); - __Pyx_INCREF(__pyx_t_3); - __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); - __pyx_t_3 = 0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":257 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":260 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":262 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 - * 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__3, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 263, __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, 263, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":264 - * (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; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":265 - * 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" - */ - case NPY_UBYTE: - __pyx_v_f = ((char *)"B"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":266 - * 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" - */ - case NPY_SHORT: - __pyx_v_f = ((char *)"h"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":267 - * 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" - */ - case NPY_USHORT: - __pyx_v_f = ((char *)"H"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":268 - * 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" - */ - case NPY_INT: - __pyx_v_f = ((char *)"i"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":269 - * 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" - */ - case NPY_UINT: - __pyx_v_f = ((char *)"I"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":270 - * 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" - */ - case NPY_LONG: - __pyx_v_f = ((char *)"l"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":271 - * 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" - */ - case NPY_ULONG: - __pyx_v_f = ((char *)"L"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":272 - * 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" - */ - case NPY_LONGLONG: - __pyx_v_f = ((char *)"q"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":273 - * 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" - */ - case NPY_ULONGLONG: - __pyx_v_f = ((char *)"Q"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":274 - * 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" - */ - case NPY_FLOAT: - __pyx_v_f = ((char *)"f"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":275 - * 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" - */ - case NPY_DOUBLE: - __pyx_v_f = ((char *)"d"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":276 - * 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" - */ - case NPY_LONGDOUBLE: - __pyx_v_f = ((char *)"g"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":277 - * 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" - */ - case NPY_CFLOAT: - __pyx_v_f = ((char *)"Zf"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":278 - * 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" - */ - case NPY_CDOUBLE: - __pyx_v_f = ((char *)"Zd"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":279 - * 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: - */ - case NPY_CLONGDOUBLE: - __pyx_v_f = ((char *)"Zg"); - break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":280 - * 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) - */ - case NPY_OBJECT: - __pyx_v_f = ((char *)"O"); - break; - default: - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":282 - * 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, 282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 282, __pyx_L1_error) - break; - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":283 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":284 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 - * info.obj = self - * - * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< - * t = descr.type_num - * if ((descr.byteorder == c'>' and little_endian) or - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":286 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":287 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":288 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":289 - * 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_8 = __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_8 == ((char *)NULL))) __PYX_ERR(1, 289, __pyx_L1_error) - __pyx_v_f = __pyx_t_8; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":292 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":215 - * # 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_7); - __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":296 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":295 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":298 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":297 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":776 - * - * 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, 776, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":775 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":779 - * - * 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, 779, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":778 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":782 - * - * 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, 782, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":781 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":785 - * - * 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, 785, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":784 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":788 - * - * 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, 788, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":787 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":792 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< - * return d.subarray.shape - * else: - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":794 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":801 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":802 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 - * 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, 805, __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, 805, __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, 805, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); - __pyx_t_3 = 0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":806 - * - * 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, 806, __pyx_L1_error) - } - __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 806, __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, 806, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); - __pyx_t_3 = 0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":807 - * 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, 807, __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, 807, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 807, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } else { - __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 807, __pyx_L1_error) - } - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(1, 807, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 - * 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, 809, __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, 809, __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, 809, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 - * - * 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__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 810, __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, 810, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":809 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":813 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 - * 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__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 814, __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, 814, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":812 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":824 - * - * # 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, 824, __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, 824, __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, 824, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!__pyx_t_6) break; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":825 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":826 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":827 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":829 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":832 - * - * 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, 832, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); - __pyx_t_4 = 0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 - * 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__6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 834, __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, 834, __pyx_L1_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 - * if not PyDataType_HASFIELDS(child): - * t = child.type_num - * if end - f < 5: # <<<<<<<<<<<<<< - * raise RuntimeError(u"Format string allocated too short.") - * - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":837 - * - * # 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, 837, __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, 837, __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, 837, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":838 - * # 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, 838, __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, 838, __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, 838, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":839 - * 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, 839, __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, 839, __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, 839, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":840 - * 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, 840, __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, 840, __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, 840, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":841 - * 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, 841, __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, 841, __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, 841, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":842 - * 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, 842, __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, 842, __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, 842, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":843 - * 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, 843, __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, 843, __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, 843, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":844 - * 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, 844, __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, 844, __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, 844, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":845 - * 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, 845, __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, 845, __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, 845, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":846 - * 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, 846, __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, 846, __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, 846, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":847 - * 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, 847, __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, 847, __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, 847, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":848 - * 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, 848, __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, 848, __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, 848, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":849 - * 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, 849, __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, 849, __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, 849, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":850 - * 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, 850, __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, 850, __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, 850, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":851 - * 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, 851, __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, 851, __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, 851, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":852 - * 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, 852, __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, 852, __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, 852, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":853 - * 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, 853, __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, 853, __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, 853, __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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":855 - * 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 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 855, __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, 855, __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, 855, __pyx_L1_error) - } - __pyx_L15:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":856 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 - * offset[0] += child.itemsize - * - * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< - * t = child.type_num - * if end - f < 5: - */ - goto __pyx_L13; - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":860 - * # 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, 860, __pyx_L1_error) - __pyx_v_f = __pyx_t_9; - } - __pyx_L13:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":805 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":861 - * # so don't output it - * f = _util_dtypestring(child, f, end, offset) - * return f # <<<<<<<<<<<<<< - * - * - */ - __pyx_r = __pyx_v_f; - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 - * - * - * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< - * cdef PyObject* baseptr - * if base is None: - */ - -static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { - PyObject *__pyx_v_baseptr; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - __Pyx_RefNannySetupContext("set_array_base", 0); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 - * cdef inline void set_array_base(ndarray arr, object base): - * cdef PyObject* baseptr - * if base is None: # <<<<<<<<<<<<<< - * baseptr = NULL - * else: - */ - __pyx_t_1 = (__pyx_v_base == Py_None); - __pyx_t_2 = (__pyx_t_1 != 0); - if (__pyx_t_2) { - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":980 - * cdef PyObject* baseptr - * if base is None: - * baseptr = NULL # <<<<<<<<<<<<<< - * else: - * Py_INCREF(base) # important to do this before decref below! - */ - __pyx_v_baseptr = NULL; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":979 - * cdef inline void set_array_base(ndarray arr, object base): - * cdef PyObject* baseptr - * if base is None: # <<<<<<<<<<<<<< - * baseptr = NULL - * else: - */ - goto __pyx_L3; - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":982 - * baseptr = NULL - * else: - * Py_INCREF(base) # important to do this before decref below! # <<<<<<<<<<<<<< - * baseptr = base - * Py_XDECREF(arr.base) - */ - /*else*/ { - Py_INCREF(__pyx_v_base); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":983 - * else: - * Py_INCREF(base) # important to do this before decref below! - * baseptr = base # <<<<<<<<<<<<<< - * Py_XDECREF(arr.base) - * arr.base = baseptr - */ - __pyx_v_baseptr = ((PyObject *)__pyx_v_base); - } - __pyx_L3:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":984 - * Py_INCREF(base) # important to do this before decref below! - * baseptr = base - * Py_XDECREF(arr.base) # <<<<<<<<<<<<<< - * arr.base = baseptr - * - */ - Py_XDECREF(__pyx_v_arr->base); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":985 - * baseptr = base - * Py_XDECREF(arr.base) - * arr.base = baseptr # <<<<<<<<<<<<<< - * - * cdef inline object get_array_base(ndarray arr): - */ - __pyx_v_arr->base = __pyx_v_baseptr; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 - * - * - * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< - * cdef PyObject* baseptr - * if base is None: - */ - - /* function exit code */ - __Pyx_RefNannyFinishContext(); -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 - * arr.base = baseptr - * - * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< - * if arr.base is NULL: - * return None - */ - -static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - __Pyx_RefNannySetupContext("get_array_base", 0); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 - * - * cdef inline object get_array_base(ndarray arr): - * if arr.base is NULL: # <<<<<<<<<<<<<< - * return None - * else: - */ - __pyx_t_1 = ((__pyx_v_arr->base == NULL) != 0); - if (__pyx_t_1) { - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":989 - * cdef inline object get_array_base(ndarray arr): - * if arr.base is NULL: - * return None # <<<<<<<<<<<<<< - * else: - * return arr.base - */ - __Pyx_XDECREF(__pyx_r); - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 - * - * cdef inline object get_array_base(ndarray arr): - * if arr.base is NULL: # <<<<<<<<<<<<<< - * return None - * else: - */ - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":991 - * return None - * else: - * return arr.base # <<<<<<<<<<<<<< - * - * - */ - /*else*/ { - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(((PyObject *)__pyx_v_arr->base)); - __pyx_r = ((PyObject *)__pyx_v_arr->base); - goto __pyx_L0; - } - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 - * arr.base = baseptr - * - * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< - * if arr.base is NULL: - * return None - */ - - /* function exit code */ - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":998 - * 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, 998, __pyx_L3_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":999 - * 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, 999, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 - * _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__7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1000, __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, 1000, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":996 - * # 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1004 - * 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, 1004, __pyx_L3_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1005 - * 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, 1005, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 - * _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__8, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1006, __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, 1006, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1003 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1002 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1010 - * 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, 1010, __pyx_L3_error) - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1011 - * 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, 1011, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - */ - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1012, __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, 1012, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1009 - * - * 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/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 - * 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; -} - -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_get_mask_diff_var(PyObject* module); /*proto*/ -static PyModuleDef_Slot __pyx_moduledef_slots[] = { - {Py_mod_create, (void*)__pyx_pymod_create}, - {Py_mod_exec, (void*)__pyx_pymod_exec_get_mask_diff_var}, - {0, NULL} -}; -#endif - -static struct PyModuleDef __pyx_moduledef = { - PyModuleDef_HEAD_INIT, - "get_mask_diff_var", - 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 - -static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__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_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, - {&__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_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 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_f, __pyx_k_f, sizeof(__pyx_k_f), 0, 0, 1, 1}, - {&__pyx_n_s_g, __pyx_k_g, sizeof(__pyx_k_g), 0, 0, 1, 1}, - {&__pyx_n_s_get_mask_diff_var, __pyx_k_get_mask_diff_var, sizeof(__pyx_k_get_mask_diff_var), 0, 0, 1, 1}, - {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1}, - {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, - {&__pyx_n_s_j, __pyx_k_j, sizeof(__pyx_k_j), 0, 0, 1, 1}, - {&__pyx_n_s_k, __pyx_k_k, sizeof(__pyx_k_k), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, - {&__pyx_n_s_mean_x, __pyx_k_mean_x, sizeof(__pyx_k_mean_x), 0, 0, 1, 1}, - {&__pyx_n_s_n_col, __pyx_k_n_col, sizeof(__pyx_k_n_col), 0, 0, 1, 1}, - {&__pyx_n_s_n_row, __pyx_k_n_row, sizeof(__pyx_k_n_row), 0, 0, 1, 1}, - {&__pyx_n_s_nan, __pyx_k_nan, sizeof(__pyx_k_nan), 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_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_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, - {&__pyx_n_s_pix_diff, __pyx_k_pix_diff, sizeof(__pyx_k_pix_diff), 0, 0, 1, 1}, - {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_sum_x2, __pyx_k_sum_x2, sizeof(__pyx_k_sum_x2), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, - {&__pyx_kp_s_tierpsy_analysis_stage_aligment, __pyx_k_tierpsy_analysis_stage_aligment, sizeof(__pyx_k_tierpsy_analysis_stage_aligment), 0, 0, 1, 0}, - {&__pyx_n_s_tierpsy_analysis_stage_aligment_2, __pyx_k_tierpsy_analysis_stage_aligment_2, sizeof(__pyx_k_tierpsy_analysis_stage_aligment_2), 0, 0, 1, 1}, - {&__pyx_n_s_tot_valid, __pyx_k_tot_valid, sizeof(__pyx_k_tot_valid), 0, 0, 1, 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_var_diff, __pyx_k_var_diff, sizeof(__pyx_k_var_diff), 0, 0, 1, 1}, - {0, 0, 0, 0, 0, 0, 0} -}; -static int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 19, __pyx_L1_error) - __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 229, __pyx_L1_error) - __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 810, __pyx_L1_error) - __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 1000, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -} - -static int __Pyx_InitCachedConstants(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): - * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - */ - __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple_)) __PYX_ERR(1, 229, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple_); - __Pyx_GIVEREF(__pyx_tuple_); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): - * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< - * - * info.buf = PyArray_DATA(self) - */ - __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(1, 233, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__2); - __Pyx_GIVEREF(__pyx_tuple__2); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 - * 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__3 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(1, 263, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__3); - __Pyx_GIVEREF(__pyx_tuple__3); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":810 - * - * 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__4 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(1, 810, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__4); - __Pyx_GIVEREF(__pyx_tuple__4); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 - * 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_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(1, 814, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__5); - __Pyx_GIVEREF(__pyx_tuple__5); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 - * 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__6 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(1, 834, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__6); - __Pyx_GIVEREF(__pyx_tuple__6); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 - * _import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ - __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(1, 1000, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__7); - __Pyx_GIVEREF(__pyx_tuple__7); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1006 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ - __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 1006, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__8); - __Pyx_GIVEREF(__pyx_tuple__8); - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1012 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - */ - __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 1012, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__9); - __Pyx_GIVEREF(__pyx_tuple__9); - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":7 - * @cython.boundscheck(False) - * @cython.wraparound(False) - * def get_mask_diff_var(np.ndarray[np.uint8_t, ndim=2] f, np.ndarray[np.uint8_t, ndim=2] g): # <<<<<<<<<<<<<< - * #f, g are to one dim vector - * - */ - __pyx_tuple__10 = PyTuple_Pack(12, __pyx_n_s_f, __pyx_n_s_g, __pyx_n_s_n_row, __pyx_n_s_n_col, __pyx_n_s_i, __pyx_n_s_k, __pyx_n_s_var_diff, __pyx_n_s_mean_x, __pyx_n_s_sum_x2, __pyx_n_s_pix_diff, __pyx_n_s_tot_valid, __pyx_n_s_j); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 7, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__10); - __Pyx_GIVEREF(__pyx_tuple__10); - __pyx_codeobj__11 = (PyObject*)__Pyx_PyCode_New(2, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__10, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tierpsy_analysis_stage_aligment, __pyx_n_s_get_mask_diff_var, 7, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__11)) __PYX_ERR(0, 7, __pyx_L1_error) - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __Pyx_RefNannyFinishContext(); - return -1; -} - -static int __Pyx_InitGlobals(void) { - if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error); - return 0; - __pyx_L1_error:; - return -1; -} - -static int __Pyx_modinit_global_init_code(void); /*proto*/ -static int __Pyx_modinit_variable_export_code(void); /*proto*/ -static int __Pyx_modinit_function_export_code(void); /*proto*/ -static int __Pyx_modinit_type_init_code(void); /*proto*/ -static int __Pyx_modinit_type_import_code(void); /*proto*/ -static int __Pyx_modinit_variable_import_code(void); /*proto*/ -static 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_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_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "type", - #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 - sizeof(PyTypeObject), - #else - sizeof(PyHeapTypeObject), - #endif - 0); if (unlikely(!__pyx_ptype_7cpython_4type_type)) __PYX_ERR(2, 9, __pyx_L1_error) - __pyx_ptype_5numpy_dtype = __Pyx_ImportType("numpy", "dtype", sizeof(PyArray_Descr), 0); if (unlikely(!__pyx_ptype_5numpy_dtype)) __PYX_ERR(1, 164, __pyx_L1_error) - __pyx_ptype_5numpy_flatiter = __Pyx_ImportType("numpy", "flatiter", sizeof(PyArrayIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_flatiter)) __PYX_ERR(1, 186, __pyx_L1_error) - __pyx_ptype_5numpy_broadcast = __Pyx_ImportType("numpy", "broadcast", sizeof(PyArrayMultiIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_broadcast)) __PYX_ERR(1, 190, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType("numpy", "ndarray", sizeof(PyArrayObject), 0); if (unlikely(!__pyx_ptype_5numpy_ndarray)) __PYX_ERR(1, 199, __pyx_L1_error) - __pyx_ptype_5numpy_ufunc = __Pyx_ImportType("numpy", "ufunc", sizeof(PyUFuncObject), 0); if (unlikely(!__pyx_ptype_5numpy_ufunc)) __PYX_ERR(1, 872, __pyx_L1_error) - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __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 - __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); - /*--- Function import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - - -#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 -#ifndef CYTHON_SMALL_CODE -#if defined(__clang__) - #define CYTHON_SMALL_CODE -#elif defined(__GNUC__) && (!(defined(__cplusplus)) || (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 4))) - #define CYTHON_SMALL_CODE __attribute__((optimize("Os"))) -#else - #define CYTHON_SMALL_CODE -#endif -#endif - - -#if PY_MAJOR_VERSION < 3 -__Pyx_PyMODINIT_FUNC initget_mask_diff_var(void) CYTHON_SMALL_CODE; /*proto*/ -__Pyx_PyMODINIT_FUNC initget_mask_diff_var(void) -#else -__Pyx_PyMODINIT_FUNC PyInit_get_mask_diff_var(void) CYTHON_SMALL_CODE; /*proto*/ -__Pyx_PyMODINIT_FUNC PyInit_get_mask_diff_var(void) -#if CYTHON_PEP489_MULTI_PHASE_INIT -{ - return PyModuleDef_Init(&__pyx_moduledef); -} -static int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name) { - PyObject *value = PyObject_GetAttrString(spec, from_name); - int result = 0; - if (likely(value)) { - result = PyDict_SetItemString(moddict, to_name, value); - Py_DECREF(value); - } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { - PyErr_Clear(); - } else { - result = -1; - } - return result; -} -static PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) { - PyObject *module = NULL, *moddict, *modname; - 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__") < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__") < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__") < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__") < 0)) goto bad; - return module; -bad: - Py_XDECREF(module); - return NULL; -} - - -static int __pyx_pymod_exec_get_mask_diff_var(PyObject *__pyx_pyinit_module) -#endif -#endif -{ - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m && __pyx_m == __pyx_pyinit_module) return 0; - #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_get_mask_diff_var(void)", 0); - if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __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("get_mask_diff_var", __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) - __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error) - #if CYTHON_COMPILING_IN_PYPY - Py_INCREF(__pyx_b); - #endif - 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_tierpsy__analysis__stage_aligment__get_mask_diff_var) { - if (PyObject_SetAttrString(__pyx_m, "__name__", __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, "tierpsy.analysis.stage_aligment.get_mask_diff_var")) { - if (unlikely(PyDict_SetItemString(modules, "tierpsy.analysis.stage_aligment.get_mask_diff_var", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error) - } - } - #endif - /*--- Builtin init code ---*/ - if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Constants init code ---*/ - if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __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(); - (void)__Pyx_modinit_type_init_code(); - if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); - /*--- Execution code ---*/ - #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) - if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":1 - * import numpy as np # <<<<<<<<<<<<<< - * cimport numpy as np - * cimport cython - */ - __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":7 - * @cython.boundscheck(False) - * @cython.wraparound(False) - * def get_mask_diff_var(np.ndarray[np.uint8_t, ndim=2] f, np.ndarray[np.uint8_t, ndim=2] g): # <<<<<<<<<<<<<< - * #f, g are to one dim vector - * - */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7tierpsy_8analysis_14stage_aligment_17get_mask_diff_var_1get_mask_diff_var, NULL, __pyx_n_s_tierpsy_analysis_stage_aligment_2); 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_get_mask_diff_var, __pyx_t_1) < 0) __PYX_ERR(0, 7, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/stage_aligment/get_mask_diff_var.pyx":1 - * import numpy as np # <<<<<<<<<<<<<< - * cimport numpy as np - * cimport cython - */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "../../../miniconda3/envs/tierpsy_bin2/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1008 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< - * try: - * _import_umath() - */ - - /*--- Wrapped vars code ---*/ - - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - if (__pyx_m) { - if (__pyx_d) { - __Pyx_AddTraceback("init tierpsy.analysis.stage_aligment.get_mask_diff_var", 0, __pyx_lineno, __pyx_filename); - } - Py_DECREF(__pyx_m); __pyx_m = 0; - } else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_ImportError, "init tierpsy.analysis.stage_aligment.get_mask_diff_var"); - } - __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((char *)modname); - if (!m) goto end; - p = PyObject_GetAttrString(m, (char *)"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; -} - -/* 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; -} - -/* 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; - } - } - } -} - -/* BufferGetAndValidate */ - static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) { - if (unlikely(info->buf == NULL)) return; - if (info->suboffsets == __Pyx_minusones) info->suboffsets = NULL; - __Pyx_ReleaseBuffer(info); -} -static void __Pyx_ZeroBuffer(Py_buffer* buf) { - buf->buf = NULL; - buf->obj = NULL; - buf->strides = __Pyx_zeros; - buf->shape = __Pyx_zeros; - buf->suboffsets = __Pyx_minusones; -} -static int __Pyx__GetBufferAndValidate( - Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, - int nd, int cast, __Pyx_BufFmt_StackElem* stack) -{ - buf->buf = NULL; - if (unlikely(__Pyx_GetBuffer(obj, buf, flags) == -1)) { - __Pyx_ZeroBuffer(buf); - return -1; - } - if (unlikely(buf->ndim != nd)) { - PyErr_Format(PyExc_ValueError, - "Buffer has wrong number of dimensions (expected %d, got %d)", - nd, buf->ndim); - goto fail; - } - if (!cast) { - __Pyx_BufFmt_Context ctx; - __Pyx_BufFmt_Init(&ctx, stack, dtype); - if (!__Pyx_BufFmt_CheckString(&ctx, buf->format)) goto fail; - } - if (unlikely((unsigned)buf->itemsize != dtype->size)) { - PyErr_Format(PyExc_ValueError, - "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "d byte%s) does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "d byte%s)", - buf->itemsize, (buf->itemsize > 1) ? "s" : "", - dtype->name, (Py_ssize_t)dtype->size, (dtype->size > 1) ? "s" : ""); - goto fail; - } - if (buf->suboffsets == NULL) buf->suboffsets = __Pyx_minusones; - return 0; -fail:; - __Pyx_SafeReleaseBuffer(buf); - return -1; -} - -/* GetModuleGlobalName */ - static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name) { - 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); - if (likely(result)) { - Py_INCREF(result); - } else if (unlikely(PyErr_Occurred())) { - result = NULL; - } else { -#else - result = PyDict_GetItem(__pyx_d, name); - if (likely(result)) { - Py_INCREF(result); - } else { -#endif -#else - result = PyObject_GetItem(__pyx_d, name); - if (!result) { - PyErr_Clear(); -#endif - result = __Pyx_GetBuiltinName(name); - } - return result; -} - -/* 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 - -/* 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 - -/* 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 - -/* 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))); - 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)meth)) (self, args, nargs, NULL); - } else { - return (*((__Pyx_PyCFunctionFast)meth)) (self, args, nargs); - } -} -#endif - -/* PyFunctionFastCall */ - #if CYTHON_FAST_PYCALL -#include "frameobject.h" -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 = f->f_localsplus; - 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, int 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, nargs, - k, (int)nk, - d, (int)nd, kwdefs, closure); -#else - result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, - args, 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 - -/* 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()) { - PyObject* args = PyTuple_Pack(1, key); - if (likely(args)) - PyErr_SetObject(PyExc_KeyError, args); - Py_XDECREF(args); - } - return NULL; - } - Py_INCREF(value); - return value; -} -#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"); -} - -/* RaiseNoneIterError */ - static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -} - -/* 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; -} - -/* SaveResetException */ - #if CYTHON_FAST_THREAD_STATE -static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { - #if PY_VERSION_HEX >= 0x030700A2 - *type = tstate->exc_state.exc_type; - *value = tstate->exc_state.exc_value; - *tb = tstate->exc_state.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 PY_VERSION_HEX >= 0x030700A2 - tmp_type = tstate->exc_state.exc_type; - tmp_value = tstate->exc_state.exc_value; - tmp_tb = tstate->exc_state.exc_traceback; - tstate->exc_state.exc_type = type; - tstate->exc_state.exc_value = value; - tstate->exc_state.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 PY_VERSION_HEX >= 0x030700A2 - tmp_type = tstate->exc_state.exc_type; - tmp_value = tstate->exc_state.exc_value; - tmp_tb = tstate->exc_state.exc_traceback; - tstate->exc_state.exc_type = local_type; - tstate->exc_state.exc_value = local_value; - tstate->exc_state.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; -} - -/* 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, 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; -} - -/* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK -static int __Pyx_CLineForTraceback(CYTHON_UNUSED 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)) { - use_cline = __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 (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); - 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 - - - /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - const int neg_one = (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); - } -} - -/* 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 = 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 = 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, -1); - } - } 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 = 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 = 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, -1); - } - } 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_enum__NPY_TYPES(enum NPY_TYPES value) { - const enum NPY_TYPES neg_one = (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); - } -} - -/* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - const int neg_one = (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; -} - -/* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - const long neg_one = (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); - } -} - -/* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - const long neg_one = (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; -} - -/* 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 CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) { - if (likely(err == exc_type)) return 1; - if (likely(PyExceptionClass_Check(err))) { - return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type); - } - return PyErr_GivenExceptionMatches(err, exc_type); -} -static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) { - if (likely(err == exc_type1 || err == exc_type2)) return 1; - if (likely(PyExceptionClass_Check(err))) { - return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2); - } - return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2)); -} -#endif - -/* 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; -} - -/* ModuleImport */ - #ifndef __PYX_HAVE_RT_ImportModule -#define __PYX_HAVE_RT_ImportModule -static PyObject *__Pyx_ImportModule(const char *name) { - PyObject *py_name = 0; - PyObject *py_module = 0; - py_name = __Pyx_PyIdentifier_FromString(name); - if (!py_name) - goto bad; - py_module = PyImport_Import(py_name); - Py_DECREF(py_name); - return py_module; -bad: - Py_XDECREF(py_name); - return 0; -} -#endif - -/* TypeImport */ - #ifndef __PYX_HAVE_RT_ImportType -#define __PYX_HAVE_RT_ImportType -static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, - size_t size, int strict) -{ - PyObject *py_module = 0; - PyObject *result = 0; - PyObject *py_name = 0; - char warning[200]; - Py_ssize_t basicsize; -#ifdef Py_LIMITED_API - PyObject *py_basicsize; -#endif - py_module = __Pyx_ImportModule(module_name); - if (!py_module) - goto bad; - py_name = __Pyx_PyIdentifier_FromString(class_name); - if (!py_name) - goto bad; - result = PyObject_GetAttr(py_module, py_name); - Py_DECREF(py_name); - py_name = 0; - Py_DECREF(py_module); - py_module = 0; - 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 (!strict && (size_t)basicsize > size) { - PyOS_snprintf(warning, sizeof(warning), - "%s.%s size changed, may indicate binary incompatibility. Expected %zd, got %zd", - module_name, class_name, basicsize, size); - if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad; - } - else if ((size_t)basicsize != size) { - PyErr_Format(PyExc_ValueError, - "%.200s.%.200s has the wrong size, try recompiling. Expected %zd, got %zd", - module_name, class_name, basicsize, size); - goto bad; - } - return (PyTypeObject *)result; -bad: - Py_XDECREF(py_module); - Py_XDECREF(result); - return NULL; -} -#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 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(x); - } -#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 */ From 1928645cdec33c94d4fafa0c25f226b5257e95f9 Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Fri, 8 Jun 2018 17:12:51 +0100 Subject: [PATCH 23/37] delete cython generated files --- .gitignore | 2 + .../cython_files/circCurvature.c | 7386 ----------------- .../segWormPython/cython_files/curvspace.c | 7303 ---------------- 3 files changed, 2 insertions(+), 14689 deletions(-) delete mode 100644 tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.c delete mode 100644 tierpsy/analysis/ske_create/segWormPython/cython_files/curvspace.c diff --git a/.gitignore b/.gitignore index 8d94bf92..543b1b82 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,5 @@ tierpsy/analysis/ske_create/segWormPython/cython_files/segWorm_cython.c tierpsy/analysis/ske_create/segWormPython/cython_files/linearSkeleton_cython.c tierpsy/analysis/ske_create/segWormPython/cython_files/cleanWorm_cython.c tierpsy/analysis/stage_aligment/get_mask_diff_var.c +tierpsy/analysis/ske_create/segWormPython/cython_files/curvspace.c +tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.c diff --git a/tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.c b/tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.c deleted file mode 100644 index 5d8cafcf..00000000 --- a/tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.c +++ /dev/null @@ -1,7386 +0,0 @@ -/* Generated by Cython 0.25.2 */ - -#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 < 0x03020000) - #error Cython requires Python 2.6+ or Python 3.2+. -#else -#define CYTHON_ABI "0_25_2" -#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 -#ifndef HAVE_LONG_LONG - #if PY_VERSION_HEX >= 0x03030000 || (PY_MAJOR_VERSION == 2 && 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_ASYNC_SLOTS - #define CYTHON_USE_ASYNC_SLOTS 0 - #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 -#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_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 -#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_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 -#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 -#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" - #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 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_FASTCALL - #define METH_FASTCALL 0x80 - typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject **args, - Py_ssize_t nargs, PyObject *kwnames); -#else - #define __Pyx_PyCFunctionFast _PyCFunctionFast -#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))))) -#else -#define __Pyx_PyFastCFunction_Check(func) 0 -#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 -#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_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 -#define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) -#define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? 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 -#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 -#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) -#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) -#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) : PyInstanceMethod_New(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 - typedef struct { - unaryfunc am_await; - unaryfunc am_aiter; - unaryfunc am_anext; - } __Pyx_PyAsyncMethodsStruct; - #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) - #endif -#else - #define __Pyx_PyType_AsAsync(obj) NULL -#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) - -#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 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; \ -} - -#if PY_MAJOR_VERSION >= 3 - #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 - -#ifndef __PYX_EXTERN_C - #ifdef __cplusplus - #define __PYX_EXTERN_C extern "C" - #else - #define __PYX_EXTERN_C extern - #endif -#endif - -#define __PYX_HAVE__tierpsy__analysis__ske_create__segWormPython__cython_files__circCurvature -#define __PYX_HAVE_API__tierpsy__analysis__ske_create__segWormPython__cython_files__circCurvature -#include -#include -#include -#include "numpy/arrayobject.h" -#include "numpy/ufuncobject.h" -#ifdef _OPENMP -#include -#endif /* _OPENMP */ - -#ifdef PYREX_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_DEFAULT 0 -#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))) ) -#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) && defined (_M_X64) - #define __Pyx_sst_abs(value) _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 char* __Pyx_PyObject_AsString(PyObject*); -static CYTHON_INLINE 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_PyObject_AsSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsUString(s) ((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) -#if PY_MAJOR_VERSION < 3 -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); -} -#else -#define __Pyx_Py_UNICODE_strlen Py_UNICODE_strlen -#endif -#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) -#define __Pyx_PyBool_FromLong(b) ((b) ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False)) -static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); -static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); -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)); - 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 PyObject *__pyx_m; -static PyObject *__pyx_d; -static PyObject *__pyx_b; -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[] = { - "tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.pyx", - "__init__.pxd", - "type.pxd", -}; -/* 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; - - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":725 - * # 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":726 - * - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":727 - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":728 - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":732 - * #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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":733 - * - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":734 - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":735 - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":739 - * #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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":740 - * - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":749 - * # 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":750 - * # 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":751 - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":753 - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":754 - * - * ctypedef npy_ulong uint_t - * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< - * ctypedef npy_ulonglong ulonglong_t - * - */ -typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":755 - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":757 - * ctypedef npy_ulonglong ulonglong_t - * - * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< - * ctypedef npy_uintp uintp_t - * - */ -typedef npy_intp __pyx_t_5numpy_intp_t; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":758 - * - * ctypedef npy_intp intp_t - * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< - * - * ctypedef npy_double float_t - */ -typedef npy_uintp __pyx_t_5numpy_uintp_t; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":760 - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":761 - * - * ctypedef npy_double float_t - * ctypedef npy_double double_t # <<<<<<<<<<<<<< - * ctypedef npy_longdouble longdouble_t - * - */ -typedef npy_double __pyx_t_5numpy_double_t; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":762 - * 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; -/* 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 ---*/ - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":764 - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":765 - * - * ctypedef npy_cfloat cfloat_t - * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< - * ctypedef npy_clongdouble clongdouble_t - * - */ -typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":766 - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":768 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< - * - * cdef inline object PyArray_MultiIterNew1(a): - */ -typedef npy_cdouble __pyx_t_5numpy_complex_t; - -/* --- 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) - -/* 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); - -/* ArgTypeTest.proto */ -static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, - const char *name, int exact); - -/* BufferFormatCheck.proto */ -static CYTHON_INLINE int __Pyx_GetBufferAndValidate(Py_buffer* buf, PyObject* obj, - __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack); -static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info); -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); // PROTO - -/* PyObjectGetAttrStr.proto */ -#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); -} -#else -#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) -#endif - -/* GetBuiltinName.proto */ -static PyObject *__Pyx_GetBuiltinName(PyObject *name); - -/* GetModuleGlobalName.proto */ -static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name); - -/* 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, int nargs, PyObject *kwargs); -#else -#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) -#endif -#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); - -/* ExtTypeTest.proto */ -static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); - -#define __Pyx_BufPtrCContig2d(type, buf, i0, s0, i1, s1) ((type)((char*)buf + i0 * s0) + i1) -#define __Pyx_BufPtrCContig1d(type, buf, i0, s0) ((type)buf + i0) -/* PyThreadStateGet.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; -#define __Pyx_PyThreadState_assign __pyx_tstate = PyThreadState_GET(); -#else -#define __Pyx_PyThreadState_declare -#define __Pyx_PyThreadState_assign -#endif - -/* PyErrFetchRestore.proto */ -#if CYTHON_FAST_THREAD_STATE -#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); -#else -#define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetchWithState(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); - -/* DictGetItem.proto */ -#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()) { - PyObject* args = PyTuple_Pack(1, key); - if (likely(args)) - PyErr_SetObject(PyExc_KeyError, args); - Py_XDECREF(args); - } - return NULL; - } - Py_INCREF(value); - return value; -} -#else - #define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key) -#endif - -/* RaiseTooManyValuesToUnpack.proto */ -static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); - -/* RaiseNeedMoreValuesToUnpack.proto */ -static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); - -/* RaiseNoneIterError.proto */ -static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); - -/* 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 - -/* Import.proto */ -static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); - -/* 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); - -/* 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; - -#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 - - -/* None.proto */ -static Py_ssize_t __Pyx_zeros[] = {0, 0, 0, 0, 0, 0, 0, 0}; -static Py_ssize_t __Pyx_minusones[] = {-1, -1, -1, -1, -1, -1, -1, -1}; - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(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_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_enum__NPY_TYPES(enum NPY_TYPES value); - -/* CIntFromPy.proto */ -static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); - -/* CIntFromPy.proto */ -static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -/* CheckBinaryVersion.proto */ -static int __Pyx_check_binary_version(void); - -/* PyIdentifierFromString.proto */ -#if !defined(__Pyx_PyIdentifier_FromString) -#if PY_MAJOR_VERSION < 3 - #define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s) -#else - #define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s) -#endif -#endif - -/* ModuleImport.proto */ -static PyObject *__Pyx_ImportModule(const char *name); - -/* TypeImport.proto */ -static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict); - -/* InitStrings.proto */ -static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); - - -/* Module declarations from 'cython' */ - -/* 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 'libc.stdlib' */ - -/* 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 'tierpsy.analysis.ske_create.segWormPython.cython_files.circCurvature' */ -__PYX_EXTERN_C DL_IMPORT(void) c_circCurvature(double *, int, double, double *, double *); /*proto*/ -__PYX_EXTERN_C DL_IMPORT(void) c_circCurvature_simple(double *, int, double, double *); /*proto*/ -static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_float_t = { "float_t", NULL, sizeof(__pyx_t_5numpy_float_t), { 0 }, 0, 'R', 0, 0 }; -#define __Pyx_MODULE_NAME "tierpsy.analysis.ske_create.segWormPython.cython_files.circCurvature" -int __pyx_module_is_main_tierpsy__analysis__ske_create__segWormPython__cython_files__circCurvature = 0; - -/* Implementation of 'tierpsy.analysis.ske_create.segWormPython.cython_files.circCurvature' */ -static PyObject *__pyx_builtin_ValueError; -static PyObject *__pyx_builtin_range; -static PyObject *__pyx_builtin_RuntimeError; -static PyObject *__pyx_builtin_ImportError; -static const char __pyx_k_np[] = "np"; -static const char __pyx_k_main[] = "__main__"; -static const char __pyx_k_size[] = "size"; -static const char __pyx_k_test[] = "__test__"; -static const char __pyx_k_numpy[] = "numpy"; -static const char __pyx_k_range[] = "range"; -static const char __pyx_k_zeros[] = "zeros"; -static const char __pyx_k_angles[] = "angles"; -static const char __pyx_k_import[] = "__import__"; -static const char __pyx_k_points[] = "points"; -static const char __pyx_k_ValueError[] = "ValueError"; -static const char __pyx_k_edgeLength[] = "edgeLength"; -static const char __pyx_k_ImportError[] = "ImportError"; -static const char __pyx_k_RuntimeError[] = "RuntimeError"; -static const char __pyx_k_circCurvature[] = "circCurvature"; -static const char __pyx_k_numberOfPoints[] = "numberOfPoints"; -static const char __pyx_k_chainCodeLengths[] = "chainCodeLengths"; -static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; -static const char __pyx_k_Created_on_Wed_May_27_00_43_07[] = "\nCreated on Wed May 27 00:43:07 2015\n\n@author: ajaver\n"; -static const char __pyx_k_Users_ajaver_Documents_GitHub_t[] = "/Users/ajaver/Documents/GitHub/tierpsy-tracker/tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.pyx"; -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_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; -static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; -static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; -static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; -static const char __pyx_k_tierpsy_analysis_ske_create_segW[] = "tierpsy.analysis.ske_create.segWormPython.cython_files.circCurvature"; -static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; -static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; -static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; -static PyObject *__pyx_n_s_ImportError; -static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; -static PyObject *__pyx_n_s_RuntimeError; -static PyObject *__pyx_kp_s_Users_ajaver_Documents_GitHub_t; -static PyObject *__pyx_n_s_ValueError; -static PyObject *__pyx_n_s_angles; -static PyObject *__pyx_n_s_chainCodeLengths; -static PyObject *__pyx_n_s_circCurvature; -static PyObject *__pyx_n_s_edgeLength; -static PyObject *__pyx_n_s_import; -static PyObject *__pyx_n_s_main; -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_np; -static PyObject *__pyx_n_s_numberOfPoints; -static PyObject *__pyx_n_s_numpy; -static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; -static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; -static PyObject *__pyx_n_s_points; -static PyObject *__pyx_n_s_range; -static PyObject *__pyx_n_s_size; -static PyObject *__pyx_n_s_test; -static PyObject *__pyx_n_s_tierpsy_analysis_ske_create_segW; -static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; -static PyObject *__pyx_n_s_zeros; -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_13circCurvature_circCurvature(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_points, double __pyx_v_edgeLength, PyArrayObject *__pyx_v_chainCodeLengths); /* 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 PyObject *__pyx_int_1; -static PyArrayObject *__pyx_k_; -static PyObject *__pyx_tuple__2; -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_tuple__10; -static PyObject *__pyx_tuple__11; -static PyObject *__pyx_tuple__12; -static PyObject *__pyx_codeobj__13; - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.pyx":29 - * @cython.boundscheck(False) - * @cython.wraparound(False) - * def circCurvature(np.ndarray[np.float_t, ndim=2, mode="c"] points not None, \ # <<<<<<<<<<<<<< - * double edgeLength, np.ndarray[np.float_t, ndim=1, mode="c"] chainCodeLengths = np.zeros(1)): - * """ - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_13circCurvature_1circCurvature(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_13circCurvature_circCurvature[] = "\n multiply (arr, value)\n\n Takes a numpy arry as input, and multiplies each elemetn by value, in place\n\n param: array -- a 2-d numpy array of np.float64\n param: value -- a number that will be multiplied by each element in the array\n\n "; -static PyMethodDef __pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_13circCurvature_1circCurvature = {"circCurvature", (PyCFunction)__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_13circCurvature_1circCurvature, METH_VARARGS|METH_KEYWORDS, __pyx_doc_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_13circCurvature_circCurvature}; -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_13circCurvature_1circCurvature(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyArrayObject *__pyx_v_points = 0; - double __pyx_v_edgeLength; - PyArrayObject *__pyx_v_chainCodeLengths = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("circCurvature (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_points,&__pyx_n_s_edgeLength,&__pyx_n_s_chainCodeLengths,0}; - PyObject* values[3] = {0,0,0}; - values[2] = (PyObject *)__pyx_k_; - 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); - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_points)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_edgeLength)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("circCurvature", 0, 2, 3, 1); __PYX_ERR(0, 29, __pyx_L3_error) - } - case 2: - if (kw_args > 0) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_chainCodeLengths); - if (value) { values[2] = value; kw_args--; } - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "circCurvature") < 0)) __PYX_ERR(0, 29, __pyx_L3_error) - } - } else { - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - 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_points = ((PyArrayObject *)values[0]); - __pyx_v_edgeLength = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_edgeLength == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 30, __pyx_L3_error) - __pyx_v_chainCodeLengths = ((PyArrayObject *)values[2]); - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("circCurvature", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 29, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.circCurvature.circCurvature", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_points), __pyx_ptype_5numpy_ndarray, 0, "points", 0))) __PYX_ERR(0, 29, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_chainCodeLengths), __pyx_ptype_5numpy_ndarray, 1, "chainCodeLengths", 0))) __PYX_ERR(0, 30, __pyx_L1_error) - __pyx_r = __pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_13circCurvature_circCurvature(__pyx_self, __pyx_v_points, __pyx_v_edgeLength, __pyx_v_chainCodeLengths); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_13circCurvature_circCurvature(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_points, double __pyx_v_edgeLength, PyArrayObject *__pyx_v_chainCodeLengths) { - int __pyx_v_numberOfPoints; - PyArrayObject *__pyx_v_angles = 0; - __Pyx_LocalBuf_ND __pyx_pybuffernd_angles; - __Pyx_Buffer __pyx_pybuffer_angles; - __Pyx_LocalBuf_ND __pyx_pybuffernd_chainCodeLengths; - __Pyx_Buffer __pyx_pybuffer_chainCodeLengths; - __Pyx_LocalBuf_ND __pyx_pybuffernd_points; - __Pyx_Buffer __pyx_pybuffer_points; - 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; - PyArrayObject *__pyx_t_6 = NULL; - int __pyx_t_7; - Py_ssize_t __pyx_t_8; - Py_ssize_t __pyx_t_9; - Py_ssize_t __pyx_t_10; - Py_ssize_t __pyx_t_11; - Py_ssize_t __pyx_t_12; - Py_ssize_t __pyx_t_13; - Py_ssize_t __pyx_t_14; - __Pyx_RefNannySetupContext("circCurvature", 0); - __pyx_pybuffer_angles.pybuffer.buf = NULL; - __pyx_pybuffer_angles.refcount = 0; - __pyx_pybuffernd_angles.data = NULL; - __pyx_pybuffernd_angles.rcbuffer = &__pyx_pybuffer_angles; - __pyx_pybuffer_points.pybuffer.buf = NULL; - __pyx_pybuffer_points.refcount = 0; - __pyx_pybuffernd_points.data = NULL; - __pyx_pybuffernd_points.rcbuffer = &__pyx_pybuffer_points; - __pyx_pybuffer_chainCodeLengths.pybuffer.buf = NULL; - __pyx_pybuffer_chainCodeLengths.refcount = 0; - __pyx_pybuffernd_chainCodeLengths.data = NULL; - __pyx_pybuffernd_chainCodeLengths.rcbuffer = &__pyx_pybuffer_chainCodeLengths; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_points.rcbuffer->pybuffer, (PyObject*)__pyx_v_points, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 29, __pyx_L1_error) - } - __pyx_pybuffernd_points.diminfo[0].strides = __pyx_pybuffernd_points.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_points.diminfo[0].shape = __pyx_pybuffernd_points.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_points.diminfo[1].strides = __pyx_pybuffernd_points.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_points.diminfo[1].shape = __pyx_pybuffernd_points.rcbuffer->pybuffer.shape[1]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer, (PyObject*)__pyx_v_chainCodeLengths, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 29, __pyx_L1_error) - } - __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides = __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_chainCodeLengths.diminfo[0].shape = __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.shape[0]; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.pyx":40 - * - * """ - * cdef int numberOfPoints = points.shape[0] # <<<<<<<<<<<<<< - * cdef np.ndarray[np.float_t, ndim=1, mode="c"] angles = np.zeros(numberOfPoints) - * - */ - __pyx_v_numberOfPoints = (__pyx_v_points->dimensions[0]); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.pyx":41 - * """ - * cdef int numberOfPoints = points.shape[0] - * cdef np.ndarray[np.float_t, ndim=1, mode="c"] angles = np.zeros(numberOfPoints) # <<<<<<<<<<<<<< - * - * - */ - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 41, __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, 41, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_numberOfPoints); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 41, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - } - } - if (!__pyx_t_4) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 41, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else { - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 41, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_1); - __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[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 41, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - } else - #endif - { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 41, __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 = NULL; - __Pyx_GIVEREF(__pyx_t_2); - PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_2); - __pyx_t_2 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 41, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 41, __pyx_L1_error) - __pyx_t_6 = ((PyArrayObject *)__pyx_t_1); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_angles.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) { - __pyx_v_angles = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_angles.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 41, __pyx_L1_error) - } else {__pyx_pybuffernd_angles.diminfo[0].strides = __pyx_pybuffernd_angles.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_angles.diminfo[0].shape = __pyx_pybuffernd_angles.rcbuffer->pybuffer.shape[0]; - } - } - __pyx_t_6 = 0; - __pyx_v_angles = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.pyx":44 - * - * - * if chainCodeLengths.size == numberOfPoints: # <<<<<<<<<<<<<< - * c_circCurvature(&points[0,0], numberOfPoints, edgeLength, &chainCodeLengths[0], &angles[0]) - * else: - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_chainCodeLengths), __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 44, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_numberOfPoints); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 44, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 44, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 44, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__pyx_t_7) { - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.pyx":45 - * - * if chainCodeLengths.size == numberOfPoints: - * c_circCurvature(&points[0,0], numberOfPoints, edgeLength, &chainCodeLengths[0], &angles[0]) # <<<<<<<<<<<<<< - * else: - * c_circCurvature_simple(&points[0,0], numberOfPoints, edgeLength, &angles[0]) - */ - __pyx_t_8 = 0; - __pyx_t_9 = 0; - __pyx_t_10 = 0; - __pyx_t_11 = 0; - c_circCurvature((&(*__Pyx_BufPtrCContig2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_9, __pyx_pybuffernd_points.diminfo[1].strides))), __pyx_v_numberOfPoints, __pyx_v_edgeLength, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_chainCodeLengths.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_angles.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_angles.diminfo[0].strides)))); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.pyx":44 - * - * - * if chainCodeLengths.size == numberOfPoints: # <<<<<<<<<<<<<< - * c_circCurvature(&points[0,0], numberOfPoints, edgeLength, &chainCodeLengths[0], &angles[0]) - * else: - */ - goto __pyx_L3; - } - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.pyx":47 - * c_circCurvature(&points[0,0], numberOfPoints, edgeLength, &chainCodeLengths[0], &angles[0]) - * else: - * c_circCurvature_simple(&points[0,0], numberOfPoints, edgeLength, &angles[0]) # <<<<<<<<<<<<<< - * - * return angles - */ - /*else*/ { - __pyx_t_12 = 0; - __pyx_t_13 = 0; - __pyx_t_14 = 0; - c_circCurvature_simple((&(*__Pyx_BufPtrCContig2d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_12, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_13, __pyx_pybuffernd_points.diminfo[1].strides))), __pyx_v_numberOfPoints, __pyx_v_edgeLength, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float_t *, __pyx_pybuffernd_angles.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_angles.diminfo[0].strides)))); - } - __pyx_L3:; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.pyx":49 - * c_circCurvature_simple(&points[0,0], numberOfPoints, edgeLength, &angles[0]) - * - * return angles # <<<<<<<<<<<<<< - * - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(((PyObject *)__pyx_v_angles)); - __pyx_r = ((PyObject *)__pyx_v_angles); - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.pyx":29 - * @cython.boundscheck(False) - * @cython.wraparound(False) - * def circCurvature(np.ndarray[np.float_t, ndim=2, mode="c"] points not None, \ # <<<<<<<<<<<<<< - * double edgeLength, np.ndarray[np.float_t, ndim=1, mode="c"] chainCodeLengths = np.zeros(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); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_angles.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_points.rcbuffer->pybuffer); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.circCurvature.circCurvature", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_angles.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_chainCodeLengths.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_points.rcbuffer->pybuffer); - __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_angles); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":197 - * # 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 fullfill 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_copy_shape; - 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_v_hasfields; - 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; - PyObject *__pyx_t_6 = NULL; - char *__pyx_t_7; - __Pyx_RefNannySetupContext("__getbuffer__", 0); - if (__pyx_v_info != NULL) { - __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(__pyx_v_info->obj); - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":203 - * # of flags - * - * if info == NULL: return # <<<<<<<<<<<<<< - * - * cdef int copy_shape, i, ndim - */ - __pyx_t_1 = ((__pyx_v_info == NULL) != 0); - if (__pyx_t_1) { - __pyx_r = 0; - goto __pyx_L0; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":206 - * - * cdef int copy_shape, i, ndim - * cdef int endian_detector = 1 # <<<<<<<<<<<<<< - * cdef bint little_endian = ((&endian_detector)[0] != 0) - * - */ - __pyx_v_endian_detector = 1; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":207 - * cdef int copy_shape, 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":209 - * cdef bint little_endian = ((&endian_detector)[0] != 0) - * - * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< - * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): - */ - __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":211 - * ndim = PyArray_NDIM(self) - * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< - * copy_shape = 1 - * else: - */ - __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); - if (__pyx_t_1) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":212 - * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): - * copy_shape = 1 # <<<<<<<<<<<<<< - * else: - * copy_shape = 0 - */ - __pyx_v_copy_shape = 1; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":211 - * ndim = PyArray_NDIM(self) - * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< - * copy_shape = 1 - * else: - */ - goto __pyx_L4; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":214 - * copy_shape = 1 - * else: - * copy_shape = 0 # <<<<<<<<<<<<<< - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - */ - /*else*/ { - __pyx_v_copy_shape = 0; - } - __pyx_L4:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":216 - * copy_shape = 0 - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_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_L6_bool_binop_done; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":217 - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< - * raise ValueError(u"ndarray is not C contiguous") - * - */ - __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_C_CONTIGUOUS) != 0)) != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L6_bool_binop_done:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":216 - * copy_shape = 0 - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): - * raise ValueError(u"ndarray is not C contiguous") - */ - if (__pyx_t_1) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":218 - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_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__2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 218, __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, 218, __pyx_L1_error) - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":216 - * copy_shape = 0 - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): - * raise ValueError(u"ndarray is not C contiguous") - */ - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":220 - * raise ValueError(u"ndarray is not C contiguous") - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_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_L9_bool_binop_done; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":221 - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< - * raise ValueError(u"ndarray is not Fortran contiguous") - * - */ - __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_F_CONTIGUOUS) != 0)) != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L9_bool_binop_done:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":220 - * raise ValueError(u"ndarray is not C contiguous") - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): - * raise ValueError(u"ndarray is not Fortran contiguous") - */ - if (__pyx_t_1) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":222 - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_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__3, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 222, __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, 222, __pyx_L1_error) - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":220 - * raise ValueError(u"ndarray is not C contiguous") - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): - * raise ValueError(u"ndarray is not Fortran contiguous") - */ - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":224 - * raise ValueError(u"ndarray is not Fortran contiguous") - * - * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< - * info.ndim = ndim - * if copy_shape: - */ - __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":225 - * - * info.buf = PyArray_DATA(self) - * info.ndim = ndim # <<<<<<<<<<<<<< - * if copy_shape: - * # Allocate new buffer for strides and shape info. - */ - __pyx_v_info->ndim = __pyx_v_ndim; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":226 - * info.buf = PyArray_DATA(self) - * info.ndim = ndim - * if copy_shape: # <<<<<<<<<<<<<< - * # Allocate new buffer for strides and shape info. - * # This is allocated as one block, strides first. - */ - __pyx_t_1 = (__pyx_v_copy_shape != 0); - if (__pyx_t_1) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 - * # Allocate new buffer for strides and shape info. - * # This is allocated as one block, strides first. - * info.strides = stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2) # <<<<<<<<<<<<<< - * info.shape = info.strides + ndim - * for i in range(ndim): - */ - __pyx_v_info->strides = ((Py_ssize_t *)malloc((((sizeof(Py_ssize_t)) * ((size_t)__pyx_v_ndim)) * 2))); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":230 - * # This is allocated as one block, strides first. - * info.strides = stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2) - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 - * info.strides = stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2) - * 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; - for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { - __pyx_v_i = __pyx_t_5; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":232 - * 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]); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 - * 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]); - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":226 - * info.buf = PyArray_DATA(self) - * info.ndim = ndim - * if copy_shape: # <<<<<<<<<<<<<< - * # Allocate new buffer for strides and shape info. - * # This is allocated as one block, strides first. - */ - goto __pyx_L11; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":235 - * 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)); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":236 - * 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_L11:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 - * 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; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":238 - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":239 - * 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)); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":242 - * - * cdef int t - * cdef char* f = NULL # <<<<<<<<<<<<<< - * cdef dtype descr = self.descr - * cdef int offset - */ - __pyx_v_f = NULL; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":243 - * cdef int t - * cdef char* f = NULL - * cdef dtype descr = self.descr # <<<<<<<<<<<<<< - * cdef int offset - * - */ - __pyx_t_3 = ((PyObject *)__pyx_v_self->descr); - __Pyx_INCREF(__pyx_t_3); - __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); - __pyx_t_3 = 0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":246 - * cdef int offset - * - * cdef bint hasfields = PyDataType_HASFIELDS(descr) # <<<<<<<<<<<<<< - * - * if not hasfields and not copy_shape: - */ - __pyx_v_hasfields = PyDataType_HASFIELDS(__pyx_v_descr); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":248 - * cdef bint hasfields = PyDataType_HASFIELDS(descr) - * - * if not hasfields and not copy_shape: # <<<<<<<<<<<<<< - * # do not call releasebuffer - * info.obj = None - */ - __pyx_t_2 = ((!(__pyx_v_hasfields != 0)) != 0); - if (__pyx_t_2) { - } else { - __pyx_t_1 = __pyx_t_2; - goto __pyx_L15_bool_binop_done; - } - __pyx_t_2 = ((!(__pyx_v_copy_shape != 0)) != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L15_bool_binop_done:; - if (__pyx_t_1) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":250 - * if not hasfields and not copy_shape: - * # do not call releasebuffer - * info.obj = None # <<<<<<<<<<<<<< - * else: - * # need to call releasebuffer - */ - __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(Py_None); - __Pyx_GOTREF(__pyx_v_info->obj); - __Pyx_DECREF(__pyx_v_info->obj); - __pyx_v_info->obj = Py_None; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":248 - * cdef bint hasfields = PyDataType_HASFIELDS(descr) - * - * if not hasfields and not copy_shape: # <<<<<<<<<<<<<< - * # do not call releasebuffer - * info.obj = None - */ - goto __pyx_L14; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":253 - * else: - * # need to call releasebuffer - * info.obj = self # <<<<<<<<<<<<<< - * - * if not hasfields: - */ - /*else*/ { - __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); - } - __pyx_L14:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":255 - * info.obj = self - * - * if not hasfields: # <<<<<<<<<<<<<< - * t = descr.type_num - * if ((descr.byteorder == c'>' and little_endian) or - */ - __pyx_t_1 = ((!(__pyx_v_hasfields != 0)) != 0); - if (__pyx_t_1) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":256 - * - * if not hasfields: - * 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; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":257 - * if not hasfields: - * 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_L20_next_or; - } else { - } - __pyx_t_2 = (__pyx_v_little_endian != 0); - if (!__pyx_t_2) { - } else { - __pyx_t_1 = __pyx_t_2; - goto __pyx_L19_bool_binop_done; - } - __pyx_L20_next_or:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":258 - * 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_L19_bool_binop_done; - } - __pyx_t_2 = ((!(__pyx_v_little_endian != 0)) != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L19_bool_binop_done:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":257 - * if not hasfields: - * 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 (__pyx_t_1) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 - * 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__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 259, __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, 259, __pyx_L1_error) - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":257 - * if not hasfields: - * 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") - */ - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":260 - * (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; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 - * 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" - */ - case NPY_UBYTE: - __pyx_v_f = ((char *)"B"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":262 - * 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" - */ - case NPY_SHORT: - __pyx_v_f = ((char *)"h"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 - * 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" - */ - case NPY_USHORT: - __pyx_v_f = ((char *)"H"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":264 - * 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" - */ - case NPY_INT: - __pyx_v_f = ((char *)"i"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":265 - * 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" - */ - case NPY_UINT: - __pyx_v_f = ((char *)"I"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":266 - * 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" - */ - case NPY_LONG: - __pyx_v_f = ((char *)"l"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":267 - * 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" - */ - case NPY_ULONG: - __pyx_v_f = ((char *)"L"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":268 - * 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" - */ - case NPY_LONGLONG: - __pyx_v_f = ((char *)"q"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":269 - * 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" - */ - case NPY_ULONGLONG: - __pyx_v_f = ((char *)"Q"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":270 - * 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" - */ - case NPY_FLOAT: - __pyx_v_f = ((char *)"f"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":271 - * 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" - */ - case NPY_DOUBLE: - __pyx_v_f = ((char *)"d"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":272 - * 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" - */ - case NPY_LONGDOUBLE: - __pyx_v_f = ((char *)"g"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":273 - * 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" - */ - case NPY_CFLOAT: - __pyx_v_f = ((char *)"Zf"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":274 - * 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" - */ - case NPY_CDOUBLE: - __pyx_v_f = ((char *)"Zd"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":275 - * 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: - */ - case NPY_CLONGDOUBLE: - __pyx_v_f = ((char *)"Zg"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":276 - * 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) - */ - case NPY_OBJECT: - __pyx_v_f = ((char *)"O"); - break; - default: - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":278 - * 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, 278, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 278, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 278, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_6); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 278, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_Raise(__pyx_t_6, 0, 0, 0); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __PYX_ERR(1, 278, __pyx_L1_error) - break; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":279 - * else: - * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) - * info.format = f # <<<<<<<<<<<<<< - * return - * else: - */ - __pyx_v_info->format = __pyx_v_f; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":280 - * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) - * info.format = f - * return # <<<<<<<<<<<<<< - * else: - * info.format = stdlib.malloc(_buffer_format_string_len) - */ - __pyx_r = 0; - goto __pyx_L0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":255 - * info.obj = self - * - * if not hasfields: # <<<<<<<<<<<<<< - * t = descr.type_num - * if ((descr.byteorder == c'>' and little_endian) or - */ - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":282 - * return - * else: - * info.format = stdlib.malloc(_buffer_format_string_len) # <<<<<<<<<<<<<< - * info.format[0] = c'^' # Native data types, manual alignment - * offset = 0 - */ - /*else*/ { - __pyx_v_info->format = ((char *)malloc(0xFF)); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":283 - * else: - * info.format = stdlib.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]) = '^'; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":284 - * info.format = stdlib.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; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":285 - * 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_7 = __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_7 == NULL)) __PYX_ERR(1, 285, __pyx_L1_error) - __pyx_v_f = __pyx_t_7; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":288 - * 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'; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":197 - * # 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 fullfill the PEP. - */ - - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("numpy.ndarray.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - if (__pyx_v_info != NULL && __pyx_v_info->obj != NULL) { - __Pyx_GOTREF(__pyx_v_info->obj); - __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = NULL; - } - goto __pyx_L2; - __pyx_L0:; - if (__pyx_v_info != NULL && __pyx_v_info->obj == Py_None) { - __Pyx_GOTREF(Py_None); - __Pyx_DECREF(Py_None); __pyx_v_info->obj = NULL; - } - __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_descr); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":290 - * f[0] = c'\0' # Terminate format string - * - * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< - * if PyArray_HASFIELDS(self): - * stdlib.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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":291 - * - * def __releasebuffer__(ndarray self, Py_buffer* info): - * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< - * stdlib.free(info.format) - * if sizeof(npy_intp) != sizeof(Py_ssize_t): - */ - __pyx_t_1 = (PyArray_HASFIELDS(__pyx_v_self) != 0); - if (__pyx_t_1) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":292 - * def __releasebuffer__(ndarray self, Py_buffer* info): - * if PyArray_HASFIELDS(self): - * stdlib.free(info.format) # <<<<<<<<<<<<<< - * if sizeof(npy_intp) != sizeof(Py_ssize_t): - * stdlib.free(info.strides) - */ - free(__pyx_v_info->format); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":291 - * - * def __releasebuffer__(ndarray self, Py_buffer* info): - * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< - * stdlib.free(info.format) - * if sizeof(npy_intp) != sizeof(Py_ssize_t): - */ - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":293 - * if PyArray_HASFIELDS(self): - * stdlib.free(info.format) - * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< - * stdlib.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) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 - * stdlib.free(info.format) - * if sizeof(npy_intp) != sizeof(Py_ssize_t): - * stdlib.free(info.strides) # <<<<<<<<<<<<<< - * # info.shape was stored after info.strides in the same block - * - */ - free(__pyx_v_info->strides); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":293 - * if PyArray_HASFIELDS(self): - * stdlib.free(info.format) - * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< - * stdlib.free(info.strides) - * # info.shape was stored after info.strides in the same block - */ - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":290 - * f[0] = c'\0' # Terminate format string - * - * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< - * if PyArray_HASFIELDS(self): - * stdlib.free(info.format) - */ - - /* function exit code */ - __Pyx_RefNannyFinishContext(); -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":770 - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":771 - * - * 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, 771, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":770 - * 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; -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":773 - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":774 - * - * 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, 774, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":773 - * 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; -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":776 - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":777 - * - * 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, 777, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":776 - * 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; -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":779 - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":780 - * - * 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, 780, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":779 - * 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; -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":782 - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":783 - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): - * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<< - * - * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: - */ - __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, 783, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":782 - * 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; -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":785 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 - * - * cdef dtype child - * cdef int endian_detector = 1 # <<<<<<<<<<<<<< - * cdef bint little_endian = ((&endian_detector)[0] != 0) - * cdef tuple fields - */ - __pyx_v_endian_detector = 1; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":794 - * 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, 794, __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, 794, __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, 794, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); - __pyx_t_3 = 0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":795 - * - * 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, 795, __pyx_L1_error) - } - __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 795, __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, 795, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); - __pyx_t_3 = 0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 - * 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; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(1, 796, __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, 796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } else { - __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 796, __pyx_L1_error) - } - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(1, 796, __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; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":798 - * 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, 798, __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, 798, __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, 798, __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 (__pyx_t_6) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":799 - * - * 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__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 799, __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, 799, __pyx_L1_error) - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":798 - * 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") - * - */ - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":801 - * 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:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":802 - * - * 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:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":801 - * 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 (__pyx_t_6) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":803 - * 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__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 803, __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, 803, __pyx_L1_error) - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":801 - * 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") - */ - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":813 - * - * # 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, 813, __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, 813, __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, 813, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!__pyx_t_6) break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 - * # Output padding bytes - * while offset[0] < new_offset: - * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< - * f += 1 - * offset[0] += 1 - */ - (__pyx_v_f[0]) = 0x78; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":815 - * while offset[0] < new_offset: - * f[0] = 120 # "x"; pad byte - * f += 1 # <<<<<<<<<<<<<< - * offset[0] += 1 - * - */ - __pyx_v_f = (__pyx_v_f + 1); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":816 - * 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); - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":818 - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":820 - * 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) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":821 - * - * 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, 821, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); - __pyx_t_4 = 0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":822 - * 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 (__pyx_t_6) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":823 - * 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__7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 823, __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, 823, __pyx_L1_error) - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":822 - * if not PyDataType_HASFIELDS(child): - * t = child.type_num - * if end - f < 5: # <<<<<<<<<<<<<< - * raise RuntimeError(u"Format string allocated too short.") - * - */ - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":826 - * - * # 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, 826, __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, 826, __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, 826, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 98; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":827 - * # 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, 827, __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, 827, __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, 827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 66; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":828 - * 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, 828, __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, 828, __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, 828, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 0x68; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":829 - * 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, 829, __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, 829, __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, 829, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 72; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":830 - * 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, 830, __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, 830, __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, 830, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 0x69; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 - * 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, 831, __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, 831, __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, 831, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 73; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":832 - * 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, 832, __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, 832, __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, 832, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 0x6C; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 - * 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, 833, __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, 833, __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, 833, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 76; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 - * 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, 834, __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, 834, __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, 834, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 0x71; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":835 - * 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, 835, __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, 835, __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, 835, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 81; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":836 - * 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, 836, __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, 836, __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, 836, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 0x66; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":837 - * 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, 837, __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, 837, __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, 837, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 0x64; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":838 - * 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, 838, __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, 838, __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, 838, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 0x67; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":839 - * 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, 839, __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, 839, __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, 839, __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; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":840 - * 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, 840, __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, 840, __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, 840, __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; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":841 - * 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, 841, __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, 841, __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, 841, __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; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":842 - * 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, 842, __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, 842, __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, 842, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 79; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":844 - * 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 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 844, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 844, __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_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 844, __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, 844, __pyx_L1_error) - } - __pyx_L15:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":845 - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":820 - * offset[0] += child.itemsize - * - * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< - * t = child.type_num - * if end - f < 5: - */ - goto __pyx_L13; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":849 - * # 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 == NULL)) __PYX_ERR(1, 849, __pyx_L1_error) - __pyx_v_f = __pyx_t_9; - } - __pyx_L13:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":794 - * 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; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":850 - * # so don't output it - * f = _util_dtypestring(child, f, end, offset) - * return f # <<<<<<<<<<<<<< - * - * - */ - __pyx_r = __pyx_v_f; - goto __pyx_L0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":785 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * 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; -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":966 - * - * - * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< - * cdef PyObject* baseptr - * if base is None: - */ - -static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { - PyObject *__pyx_v_baseptr; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - __Pyx_RefNannySetupContext("set_array_base", 0); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":968 - * cdef inline void set_array_base(ndarray arr, object base): - * cdef PyObject* baseptr - * if base is None: # <<<<<<<<<<<<<< - * baseptr = NULL - * else: - */ - __pyx_t_1 = (__pyx_v_base == Py_None); - __pyx_t_2 = (__pyx_t_1 != 0); - if (__pyx_t_2) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":969 - * cdef PyObject* baseptr - * if base is None: - * baseptr = NULL # <<<<<<<<<<<<<< - * else: - * Py_INCREF(base) # important to do this before decref below! - */ - __pyx_v_baseptr = NULL; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":968 - * cdef inline void set_array_base(ndarray arr, object base): - * cdef PyObject* baseptr - * if base is None: # <<<<<<<<<<<<<< - * baseptr = NULL - * else: - */ - goto __pyx_L3; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":971 - * baseptr = NULL - * else: - * Py_INCREF(base) # important to do this before decref below! # <<<<<<<<<<<<<< - * baseptr = base - * Py_XDECREF(arr.base) - */ - /*else*/ { - Py_INCREF(__pyx_v_base); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":972 - * else: - * Py_INCREF(base) # important to do this before decref below! - * baseptr = base # <<<<<<<<<<<<<< - * Py_XDECREF(arr.base) - * arr.base = baseptr - */ - __pyx_v_baseptr = ((PyObject *)__pyx_v_base); - } - __pyx_L3:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":973 - * Py_INCREF(base) # important to do this before decref below! - * baseptr = base - * Py_XDECREF(arr.base) # <<<<<<<<<<<<<< - * arr.base = baseptr - * - */ - Py_XDECREF(__pyx_v_arr->base); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":974 - * baseptr = base - * Py_XDECREF(arr.base) - * arr.base = baseptr # <<<<<<<<<<<<<< - * - * cdef inline object get_array_base(ndarray arr): - */ - __pyx_v_arr->base = __pyx_v_baseptr; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":966 - * - * - * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< - * cdef PyObject* baseptr - * if base is None: - */ - - /* function exit code */ - __Pyx_RefNannyFinishContext(); -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":976 - * arr.base = baseptr - * - * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< - * if arr.base is NULL: - * return None - */ - -static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - __Pyx_RefNannySetupContext("get_array_base", 0); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 - * - * cdef inline object get_array_base(ndarray arr): - * if arr.base is NULL: # <<<<<<<<<<<<<< - * return None - * else: - */ - __pyx_t_1 = ((__pyx_v_arr->base == NULL) != 0); - if (__pyx_t_1) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":978 - * cdef inline object get_array_base(ndarray arr): - * if arr.base is NULL: - * return None # <<<<<<<<<<<<<< - * else: - * return arr.base - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; - goto __pyx_L0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 - * - * cdef inline object get_array_base(ndarray arr): - * if arr.base is NULL: # <<<<<<<<<<<<<< - * return None - * else: - */ - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":980 - * return None - * else: - * return arr.base # <<<<<<<<<<<<<< - * - * - */ - /*else*/ { - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(((PyObject *)__pyx_v_arr->base)); - __pyx_r = ((PyObject *)__pyx_v_arr->base); - goto __pyx_L0; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":976 - * arr.base = baseptr - * - * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< - * if arr.base is NULL: - * return None - */ - - /* function exit code */ - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":985 - * # 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":986 - * # 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:*/ { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 - * 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 == -1)) __PYX_ERR(1, 987, __pyx_L3_error) - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":986 - * # 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_L10_try_end; - __pyx_L3_error:; - __Pyx_PyThreadState_assign - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 - * 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, 988, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":989 - * _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__8, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 989, __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, 989, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":986 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< - * _import_array() - * except Exception: - */ - __Pyx_PyThreadState_assign - __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_L10_try_end:; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":985 - * # 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; -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":991 - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":992 - * - * 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:*/ { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":993 - * 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 == -1)) __PYX_ERR(1, 993, __pyx_L3_error) - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":992 - * - * 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_L10_try_end; - __pyx_L3_error:; - __Pyx_PyThreadState_assign - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":994 - * 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, 994, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":995 - * _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__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 995, __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, 995, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":992 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< - * _import_umath() - * except Exception: - */ - __Pyx_PyThreadState_assign - __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_L10_try_end:; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":991 - * 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; -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":998 - * - * 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:*/ { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":999 - * 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 == -1)) __PYX_ERR(1, 999, __pyx_L3_error) - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":998 - * - * 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_L10_try_end; - __pyx_L3_error:; - __Pyx_PyThreadState_assign - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 - * 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, 1000, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1001 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - */ - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1001, __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, 1001, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":998 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< - * _import_umath() - * except Exception: - */ - __Pyx_PyThreadState_assign - __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_L10_try_end:; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 - * 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; -} - -static PyMethodDef __pyx_methods[] = { - {0, 0, 0, 0} -}; - -#if PY_MAJOR_VERSION >= 3 -static struct PyModuleDef __pyx_moduledef = { - #if PY_VERSION_HEX < 0x03020000 - { PyObject_HEAD_INIT(NULL) NULL, 0, NULL }, - #else - PyModuleDef_HEAD_INIT, - #endif - "circCurvature", - __pyx_k_Created_on_Wed_May_27_00_43_07, /* m_doc */ - -1, /* m_size */ - __pyx_methods /* m_methods */, - NULL, /* m_reload */ - NULL, /* m_traverse */ - NULL, /* m_clear */ - NULL /* m_free */ -}; -#endif - -static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__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_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, - {&__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_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_kp_s_Users_ajaver_Documents_GitHub_t, __pyx_k_Users_ajaver_Documents_GitHub_t, sizeof(__pyx_k_Users_ajaver_Documents_GitHub_t), 0, 0, 1, 0}, - {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_angles, __pyx_k_angles, sizeof(__pyx_k_angles), 0, 0, 1, 1}, - {&__pyx_n_s_chainCodeLengths, __pyx_k_chainCodeLengths, sizeof(__pyx_k_chainCodeLengths), 0, 0, 1, 1}, - {&__pyx_n_s_circCurvature, __pyx_k_circCurvature, sizeof(__pyx_k_circCurvature), 0, 0, 1, 1}, - {&__pyx_n_s_edgeLength, __pyx_k_edgeLength, sizeof(__pyx_k_edgeLength), 0, 0, 1, 1}, - {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 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_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1}, - {&__pyx_n_s_numberOfPoints, __pyx_k_numberOfPoints, sizeof(__pyx_k_numberOfPoints), 0, 0, 1, 1}, - {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1}, - {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, - {&__pyx_n_s_points, __pyx_k_points, sizeof(__pyx_k_points), 0, 0, 1, 1}, - {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_size, __pyx_k_size, sizeof(__pyx_k_size), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, - {&__pyx_n_s_tierpsy_analysis_ske_create_segW, __pyx_k_tierpsy_analysis_ske_create_segW, sizeof(__pyx_k_tierpsy_analysis_ske_create_segW), 0, 0, 1, 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_zeros, __pyx_k_zeros, sizeof(__pyx_k_zeros), 0, 0, 1, 1}, - {0, 0, 0, 0, 0, 0, 0} -}; -static int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 218, __pyx_L1_error) - __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(1, 231, __pyx_L1_error) - __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 799, __pyx_L1_error) - __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 989, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -} - -static int __Pyx_InitCachedConstants(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":218 - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): - * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - */ - __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(1, 218, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__2); - __Pyx_GIVEREF(__pyx_tuple__2); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":222 - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): - * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< - * - * info.buf = PyArray_DATA(self) - */ - __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(1, 222, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__3); - __Pyx_GIVEREF(__pyx_tuple__3); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 - * 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__4 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(1, 259, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__4); - __Pyx_GIVEREF(__pyx_tuple__4); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":799 - * - * 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__5 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(1, 799, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__5); - __Pyx_GIVEREF(__pyx_tuple__5); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":803 - * 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_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(1, 803, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__6); - __Pyx_GIVEREF(__pyx_tuple__6); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":823 - * 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__7 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(1, 823, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__7); - __Pyx_GIVEREF(__pyx_tuple__7); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":989 - * _import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ - __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 989, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__8); - __Pyx_GIVEREF(__pyx_tuple__8); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":995 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ - __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 995, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__9); - __Pyx_GIVEREF(__pyx_tuple__9); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1001 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - */ - __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(1, 1001, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__10); - __Pyx_GIVEREF(__pyx_tuple__10); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.pyx":30 - * @cython.wraparound(False) - * def circCurvature(np.ndarray[np.float_t, ndim=2, mode="c"] points not None, \ - * double edgeLength, np.ndarray[np.float_t, ndim=1, mode="c"] chainCodeLengths = np.zeros(1)): # <<<<<<<<<<<<<< - * """ - * multiply (arr, value) - */ - __pyx_tuple__11 = PyTuple_Pack(1, __pyx_int_1); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 30, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__11); - __Pyx_GIVEREF(__pyx_tuple__11); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.pyx":29 - * @cython.boundscheck(False) - * @cython.wraparound(False) - * def circCurvature(np.ndarray[np.float_t, ndim=2, mode="c"] points not None, \ # <<<<<<<<<<<<<< - * double edgeLength, np.ndarray[np.float_t, ndim=1, mode="c"] chainCodeLengths = np.zeros(1)): - * """ - */ - __pyx_tuple__12 = PyTuple_Pack(5, __pyx_n_s_points, __pyx_n_s_edgeLength, __pyx_n_s_chainCodeLengths, __pyx_n_s_numberOfPoints, __pyx_n_s_angles); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 29, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__12); - __Pyx_GIVEREF(__pyx_tuple__12); - __pyx_codeobj__13 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__12, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_ajaver_Documents_GitHub_t, __pyx_n_s_circCurvature, 29, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__13)) __PYX_ERR(0, 29, __pyx_L1_error) - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __Pyx_RefNannyFinishContext(); - return -1; -} - -static int __Pyx_InitGlobals(void) { - if (__Pyx_InitStrings(__pyx_string_tab) < 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) - return 0; - __pyx_L1_error:; - return -1; -} - -#if PY_MAJOR_VERSION < 3 -PyMODINIT_FUNC initcircCurvature(void); /*proto*/ -PyMODINIT_FUNC initcircCurvature(void) -#else -PyMODINIT_FUNC PyInit_circCurvature(void); /*proto*/ -PyMODINIT_FUNC PyInit_circCurvature(void) -#endif -{ - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - __Pyx_RefNannyDeclarations - #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("PyMODINIT_FUNC PyInit_circCurvature(void)", 0); - if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __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_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 PY_MAJOR_VERSION < 3 - __pyx_m = Py_InitModule4("circCurvature", __pyx_methods, __pyx_k_Created_on_Wed_May_27_00_43_07, 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) - __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) - #if CYTHON_COMPILING_IN_PYPY - Py_INCREF(__pyx_b); - #endif - 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_tierpsy__analysis__ske_create__segWormPython__cython_files__circCurvature) { - if (PyObject_SetAttrString(__pyx_m, "__name__", __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, "tierpsy.analysis.ske_create.segWormPython.cython_files.circCurvature")) { - if (unlikely(PyDict_SetItemString(modules, "tierpsy.analysis.ske_create.segWormPython.cython_files.circCurvature", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error) - } - } - #endif - /*--- Builtin init code ---*/ - if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Constants init code ---*/ - if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Global init code ---*/ - /*--- Variable export code ---*/ - /*--- Function export code ---*/ - /*--- Type init code ---*/ - /*--- Type import code ---*/ - __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "type", - #if CYTHON_COMPILING_IN_PYPY - sizeof(PyTypeObject), - #else - sizeof(PyHeapTypeObject), - #endif - 0); if (unlikely(!__pyx_ptype_7cpython_4type_type)) __PYX_ERR(2, 9, __pyx_L1_error) - __pyx_ptype_5numpy_dtype = __Pyx_ImportType("numpy", "dtype", sizeof(PyArray_Descr), 0); if (unlikely(!__pyx_ptype_5numpy_dtype)) __PYX_ERR(1, 155, __pyx_L1_error) - __pyx_ptype_5numpy_flatiter = __Pyx_ImportType("numpy", "flatiter", sizeof(PyArrayIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_flatiter)) __PYX_ERR(1, 168, __pyx_L1_error) - __pyx_ptype_5numpy_broadcast = __Pyx_ImportType("numpy", "broadcast", sizeof(PyArrayMultiIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_broadcast)) __PYX_ERR(1, 172, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType("numpy", "ndarray", sizeof(PyArrayObject), 0); if (unlikely(!__pyx_ptype_5numpy_ndarray)) __PYX_ERR(1, 181, __pyx_L1_error) - __pyx_ptype_5numpy_ufunc = __Pyx_ImportType("numpy", "ufunc", sizeof(PyUFuncObject), 0); if (unlikely(!__pyx_ptype_5numpy_ufunc)) __PYX_ERR(1, 861, __pyx_L1_error) - /*--- Variable import code ---*/ - /*--- Function import code ---*/ - /*--- Execution code ---*/ - #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) - if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.pyx":20 - * - * # import both numpy and the Cython declarations for numpy - * import numpy as np # <<<<<<<<<<<<<< - * cimport numpy as np - * - */ - __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 20, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.pyx":30 - * @cython.wraparound(False) - * def circCurvature(np.ndarray[np.float_t, ndim=2, mode="c"] points not None, \ - * double edgeLength, np.ndarray[np.float_t, ndim=1, mode="c"] chainCodeLengths = np.zeros(1)): # <<<<<<<<<<<<<< - * """ - * multiply (arr, value) - */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 30, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 30, __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__11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 30, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __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, 30, __pyx_L1_error) - __pyx_k_ = ((PyArrayObject *)__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.pyx":29 - * @cython.boundscheck(False) - * @cython.wraparound(False) - * def circCurvature(np.ndarray[np.float_t, ndim=2, mode="c"] points not None, \ # <<<<<<<<<<<<<< - * double edgeLength, np.ndarray[np.float_t, ndim=1, mode="c"] chainCodeLengths = np.zeros(1)): - * """ - */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_13circCurvature_1circCurvature, NULL, __pyx_n_s_tierpsy_analysis_ske_create_segW); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 29, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_circCurvature, __pyx_t_1) < 0) __PYX_ERR(0, 29, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/circCurvature.pyx":1 - * # -*- coding: utf-8 -*- # <<<<<<<<<<<<<< - * """ - * Created on Wed May 27 00:43:07 2015 - */ - __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< - * try: - * _import_umath() - */ - - /*--- Wrapped vars code ---*/ - - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - if (__pyx_m) { - if (__pyx_d) { - __Pyx_AddTraceback("init tierpsy.analysis.ske_create.segWormPython.cython_files.circCurvature", __pyx_clineno, __pyx_lineno, __pyx_filename); - } - Py_DECREF(__pyx_m); __pyx_m = 0; - } else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_ImportError, "init tierpsy.analysis.ske_create.segWormPython.cython_files.circCurvature"); - } - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - #if PY_MAJOR_VERSION < 3 - return; - #else - return __pyx_m; - #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((char *)modname); - if (!m) goto end; - p = PyObject_GetAttrString(m, (char *)"RefNannyAPI"); - if (!p) goto end; - r = PyLong_AsVoidPtr(p); -end: - Py_XDECREF(p); - Py_XDECREF(m); - return (__Pyx_RefNannyAPIStruct *)r; -} -#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; -} - -/* ArgTypeTest */ -static void __Pyx_RaiseArgumentTypeInvalid(const char* name, PyObject *obj, PyTypeObject *type) { - PyErr_Format(PyExc_TypeError, - "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)", - name, type->tp_name, Py_TYPE(obj)->tp_name); -} -static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, - const char *name, int exact) -{ - if (unlikely(!type)) { - PyErr_SetString(PyExc_SystemError, "Missing type object"); - return 0; - } - if (none_allowed && obj == Py_None) return 1; - else if (exact) { - if (likely(Py_TYPE(obj) == type)) return 1; - #if PY_MAJOR_VERSION == 2 - else if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1; - #endif - } - else { - if (likely(PyObject_TypeCheck(obj, type))) return 1; - } - __Pyx_RaiseArgumentTypeInvalid(name, obj, type); - return 0; -} - -/* BufferFormatCheck */ -static CYTHON_INLINE int __Pyx_IsLittleEndian(void) { - unsigned int n = 1; - return *(unsigned char*)(&n) != 0; -} -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 CYTHON_INLINE 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_IsLittleEndian()) { - PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler"); - return NULL; - } - ctx->new_packmode = '='; - ++ts; - break; - case '>': - case '!': - if (__Pyx_IsLittleEndian()) { - 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; - } - 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; - } - 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; - } - } - } -} -static CYTHON_INLINE void __Pyx_ZeroBuffer(Py_buffer* buf) { - buf->buf = NULL; - buf->obj = NULL; - buf->strides = __Pyx_zeros; - buf->shape = __Pyx_zeros; - buf->suboffsets = __Pyx_minusones; -} -static CYTHON_INLINE int __Pyx_GetBufferAndValidate( - Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, - int nd, int cast, __Pyx_BufFmt_StackElem* stack) -{ - if (obj == Py_None || obj == NULL) { - __Pyx_ZeroBuffer(buf); - return 0; - } - buf->buf = NULL; - if (__Pyx_GetBuffer(obj, buf, flags) == -1) goto fail; - if (buf->ndim != nd) { - PyErr_Format(PyExc_ValueError, - "Buffer has wrong number of dimensions (expected %d, got %d)", - nd, buf->ndim); - goto fail; - } - if (!cast) { - __Pyx_BufFmt_Context ctx; - __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 "d byte%s) does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "d byte%s)", - buf->itemsize, (buf->itemsize > 1) ? "s" : "", - dtype->name, (Py_ssize_t)dtype->size, (dtype->size > 1) ? "s" : ""); - goto fail; - } - if (buf->suboffsets == NULL) buf->suboffsets = __Pyx_minusones; - return 0; -fail:; - __Pyx_ZeroBuffer(buf); - return -1; -} -static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) { - if (info->buf == NULL) return; - if (info->suboffsets == __Pyx_minusones) info->suboffsets = NULL; - __Pyx_ReleaseBuffer(info); -} - -/* 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; -} - -/* GetModuleGlobalName */ - static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name) { - PyObject *result; -#if !CYTHON_AVOID_BORROWED_REFS - result = PyDict_GetItem(__pyx_d, name); - if (likely(result)) { - Py_INCREF(result); - } else { -#else - result = PyObject_GetItem(__pyx_d, name); - if (!result) { - PyErr_Clear(); -#endif - result = __Pyx_GetBuiltinName(name); - } - return result; -} - -/* 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); - assert(PyCFunction_Check(func)); - assert(METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST))); - 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()); - return (*((__Pyx_PyCFunctionFast)meth)) (self, args, nargs, NULL); -} -#endif // CYTHON_FAST_PYCCALL - -/* PyFunctionFastCall */ - #if CYTHON_FAST_PYCALL -#include "frameobject.h" -static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, - PyObject *globals) { - PyFrameObject *f; - PyThreadState *tstate = PyThreadState_GET(); - 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 = f->f_localsplus; - 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, int 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, nargs, - k, (int)nk, - d, (int)nd, kwdefs, closure); -#else - result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, - args, nargs, - k, (int)nk, - d, (int)nd, closure); -#endif - Py_XDECREF(kwtuple); -done: - Py_LeaveRecursiveCall(); - return result; -} -#endif // CPython < 3.6 -#endif // CYTHON_FAST_PYCALL - -/* 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 -#ifdef __Pyx_CyFunction_USED - if (likely(PyCFunction_Check(func) || PyObject_TypeCheck(func, __pyx_CyFunctionType))) { -#else - if (likely(PyCFunction_Check(func))) { -#endif - 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 - -/* 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(PyObject_TypeCheck(obj, type))) - return 1; - PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", - Py_TYPE(obj)->tp_name, type->tp_name); - return 0; -} - -/* 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 PY_VERSION_HEX >= 0x03030000 - if (cause) { -#else - if (cause && cause != Py_None) { -#endif - 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 = PyThreadState_GET(); - 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 - -/* 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"); -} - -/* RaiseNoneIterError */ - static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -} - -/* SaveResetException */ - #if CYTHON_FAST_THREAD_STATE -static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { - *type = tstate->exc_type; - *value = tstate->exc_value; - *tb = tstate->exc_traceback; - 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; - 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; - Py_XDECREF(tmp_type); - Py_XDECREF(tmp_value); - Py_XDECREF(tmp_tb); -} -#endif - -/* PyErrExceptionMatches */ - #if CYTHON_FAST_THREAD_STATE -static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) { - PyObject *exc_type = tstate->curexc_type; - if (exc_type == err) return 1; - if (unlikely(!exc_type)) return 0; - return 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 - 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; - 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; -} - -/* 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_VERSION_HEX < 0x03030000 - 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, '.')) { - #if PY_VERSION_HEX < 0x03030000 - PyObject *py_level = PyInt_FromLong(1); - if (!py_level) - goto bad; - module = PyObject_CallFunctionObjArgs(py_import, - name, global_dict, empty_dict, list, py_level, NULL); - Py_DECREF(py_level); - #else - module = PyImport_ImportModuleLevelObject( - name, global_dict, empty_dict, list, 1); - #endif - if (!module) { - if (!PyErr_ExceptionMatches(PyExc_ImportError)) - goto bad; - PyErr_Clear(); - } - } - level = 0; - } - #endif - if (!module) { - #if PY_VERSION_HEX < 0x03030000 - PyObject *py_level = PyInt_FromLong(level); - if (!py_level) - goto bad; - module = PyObject_CallFunctionObjArgs(py_import, - name, global_dict, empty_dict, list, py_level, NULL); - Py_DECREF(py_level); - #else - module = PyImport_ImportModuleLevelObject( - name, global_dict, empty_dict, list, level); - #endif - } - } -bad: - #if PY_VERSION_HEX < 0x03030000 - Py_XDECREF(py_import); - #endif - Py_XDECREF(empty_list); - Py_XDECREF(empty_dict); - return module; -} - -/* 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; - 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( - PyThreadState_GET(), /*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 (PyObject_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pw_5numpy_7ndarray_1__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 (PyObject_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) { __pyx_pw_5numpy_7ndarray_3__releasebuffer__(obj, view); return; } - Py_DECREF(obj); - view->obj = NULL; -} -#endif - - - /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - const int neg_one = (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); - } -} - -/* 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 = 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 = 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, -1); - } - } 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 = 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 = 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, -1); - } - } 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 - -/* 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_enum__NPY_TYPES(enum NPY_TYPES value) { - const enum NPY_TYPES neg_one = (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); - } -} - -/* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - const int neg_one = (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; -} - -/* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - const long neg_one = (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); - } -} - -/* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - const long neg_one = (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; -} - -/* 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; -} - -/* ModuleImport */ - #ifndef __PYX_HAVE_RT_ImportModule -#define __PYX_HAVE_RT_ImportModule -static PyObject *__Pyx_ImportModule(const char *name) { - PyObject *py_name = 0; - PyObject *py_module = 0; - py_name = __Pyx_PyIdentifier_FromString(name); - if (!py_name) - goto bad; - py_module = PyImport_Import(py_name); - Py_DECREF(py_name); - return py_module; -bad: - Py_XDECREF(py_name); - return 0; -} -#endif - -/* TypeImport */ - #ifndef __PYX_HAVE_RT_ImportType -#define __PYX_HAVE_RT_ImportType -static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, - size_t size, int strict) -{ - PyObject *py_module = 0; - PyObject *result = 0; - PyObject *py_name = 0; - char warning[200]; - Py_ssize_t basicsize; -#ifdef Py_LIMITED_API - PyObject *py_basicsize; -#endif - py_module = __Pyx_ImportModule(module_name); - if (!py_module) - goto bad; - py_name = __Pyx_PyIdentifier_FromString(class_name); - if (!py_name) - goto bad; - result = PyObject_GetAttr(py_module, py_name); - Py_DECREF(py_name); - py_name = 0; - Py_DECREF(py_module); - py_module = 0; - 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 (!strict && (size_t)basicsize > size) { - PyOS_snprintf(warning, sizeof(warning), - "%s.%s size changed, may indicate binary incompatibility. Expected %zd, got %zd", - module_name, class_name, basicsize, size); - if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad; - } - else if ((size_t)basicsize != size) { - PyErr_Format(PyExc_ValueError, - "%.200s.%.200s has the wrong size, try recompiling. Expected %zd, got %zd", - module_name, class_name, basicsize, size); - goto bad; - } - return (PyTypeObject *)result; -bad: - Py_XDECREF(py_module); - Py_XDECREF(result); - return NULL; -} -#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; - ++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 char* __Pyx_PyObject_AsString(PyObject* o) { - Py_ssize_t ignore; - return __Pyx_PyObject_AsStringAndSize(o, &ignore); -} -static CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { -#if CYTHON_COMPILING_IN_CPYTHON && (__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)) { -#if PY_VERSION_HEX < 0x03030000 - 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 - if (__Pyx_PyUnicode_READY(o) == -1) return NULL; -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII - if (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 - } 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 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 (PyInt_Check(x) || PyLong_Check(x)) -#else - if (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 = PyNumber_Int(x); - } - else if (m && m->nb_long) { - name = "long"; - res = PyNumber_Long(x); - } - #else - if (m && m->nb_int) { - name = "int"; - res = PyNumber_Long(x); - } - #endif -#else - res = PyNumber_Int(x); -#endif - if (res) { -#if PY_MAJOR_VERSION < 3 - if (!PyInt_Check(res) && !PyLong_Check(res)) { -#else - if (!PyLong_Check(res)) { -#endif - PyErr_Format(PyExc_TypeError, - "__%.4s__ returned non-%.4s (type %.200s)", - name, name, Py_TYPE(res)->tp_name); - Py_DECREF(res); - return NULL; - } - } - 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(x); - } -#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_PyInt_FromSize_t(size_t ival) { - return PyInt_FromSize_t(ival); -} - - -#endif /* Py_PYTHON_H */ diff --git a/tierpsy/analysis/ske_create/segWormPython/cython_files/curvspace.c b/tierpsy/analysis/ske_create/segWormPython/cython_files/curvspace.c deleted file mode 100644 index 8420b771..00000000 --- a/tierpsy/analysis/ske_create/segWormPython/cython_files/curvspace.c +++ /dev/null @@ -1,7303 +0,0 @@ -/* Generated by Cython 0.25.2 */ - -#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 < 0x03020000) - #error Cython requires Python 2.6+ or Python 3.2+. -#else -#define CYTHON_ABI "0_25_2" -#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 -#ifndef HAVE_LONG_LONG - #if PY_VERSION_HEX >= 0x03030000 || (PY_MAJOR_VERSION == 2 && 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_ASYNC_SLOTS - #define CYTHON_USE_ASYNC_SLOTS 0 - #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 -#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_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 -#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_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 -#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 -#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" - #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 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_FASTCALL - #define METH_FASTCALL 0x80 - typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject **args, - Py_ssize_t nargs, PyObject *kwnames); -#else - #define __Pyx_PyCFunctionFast _PyCFunctionFast -#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))))) -#else -#define __Pyx_PyFastCFunction_Check(func) 0 -#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 -#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_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 -#define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) -#define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? 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 -#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 -#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) -#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) -#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) : PyInstanceMethod_New(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 - typedef struct { - unaryfunc am_await; - unaryfunc am_aiter; - unaryfunc am_anext; - } __Pyx_PyAsyncMethodsStruct; - #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) - #endif -#else - #define __Pyx_PyType_AsAsync(obj) NULL -#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) - -#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 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; \ -} - -#if PY_MAJOR_VERSION >= 3 - #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 - -#ifndef __PYX_EXTERN_C - #ifdef __cplusplus - #define __PYX_EXTERN_C extern "C" - #else - #define __PYX_EXTERN_C extern - #endif -#endif - -#define __PYX_HAVE__tierpsy__analysis__ske_create__segWormPython__cython_files__curvspace -#define __PYX_HAVE_API__tierpsy__analysis__ske_create__segWormPython__cython_files__curvspace -#include -#include -#include -#include "numpy/arrayobject.h" -#include "numpy/ufuncobject.h" -#ifdef _OPENMP -#include -#endif /* _OPENMP */ - -#ifdef PYREX_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_DEFAULT 0 -#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))) ) -#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) && defined (_M_X64) - #define __Pyx_sst_abs(value) _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 char* __Pyx_PyObject_AsString(PyObject*); -static CYTHON_INLINE 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_PyObject_AsSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsUString(s) ((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) -#if PY_MAJOR_VERSION < 3 -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); -} -#else -#define __Pyx_Py_UNICODE_strlen Py_UNICODE_strlen -#endif -#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) -#define __Pyx_PyBool_FromLong(b) ((b) ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False)) -static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); -static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); -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)); - 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 PyObject *__pyx_m; -static PyObject *__pyx_d; -static PyObject *__pyx_b; -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[] = { - "tierpsy/analysis/ske_create/segWormPython/cython_files/curvspace.pyx", - "__init__.pxd", - "type.pxd", -}; -/* 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; - - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":725 - * # 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":726 - * - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":727 - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":728 - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":732 - * #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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":733 - * - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":734 - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":735 - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":739 - * #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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":740 - * - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":749 - * # 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":750 - * # 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":751 - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":753 - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":754 - * - * ctypedef npy_ulong uint_t - * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< - * ctypedef npy_ulonglong ulonglong_t - * - */ -typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":755 - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":757 - * ctypedef npy_ulonglong ulonglong_t - * - * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< - * ctypedef npy_uintp uintp_t - * - */ -typedef npy_intp __pyx_t_5numpy_intp_t; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":758 - * - * ctypedef npy_intp intp_t - * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< - * - * ctypedef npy_double float_t - */ -typedef npy_uintp __pyx_t_5numpy_uintp_t; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":760 - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":761 - * - * ctypedef npy_double float_t - * ctypedef npy_double double_t # <<<<<<<<<<<<<< - * ctypedef npy_longdouble longdouble_t - * - */ -typedef npy_double __pyx_t_5numpy_double_t; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":762 - * 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; -/* 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 ---*/ - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":764 - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":765 - * - * ctypedef npy_cfloat cfloat_t - * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< - * ctypedef npy_clongdouble clongdouble_t - * - */ -typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":766 - * 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; - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":768 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< - * - * cdef inline object PyArray_MultiIterNew1(a): - */ -typedef npy_cdouble __pyx_t_5numpy_complex_t; - -/* --- 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) - -/* 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); - -/* ArgTypeTest.proto */ -static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, - const char *name, int exact); - -/* BufferFormatCheck.proto */ -static CYTHON_INLINE int __Pyx_GetBufferAndValidate(Py_buffer* buf, PyObject* obj, - __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack); -static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info); -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); // PROTO - -/* PyObjectGetAttrStr.proto */ -#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); -} -#else -#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) -#endif - -/* GetBuiltinName.proto */ -static PyObject *__Pyx_GetBuiltinName(PyObject *name); - -/* GetModuleGlobalName.proto */ -static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name); - -/* 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, int nargs, PyObject *kwargs); -#else -#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) -#endif -#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); - -/* ExtTypeTest.proto */ -static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); - -#define __Pyx_BufPtrCContig2d(type, buf, i0, s0, i1, s1) ((type)((char*)buf + i0 * s0) + i1) -/* PyThreadStateGet.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; -#define __Pyx_PyThreadState_assign __pyx_tstate = PyThreadState_GET(); -#else -#define __Pyx_PyThreadState_declare -#define __Pyx_PyThreadState_assign -#endif - -/* PyErrFetchRestore.proto */ -#if CYTHON_FAST_THREAD_STATE -#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); -#else -#define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetchWithState(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); - -/* DictGetItem.proto */ -#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()) { - PyObject* args = PyTuple_Pack(1, key); - if (likely(args)) - PyErr_SetObject(PyExc_KeyError, args); - Py_XDECREF(args); - } - return NULL; - } - Py_INCREF(value); - return value; -} -#else - #define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key) -#endif - -/* RaiseTooManyValuesToUnpack.proto */ -static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); - -/* RaiseNeedMoreValuesToUnpack.proto */ -static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); - -/* RaiseNoneIterError.proto */ -static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); - -/* 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 - -/* Import.proto */ -static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); - -/* 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); - -/* 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; - -#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 - - -/* None.proto */ -static Py_ssize_t __Pyx_zeros[] = {0, 0, 0, 0, 0, 0, 0, 0}; -static Py_ssize_t __Pyx_minusones[] = {-1, -1, -1, -1, -1, -1, -1, -1}; - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(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_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_enum__NPY_TYPES(enum NPY_TYPES value); - -/* CIntFromPy.proto */ -static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); - -/* CIntFromPy.proto */ -static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -/* CheckBinaryVersion.proto */ -static int __Pyx_check_binary_version(void); - -/* PyIdentifierFromString.proto */ -#if !defined(__Pyx_PyIdentifier_FromString) -#if PY_MAJOR_VERSION < 3 - #define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s) -#else - #define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s) -#endif -#endif - -/* ModuleImport.proto */ -static PyObject *__Pyx_ImportModule(const char *name); - -/* TypeImport.proto */ -static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict); - -/* InitStrings.proto */ -static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); - - -/* Module declarations from 'cython' */ - -/* 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 'libc.stdlib' */ - -/* 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 'tierpsy.analysis.ske_create.segWormPython.cython_files.curvspace' */ -__PYX_EXTERN_C DL_IMPORT(double) c_curvspace(double *, int, int, int, double *); /*proto*/ -static __Pyx_TypeInfo __Pyx_TypeInfo_double = { "double", NULL, sizeof(double), { 0 }, 0, 'R', 0, 0 }; -#define __Pyx_MODULE_NAME "tierpsy.analysis.ske_create.segWormPython.cython_files.curvspace" -int __pyx_module_is_main_tierpsy__analysis__ske_create__segWormPython__cython_files__curvspace = 0; - -/* Implementation of 'tierpsy.analysis.ske_create.segWormPython.cython_files.curvspace' */ -static PyObject *__pyx_builtin_ValueError; -static PyObject *__pyx_builtin_range; -static PyObject *__pyx_builtin_RuntimeError; -static PyObject *__pyx_builtin_ImportError; -static const char __pyx_k_N[] = "N"; -static const char __pyx_k_np[] = "np"; -static const char __pyx_k_main[] = "__main__"; -static const char __pyx_k_test[] = "__test__"; -static const char __pyx_k_numpy[] = "numpy"; -static const char __pyx_k_p_dim[] = "p_dim"; -static const char __pyx_k_range[] = "range"; -static const char __pyx_k_zeros[] = "zeros"; -static const char __pyx_k_import[] = "__import__"; -static const char __pyx_k_output[] = "output"; -static const char __pyx_k_p_size[] = "p_size"; -static const char __pyx_k_points[] = "points"; -static const char __pyx_k_curv_len[] = "curv_len"; -static const char __pyx_k_curvspace[] = "curvspace"; -static const char __pyx_k_ValueError[] = "ValueError"; -static const char __pyx_k_ImportError[] = "ImportError"; -static const char __pyx_k_RuntimeError[] = "RuntimeError"; -static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; -static const char __pyx_k_Created_on_Wed_May_27_00_43_07[] = "\nCreated on Wed May 27 00:43:07 2015\n\n@author: ajaver\n"; -static const char __pyx_k_Users_ajaver_Documents_GitHub_t[] = "/Users/ajaver/Documents/GitHub/tierpsy-tracker/tierpsy/analysis/ske_create/segWormPython/cython_files/curvspace.pyx"; -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_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; -static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; -static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; -static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; -static const char __pyx_k_tierpsy_analysis_ske_create_segW[] = "tierpsy.analysis.ske_create.segWormPython.cython_files.curvspace"; -static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; -static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; -static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; -static PyObject *__pyx_n_s_ImportError; -static PyObject *__pyx_n_s_N; -static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; -static PyObject *__pyx_n_s_RuntimeError; -static PyObject *__pyx_kp_s_Users_ajaver_Documents_GitHub_t; -static PyObject *__pyx_n_s_ValueError; -static PyObject *__pyx_n_s_curv_len; -static PyObject *__pyx_n_s_curvspace; -static PyObject *__pyx_n_s_import; -static PyObject *__pyx_n_s_main; -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_np; -static PyObject *__pyx_n_s_numpy; -static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; -static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; -static PyObject *__pyx_n_s_output; -static PyObject *__pyx_n_s_p_dim; -static PyObject *__pyx_n_s_p_size; -static PyObject *__pyx_n_s_points; -static PyObject *__pyx_n_s_range; -static PyObject *__pyx_n_s_test; -static PyObject *__pyx_n_s_tierpsy_analysis_ske_create_segW; -static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; -static PyObject *__pyx_n_s_zeros; -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_9curvspace_curvspace(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_points, int __pyx_v_N); /* 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 PyObject *__pyx_int_2; -static PyObject *__pyx_tuple_; -static PyObject *__pyx_tuple__2; -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_tuple__10; -static PyObject *__pyx_codeobj__11; - -/* "tierpsy/analysis/ske_create/segWormPython/cython_files/curvspace.pyx":28 - * @cython.boundscheck(False) - * @cython.wraparound(False) - * def curvspace(np.ndarray[double, ndim=2, mode="c"] points not None, int N): # <<<<<<<<<<<<<< - * """ - * multiply (arr, value) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_9curvspace_1curvspace(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_9curvspace_curvspace[] = "\n multiply (arr, value)\n\n Takes a numpy arry as input, and multiplies each elemetn by value, in place\n\n param: array -- a 2-d numpy array of np.float64\n param: value -- a number that will be multiplied by each element in the array\n\n "; -static PyMethodDef __pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_9curvspace_1curvspace = {"curvspace", (PyCFunction)__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_9curvspace_1curvspace, METH_VARARGS|METH_KEYWORDS, __pyx_doc_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_9curvspace_curvspace}; -static PyObject *__pyx_pw_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_9curvspace_1curvspace(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyArrayObject *__pyx_v_points = 0; - int __pyx_v_N; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("curvspace (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_points,&__pyx_n_s_N,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); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_points)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("curvspace", 1, 2, 2, 1); __PYX_ERR(0, 28, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "curvspace") < 0)) __PYX_ERR(0, 28, __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_points = ((PyArrayObject *)values[0]); - __pyx_v_N = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 28, __pyx_L3_error) - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("curvspace", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 28, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.curvspace.curvspace", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_points), __pyx_ptype_5numpy_ndarray, 0, "points", 0))) __PYX_ERR(0, 28, __pyx_L1_error) - __pyx_r = __pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_9curvspace_curvspace(__pyx_self, __pyx_v_points, __pyx_v_N); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_9curvspace_curvspace(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_points, int __pyx_v_N) { - int __pyx_v_p_size; - int __pyx_v_p_dim; - PyObject *__pyx_v_curv_len = 0; - PyArrayObject *__pyx_v_output = 0; - __Pyx_LocalBuf_ND __pyx_pybuffernd_output; - __Pyx_Buffer __pyx_pybuffer_output; - __Pyx_LocalBuf_ND __pyx_pybuffernd_points; - __Pyx_Buffer __pyx_pybuffer_points; - 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; - PyArrayObject *__pyx_t_6 = NULL; - npy_intp __pyx_t_7; - npy_intp __pyx_t_8; - Py_ssize_t __pyx_t_9; - Py_ssize_t __pyx_t_10; - Py_ssize_t __pyx_t_11; - Py_ssize_t __pyx_t_12; - __Pyx_RefNannySetupContext("curvspace", 0); - __pyx_pybuffer_output.pybuffer.buf = NULL; - __pyx_pybuffer_output.refcount = 0; - __pyx_pybuffernd_output.data = NULL; - __pyx_pybuffernd_output.rcbuffer = &__pyx_pybuffer_output; - __pyx_pybuffer_points.pybuffer.buf = NULL; - __pyx_pybuffer_points.refcount = 0; - __pyx_pybuffernd_points.data = NULL; - __pyx_pybuffernd_points.rcbuffer = &__pyx_pybuffer_points; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_points.rcbuffer->pybuffer, (PyObject*)__pyx_v_points, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 28, __pyx_L1_error) - } - __pyx_pybuffernd_points.diminfo[0].strides = __pyx_pybuffernd_points.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_points.diminfo[0].shape = __pyx_pybuffernd_points.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_points.diminfo[1].strides = __pyx_pybuffernd_points.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_points.diminfo[1].shape = __pyx_pybuffernd_points.rcbuffer->pybuffer.shape[1]; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/curvspace.pyx":41 - * cdef curv_len - * - * cdef np.ndarray[double, ndim=2, mode="c"] output = np.zeros((N,2)) # <<<<<<<<<<<<<< - * p_size, p_dim = points.shape[0], points.shape[1] - * - */ - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 41, __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, 41, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_N); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 41, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 41, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_2); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); - __Pyx_INCREF(__pyx_int_2); - __Pyx_GIVEREF(__pyx_int_2); - PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_2); - __pyx_t_2 = 0; - __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); - } - } - if (!__pyx_t_2) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 41, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else { - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 41, __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[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 41, __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_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 41, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; - __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_4); - __pyx_t_4 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 41, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 41, __pyx_L1_error) - __pyx_t_6 = ((PyArrayObject *)__pyx_t_1); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_output.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) { - __pyx_v_output = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_output.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 41, __pyx_L1_error) - } else {__pyx_pybuffernd_output.diminfo[0].strides = __pyx_pybuffernd_output.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_output.diminfo[0].shape = __pyx_pybuffernd_output.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_output.diminfo[1].strides = __pyx_pybuffernd_output.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_output.diminfo[1].shape = __pyx_pybuffernd_output.rcbuffer->pybuffer.shape[1]; - } - } - __pyx_t_6 = 0; - __pyx_v_output = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/curvspace.pyx":42 - * - * cdef np.ndarray[double, ndim=2, mode="c"] output = np.zeros((N,2)) - * p_size, p_dim = points.shape[0], points.shape[1] # <<<<<<<<<<<<<< - * - * curv_len = c_curvspace (&points[0,0], p_size, p_dim, N, &output[0,0]) - */ - __pyx_t_7 = (__pyx_v_points->dimensions[0]); - __pyx_t_8 = (__pyx_v_points->dimensions[1]); - __pyx_v_p_size = __pyx_t_7; - __pyx_v_p_dim = __pyx_t_8; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/curvspace.pyx":44 - * p_size, p_dim = points.shape[0], points.shape[1] - * - * curv_len = c_curvspace (&points[0,0], p_size, p_dim, N, &output[0,0]) # <<<<<<<<<<<<<< - * return output, curv_len - * - */ - __pyx_t_9 = 0; - __pyx_t_10 = 0; - __pyx_t_11 = 0; - __pyx_t_12 = 0; - __pyx_t_1 = PyFloat_FromDouble(c_curvspace((&(*__Pyx_BufPtrCContig2d(double *, __pyx_pybuffernd_points.rcbuffer->pybuffer.buf, __pyx_t_9, __pyx_pybuffernd_points.diminfo[0].strides, __pyx_t_10, __pyx_pybuffernd_points.diminfo[1].strides))), __pyx_v_p_size, __pyx_v_p_dim, __pyx_v_N, (&(*__Pyx_BufPtrCContig2d(double *, __pyx_pybuffernd_output.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_output.diminfo[0].strides, __pyx_t_12, __pyx_pybuffernd_output.diminfo[1].strides))))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 44, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_curv_len = __pyx_t_1; - __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/curvspace.pyx":45 - * - * curv_len = c_curvspace (&points[0,0], p_size, p_dim, N, &output[0,0]) - * return output, curv_len # <<<<<<<<<<<<<< - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 45, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(((PyObject *)__pyx_v_output)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_output)); - PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_output)); - __Pyx_INCREF(__pyx_v_curv_len); - __Pyx_GIVEREF(__pyx_v_curv_len); - PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_curv_len); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/curvspace.pyx":28 - * @cython.boundscheck(False) - * @cython.wraparound(False) - * def curvspace(np.ndarray[double, ndim=2, mode="c"] points not None, int N): # <<<<<<<<<<<<<< - * """ - * multiply (arr, value) - */ - - /* 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); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_points.rcbuffer->pybuffer); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("tierpsy.analysis.ske_create.segWormPython.cython_files.curvspace.curvspace", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_points.rcbuffer->pybuffer); - __pyx_L2:; - __Pyx_XDECREF(__pyx_v_curv_len); - __Pyx_XDECREF((PyObject *)__pyx_v_output); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":197 - * # 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 fullfill 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_copy_shape; - 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_v_hasfields; - 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; - PyObject *__pyx_t_6 = NULL; - char *__pyx_t_7; - __Pyx_RefNannySetupContext("__getbuffer__", 0); - if (__pyx_v_info != NULL) { - __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(__pyx_v_info->obj); - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":203 - * # of flags - * - * if info == NULL: return # <<<<<<<<<<<<<< - * - * cdef int copy_shape, i, ndim - */ - __pyx_t_1 = ((__pyx_v_info == NULL) != 0); - if (__pyx_t_1) { - __pyx_r = 0; - goto __pyx_L0; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":206 - * - * cdef int copy_shape, i, ndim - * cdef int endian_detector = 1 # <<<<<<<<<<<<<< - * cdef bint little_endian = ((&endian_detector)[0] != 0) - * - */ - __pyx_v_endian_detector = 1; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":207 - * cdef int copy_shape, 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":209 - * cdef bint little_endian = ((&endian_detector)[0] != 0) - * - * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< - * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): - */ - __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":211 - * ndim = PyArray_NDIM(self) - * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< - * copy_shape = 1 - * else: - */ - __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); - if (__pyx_t_1) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":212 - * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): - * copy_shape = 1 # <<<<<<<<<<<<<< - * else: - * copy_shape = 0 - */ - __pyx_v_copy_shape = 1; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":211 - * ndim = PyArray_NDIM(self) - * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< - * copy_shape = 1 - * else: - */ - goto __pyx_L4; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":214 - * copy_shape = 1 - * else: - * copy_shape = 0 # <<<<<<<<<<<<<< - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - */ - /*else*/ { - __pyx_v_copy_shape = 0; - } - __pyx_L4:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":216 - * copy_shape = 0 - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_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_L6_bool_binop_done; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":217 - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< - * raise ValueError(u"ndarray is not C contiguous") - * - */ - __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_C_CONTIGUOUS) != 0)) != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L6_bool_binop_done:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":216 - * copy_shape = 0 - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): - * raise ValueError(u"ndarray is not C contiguous") - */ - if (__pyx_t_1) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":218 - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_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_, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 218, __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, 218, __pyx_L1_error) - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":216 - * copy_shape = 0 - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): - * raise ValueError(u"ndarray is not C contiguous") - */ - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":220 - * raise ValueError(u"ndarray is not C contiguous") - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_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_L9_bool_binop_done; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":221 - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< - * raise ValueError(u"ndarray is not Fortran contiguous") - * - */ - __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_F_CONTIGUOUS) != 0)) != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L9_bool_binop_done:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":220 - * raise ValueError(u"ndarray is not C contiguous") - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): - * raise ValueError(u"ndarray is not Fortran contiguous") - */ - if (__pyx_t_1) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":222 - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_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__2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 222, __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, 222, __pyx_L1_error) - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":220 - * raise ValueError(u"ndarray is not C contiguous") - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): - * raise ValueError(u"ndarray is not Fortran contiguous") - */ - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":224 - * raise ValueError(u"ndarray is not Fortran contiguous") - * - * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< - * info.ndim = ndim - * if copy_shape: - */ - __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":225 - * - * info.buf = PyArray_DATA(self) - * info.ndim = ndim # <<<<<<<<<<<<<< - * if copy_shape: - * # Allocate new buffer for strides and shape info. - */ - __pyx_v_info->ndim = __pyx_v_ndim; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":226 - * info.buf = PyArray_DATA(self) - * info.ndim = ndim - * if copy_shape: # <<<<<<<<<<<<<< - * # Allocate new buffer for strides and shape info. - * # This is allocated as one block, strides first. - */ - __pyx_t_1 = (__pyx_v_copy_shape != 0); - if (__pyx_t_1) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":229 - * # Allocate new buffer for strides and shape info. - * # This is allocated as one block, strides first. - * info.strides = stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2) # <<<<<<<<<<<<<< - * info.shape = info.strides + ndim - * for i in range(ndim): - */ - __pyx_v_info->strides = ((Py_ssize_t *)malloc((((sizeof(Py_ssize_t)) * ((size_t)__pyx_v_ndim)) * 2))); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":230 - * # This is allocated as one block, strides first. - * info.strides = stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2) - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":231 - * info.strides = stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2) - * 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; - for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { - __pyx_v_i = __pyx_t_5; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":232 - * 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]); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":233 - * 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]); - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":226 - * info.buf = PyArray_DATA(self) - * info.ndim = ndim - * if copy_shape: # <<<<<<<<<<<<<< - * # Allocate new buffer for strides and shape info. - * # This is allocated as one block, strides first. - */ - goto __pyx_L11; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":235 - * 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)); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":236 - * 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_L11:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":237 - * 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; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":238 - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":239 - * 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)); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":242 - * - * cdef int t - * cdef char* f = NULL # <<<<<<<<<<<<<< - * cdef dtype descr = self.descr - * cdef int offset - */ - __pyx_v_f = NULL; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":243 - * cdef int t - * cdef char* f = NULL - * cdef dtype descr = self.descr # <<<<<<<<<<<<<< - * cdef int offset - * - */ - __pyx_t_3 = ((PyObject *)__pyx_v_self->descr); - __Pyx_INCREF(__pyx_t_3); - __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); - __pyx_t_3 = 0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":246 - * cdef int offset - * - * cdef bint hasfields = PyDataType_HASFIELDS(descr) # <<<<<<<<<<<<<< - * - * if not hasfields and not copy_shape: - */ - __pyx_v_hasfields = PyDataType_HASFIELDS(__pyx_v_descr); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":248 - * cdef bint hasfields = PyDataType_HASFIELDS(descr) - * - * if not hasfields and not copy_shape: # <<<<<<<<<<<<<< - * # do not call releasebuffer - * info.obj = None - */ - __pyx_t_2 = ((!(__pyx_v_hasfields != 0)) != 0); - if (__pyx_t_2) { - } else { - __pyx_t_1 = __pyx_t_2; - goto __pyx_L15_bool_binop_done; - } - __pyx_t_2 = ((!(__pyx_v_copy_shape != 0)) != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L15_bool_binop_done:; - if (__pyx_t_1) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":250 - * if not hasfields and not copy_shape: - * # do not call releasebuffer - * info.obj = None # <<<<<<<<<<<<<< - * else: - * # need to call releasebuffer - */ - __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(Py_None); - __Pyx_GOTREF(__pyx_v_info->obj); - __Pyx_DECREF(__pyx_v_info->obj); - __pyx_v_info->obj = Py_None; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":248 - * cdef bint hasfields = PyDataType_HASFIELDS(descr) - * - * if not hasfields and not copy_shape: # <<<<<<<<<<<<<< - * # do not call releasebuffer - * info.obj = None - */ - goto __pyx_L14; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":253 - * else: - * # need to call releasebuffer - * info.obj = self # <<<<<<<<<<<<<< - * - * if not hasfields: - */ - /*else*/ { - __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); - } - __pyx_L14:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":255 - * info.obj = self - * - * if not hasfields: # <<<<<<<<<<<<<< - * t = descr.type_num - * if ((descr.byteorder == c'>' and little_endian) or - */ - __pyx_t_1 = ((!(__pyx_v_hasfields != 0)) != 0); - if (__pyx_t_1) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":256 - * - * if not hasfields: - * 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; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":257 - * if not hasfields: - * 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_L20_next_or; - } else { - } - __pyx_t_2 = (__pyx_v_little_endian != 0); - if (!__pyx_t_2) { - } else { - __pyx_t_1 = __pyx_t_2; - goto __pyx_L19_bool_binop_done; - } - __pyx_L20_next_or:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":258 - * 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_L19_bool_binop_done; - } - __pyx_t_2 = ((!(__pyx_v_little_endian != 0)) != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L19_bool_binop_done:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":257 - * if not hasfields: - * 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 (__pyx_t_1) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 - * 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__3, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 259, __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, 259, __pyx_L1_error) - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":257 - * if not hasfields: - * 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") - */ - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":260 - * (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; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":261 - * 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" - */ - case NPY_UBYTE: - __pyx_v_f = ((char *)"B"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":262 - * 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" - */ - case NPY_SHORT: - __pyx_v_f = ((char *)"h"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":263 - * 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" - */ - case NPY_USHORT: - __pyx_v_f = ((char *)"H"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":264 - * 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" - */ - case NPY_INT: - __pyx_v_f = ((char *)"i"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":265 - * 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" - */ - case NPY_UINT: - __pyx_v_f = ((char *)"I"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":266 - * 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" - */ - case NPY_LONG: - __pyx_v_f = ((char *)"l"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":267 - * 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" - */ - case NPY_ULONG: - __pyx_v_f = ((char *)"L"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":268 - * 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" - */ - case NPY_LONGLONG: - __pyx_v_f = ((char *)"q"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":269 - * 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" - */ - case NPY_ULONGLONG: - __pyx_v_f = ((char *)"Q"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":270 - * 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" - */ - case NPY_FLOAT: - __pyx_v_f = ((char *)"f"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":271 - * 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" - */ - case NPY_DOUBLE: - __pyx_v_f = ((char *)"d"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":272 - * 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" - */ - case NPY_LONGDOUBLE: - __pyx_v_f = ((char *)"g"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":273 - * 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" - */ - case NPY_CFLOAT: - __pyx_v_f = ((char *)"Zf"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":274 - * 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" - */ - case NPY_CDOUBLE: - __pyx_v_f = ((char *)"Zd"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":275 - * 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: - */ - case NPY_CLONGDOUBLE: - __pyx_v_f = ((char *)"Zg"); - break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":276 - * 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) - */ - case NPY_OBJECT: - __pyx_v_f = ((char *)"O"); - break; - default: - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":278 - * 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, 278, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 278, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 278, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_6); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 278, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_Raise(__pyx_t_6, 0, 0, 0); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __PYX_ERR(1, 278, __pyx_L1_error) - break; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":279 - * else: - * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) - * info.format = f # <<<<<<<<<<<<<< - * return - * else: - */ - __pyx_v_info->format = __pyx_v_f; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":280 - * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) - * info.format = f - * return # <<<<<<<<<<<<<< - * else: - * info.format = stdlib.malloc(_buffer_format_string_len) - */ - __pyx_r = 0; - goto __pyx_L0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":255 - * info.obj = self - * - * if not hasfields: # <<<<<<<<<<<<<< - * t = descr.type_num - * if ((descr.byteorder == c'>' and little_endian) or - */ - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":282 - * return - * else: - * info.format = stdlib.malloc(_buffer_format_string_len) # <<<<<<<<<<<<<< - * info.format[0] = c'^' # Native data types, manual alignment - * offset = 0 - */ - /*else*/ { - __pyx_v_info->format = ((char *)malloc(0xFF)); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":283 - * else: - * info.format = stdlib.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]) = '^'; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":284 - * info.format = stdlib.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; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":285 - * 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_7 = __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_7 == NULL)) __PYX_ERR(1, 285, __pyx_L1_error) - __pyx_v_f = __pyx_t_7; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":288 - * 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'; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":197 - * # 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 fullfill the PEP. - */ - - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("numpy.ndarray.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - if (__pyx_v_info != NULL && __pyx_v_info->obj != NULL) { - __Pyx_GOTREF(__pyx_v_info->obj); - __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = NULL; - } - goto __pyx_L2; - __pyx_L0:; - if (__pyx_v_info != NULL && __pyx_v_info->obj == Py_None) { - __Pyx_GOTREF(Py_None); - __Pyx_DECREF(Py_None); __pyx_v_info->obj = NULL; - } - __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_descr); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":290 - * f[0] = c'\0' # Terminate format string - * - * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< - * if PyArray_HASFIELDS(self): - * stdlib.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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":291 - * - * def __releasebuffer__(ndarray self, Py_buffer* info): - * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< - * stdlib.free(info.format) - * if sizeof(npy_intp) != sizeof(Py_ssize_t): - */ - __pyx_t_1 = (PyArray_HASFIELDS(__pyx_v_self) != 0); - if (__pyx_t_1) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":292 - * def __releasebuffer__(ndarray self, Py_buffer* info): - * if PyArray_HASFIELDS(self): - * stdlib.free(info.format) # <<<<<<<<<<<<<< - * if sizeof(npy_intp) != sizeof(Py_ssize_t): - * stdlib.free(info.strides) - */ - free(__pyx_v_info->format); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":291 - * - * def __releasebuffer__(ndarray self, Py_buffer* info): - * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< - * stdlib.free(info.format) - * if sizeof(npy_intp) != sizeof(Py_ssize_t): - */ - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":293 - * if PyArray_HASFIELDS(self): - * stdlib.free(info.format) - * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< - * stdlib.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) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":294 - * stdlib.free(info.format) - * if sizeof(npy_intp) != sizeof(Py_ssize_t): - * stdlib.free(info.strides) # <<<<<<<<<<<<<< - * # info.shape was stored after info.strides in the same block - * - */ - free(__pyx_v_info->strides); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":293 - * if PyArray_HASFIELDS(self): - * stdlib.free(info.format) - * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< - * stdlib.free(info.strides) - * # info.shape was stored after info.strides in the same block - */ - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":290 - * f[0] = c'\0' # Terminate format string - * - * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< - * if PyArray_HASFIELDS(self): - * stdlib.free(info.format) - */ - - /* function exit code */ - __Pyx_RefNannyFinishContext(); -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":770 - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":771 - * - * 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, 771, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":770 - * 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; -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":773 - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":774 - * - * 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, 774, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":773 - * 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; -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":776 - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":777 - * - * 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, 777, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":776 - * 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; -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":779 - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":780 - * - * 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, 780, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":779 - * 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; -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":782 - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":783 - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): - * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<< - * - * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: - */ - __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, 783, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":782 - * 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; -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":785 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":790 - * - * cdef dtype child - * cdef int endian_detector = 1 # <<<<<<<<<<<<<< - * cdef bint little_endian = ((&endian_detector)[0] != 0) - * cdef tuple fields - */ - __pyx_v_endian_detector = 1; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":791 - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":794 - * 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, 794, __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, 794, __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, 794, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); - __pyx_t_3 = 0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":795 - * - * 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, 795, __pyx_L1_error) - } - __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 795, __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, 795, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); - __pyx_t_3 = 0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":796 - * 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; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(1, 796, __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, 796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } else { - __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 796, __pyx_L1_error) - } - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(1, 796, __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; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":798 - * 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, 798, __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, 798, __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, 798, __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 (__pyx_t_6) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":799 - * - * 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__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 799, __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, 799, __pyx_L1_error) - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":798 - * 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") - * - */ - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":801 - * 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:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":802 - * - * 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:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":801 - * 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 (__pyx_t_6) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":803 - * 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__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 803, __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, 803, __pyx_L1_error) - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":801 - * 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") - */ - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":813 - * - * # 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, 813, __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, 813, __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, 813, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!__pyx_t_6) break; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":814 - * # Output padding bytes - * while offset[0] < new_offset: - * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< - * f += 1 - * offset[0] += 1 - */ - (__pyx_v_f[0]) = 0x78; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":815 - * while offset[0] < new_offset: - * f[0] = 120 # "x"; pad byte - * f += 1 # <<<<<<<<<<<<<< - * offset[0] += 1 - * - */ - __pyx_v_f = (__pyx_v_f + 1); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":816 - * 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); - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":818 - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":820 - * 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) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":821 - * - * 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, 821, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); - __pyx_t_4 = 0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":822 - * 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 (__pyx_t_6) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":823 - * 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__6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 823, __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, 823, __pyx_L1_error) - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":822 - * if not PyDataType_HASFIELDS(child): - * t = child.type_num - * if end - f < 5: # <<<<<<<<<<<<<< - * raise RuntimeError(u"Format string allocated too short.") - * - */ - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":826 - * - * # 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, 826, __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, 826, __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, 826, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 98; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":827 - * # 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, 827, __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, 827, __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, 827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 66; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":828 - * 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, 828, __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, 828, __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, 828, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 0x68; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":829 - * 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, 829, __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, 829, __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, 829, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 72; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":830 - * 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, 830, __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, 830, __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, 830, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 0x69; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":831 - * 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, 831, __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, 831, __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, 831, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 73; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":832 - * 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, 832, __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, 832, __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, 832, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 0x6C; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":833 - * 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, 833, __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, 833, __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, 833, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 76; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":834 - * 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, 834, __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, 834, __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, 834, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 0x71; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":835 - * 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, 835, __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, 835, __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, 835, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 81; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":836 - * 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, 836, __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, 836, __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, 836, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 0x66; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":837 - * 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, 837, __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, 837, __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, 837, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 0x64; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":838 - * 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, 838, __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, 838, __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, 838, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 0x67; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":839 - * 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, 839, __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, 839, __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, 839, __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; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":840 - * 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, 840, __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, 840, __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, 840, __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; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":841 - * 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, 841, __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, 841, __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, 841, __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; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":842 - * 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, 842, __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, 842, __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, 842, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 79; - goto __pyx_L15; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":844 - * 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 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 844, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 844, __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_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 844, __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, 844, __pyx_L1_error) - } - __pyx_L15:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":845 - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":820 - * offset[0] += child.itemsize - * - * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< - * t = child.type_num - * if end - f < 5: - */ - goto __pyx_L13; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":849 - * # 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 == NULL)) __PYX_ERR(1, 849, __pyx_L1_error) - __pyx_v_f = __pyx_t_9; - } - __pyx_L13:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":794 - * 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; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":850 - * # so don't output it - * f = _util_dtypestring(child, f, end, offset) - * return f # <<<<<<<<<<<<<< - * - * - */ - __pyx_r = __pyx_v_f; - goto __pyx_L0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":785 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * 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; -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":966 - * - * - * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< - * cdef PyObject* baseptr - * if base is None: - */ - -static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { - PyObject *__pyx_v_baseptr; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - __Pyx_RefNannySetupContext("set_array_base", 0); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":968 - * cdef inline void set_array_base(ndarray arr, object base): - * cdef PyObject* baseptr - * if base is None: # <<<<<<<<<<<<<< - * baseptr = NULL - * else: - */ - __pyx_t_1 = (__pyx_v_base == Py_None); - __pyx_t_2 = (__pyx_t_1 != 0); - if (__pyx_t_2) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":969 - * cdef PyObject* baseptr - * if base is None: - * baseptr = NULL # <<<<<<<<<<<<<< - * else: - * Py_INCREF(base) # important to do this before decref below! - */ - __pyx_v_baseptr = NULL; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":968 - * cdef inline void set_array_base(ndarray arr, object base): - * cdef PyObject* baseptr - * if base is None: # <<<<<<<<<<<<<< - * baseptr = NULL - * else: - */ - goto __pyx_L3; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":971 - * baseptr = NULL - * else: - * Py_INCREF(base) # important to do this before decref below! # <<<<<<<<<<<<<< - * baseptr = base - * Py_XDECREF(arr.base) - */ - /*else*/ { - Py_INCREF(__pyx_v_base); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":972 - * else: - * Py_INCREF(base) # important to do this before decref below! - * baseptr = base # <<<<<<<<<<<<<< - * Py_XDECREF(arr.base) - * arr.base = baseptr - */ - __pyx_v_baseptr = ((PyObject *)__pyx_v_base); - } - __pyx_L3:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":973 - * Py_INCREF(base) # important to do this before decref below! - * baseptr = base - * Py_XDECREF(arr.base) # <<<<<<<<<<<<<< - * arr.base = baseptr - * - */ - Py_XDECREF(__pyx_v_arr->base); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":974 - * baseptr = base - * Py_XDECREF(arr.base) - * arr.base = baseptr # <<<<<<<<<<<<<< - * - * cdef inline object get_array_base(ndarray arr): - */ - __pyx_v_arr->base = __pyx_v_baseptr; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":966 - * - * - * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< - * cdef PyObject* baseptr - * if base is None: - */ - - /* function exit code */ - __Pyx_RefNannyFinishContext(); -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":976 - * arr.base = baseptr - * - * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< - * if arr.base is NULL: - * return None - */ - -static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - __Pyx_RefNannySetupContext("get_array_base", 0); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 - * - * cdef inline object get_array_base(ndarray arr): - * if arr.base is NULL: # <<<<<<<<<<<<<< - * return None - * else: - */ - __pyx_t_1 = ((__pyx_v_arr->base == NULL) != 0); - if (__pyx_t_1) { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":978 - * cdef inline object get_array_base(ndarray arr): - * if arr.base is NULL: - * return None # <<<<<<<<<<<<<< - * else: - * return arr.base - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; - goto __pyx_L0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":977 - * - * cdef inline object get_array_base(ndarray arr): - * if arr.base is NULL: # <<<<<<<<<<<<<< - * return None - * else: - */ - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":980 - * return None - * else: - * return arr.base # <<<<<<<<<<<<<< - * - * - */ - /*else*/ { - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(((PyObject *)__pyx_v_arr->base)); - __pyx_r = ((PyObject *)__pyx_v_arr->base); - goto __pyx_L0; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":976 - * arr.base = baseptr - * - * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< - * if arr.base is NULL: - * return None - */ - - /* function exit code */ - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":985 - * # 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":986 - * # 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:*/ { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":987 - * 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 == -1)) __PYX_ERR(1, 987, __pyx_L3_error) - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":986 - * # 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_L10_try_end; - __pyx_L3_error:; - __Pyx_PyThreadState_assign - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":988 - * 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, 988, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":989 - * _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__7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 989, __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, 989, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":986 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< - * _import_array() - * except Exception: - */ - __Pyx_PyThreadState_assign - __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_L10_try_end:; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":985 - * # 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; -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":991 - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":992 - * - * 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:*/ { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":993 - * 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 == -1)) __PYX_ERR(1, 993, __pyx_L3_error) - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":992 - * - * 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_L10_try_end; - __pyx_L3_error:; - __Pyx_PyThreadState_assign - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":994 - * 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, 994, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":995 - * _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__8, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 995, __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, 995, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":992 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< - * _import_umath() - * except Exception: - */ - __Pyx_PyThreadState_assign - __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_L10_try_end:; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":991 - * 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; -} - -/* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 - * 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); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":998 - * - * 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:*/ { - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":999 - * 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 == -1)) __PYX_ERR(1, 999, __pyx_L3_error) - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":998 - * - * 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_L10_try_end; - __pyx_L3_error:; - __Pyx_PyThreadState_assign - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1000 - * 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, 1000, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1001 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - */ - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1001, __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, 1001, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":998 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< - * _import_umath() - * except Exception: - */ - __Pyx_PyThreadState_assign - __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_L10_try_end:; - } - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 - * 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; -} - -static PyMethodDef __pyx_methods[] = { - {0, 0, 0, 0} -}; - -#if PY_MAJOR_VERSION >= 3 -static struct PyModuleDef __pyx_moduledef = { - #if PY_VERSION_HEX < 0x03020000 - { PyObject_HEAD_INIT(NULL) NULL, 0, NULL }, - #else - PyModuleDef_HEAD_INIT, - #endif - "curvspace", - __pyx_k_Created_on_Wed_May_27_00_43_07, /* m_doc */ - -1, /* m_size */ - __pyx_methods /* m_methods */, - NULL, /* m_reload */ - NULL, /* m_traverse */ - NULL, /* m_clear */ - NULL /* m_free */ -}; -#endif - -static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__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_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, - {&__pyx_n_s_N, __pyx_k_N, sizeof(__pyx_k_N), 0, 0, 1, 1}, - {&__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_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_kp_s_Users_ajaver_Documents_GitHub_t, __pyx_k_Users_ajaver_Documents_GitHub_t, sizeof(__pyx_k_Users_ajaver_Documents_GitHub_t), 0, 0, 1, 0}, - {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_curv_len, __pyx_k_curv_len, sizeof(__pyx_k_curv_len), 0, 0, 1, 1}, - {&__pyx_n_s_curvspace, __pyx_k_curvspace, sizeof(__pyx_k_curvspace), 0, 0, 1, 1}, - {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 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_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_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, - {&__pyx_n_s_output, __pyx_k_output, sizeof(__pyx_k_output), 0, 0, 1, 1}, - {&__pyx_n_s_p_dim, __pyx_k_p_dim, sizeof(__pyx_k_p_dim), 0, 0, 1, 1}, - {&__pyx_n_s_p_size, __pyx_k_p_size, sizeof(__pyx_k_p_size), 0, 0, 1, 1}, - {&__pyx_n_s_points, __pyx_k_points, sizeof(__pyx_k_points), 0, 0, 1, 1}, - {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, - {&__pyx_n_s_tierpsy_analysis_ske_create_segW, __pyx_k_tierpsy_analysis_ske_create_segW, sizeof(__pyx_k_tierpsy_analysis_ske_create_segW), 0, 0, 1, 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_zeros, __pyx_k_zeros, sizeof(__pyx_k_zeros), 0, 0, 1, 1}, - {0, 0, 0, 0, 0, 0, 0} -}; -static int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 218, __pyx_L1_error) - __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(1, 231, __pyx_L1_error) - __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 799, __pyx_L1_error) - __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 989, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -} - -static int __Pyx_InitCachedConstants(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":218 - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): - * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - */ - __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple_)) __PYX_ERR(1, 218, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple_); - __Pyx_GIVEREF(__pyx_tuple_); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":222 - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): - * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< - * - * info.buf = PyArray_DATA(self) - */ - __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(1, 222, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__2); - __Pyx_GIVEREF(__pyx_tuple__2); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":259 - * 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__3 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(1, 259, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__3); - __Pyx_GIVEREF(__pyx_tuple__3); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":799 - * - * 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__4 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(1, 799, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__4); - __Pyx_GIVEREF(__pyx_tuple__4); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":803 - * 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_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(1, 803, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__5); - __Pyx_GIVEREF(__pyx_tuple__5); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":823 - * 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__6 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(1, 823, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__6); - __Pyx_GIVEREF(__pyx_tuple__6); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":989 - * _import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ - __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(1, 989, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__7); - __Pyx_GIVEREF(__pyx_tuple__7); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":995 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ - __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 995, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__8); - __Pyx_GIVEREF(__pyx_tuple__8); - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":1001 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - */ - __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 1001, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__9); - __Pyx_GIVEREF(__pyx_tuple__9); - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/curvspace.pyx":28 - * @cython.boundscheck(False) - * @cython.wraparound(False) - * def curvspace(np.ndarray[double, ndim=2, mode="c"] points not None, int N): # <<<<<<<<<<<<<< - * """ - * multiply (arr, value) - */ - __pyx_tuple__10 = PyTuple_Pack(6, __pyx_n_s_points, __pyx_n_s_N, __pyx_n_s_p_size, __pyx_n_s_p_dim, __pyx_n_s_curv_len, __pyx_n_s_output); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 28, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__10); - __Pyx_GIVEREF(__pyx_tuple__10); - __pyx_codeobj__11 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__10, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_ajaver_Documents_GitHub_t, __pyx_n_s_curvspace, 28, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__11)) __PYX_ERR(0, 28, __pyx_L1_error) - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __Pyx_RefNannyFinishContext(); - return -1; -} - -static int __Pyx_InitGlobals(void) { - if (__Pyx_InitStrings(__pyx_string_tab) < 0) __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) - return 0; - __pyx_L1_error:; - return -1; -} - -#if PY_MAJOR_VERSION < 3 -PyMODINIT_FUNC initcurvspace(void); /*proto*/ -PyMODINIT_FUNC initcurvspace(void) -#else -PyMODINIT_FUNC PyInit_curvspace(void); /*proto*/ -PyMODINIT_FUNC PyInit_curvspace(void) -#endif -{ - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannyDeclarations - #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("PyMODINIT_FUNC PyInit_curvspace(void)", 0); - if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __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_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 PY_MAJOR_VERSION < 3 - __pyx_m = Py_InitModule4("curvspace", __pyx_methods, __pyx_k_Created_on_Wed_May_27_00_43_07, 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) - __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) - #if CYTHON_COMPILING_IN_PYPY - Py_INCREF(__pyx_b); - #endif - 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_tierpsy__analysis__ske_create__segWormPython__cython_files__curvspace) { - if (PyObject_SetAttrString(__pyx_m, "__name__", __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, "tierpsy.analysis.ske_create.segWormPython.cython_files.curvspace")) { - if (unlikely(PyDict_SetItemString(modules, "tierpsy.analysis.ske_create.segWormPython.cython_files.curvspace", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error) - } - } - #endif - /*--- Builtin init code ---*/ - if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Constants init code ---*/ - if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Global init code ---*/ - /*--- Variable export code ---*/ - /*--- Function export code ---*/ - /*--- Type init code ---*/ - /*--- Type import code ---*/ - __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "type", - #if CYTHON_COMPILING_IN_PYPY - sizeof(PyTypeObject), - #else - sizeof(PyHeapTypeObject), - #endif - 0); if (unlikely(!__pyx_ptype_7cpython_4type_type)) __PYX_ERR(2, 9, __pyx_L1_error) - __pyx_ptype_5numpy_dtype = __Pyx_ImportType("numpy", "dtype", sizeof(PyArray_Descr), 0); if (unlikely(!__pyx_ptype_5numpy_dtype)) __PYX_ERR(1, 155, __pyx_L1_error) - __pyx_ptype_5numpy_flatiter = __Pyx_ImportType("numpy", "flatiter", sizeof(PyArrayIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_flatiter)) __PYX_ERR(1, 168, __pyx_L1_error) - __pyx_ptype_5numpy_broadcast = __Pyx_ImportType("numpy", "broadcast", sizeof(PyArrayMultiIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_broadcast)) __PYX_ERR(1, 172, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType("numpy", "ndarray", sizeof(PyArrayObject), 0); if (unlikely(!__pyx_ptype_5numpy_ndarray)) __PYX_ERR(1, 181, __pyx_L1_error) - __pyx_ptype_5numpy_ufunc = __Pyx_ImportType("numpy", "ufunc", sizeof(PyUFuncObject), 0); if (unlikely(!__pyx_ptype_5numpy_ufunc)) __PYX_ERR(1, 861, __pyx_L1_error) - /*--- Variable import code ---*/ - /*--- Function import code ---*/ - /*--- Execution code ---*/ - #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) - if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/curvspace.pyx":20 - * - * # import both numpy and the Cython declarations for numpy - * import numpy as np # <<<<<<<<<<<<<< - * cimport numpy as np - * - */ - __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 20, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/curvspace.pyx":28 - * @cython.boundscheck(False) - * @cython.wraparound(False) - * def curvspace(np.ndarray[double, ndim=2, mode="c"] points not None, int N): # <<<<<<<<<<<<<< - * """ - * multiply (arr, value) - */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7tierpsy_8analysis_10ske_create_13segWormPython_12cython_files_9curvspace_1curvspace, NULL, __pyx_n_s_tierpsy_analysis_ske_create_segW); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_curvspace, __pyx_t_1) < 0) __PYX_ERR(0, 28, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tierpsy/analysis/ske_create/segWormPython/cython_files/curvspace.pyx":1 - * # -*- coding: utf-8 -*- # <<<<<<<<<<<<<< - * """ - * Created on Wed May 27 00:43:07 2015 - */ - __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "../../../miniconda/lib/python3.5/site-packages/Cython/Includes/numpy/__init__.pxd":997 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< - * try: - * _import_umath() - */ - - /*--- Wrapped vars code ---*/ - - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - if (__pyx_m) { - if (__pyx_d) { - __Pyx_AddTraceback("init tierpsy.analysis.ske_create.segWormPython.cython_files.curvspace", __pyx_clineno, __pyx_lineno, __pyx_filename); - } - Py_DECREF(__pyx_m); __pyx_m = 0; - } else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_ImportError, "init tierpsy.analysis.ske_create.segWormPython.cython_files.curvspace"); - } - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - #if PY_MAJOR_VERSION < 3 - return; - #else - return __pyx_m; - #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((char *)modname); - if (!m) goto end; - p = PyObject_GetAttrString(m, (char *)"RefNannyAPI"); - if (!p) goto end; - r = PyLong_AsVoidPtr(p); -end: - Py_XDECREF(p); - Py_XDECREF(m); - return (__Pyx_RefNannyAPIStruct *)r; -} -#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; -} - -/* ArgTypeTest */ -static void __Pyx_RaiseArgumentTypeInvalid(const char* name, PyObject *obj, PyTypeObject *type) { - PyErr_Format(PyExc_TypeError, - "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)", - name, type->tp_name, Py_TYPE(obj)->tp_name); -} -static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, - const char *name, int exact) -{ - if (unlikely(!type)) { - PyErr_SetString(PyExc_SystemError, "Missing type object"); - return 0; - } - if (none_allowed && obj == Py_None) return 1; - else if (exact) { - if (likely(Py_TYPE(obj) == type)) return 1; - #if PY_MAJOR_VERSION == 2 - else if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1; - #endif - } - else { - if (likely(PyObject_TypeCheck(obj, type))) return 1; - } - __Pyx_RaiseArgumentTypeInvalid(name, obj, type); - return 0; -} - -/* BufferFormatCheck */ -static CYTHON_INLINE int __Pyx_IsLittleEndian(void) { - unsigned int n = 1; - return *(unsigned char*)(&n) != 0; -} -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 CYTHON_INLINE 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_IsLittleEndian()) { - PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler"); - return NULL; - } - ctx->new_packmode = '='; - ++ts; - break; - case '>': - case '!': - if (__Pyx_IsLittleEndian()) { - 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; - } - 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; - } - 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; - } - } - } -} -static CYTHON_INLINE void __Pyx_ZeroBuffer(Py_buffer* buf) { - buf->buf = NULL; - buf->obj = NULL; - buf->strides = __Pyx_zeros; - buf->shape = __Pyx_zeros; - buf->suboffsets = __Pyx_minusones; -} -static CYTHON_INLINE int __Pyx_GetBufferAndValidate( - Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, - int nd, int cast, __Pyx_BufFmt_StackElem* stack) -{ - if (obj == Py_None || obj == NULL) { - __Pyx_ZeroBuffer(buf); - return 0; - } - buf->buf = NULL; - if (__Pyx_GetBuffer(obj, buf, flags) == -1) goto fail; - if (buf->ndim != nd) { - PyErr_Format(PyExc_ValueError, - "Buffer has wrong number of dimensions (expected %d, got %d)", - nd, buf->ndim); - goto fail; - } - if (!cast) { - __Pyx_BufFmt_Context ctx; - __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 "d byte%s) does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "d byte%s)", - buf->itemsize, (buf->itemsize > 1) ? "s" : "", - dtype->name, (Py_ssize_t)dtype->size, (dtype->size > 1) ? "s" : ""); - goto fail; - } - if (buf->suboffsets == NULL) buf->suboffsets = __Pyx_minusones; - return 0; -fail:; - __Pyx_ZeroBuffer(buf); - return -1; -} -static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) { - if (info->buf == NULL) return; - if (info->suboffsets == __Pyx_minusones) info->suboffsets = NULL; - __Pyx_ReleaseBuffer(info); -} - -/* 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; -} - -/* GetModuleGlobalName */ - static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name) { - PyObject *result; -#if !CYTHON_AVOID_BORROWED_REFS - result = PyDict_GetItem(__pyx_d, name); - if (likely(result)) { - Py_INCREF(result); - } else { -#else - result = PyObject_GetItem(__pyx_d, name); - if (!result) { - PyErr_Clear(); -#endif - result = __Pyx_GetBuiltinName(name); - } - return result; -} - -/* 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); - assert(PyCFunction_Check(func)); - assert(METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST))); - 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()); - return (*((__Pyx_PyCFunctionFast)meth)) (self, args, nargs, NULL); -} -#endif // CYTHON_FAST_PYCCALL - -/* PyFunctionFastCall */ - #if CYTHON_FAST_PYCALL -#include "frameobject.h" -static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, - PyObject *globals) { - PyFrameObject *f; - PyThreadState *tstate = PyThreadState_GET(); - 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 = f->f_localsplus; - 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, int 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, nargs, - k, (int)nk, - d, (int)nd, kwdefs, closure); -#else - result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, - args, nargs, - k, (int)nk, - d, (int)nd, closure); -#endif - Py_XDECREF(kwtuple); -done: - Py_LeaveRecursiveCall(); - return result; -} -#endif // CPython < 3.6 -#endif // CYTHON_FAST_PYCALL - -/* 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 -#ifdef __Pyx_CyFunction_USED - if (likely(PyCFunction_Check(func) || PyObject_TypeCheck(func, __pyx_CyFunctionType))) { -#else - if (likely(PyCFunction_Check(func))) { -#endif - 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 - -/* 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(PyObject_TypeCheck(obj, type))) - return 1; - PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", - Py_TYPE(obj)->tp_name, type->tp_name); - return 0; -} - -/* 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 PY_VERSION_HEX >= 0x03030000 - if (cause) { -#else - if (cause && cause != Py_None) { -#endif - 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 = PyThreadState_GET(); - 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 - -/* 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"); -} - -/* RaiseNoneIterError */ - static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -} - -/* SaveResetException */ - #if CYTHON_FAST_THREAD_STATE -static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { - *type = tstate->exc_type; - *value = tstate->exc_value; - *tb = tstate->exc_traceback; - 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; - 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; - Py_XDECREF(tmp_type); - Py_XDECREF(tmp_value); - Py_XDECREF(tmp_tb); -} -#endif - -/* PyErrExceptionMatches */ - #if CYTHON_FAST_THREAD_STATE -static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) { - PyObject *exc_type = tstate->curexc_type; - if (exc_type == err) return 1; - if (unlikely(!exc_type)) return 0; - return 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 - 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; - 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; -} - -/* 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_VERSION_HEX < 0x03030000 - 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, '.')) { - #if PY_VERSION_HEX < 0x03030000 - PyObject *py_level = PyInt_FromLong(1); - if (!py_level) - goto bad; - module = PyObject_CallFunctionObjArgs(py_import, - name, global_dict, empty_dict, list, py_level, NULL); - Py_DECREF(py_level); - #else - module = PyImport_ImportModuleLevelObject( - name, global_dict, empty_dict, list, 1); - #endif - if (!module) { - if (!PyErr_ExceptionMatches(PyExc_ImportError)) - goto bad; - PyErr_Clear(); - } - } - level = 0; - } - #endif - if (!module) { - #if PY_VERSION_HEX < 0x03030000 - PyObject *py_level = PyInt_FromLong(level); - if (!py_level) - goto bad; - module = PyObject_CallFunctionObjArgs(py_import, - name, global_dict, empty_dict, list, py_level, NULL); - Py_DECREF(py_level); - #else - module = PyImport_ImportModuleLevelObject( - name, global_dict, empty_dict, list, level); - #endif - } - } -bad: - #if PY_VERSION_HEX < 0x03030000 - Py_XDECREF(py_import); - #endif - Py_XDECREF(empty_list); - Py_XDECREF(empty_dict); - return module; -} - -/* 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; - 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( - PyThreadState_GET(), /*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 (PyObject_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pw_5numpy_7ndarray_1__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 (PyObject_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) { __pyx_pw_5numpy_7ndarray_3__releasebuffer__(obj, view); return; } - Py_DECREF(obj); - view->obj = NULL; -} -#endif - - - /* 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) -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); - } -} - -/* 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 = 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 = 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, -1); - } - } 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 = 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 = 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, -1); - } - } 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_enum__NPY_TYPES(enum NPY_TYPES value) { - const enum NPY_TYPES neg_one = (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); - } -} - -/* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - const int neg_one = (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; -} - -/* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - const long neg_one = (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); - } -} - -/* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - const long neg_one = (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; -} - -/* 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; -} - -/* ModuleImport */ - #ifndef __PYX_HAVE_RT_ImportModule -#define __PYX_HAVE_RT_ImportModule -static PyObject *__Pyx_ImportModule(const char *name) { - PyObject *py_name = 0; - PyObject *py_module = 0; - py_name = __Pyx_PyIdentifier_FromString(name); - if (!py_name) - goto bad; - py_module = PyImport_Import(py_name); - Py_DECREF(py_name); - return py_module; -bad: - Py_XDECREF(py_name); - return 0; -} -#endif - -/* TypeImport */ - #ifndef __PYX_HAVE_RT_ImportType -#define __PYX_HAVE_RT_ImportType -static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, - size_t size, int strict) -{ - PyObject *py_module = 0; - PyObject *result = 0; - PyObject *py_name = 0; - char warning[200]; - Py_ssize_t basicsize; -#ifdef Py_LIMITED_API - PyObject *py_basicsize; -#endif - py_module = __Pyx_ImportModule(module_name); - if (!py_module) - goto bad; - py_name = __Pyx_PyIdentifier_FromString(class_name); - if (!py_name) - goto bad; - result = PyObject_GetAttr(py_module, py_name); - Py_DECREF(py_name); - py_name = 0; - Py_DECREF(py_module); - py_module = 0; - 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 (!strict && (size_t)basicsize > size) { - PyOS_snprintf(warning, sizeof(warning), - "%s.%s size changed, may indicate binary incompatibility. Expected %zd, got %zd", - module_name, class_name, basicsize, size); - if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad; - } - else if ((size_t)basicsize != size) { - PyErr_Format(PyExc_ValueError, - "%.200s.%.200s has the wrong size, try recompiling. Expected %zd, got %zd", - module_name, class_name, basicsize, size); - goto bad; - } - return (PyTypeObject *)result; -bad: - Py_XDECREF(py_module); - Py_XDECREF(result); - return NULL; -} -#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; - ++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 char* __Pyx_PyObject_AsString(PyObject* o) { - Py_ssize_t ignore; - return __Pyx_PyObject_AsStringAndSize(o, &ignore); -} -static CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { -#if CYTHON_COMPILING_IN_CPYTHON && (__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)) { -#if PY_VERSION_HEX < 0x03030000 - 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 - if (__Pyx_PyUnicode_READY(o) == -1) return NULL; -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII - if (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 - } 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 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 (PyInt_Check(x) || PyLong_Check(x)) -#else - if (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 = PyNumber_Int(x); - } - else if (m && m->nb_long) { - name = "long"; - res = PyNumber_Long(x); - } - #else - if (m && m->nb_int) { - name = "int"; - res = PyNumber_Long(x); - } - #endif -#else - res = PyNumber_Int(x); -#endif - if (res) { -#if PY_MAJOR_VERSION < 3 - if (!PyInt_Check(res) && !PyLong_Check(res)) { -#else - if (!PyLong_Check(res)) { -#endif - PyErr_Format(PyExc_TypeError, - "__%.4s__ returned non-%.4s (type %.200s)", - name, name, Py_TYPE(res)->tp_name); - Py_DECREF(res); - return NULL; - } - } - 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(x); - } -#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_PyInt_FromSize_t(size_t ival) { - return PyInt_FromSize_t(ival); -} - - -#endif /* Py_PYTHON_H */ From da34b24e338e7c688752dff9794a080156237d95 Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Fri, 8 Jun 2018 23:08:53 +0100 Subject: [PATCH 24/37] bugs --- tierpsy/analysis/wcon_export/exportWCON.py | 10 +++++----- tierpsy/gui/MWTrackerViewer.py | 3 ++- tierpsy/gui/TrackerViewerAux.py | 12 ++++++++++-- tierpsy/processing/ProcessWorker.py | 4 ++-- 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/tierpsy/analysis/wcon_export/exportWCON.py b/tierpsy/analysis/wcon_export/exportWCON.py index 491f7c2c..b000a2e4 100644 --- a/tierpsy/analysis/wcon_export/exportWCON.py +++ b/tierpsy/analysis/wcon_export/exportWCON.py @@ -67,14 +67,14 @@ def _order_metadata(metadata_dict): if 'commit_hash' in provenance_tracking: #old name - pkgs_version = provenance_tracking['commit_hash'] + pkgs_versions = provenance_tracking['commit_hash'] else: - pkgs_version = provenance_tracking['pkgs_version'] + pkgs_versions = provenance_tracking['pkgs_versions'] - if 'tierpsy' in pkgs_version: - tierpsy_version = pkgs_version['tierpsy'] + if 'tierpsy' in pkgs_versions: + tierpsy_version = pkgs_versions['tierpsy'] else: - tierpsy_version = pkgs_version['MWTracker'] + tierpsy_version = pkgs_versions['MWTracker'] MWTracker_ver = {"name":"tierpsy (https://github.com/ver228/tierpsy-tracker)", "version": tierpsy_version, diff --git a/tierpsy/gui/MWTrackerViewer.py b/tierpsy/gui/MWTrackerViewer.py index fdb648b9..17eaae69 100755 --- a/tierpsy/gui/MWTrackerViewer.py +++ b/tierpsy/gui/MWTrackerViewer.py @@ -943,7 +943,8 @@ def change_feature(self): #mask_file = '/Users/avelinojaver/OneDrive - Imperial College London/tierpsy_examples/mutliworm_example/BRC20067_worms10_food1-10_Set2_Pos5_Ch2_02062017_121709.hdf5' #mask_file = '/Volumes/rescomp1/data/WormData/screenings/Pratheeban/First_Set/MaskedVideos/Old_Adult/16_07_22/W3_ELA_1.0_Ch1_22072016_131149.hdf5' - mask_file = '/Users/avelinojaver/Documents/GitHub/tierpsy-tracker/tests/data/AVI_VIDEOS/MaskedVideos/AVI_VIDEOS_1.hdf5' + #mask_file = '/Users/avelinojaver/Documents/GitHub/tierpsy-tracker/tests/data/AVI_VIDEOS/MaskedVideos/AVI_VIDEOS_1.hdf5' + mask_file = '/Users/avelinojaver/Documents/GitHub/tierpsy-tracker/tests/data/WT2/MaskedVideos/WT2.hdf5' main.updateVideoFile(mask_file) main.show() diff --git a/tierpsy/gui/TrackerViewerAux.py b/tierpsy/gui/TrackerViewerAux.py index 4ab3f53e..8a235cd8 100755 --- a/tierpsy/gui/TrackerViewerAux.py +++ b/tierpsy/gui/TrackerViewerAux.py @@ -28,7 +28,7 @@ ) #%% -def _estimate_trajectories_data(ow_feat_file, timestamp, microns_per_pixel): +def _estimate_trajectories_data(ow_feat_file, timestamp, microns_per_pixel, stage_position_pix): ''' I want to estimate the trajectorires_data table from the features_timeseries in the old features so I can used them with the viewer. @@ -62,6 +62,14 @@ def _estimate_trajectories_data(ow_feat_file, timestamp, microns_per_pixel): new_data = new_data.drop_duplicates('frame_number') + if stage_position_pix is not None: + #subtract stage motion if necessary + ss = stage_position_pix[new_data['frame_number']] + new_data['coord_x'] -= ss[:, 0] + new_data['coord_y'] -= ss[:, 1] + + + df.append(new_data) trajectories_data = pd.concat(df) @@ -164,7 +172,7 @@ def updateSkelFile(self, selected_file, dflt_skel_size = 5): tot = self.fid.get_node('/mask').shape[0] timestamp = np.arange(tot) - self.trajectories_data = _estimate_trajectories_data(self.skeletons_file, timestamp, self.microns_per_pixel) + self.trajectories_data = _estimate_trajectories_data(self.skeletons_file, timestamp, self.microns_per_pixel, self.stage_position_pix) self.is_estimated_trajectories_data = True #group data diff --git a/tierpsy/processing/ProcessWorker.py b/tierpsy/processing/ProcessWorker.py index c59e8f84..95feec61 100644 --- a/tierpsy/processing/ProcessWorker.py +++ b/tierpsy/processing/ProcessWorker.py @@ -43,7 +43,7 @@ def execAllPoints(self): print_flush('%s No checkpoints given. It seems that there is a previous analysis finished. Exiting.' % base_name) return - pkgs_version = getPackagesVersion() + pkgs_versions = getPackagesVersion() print_flush('%s Starting checkpoint: %s' % (base_name, self.analysis_checkpoints[0])) initial_time = time.time() @@ -62,7 +62,7 @@ def execAllPoints(self): execThisPoint(current_point, **self.ap.getArgs(current_point), - pkgs_versions = pkgs_version, + pkgs_versions = pkgs_versions, cmd_original = self.cmd_original) time_str = str(datetime.timedelta(seconds = round(time.time() -initial_time))) From 74dc002fbec3d47c508a6ad46aeadcae8faf49ef Mon Sep 17 00:00:00 2001 From: ver228 Date: Mon, 11 Jun 2018 12:36:56 +0100 Subject: [PATCH 25/37] new front image --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 26b93a06..c9ccf862 100644 --- a/README.md +++ b/README.md @@ -4,10 +4,9 @@ Tierpsy Tracker is a multi-animal tracker developed in the [MRC-LMS](http://lms. *Double-click executables are available for Windows (7 or latest) and OSX (Yosemite or latest) can be found in the [releases page](https://github.com/ver228/tierpsy-tracker/releases).* - - - ## [Installation Instructions](docs/INSTALLATION.md) ## [How to Use](docs/HOWTO.md) ## [Algorithm Explanation](docs/EXPLANATION.md) ## [Output Files](docs/OUTPUTS.md) + + From 45f4dda87c32758adcb294b9b081085e0c26211f Mon Sep 17 00:00:00 2001 From: ver228 Date: Mon, 11 Jun 2018 13:24:22 +0100 Subject: [PATCH 26/37] Include new apps --- docs/HOWTO.md | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/docs/HOWTO.md b/docs/HOWTO.md index fbb043d6..eb527afc 100755 --- a/docs/HOWTO.md +++ b/docs/HOWTO.md @@ -1,12 +1,12 @@ ## Example Data -Example files can be found [here](https://imperiallondon-my.sharepoint.com/:u:/g/personal/ajaver_ic_ac_uk/EazhY5HZ4zRIhrCYIm_p4VcBq50QYBPzeaBVF2DRgRe2IQ?e=fdrkj7). The zip file contains a multiworm video recorded using a high resolution fixed camera and a single worm video recorded using the [WT2.0](https://www.mrc-lmb.cam.ac.uk/wormtracker/). +Example files can be found [here](https://imperiallondon-my.sharepoint.com/:u:/g/personal/ajaver_ic_ac_uk/EdoZILCgkw5HnTkMtbD_OEsBBSbXD_WnBnWkwdf2bojusg?e=3yKbXR). The zip file contains a multiworm video recorded using a high resolution fixed camera and a single worm video recorded using the [WT2.0](https://www.mrc-lmb.cam.ac.uk/wormtracker/). You can analyze the videos using the [Batch Processing Multiple Files](#batch-processing-multiple-files) App. The videos require different analysis parameters since they belong to different setups, therefore they cannot be processed together. -For the multiworm video the `Parameters File` must be set to `MULTI_RIG.json` and the `File Pattern to Include` as `*.mov` as shown below: +For the multiworm video the `Parameters File` must be set to `MULTIWORM_OPENWORM.json` and the `File Pattern to Include` as `*.mov` as shown below: -screen shot 2018-04-25 at 09 04 05 +screen shot 2018-06-11 at 12 47 16 For the multiworm video the `Parameters File` must be set to `WT2_clockwise.json` and the `File Pattern to Include` as `*.avi` as shown below: @@ -171,12 +171,27 @@ You can manually correct the trajectories as shown below. Once you have finished `Right key` : Decrease the frame by step size. -## Worm Tracker 2.0 Viewer -This is simplified version of the [Tierpsy Tracker Viewer](#tierpsy-tracker-viewer) created specifically to view files created using [Worm Tracker 2.0](http://www.mrc-lmb.cam.ac.uk/wormtracker/) (the `WT2` case). [Above](#worm-tracker-20-option) is described how to analyse this type of files. +### Visualizing Analysis Results +The extracted features are store in the files that end with [featuresN.hdf5](https://github.com/ver228/tierpsy-tracker/blob/development/docs/OUTPUTS.md#basename_featuresNhdf5) if the tierpsy feature route was selected or in [features.hdf5](https://github.com/ver228/tierpsy-tracker/blob/development/docs/OUTPUTS.md#basename_featureshdf5) if the openworm route was selected. You can visualize the features in different ways as shown below: -![SWTrackerViewer](https://cloud.githubusercontent.com/assets/8364368/26412826/e608bfea-40a1-11e7-9d3e-d0b8bf482db2.gif) +![features](https://user-images.githubusercontent.com/8364368/41231110-e89f2e14-6d79-11e8-96d7-523f13844555.gif) +From the plotting window can either save the plots or export the data of individual features/trajectories into csv files. If you would like to compare the data of multiple experiments we strongly recommed you to use the [Features Summary](#features-summary) app. If you would like to work directly with the timeseries data we recommend you to use read the data using a scripting lenguage like python using the packages [pandas](http://pandas.pydata.org/) and [pytables](http://www.pytables.org/), or MATLAB following the examples in the [tierpsy_tools](https://github.com/aexbrown/tierpsy_tools) repository. -## Plotting the Analysis Results -The analysis will produce a set of files described [here](https://github.com/ver228/tierpsy-tracker/blob/development/docs/OUTPUTS.md). The extracted features are store in the files that end with [features.hdf5](https://github.com/ver228/tierpsy-tracker/blob/development/docs/OUTPUTS.md#basename_featureshdf5). You can access to them using [pandas](http://pandas.pydata.org/) and [pytables](http://www.pytables.org/). There are examples on how to do it in MATLAB in the [tierpsy_tools](https://github.com/aexbrown/tierpsy_tools) repository. +## Features Summary +![FeatSummary](https://user-images.githubusercontent.com/8364368/41034550-d3665230-6981-11e8-97d9-63c74ff24661.png) +* `Root Directory`: Directory containing the previously calculate features files. +* `Feature Type` : Select between the features calculated using the [OpenWorm Analysis Toolbox](https://github.com/openworm/open-worm-analysis-toolbox) or [Tierpsy Features](https://github.com/ver228/tierpsy-features). +* `Use manually edited features?` Tick if you want to collect data from manually edited trajectories. Only trajectories labelled as either worm or worm cluster are going to be used. +* `Summary Type` : Select what data is going to be collected from a video. Either a summary per video (`plate`), a summary for each trajectory available (`trajectory`) or multiple random subsamplings per video (`plate_augmented`). +The files will be located by doing a recursive search for matching the extension according to the table below. + +| Feature Type | Is Manually Edited? | File Extension | +| -------- | -------- | ------ | +| tierpsy | Ticked | featuresN.hdf5 | +| tierpsy | Unticked | featuresN.hdf5 | +| openworm | Ticked | feat_manual.hdf5 | +| openworm | Unticked | features.hdf5 | + +The results are saved into two separated .csv file located in the root directory. The first file, `filenames_FEATURETYPE_SUMMARY_DATE.csv`, contains the names of all the files found in root the directory. The `is_good` column is set to `True` if the file is valid and used in the summary. The second file, `features_FEATURETYPE_SUMMARY_DATE.csv`, contains the corresponding features summarized as described in the [output files](https://github.com/ver228/tierpsy-tracker/blob/master/docs/OUTPUTS.md#features_summar) section. The two result files can be joined using the `file_id` column. From ca76ea423f4b3eae3e9518ca11d90388d773f2b6 Mon Sep 17 00:00:00 2001 From: ver228 Date: Mon, 11 Jun 2018 16:38:55 +0100 Subject: [PATCH 27/37] Update OUTPUTS.md --- docs/OUTPUTS.md | 109 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 107 insertions(+), 2 deletions(-) diff --git a/docs/OUTPUTS.md b/docs/OUTPUTS.md index 4b3395b8..051d38d7 100644 --- a/docs/OUTPUTS.md +++ b/docs/OUTPUTS.md @@ -70,7 +70,7 @@ Table containing the data of the trajectories used in the analysis and displayed * `coord_x`, `coord_y`, `box_length`, `box_width`, `box_orientation`. features calculated using [minAreaRect](http://docs.opencv.org/3.0-beta/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html#minarearect). * `area`: [area](http://docs.opencv.org/3.0-beta/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html#contourarea). * `perimeter`: [perimeter](http://docs.opencv.org/3.0-beta/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html#arclength). - * `quirkiness`: defined as `sqrt(1 - box_width^2 / box_width^2)`. + * `quirkiness`: defined as `sqrt(1 - box_width^2 / box_length^2)`. * `compactness`: defined as `4 * pi * area / (perimeter^2)`. * `solidity`: `area / convex hull area` where the convex hull is calculated as [here](http://docs.opencv.org/3.0-beta/doc/tutorials/imgproc/shapedescriptors/hull/hull.html#). * `intensity_mean`, `intensity_std`: mean and standard deviation inside the thresholded region. @@ -78,20 +78,29 @@ Table containing the data of the trajectories used in the analysis and displayed #### /skeleton /contour\_side1 /contour_side2 +`Shape (tot_valid_skel, n_segments, x-y coordinate)` + Normalized coordinates (same number of points) for the skeletons and the contour in each side of the worm. The head should correspond to the first index and the tail to the last. #### /contour_width +`Shape (tot_valid_skel, n_segments)` + Contour width along the skeleton. #### /width_midbody +`Shape (tot_valid_skel)` + Contour width of the midbody. Used to calculate the intensity maps in [INT_PROFILE](EXPLANATION.md/#int_profile). #### /contour\_side1\_length /contour\_side2\_length /skeleton_length +`Shape (tot_valid_skel)` + Contours and skeleton length in pixels before normalization and smoothing. This value is likely to be larger than the length caculated in [FEAT_CREATE](EXPLANATION.md/#feat_create) due to the noiser contours and probably should be deprecated. #### /contour_area +`Shape (tot_valid_skel)` Area in pixels of the binary image used to calculate the skeletons. Probably should be deprecated. @@ -101,6 +110,11 @@ Internal. Table with the skeleton switched in [INT_SKE_ORIENT](EXPLANATION.md/#i #### /timestamp/raw /timestamp/time Same as in [basename.hdf5](#basenamehdf5). +#### /food_cnt_coord +`Shape (tot_points, x-y coordinate)` +Optional see ([FOOD_CNT](EXPLANATION.md/#FOOD_CNT)). + + ## basename_intensities.hdf5 #### /trajectories\_data\_valid @@ -117,7 +131,7 @@ Intensity maps of the straigten worms described in [INT_PROFILE](EXPLANATION.md/ Averaged intensity along the skeleton. Calculated in [INT_PROFILE](EXPLANATION.md/#int_profile) and used by [INT\_SKE\_ORIENT](EXPLANATION.md/#int_ske_orient). The data is organized as in [/straighten\_worm\_intensity](#straighten_worm_intensity). -## basename_features.hdf5 +## basename_features.hdf5 ([OpenWorm Analysis Toolbox](https://github.com/openworm/open-worm-analysis-toolbox)) This file contains the results of [FEAT_CREATE](EXPLANATION.md#feat_create). For a more detailed information of the features see the supplementary information of [Yemini et al](http://www.nature.com/nmeth/journal/v10/n9/full/nmeth.2560.html). #### /coordinates/* @@ -210,3 +224,94 @@ The reduction can be done by any of the following operations on a given subdivis Finally, there are some tables that have the subfix `_split`. For this tables long trajectories are splitted in shorter ones of at most `split_traj_time` seconds before calculating the features. This is done as an attempt to balance uneven track sizes. Otherwise a trajectory that was followed for the whole duration of the video will be counted as a single feature vector, while a trajectory that was lost and found several times will be counted as many feature vectors. This is because each time a worm is lost it would be assigned a new id when it is found again. +## basename_featuresN.hdf5 ([Tierpsy Features](https://github.com/ver228/tierpsy-features)) + +#### /trajectories_data (basename_featuresN) +Same as [`/trajectories_data`](#trajectories_data) but using the [video timestamp](timestamprawtimestamptime) to drop duplicated or interpolate missing frames. The columns `plate_worm_id`, `is_good_skel`, `has_skeleton`, `int_map_id` are removed and the following columns are added: + * `was_skeletonized` : flag to indiciate if this skeleton was originally skeletonized or it was obtained by interpolation. + * `old_trajectory_data_index` : helper columns that indicates the corresponding row in the `\trajectories_data` on the `basename_skeletons.hdf5`. + +#### /blob_features (basename_featuresN) +Same as [`/blob_features`](#blob_features) in `basename_skeletons.hdf5`. + +#### /food_cnt_coord (basename_featuresN) +Same as [`/food_cnt_coord`](#food_cnt_coord) in `basename_skeletons.hdf5`. + +#### /coordinates/* +Contour and skeleton coordinates after smoothing. This table is linked to [`/trajectories_data`](#features_timeseries) by the column `skeleton_id`. An `skeleton_id` value of -1 means that that that specific time point was not skeletonized. + +#### /timeseries_data/* + * `worm_index` : trajectory index. Same as `worm_index_joined` in [/trajectories_data](#trajectories_data). + * `timestamp` : video timestamp indexes. Should be continous. The real space between indexes should be `1/frames per second`. + + *Time Series Features:* + * `speed_{body_part}` : speed respect to the body part centroid. It is signed accordingly to the segment change of direction. Available `body_parts`= `head_tip`, `head_base`, `neck`, `midbody`, `hips`, `tail_base`, `tail_tip`. + * `speed` : same as `speed_{body_part}` but using the worm `body`. + * `angular_velocity_{body_part}` : angular speed of a specific body segments. Available` body_parts`= `head_tip`, `head_base`, `neck`, `midbody`, `hips`, `tail_base`, `tail_tip`. + * `angular_velocity` : same as `angular_velocity_{body_part}` but using the worm `body`. + * `relative_to_body_speed_midbody` : + * `relative_to_{body_part1}_radial_{body_part2}` : + * `relative_to_{body_part1}_angular_{body_part2}` : + +| body_part1 | body_part2 | +| ---------- | ---------- | +| body | head_tip | +| body | neck | +| body | hips | +| body | tail_tip | +| neck | head_tip | +| head_base | head_tip | +| hips | tail_tip | +| tail_base | tail_tip | + + * `length` : `(microns)` skeleton length calculated using `/coordinates/skeleton`. + * `area` : `(microns^2)` contour area calculated using the [shoelace formula](https://en.wikipedia.org/wiki/Shoelace_formula). + * `width_{body_part}` : `(microns)` contour width for each worm body region. Available body_parts= `head_base`, `midbody`, `tail_base`. + * `major_axis`, `minor_axis` : `(microns)` features calculated using [minAreaRect](http://docs.opencv.org/3.0-beta/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html#minarearect). `major_axis`=`box_length`, `minor_axis`=`box_width`. + * `quirkiness` : `sqrt(1 - minor_axis^2 / major_axis^2)`. + * `eigen_projection_[1-7]` : eigenworm coefficients calculated using the [Stephens et al., 2008](http://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1000028) method. + * `curvature_{body_part}` : [curvature](https://en.wikipedia.org/wiki/Curvature) of a specific point in the body. Available `body_parts`= `head`, `neck`, `midbody`, `hips`, `tail`. + * `curvature_mean_{body_part}` : mean [curvature](https://en.wikipedia.org/wiki/Curvature) of a specific body range. Available `body_parts`= `head`, `neck`, `midbody`, `hips`, `tail`. + * `curvature_std_{body_part}` : standard deviation [curvature](https://en.wikipedia.org/wiki/Curvature) of a specific body range. Available `body_parts`= `head`, `neck`, `midbody`, `hips`, `tail`. + * `orientation_food_edge` : orientation of the head to tail vector respect to the closest point in the [food contour](#food_cnt_coord). It is negative if the worm head is pointing outside the food and positive if it is pointing towards the food. + * `dist_from_food_edge` : distance of the worm centroid respect to closest point in the [food contour](#food_cnt_coord). It is negative if the worm is outside the food, an positive if it is inside. + * `path_curvature_{body_part}` : curvature along the centroid path of the respective `body part`. Available `body_parts`= `body`, `head`, `midbody`, `tail`. + + + *Time derivatives:* + * `d_*` : Time derivative of the timeseries features. + + *Event flags vectors:* + * `motion_mode` : `(no units)` vector indicating if the worm is `moving forward (1)`, `backwards (-1)` or it is `paused (0)`. + * `food_region` : `(no units)` vector indicating if the worm position related to the food patch `inside (1)`, `edge (0)` or `outside (-1)`. + * `turn` : `(no units)` vector indicating if the worm is turning (`inter (1)`) or not (`intra (1)`). + + *Auxiliar columns:* + + * `head_tail_distance` : `(microns)` Euclidian Distance from the first to the last skeleton segment. + * `coord_{x/y}_{body_part}` : `(microns)` Centroid coordinates from a specific body_part. Available `body_parts`= `body`, `head`, `midbody`, `tail`. + +#### /features_stats/* +This table contains the plate average for each corresponding feature stat according to the transformations explained [here](https://github.com/ver228/tierpsy-features/tree/master#transformations). + * `name` : feature name summary. The prefix correspond to one of the features in `/timeseries_data`. The meaning of the postfix is explained in the table below. + * `value` : corresponding value + + | postfix | meaning | + | ------- | ------ | + | 10th | 10th percentil | + | 50th | 50th percentil | + | 90th | 90th percentil | + | IQR | interquantile distance between the 25th to 75th percentile | + | norm | data normalized by the skeleton length | + | abs | use the absolute value a ventral/dorsal signed feature | + | w_forward | only the points when the worm is going forwards | + | w_backward | only the points when the worm is going barwards | + | w_paused | only the points when the worm is paused | + + + + + + + + From 73a0b4323c773fd77ff92053ad8eea838b179da3 Mon Sep 17 00:00:00 2001 From: ver228 Date: Mon, 11 Jun 2018 16:41:50 +0100 Subject: [PATCH 28/37] update --- docs/EXPLANATION.md | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/docs/EXPLANATION.md b/docs/EXPLANATION.md index 227c6791..fa868d6b 100755 --- a/docs/EXPLANATION.md +++ b/docs/EXPLANATION.md @@ -83,10 +83,10 @@ This step uses the profile intensity extracted in the [previous step](#int_profi Using this algorithm the errors in head-tail identification decrease to 0.01% compared to 4.48% in the original [segWorm](https://github.com/openworm/SegWorm) implementation. Since this algorithm uses the median profile to identify switched regions, it can fail if [SKE_ORIENT](#ske_orient) previously did not correctly oriented most of the skeletons. -## Extract Features +## Extract Features (OpenWorm route) ### FEAT_CREATE -This step uses the [open worm analysis toolbox](https://github.com/openworm/open-worm-analysis-toolbox) to calculate the skeleton features explained in [`basename_features.hdf5`](OUTPUTS.md/#basename_features.hdf5). +This step uses the [open worm analysis toolbox](https://github.com/openworm/open-worm-analysis-toolbox) to calculate the skeleton features explained in [`basename_features.hdf5`](OUTPUTS.md#basename_featureshdf5-openworm-analysis-toolbox). ### FEAT\_MANUAL\_CREATE Same as [FEAT_CREATE](#feat_create) but it will only use the indexes that were manually identified as worms using the [Tierpsy Tracker Viewer](HOWTO.md#tierpsy-tracker-viewer). The results will be saved as `basename_feat_manual.hdf5`. @@ -94,3 +94,16 @@ Same as [FEAT_CREATE](#feat_create) but it will only use the indexes that were m ### WCON_EXPORT Currently only used in `WT2`. Export skeletons data in [`basename_features.hdf5`](OUTPUTS.md/#basename_features.hdf5) using the [WCON format](https://github.com/openworm/tracker-commons). In the future this step should be available in the default analysis sequence. +## Extract Features (Tierpsy Features route) + +### FOOD_CNT +CURRENTLY AVAILABLE ONLY FOR [AEX](https://www.imperial.ac.uk/people/andre.brown) DATA. Calculate the food contour either using a pretrained neural network. The results are stored in [`/food_cnt_coord`](OUTPUTS.md/#food_cnt_coord). The process will be considered as failed if the contour solidity is larger than 0.98 and the results will not be saved. You can visualize the results using the [Tierpsy Tracker Viewer](HOWTO.md#tierpsy-tracker-viewer). + +### FEAT_INIT +The smooth module in [tierpsy features](https://github.com/openworm/open-worm-analysis-toolbox) is used to smooth the skeletons over both time and space and to interpolate between small gaps of unskeletonized frames. As well to create the corresponding versions of the tables [`/blob_features`](OUTPUTS.md/#blob_features), [`/trajectories_data`](OUTPUTS.md/#trajectories_data) and [`/food_cnt_coord`](OUTPUTS.md/#food_cnt_coord)(if available) from the +[`basename_skeletons.hdf5`](OUTPUTS.md/#basename_skeletons.hdf5). + +### FEAT_TIERSY +This step uses the [tierpsy features](https://github.com/openworm/open-worm-analysis-toolbox) to calculate the features explained in [`basename_featuresN.hdf5`](OUTPUTS.md#basename_featuresnhdf5-tierpsy-features). + + From fde7d880245fbe76419d2866f0fb6ad8c8a14943 Mon Sep 17 00:00:00 2001 From: ver228 Date: Mon, 11 Jun 2018 16:43:59 +0100 Subject: [PATCH 29/37] fix --- docs/HOWTO.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/HOWTO.md b/docs/HOWTO.md index eb527afc..ab2cb16f 100755 --- a/docs/HOWTO.md +++ b/docs/HOWTO.md @@ -194,4 +194,4 @@ The files will be located by doing a recursive search for matching the extension | openworm | Ticked | feat_manual.hdf5 | | openworm | Unticked | features.hdf5 | -The results are saved into two separated .csv file located in the root directory. The first file, `filenames_FEATURETYPE_SUMMARY_DATE.csv`, contains the names of all the files found in root the directory. The `is_good` column is set to `True` if the file is valid and used in the summary. The second file, `features_FEATURETYPE_SUMMARY_DATE.csv`, contains the corresponding features summarized as described in the [output files](https://github.com/ver228/tierpsy-tracker/blob/master/docs/OUTPUTS.md#features_summar) section. The two result files can be joined using the `file_id` column. +The results are saved into two separated .csv file located in the root directory. The first file, `filenames_FEATURETYPE_SUMMARY_DATE.csv`, contains the names of all the files found in root the directory. The `is_good` column is set to `True` if the file is valid and used in the summary. The second file, `features_FEATURETYPE_SUMMARY_DATE.csv`, contains the corresponding features summarized as described in the [output files](OUTPUTS.md#features_summar) section. The two result files can be joined using the `file_id` column. From a8255631781ced7d421ccb38ce906156ec606efc Mon Sep 17 00:00:00 2001 From: ver228 Date: Mon, 11 Jun 2018 17:01:50 +0100 Subject: [PATCH 30/37] update --- docs/INSTALLATION.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/docs/INSTALLATION.md b/docs/INSTALLATION.md index 1f3aaeaa..600b92c0 100644 --- a/docs/INSTALLATION.md +++ b/docs/INSTALLATION.md @@ -1,18 +1,24 @@ *The instructions below are to install Tierpsy Tracker from the source code. I would recommend to do this only if you are using Linux or want to run the development version, otherwise use the double-click executables available for Windows (7 or latest) and OSX (Yosemite or latest) in the [releases page](https://github.com/ver228/tierpsy-tracker/releases).* # System Requirements -- Freshly installed [miniconda](https://conda.io/miniconda.html) or at least setup up a new enviroment. +- Python 3.6 (I would recommend to use [miniconda](https://conda.io/miniconda.html)). - Optional [ffmpeg](https://ffmpeg.org/download.html): ffprobe must be accessible from the command line to calculate the video timestamps. -- [C compiler compatible with cython](http://cython.readthedocs.io/en/latest/src/quickstart/install.html). In Windows, you can use [Visual C++ 2015 Build Tools](http://landinghub.visualstudio.com/visual-cpp-build-tools). In OSX, if you install [homebrew](https://brew.sh/) it will setup the C compiler without the need to download XCode from the appstore. +- [C compiler compatible with cython](http://cython.readthedocs.io/en/latest/src/quickstart/install.html). In Windows, you can use [Visual C++ 2015 Build Tools](https://www.microsoft.com/en-us/download/details.aspx?id=48159). In OSX, if you install [homebrew](https://brew.sh/) it will setup the C compiler without the need to download XCode from the appstore. - [Git](https://git-scm.com/). [Here](https://gist.github.com/derhuerst/1b15ff4652a867391f03) are some instructions to install it. # Installation -1. Install the conda dependencies from the conda-forge channel: +1. Install dependencies: +Using pip: ```bash -conda install --channel anaconda numpy matplotlib pytables pandas gitpython pyqt h5py \ -scipy scikit-learn scikit-image seaborn xlrd cython statsmodels numba keras opencv tensorflow +pip install numpy matplotlib tables pandas pyqt5 h5py scipy scikit-learn scikit-image seaborn xlrd cython statsmodels numba keras==2.1.5 tensorflow opencv-python-headless +``` + +Using anaconda: +```bash +conda install --channel conda-forge numpy matplotlib pytables pandas gitpython pyqt h5py \ +scipy scikit-learn scikit-image seaborn xlrd cython statsmodels numba keras=2.1.5 opencv tensorflow ``` 2. Clone this repository either using the [Github Desktop](https://desktop.github.com/) or from the command line as: From 11a2898a36e0b6e418f8e8988a5e5d304983134a Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Mon, 11 Jun 2018 17:33:39 +0100 Subject: [PATCH 31/37] bug --- tierpsy/analysis/feat_tierpsy/get_tierpsy_features.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tierpsy/analysis/feat_tierpsy/get_tierpsy_features.py b/tierpsy/analysis/feat_tierpsy/get_tierpsy_features.py index 232ac309..f905b627 100644 --- a/tierpsy/analysis/feat_tierpsy/get_tierpsy_features.py +++ b/tierpsy/analysis/feat_tierpsy/get_tierpsy_features.py @@ -124,8 +124,8 @@ def save_feats_stats(features_file, derivate_delta_time): blob_features, derivate_delta_time) - - dtypes = [('name', 'S50'), ('value', np.float32)] + tot = max(len(x) for x in exp_feats.index) + dtypes = [('name', 'S{}'.format(tot)), ('value', np.float32)] exp_feats_rec = np.array(list(zip(exp_feats.index, exp_feats)), dtype = dtypes) with tables.File(features_file, 'r+') as fid: for gg in ['/features_stats']: From bb05fe0e5266502ed7a36df0821b579fd87887c0 Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Mon, 11 Jun 2018 17:33:57 +0100 Subject: [PATCH 32/37] remove json files that start with _ --- create_binaries/TierpsyTracker.spec | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/create_binaries/TierpsyTracker.spec b/create_binaries/TierpsyTracker.spec index ce2b4155..5128ac26 100644 --- a/create_binaries/TierpsyTracker.spec +++ b/create_binaries/TierpsyTracker.spec @@ -1,5 +1,5 @@ # -*- mode: python -*- -DEBUG = True +DEBUG = False #hidden imports needed for tierpsy. Each step is loaded dyniamically so I need to give the hint to pyinstaller @@ -44,10 +44,8 @@ tierpsy_feat = os.path.join('features', 'feature_metadata', 'features_list.csv') ow_feat_src = os.path.join(open_worm_path, ow_feat) ow_feat_dst = os.path.join('open_worm_analysis_toolbox', ow_feat) - tierpsy_features_path = os.path.dirname(tierpsy_features.__file__) - #add ffmpeg and ffprobe ffmpeg_src = FFMPEG_CMD ffmpeg_dst = os.path.join('extras', os.path.basename(FFMPEG_CMD)) @@ -82,7 +80,7 @@ tierpsy_path += os.sep #add all the files in extras for (dirpath, dirnames, filenames) in os.walk(os.path.join(tierpsy_path, 'extras')): for fname in filenames: - if not fname.startswith('.'): + if not (fname.startswith('.') or fname.startswith('_')): fname_src = os.path.join(dirpath, fname) fname_dst = fname_src.replace(tierpsy_path, '') added_datas.append((fname_dst, fname_src, 'DATA')) From 2d289e9f7234c01fcf4d1eb4b942864af4368b13 Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Mon, 11 Jun 2018 17:34:22 +0100 Subject: [PATCH 33/37] chage version + bug --- tierpsy/version.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tierpsy/version.py b/tierpsy/version.py index f0976cd2..18c86d7b 100755 --- a/tierpsy/version.py +++ b/tierpsy/version.py @@ -1,5 +1,5 @@ # # -*- coding: utf-8 -*- -__version__ = '1.5.0-alpha' +__version__ = '1.5.0-beta' try: import os @@ -9,7 +9,6 @@ sha = subprocess.check_output(['git', 'rev-parse', 'HEAD'], cwd=cwd).decode('ascii').strip() __version__ += '+' + sha[:7] except Exception: - raise Exception pass ''' From ed7c5a1830bf6a39fbfc76f9f7efbcae3a3886c7 Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Mon, 11 Jun 2018 18:32:02 +0100 Subject: [PATCH 34/37] update version info --- tierpsy/version.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tierpsy/version.py b/tierpsy/version.py index 18c86d7b..c8faf4b4 100755 --- a/tierpsy/version.py +++ b/tierpsy/version.py @@ -12,6 +12,15 @@ pass ''' +1.5.0-beta +- Complete the integration with tierpsy features formalizing two different feature paths. +- Reorganize the types of analysis, and deal with deprecated values. +- Add plot feature option in the tracker viewer to visualize individual worm features. +- Make the tracker viewer compatible with the _features.hdf5 files and deprecate the WT2 viewer +- Add app to collect the feature summary of different videos. + + + 1.5.0-alpha - Add tierpsy features as FEAT_INIT, FEAT_TIERPSY. - Reorganize and improve GUIs, particularly "Set Parameters". From 9648e9c475b620590af4f1eb42e5632870975c31 Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Mon, 11 Jun 2018 18:32:34 +0100 Subject: [PATCH 35/37] remove osx for some reason osx is failing. I am removign the option for the moment. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index e17d6687..95036ded 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,7 +11,7 @@ env : os: - linux - - osx + #- osx install: - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then From 050e1d49d37eb6f73d2c412ebf36c6d007159416 Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Mon, 11 Jun 2018 22:55:12 +0100 Subject: [PATCH 36/37] small fix --- create_binaries/TierpsyTracker.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/create_binaries/TierpsyTracker.spec b/create_binaries/TierpsyTracker.spec index 5128ac26..6aa950b5 100644 --- a/create_binaries/TierpsyTracker.spec +++ b/create_binaries/TierpsyTracker.spec @@ -128,8 +128,10 @@ a = Analysis([SRC_SCRIPT_PATH], #i was having problems with adding datas using Analysis, i decided to add them directly to a.datas a.datas += added_datas -if is_darwin: - a.binaries.append(('libfreetype.6.dylib', '/usr/local/opt/freetype/lib/libfreetype.6.dylib', 'BINARY')) + +f2c = '/usr/local/opt/freetype/lib/libfreetype.6.dylib' +if is_darwin and os.path.exists(f2c): + a.binaries.append(('libfreetype.6.dylib', , 'BINARY')) print([x for x in a.binaries if 'libfreetype' in x[0]]) From 48d7375dc949e46255d17440887363f876296451 Mon Sep 17 00:00:00 2001 From: Avelino Javer Date: Mon, 11 Jun 2018 22:55:50 +0100 Subject: [PATCH 37/37] bug --- create_binaries/TierpsyTracker.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/create_binaries/TierpsyTracker.spec b/create_binaries/TierpsyTracker.spec index 6aa950b5..e4f0d995 100644 --- a/create_binaries/TierpsyTracker.spec +++ b/create_binaries/TierpsyTracker.spec @@ -131,7 +131,7 @@ a.datas += added_datas f2c = '/usr/local/opt/freetype/lib/libfreetype.6.dylib' if is_darwin and os.path.exists(f2c): - a.binaries.append(('libfreetype.6.dylib', , 'BINARY')) + a.binaries.append(('libfreetype.6.dylib', f2c, 'BINARY')) print([x for x in a.binaries if 'libfreetype' in x[0]])