From f5e5c4bd3fc826c06e0146d2065df0efacc3a705 Mon Sep 17 00:00:00 2001 From: Yiyi Liao Date: Thu, 13 Jun 2019 16:25:11 +0200 Subject: [PATCH] init --- README.md | 2 - co/__init__.py | 23 + co/args.py | 71 + co/cmap.py | 93 + co/geometry.py | 800 + co/gtimer.py | 32 + co/io3d.py | 267 + co/metric.py | 248 + co/plt.py | 99 + co/plt2d.py | 57 + co/plt3d.py | 38 + co/table.py | 445 + co/utils.py | 86 + config.json | 5 + create_syn_data.sh | 7 + data/__init__.py | 0 data/commons.py | 110 + data/create_syn_data.py | 259 + data/dataset.py | 148 + data/kinect_pattern.png | Bin 0 -> 599339 bytes data/lcn/img.png | Bin 0 -> 767724 bytes data/lcn/lcn.c | 20968 ++++++++++++++++++++++++ data/lcn/lcn.html | 720 + data/lcn/lcn.pyx | 58 + data/lcn/readme.txt | 5 + data/lcn/setup.py | 6 + data/lcn/test_lcn.py | 47 + hyperdepth/eval.cpp | 46 + hyperdepth/hyperdepth.h | 287 + hyperdepth/hyperdepth.pyx | 86 + hyperdepth/hyperparam_search.py | 65 + hyperdepth/rf/common.h | 18 + hyperdepth/rf/data.h | 72 + hyperdepth/rf/forest.h | 92 + hyperdepth/rf/leaffcn.h | 99 + hyperdepth/rf/node.h | 158 + hyperdepth/rf/serialization.h | 256 + hyperdepth/rf/spliteval.h | 71 + hyperdepth/rf/splitfcn.h | 106 + hyperdepth/rf/threadpool.h | 112 + hyperdepth/rf/train.h | 423 + hyperdepth/rf/tree.h | 55 + hyperdepth/setup.py | 45 + hyperdepth/train.cpp | 52 + hyperdepth/vis_eval.py | 15 + img/img.png | Bin 0 -> 1081568 bytes model/__init__.py | 0 model/exp_synph.py | 237 + model/exp_synphge.py | 298 + model/networks.py | 566 + readme.md | 95 + renderer/Makefile | 32 + renderer/__init__.py | 4 + renderer/cyrender.pyx | 200 + renderer/render/co_types.h | 10 + renderer/render/common.h | 135 + renderer/render/common_cpu.h | 26 + renderer/render/common_cuda.h | 173 + renderer/render/geometry.h | 294 + renderer/render/render.h | 369 + renderer/render/render_cpu.cpp | 22 + renderer/render/render_cpu.h | 23 + renderer/render/render_gpu.cu | 100 + renderer/render/render_gpu.h | 23 + renderer/render/render_gpu_dummy.cpp | 33 + renderer/render/stdlib_cuda.cu | 35 + renderer/render/stdlib_cuda.h | 18 + renderer/render/stdlib_cuda_dummy.cpp | 10 + renderer/setup.py | 49 + requirements.txt | 6 + torchext/__init__.py | 4 + torchext/dataset.py | 66 + torchext/ext/co_types.h | 10 + torchext/ext/common.h | 135 + torchext/ext/common_cuda.h | 173 + torchext/ext/ext.h | 347 + torchext/ext/ext_cpu.cpp | 198 + torchext/ext/ext_cuda.cpp | 135 + torchext/ext/ext_kernel.cu | 112 + torchext/functions.py | 147 + torchext/modules.py | 27 + torchext/setup.py | 24 + torchext/worker.py | 528 + train_val.py | 29 + 84 files changed, 31343 insertions(+), 2 deletions(-) delete mode 100644 README.md create mode 100644 co/__init__.py create mode 100644 co/args.py create mode 100644 co/cmap.py create mode 100644 co/geometry.py create mode 100644 co/gtimer.py create mode 100644 co/io3d.py create mode 100644 co/metric.py create mode 100644 co/plt.py create mode 100644 co/plt2d.py create mode 100644 co/plt3d.py create mode 100644 co/table.py create mode 100644 co/utils.py create mode 100644 config.json create mode 100755 create_syn_data.sh create mode 100644 data/__init__.py create mode 100644 data/commons.py create mode 100644 data/create_syn_data.py create mode 100644 data/dataset.py create mode 100644 data/kinect_pattern.png create mode 100644 data/lcn/img.png create mode 100644 data/lcn/lcn.c create mode 100644 data/lcn/lcn.html create mode 100644 data/lcn/lcn.pyx create mode 100644 data/lcn/readme.txt create mode 100644 data/lcn/setup.py create mode 100644 data/lcn/test_lcn.py create mode 100644 hyperdepth/eval.cpp create mode 100644 hyperdepth/hyperdepth.h create mode 100644 hyperdepth/hyperdepth.pyx create mode 100644 hyperdepth/hyperparam_search.py create mode 100644 hyperdepth/rf/common.h create mode 100644 hyperdepth/rf/data.h create mode 100644 hyperdepth/rf/forest.h create mode 100644 hyperdepth/rf/leaffcn.h create mode 100644 hyperdepth/rf/node.h create mode 100644 hyperdepth/rf/serialization.h create mode 100644 hyperdepth/rf/spliteval.h create mode 100644 hyperdepth/rf/splitfcn.h create mode 100644 hyperdepth/rf/threadpool.h create mode 100644 hyperdepth/rf/train.h create mode 100644 hyperdepth/rf/tree.h create mode 100644 hyperdepth/setup.py create mode 100644 hyperdepth/train.cpp create mode 100644 hyperdepth/vis_eval.py create mode 100644 img/img.png create mode 100644 model/__init__.py create mode 100644 model/exp_synph.py create mode 100644 model/exp_synphge.py create mode 100644 model/networks.py create mode 100644 readme.md create mode 100644 renderer/Makefile create mode 100644 renderer/__init__.py create mode 100644 renderer/cyrender.pyx create mode 100644 renderer/render/co_types.h create mode 100644 renderer/render/common.h create mode 100644 renderer/render/common_cpu.h create mode 100644 renderer/render/common_cuda.h create mode 100644 renderer/render/geometry.h create mode 100644 renderer/render/render.h create mode 100644 renderer/render/render_cpu.cpp create mode 100644 renderer/render/render_cpu.h create mode 100644 renderer/render/render_gpu.cu create mode 100644 renderer/render/render_gpu.h create mode 100644 renderer/render/render_gpu_dummy.cpp create mode 100644 renderer/render/stdlib_cuda.cu create mode 100644 renderer/render/stdlib_cuda.h create mode 100644 renderer/render/stdlib_cuda_dummy.cpp create mode 100644 renderer/setup.py create mode 100644 requirements.txt create mode 100644 torchext/__init__.py create mode 100644 torchext/dataset.py create mode 100644 torchext/ext/co_types.h create mode 100644 torchext/ext/common.h create mode 100644 torchext/ext/common_cuda.h create mode 100644 torchext/ext/ext.h create mode 100644 torchext/ext/ext_cpu.cpp create mode 100644 torchext/ext/ext_cuda.cpp create mode 100644 torchext/ext/ext_kernel.cu create mode 100644 torchext/functions.py create mode 100644 torchext/modules.py create mode 100644 torchext/setup.py create mode 100644 torchext/worker.py create mode 100644 train_val.py diff --git a/README.md b/README.md deleted file mode 100644 index ec63717..0000000 --- a/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# connecting_the_dots -This repository contains the code for the paper "Connecting the Dots: Learning Representations for Active Monocular Depth Estimation" https://avg.is.tuebingen.mpg.de/publications/riegler2019cvpr diff --git a/co/__init__.py b/co/__init__.py new file mode 100644 index 0000000..3dcfa5d --- /dev/null +++ b/co/__init__.py @@ -0,0 +1,23 @@ +# import os +# this_dir = os.path.dirname(__file__) +# print(this_dir) +# import sys +# sys.path.append(this_dir) + +# set matplotlib backend depending on env +import os +import matplotlib +if os.name == 'posix' and "DISPLAY" not in os.environ: + matplotlib.use('Agg') + +from . import geometry +from . import plt +from . import plt2d +from . import plt3d +from . import metric +from . import table +from . import utils +from . import io3d +from . import gtimer +from . import cmap +from . import args diff --git a/co/args.py b/co/args.py new file mode 100644 index 0000000..c55ba7b --- /dev/null +++ b/co/args.py @@ -0,0 +1,71 @@ +import argparse +import os +from .utils import str2bool + + +def parse_args(): + parser = argparse.ArgumentParser() + # + parser.add_argument('--output_dir', + help='Output directory', + default='./output', type=str) + parser.add_argument('--loss', + help='Train with \'ph\' for the first stage without geometric loss, \ + train with \'phge\' for the second stage with geometric loss', + default='ph', choices=['ph','phge'], type=str) + parser.add_argument('--data_type', + default='syn', choices=['syn'], type=str) + # + parser.add_argument('--cmd', + help='Start training or test', + default='resume', choices=['retrain', 'resume', 'retest', 'test_init'], type=str) + parser.add_argument('--epoch', + help='If larger than -1, retest on the specified epoch', + default=-1, type=int) + parser.add_argument('--epochs', + help='Training epochs', + default=100, type=int) + + # + parser.add_argument('--ms', + help='If true, use multiscale loss', + default=True, type=str2bool) + parser.add_argument('--pattern_path', + help='Path of the pattern image', + default='./data/kinect_patttern.png', type=str) + # + parser.add_argument('--dp_weight', + help='Weight of the disparity loss', + default=0.02, type=float) + parser.add_argument('--ge_weight', + help='Weight of the geometric loss', + default=0.1, type=float) + # + parser.add_argument('--lcn_radius', + help='Radius of the window for LCN pre-processing', + default=5, type=int) + parser.add_argument('--max_disp', + help='Maximum disparity', + default=128, type=int) + # + parser.add_argument('--track_length', + help='Track length for geometric loss', + default=2, type=int) + # + parser.add_argument('--blend_im', + help='Parameter for adding texture', + default=0.6, type=float) + + args = parser.parse_args() + + args.exp_name = get_exp_name(args) + + return args + + +def get_exp_name(args): + name = f"exp_{args.data_type}" + return name + + + diff --git a/co/cmap.py b/co/cmap.py new file mode 100644 index 0000000..58a7e17 --- /dev/null +++ b/co/cmap.py @@ -0,0 +1,93 @@ +import numpy as np + +_color_map_errors = np.array([ + [149, 54, 49], #0: log2(x) = -infinity + [180, 117, 69], #0.0625: log2(x) = -4 + [209, 173, 116], #0.125: log2(x) = -3 + [233, 217, 171], #0.25: log2(x) = -2 + [248, 243, 224], #0.5: log2(x) = -1 + [144, 224, 254], #1.0: log2(x) = 0 + [97, 174, 253], #2.0: log2(x) = 1 + [67, 109, 244], #4.0: log2(x) = 2 + [39, 48, 215], #8.0: log2(x) = 3 + [38, 0, 165], #16.0: log2(x) = 4 + [38, 0, 165] #inf: log2(x) = inf +]).astype(float) + +def color_error_image(errors, scale=1, mask=None, BGR=True): + """ + Color an input error map. + + Arguments: + errors -- HxW numpy array of errors + [scale=1] -- scaling the error map (color change at unit error) + [mask=None] -- zero-pixels are masked white in the result + [BGR=True] -- toggle between BGR and RGB + + Returns: + colored_errors -- HxWx3 numpy array visualizing the errors + """ + + errors_flat = errors.flatten() + errors_color_indices = np.clip(np.log2(errors_flat / scale + 1e-5) + 5, 0, 9) + i0 = np.floor(errors_color_indices).astype(int) + f1 = errors_color_indices - i0.astype(float) + colored_errors_flat = _color_map_errors[i0, :] * (1-f1).reshape(-1,1) + _color_map_errors[i0+1, :] * f1.reshape(-1,1) + + if mask is not None: + colored_errors_flat[mask.flatten() == 0] = 255 + + if not BGR: + colored_errors_flat = colored_errors_flat[:,[2,1,0]] + + return colored_errors_flat.reshape(errors.shape[0], errors.shape[1], 3).astype(np.int) + +_color_map_depths = np.array([ + [0, 0, 0], # 0.000 + [0, 0, 255], # 0.114 + [255, 0, 0], # 0.299 + [255, 0, 255], # 0.413 + [0, 255, 0], # 0.587 + [0, 255, 255], # 0.701 + [255, 255, 0], # 0.886 + [255, 255, 255], # 1.000 + [255, 255, 255], # 1.000 +]).astype(float) +_color_map_bincenters = np.array([ + 0.0, + 0.114, + 0.299, + 0.413, + 0.587, + 0.701, + 0.886, + 1.000, + 2.000, # doesn't make a difference, just strictly higher than 1 +]) + +def color_depth_map(depths, scale=None): + """ + Color an input depth map. + + Arguments: + depths -- HxW numpy array of depths + [scale=None] -- scaling the values (defaults to the maximum depth) + + Returns: + colored_depths -- HxWx3 numpy array visualizing the depths + """ + + if scale is None: + scale = depths.max() + + values = np.clip(depths.flatten() / scale, 0, 1) + # for each value, figure out where they fit in in the bincenters: what is the last bincenter smaller than this value? + lower_bin = ((values.reshape(-1, 1) >= _color_map_bincenters.reshape(1,-1)) * np.arange(0,9)).max(axis=1) + lower_bin_value = _color_map_bincenters[lower_bin] + higher_bin_value = _color_map_bincenters[lower_bin + 1] + alphas = (values - lower_bin_value) / (higher_bin_value - lower_bin_value) + colors = _color_map_depths[lower_bin] * (1-alphas).reshape(-1,1) + _color_map_depths[lower_bin + 1] * alphas.reshape(-1,1) + return colors.reshape(depths.shape[0], depths.shape[1], 3).astype(np.uint8) + +#from utils.debug import save_color_numpy +#save_color_numpy(color_depth_map(np.matmul(np.ones((100,1)), np.arange(0,1200).reshape(1,1200)), scale=1000)) diff --git a/co/geometry.py b/co/geometry.py new file mode 100644 index 0000000..5cf194e --- /dev/null +++ b/co/geometry.py @@ -0,0 +1,800 @@ +import numpy as np +import scipy.spatial +import scipy.linalg + +def nullspace(A, atol=1e-13, rtol=0): + u, s, vh = np.linalg.svd(A) + tol = max(atol, rtol * s[0]) + nnz = (s >= tol).sum() + ns = vh[nnz:].conj().T + return ns + +def nearest_orthogonal_matrix(R): + U,S,Vt = np.linalg.svd(R) + return U @ np.eye(3,dtype=R.dtype) @ Vt + +def power_iters(A, n_iters=10): + b = np.random.uniform(-1,1, size=(A.shape[0], A.shape[1], 1)) + for iter in range(n_iters): + b = A @ b + b = b / np.linalg.norm(b, axis=1, keepdims=True) + return b + +def rayleigh_quotient(A, b): + return (b.transpose(0,2,1) @ A @ b) / (b.transpose(0,2,1) @ b) + + +def cross_prod_mat(x): + x = x.reshape(-1,3) + X = np.empty((x.shape[0],3,3), dtype=x.dtype) + X[:,0,0] = 0 + X[:,0,1] = -x[:,2] + X[:,0,2] = x[:,1] + X[:,1,0] = x[:,2] + X[:,1,1] = 0 + X[:,1,2] = -x[:,0] + X[:,2,0] = -x[:,1] + X[:,2,1] = x[:,0] + X[:,2,2] = 0 + return X.squeeze() + +def hat_operator(x): + return cross_prod_mat(x) + +def vee_operator(X): + X = X.reshape(-1,3,3) + x = np.empty((X.shape[0], 3), dtype=X.dtype) + x[:,0] = X[:,2,1] + x[:,1] = X[:,0,2] + x[:,2] = X[:,1,0] + return x.squeeze() + + +def rot_x(x, dtype=np.float32): + x = np.array(x, copy=False) + x = x.reshape(-1,1) + R = np.zeros((x.shape[0],3,3), dtype=dtype) + R[:,0,0] = 1 + R[:,1,1] = np.cos(x).ravel() + R[:,1,2] = -np.sin(x).ravel() + R[:,2,1] = np.sin(x).ravel() + R[:,2,2] = np.cos(x).ravel() + return R.squeeze() + +def rot_y(y, dtype=np.float32): + y = np.array(y, copy=False) + y = y.reshape(-1,1) + R = np.zeros((y.shape[0],3,3), dtype=dtype) + R[:,0,0] = np.cos(y).ravel() + R[:,0,2] = np.sin(y).ravel() + R[:,1,1] = 1 + R[:,2,0] = -np.sin(y).ravel() + R[:,2,2] = np.cos(y).ravel() + return R.squeeze() + +def rot_z(z, dtype=np.float32): + z = np.array(z, copy=False) + z = z.reshape(-1,1) + R = np.zeros((z.shape[0],3,3), dtype=dtype) + R[:,0,0] = np.cos(z).ravel() + R[:,0,1] = -np.sin(z).ravel() + R[:,1,0] = np.sin(z).ravel() + R[:,1,1] = np.cos(z).ravel() + R[:,2,2] = 1 + return R.squeeze() + +def xyz_from_rotm(R): + R = R.reshape(-1,3,3) + xyz = np.empty((R.shape[0],3), dtype=R.dtype) + for bidx in range(R.shape[0]): + if R[bidx,0,2] < 1: + if R[bidx,0,2] > -1: + xyz[bidx,1] = np.arcsin(R[bidx,0,2]) + xyz[bidx,0] = np.arctan2(-R[bidx,1,2], R[bidx,2,2]) + xyz[bidx,2] = np.arctan2(-R[bidx,0,1], R[bidx,0,0]) + else: + xyz[bidx,1] = -np.pi/2 + xyz[bidx,0] = -np.arctan2(R[bidx,1,0],R[bidx,1,1]) + xyz[bidx,2] = 0 + else: + xyz[bidx,1] = np.pi/2 + xyz[bidx,0] = np.arctan2(R[bidx,1,0], R[bidx,1,1]) + xyz[bidx,2] = 0 + return xyz.squeeze() + +def zyx_from_rotm(R): + R = R.reshape(-1,3,3) + zyx = np.empty((R.shape[0],3), dtype=R.dtype) + for bidx in range(R.shape[0]): + if R[bidx,2,0] < 1: + if R[bidx,2,0] > -1: + zyx[bidx,1] = np.arcsin(-R[bidx,2,0]) + zyx[bidx,0] = np.arctan2(R[bidx,1,0], R[bidx,0,0]) + zyx[bidx,2] = np.arctan2(R[bidx,2,1], R[bidx,2,2]) + else: + zyx[bidx,1] = np.pi / 2 + zyx[bidx,0] = -np.arctan2(-R[bidx,1,2], R[bidx,1,1]) + zyx[bidx,2] = 0 + else: + zyx[bidx,1] = -np.pi / 2 + zyx[bidx,0] = np.arctan2(-R[bidx,1,2], R[bidx,1,1]) + zyx[bidx,2] = 0 + return zyx.squeeze() + +def rotm_from_xyz(xyz): + xyz = np.array(xyz, copy=False).reshape(-1,3) + return (rot_x(xyz[:,0]) @ rot_y(xyz[:,1]) @ rot_z(xyz[:,2])).squeeze() + +def rotm_from_zyx(zyx): + zyx = np.array(zyx, copy=False).reshape(-1,3) + return (rot_z(zyx[:,0]) @ rot_y(zyx[:,1]) @ rot_x(zyx[:,2])).squeeze() + +def rotm_from_quat(q): + q = q.reshape(-1,4) + w, x, y, z = q[:,0], q[:,1], q[:,2], q[:,3] + R = np.array([ + [1 - 2*y*y - 2*z*z, 2*x*y - 2*z*w, 2*x*z + 2*y*w], + [2*x*y + 2*z*w, 1 - 2*x*x - 2*z*z, 2*y*z - 2*x*w], + [2*x*z - 2*y*w, 2*y*z + 2*x*w, 1 - 2*x*x - 2*y*y] + ], dtype=q.dtype) + R = R.transpose((2,0,1)) + return R.squeeze() + +def rotm_from_axisangle(a): + # exponential + a = a.reshape(-1,3) + phi = np.linalg.norm(a, axis=1).reshape(-1,1,1) + iphi = np.zeros_like(phi) + np.divide(1, phi, out=iphi, where=phi != 0) + A = cross_prod_mat(a) * iphi + R = np.eye(3, dtype=a.dtype) + np.sin(phi) * A + (1 - np.cos(phi)) * A @ A + return R.squeeze() + +def rotm_from_lookat(dir, up=None): + dir = dir.reshape(-1,3) + if up is None: + up = np.zeros_like(dir) + up[:,1] = 1 + dir /= np.linalg.norm(dir, axis=1, keepdims=True) + up /= np.linalg.norm(up, axis=1, keepdims=True) + x = dir[:,None,:] @ cross_prod_mat(up).transpose(0,2,1) + y = x @ cross_prod_mat(dir).transpose(0,2,1) + x = x.squeeze() + y = y.squeeze() + x /= np.linalg.norm(x, axis=1, keepdims=True) + y /= np.linalg.norm(y, axis=1, keepdims=True) + R = np.empty((dir.shape[0],3,3), dtype=dir.dtype) + R[:,0,0] = x[:,0] + R[:,0,1] = y[:,0] + R[:,0,2] = dir[:,0] + R[:,1,0] = x[:,1] + R[:,1,1] = y[:,1] + R[:,1,2] = dir[:,1] + R[:,2,0] = x[:,2] + R[:,2,1] = y[:,2] + R[:,2,2] = dir[:,2] + return R.transpose(0,2,1).squeeze() + +def rotm_distance_identity(R0, R1): + # https://link.springer.com/article/10.1007%2Fs10851-009-0161-2 + # in [0, 2*sqrt(2)] + R0 = R0.reshape(-1,3,3) + R1 = R1.reshape(-1,3,3) + dists = np.linalg.norm(np.eye(3,dtype=R0.dtype) - R0 @ R1.transpose(0,2,1), axis=(1,2)) + return dists.squeeze() + +def rotm_distance_geodesic(R0, R1): + # https://link.springer.com/article/10.1007%2Fs10851-009-0161-2 + # in [0, pi) + R0 = R0.reshape(-1,3,3) + R1 = R1.reshape(-1,3,3) + RtR = R0 @ R1.transpose(0,2,1) + aa = axisangle_from_rotm(RtR) + S = cross_prod_mat(aa).reshape(-1,3,3) + dists = np.linalg.norm(S, axis=(1,2)) + return dists.squeeze() + + + +def axisangle_from_rotm(R): + # logarithm of rotation matrix + # R = R.reshape(-1,3,3) + # tr = np.trace(R, axis1=1, axis2=2) + # phi = np.arccos(np.clip((tr - 1) / 2, -1, 1)) + # scale = np.zeros_like(phi) + # div = 2 * np.sin(phi) + # np.divide(phi, div, out=scale, where=np.abs(div) > 1e-6) + # A = (R - R.transpose(0,2,1)) * scale.reshape(-1,1,1) + # aa = np.stack((A[:,2,1], A[:,0,2], A[:,1,0]), axis=1) + # return aa.squeeze() + R = R.reshape(-1,3,3) + omega = np.empty((R.shape[0], 3), dtype=R.dtype) + omega[:,0] = R[:,2,1] - R[:,1,2] + omega[:,1] = R[:,0,2] - R[:,2,0] + omega[:,2] = R[:,1,0] - R[:,0,1] + r = np.linalg.norm(omega, axis=1).reshape(-1,1) + t = np.trace(R, axis1=1, axis2=2).reshape(-1,1) + omega = np.arctan2(r, t-1) * omega + aa = np.zeros_like(omega) + np.divide(omega, r, out=aa, where=r != 0) + return aa.squeeze() + +def axisangle_from_quat(q): + q = q.reshape(-1,4) + phi = 2 * np.arccos(q[:,0]) + denom = np.zeros_like(q[:,0]) + np.divide(1, np.sqrt(1 - q[:,0]**2), out=denom, where=q[:,0] != 1) + axis = q[:,1:] * denom.reshape(-1,1) + denom = np.linalg.norm(axis, axis=1).reshape(-1,1) + a = np.zeros_like(axis) + np.divide(phi.reshape(-1,1) * axis, denom, out=a, where=denom != 0) + aa = a.astype(q.dtype) + return aa.squeeze() + +def axisangle_apply(aa, x): + # working only with single aa and single x at the moment + xshape = x.shape + aa = aa.reshape(3,) + x = x.reshape(3,) + phi = np.linalg.norm(aa) + e = np.zeros_like(aa) + np.divide(aa, phi, out=e, where=phi != 0) + xr = np.cos(phi) * x + np.sin(phi) * np.cross(e, x) + (1 - np.cos(phi)) * (e.T @ x) * e + return xr.reshape(xshape) + + +def exp_so3(R): + w = axisangle_from_rotm(R) + return w + +def log_so3(w): + R = rotm_from_axisangle(w) + return R + +def exp_se3(R, t): + R = R.reshape(-1,3,3) + t = t.reshape(-1,3) + + w = exp_so3(R).reshape(-1,3) + + phi = np.linalg.norm(w, axis=1).reshape(-1,1,1) + A = cross_prod_mat(w) + Vi = np.eye(3, dtype=R.dtype) - A/2 + (1 - (phi * np.sin(phi) / (2 * (1 - np.cos(phi))))) / phi**2 * A @ A + u = t.reshape(-1,1,3) @ Vi.transpose(0,2,1) + + # v = (u, w) + v = np.empty((R.shape[0],6), dtype=R.dtype) + v[:,:3] = u.squeeze() + v[:,3:] = w + + return v.squeeze() + +def log_se3(v): + # v = (u, w) + v = v.reshape(-1,6) + u = v[:,:3] + w = v[:,3:] + + R = log_so3(w) + + phi = np.linalg.norm(w, axis=1).reshape(-1,1,1) + A = cross_prod_mat(w) + V = np.eye(3, dtype=v.dtype) + (1 - np.cos(phi)) / phi**2 * A + (phi - np.sin(phi)) / phi**3 * A @ A + t = u.reshape(-1,1,3) @ V.transpose(0,2,1) + + return R.squeeze(), t.squeeze() + + +def quat_from_rotm(R): + R = R.reshape(-1,3,3) + q = np.empty((R.shape[0], 4,), dtype=R.dtype) + q[:,0] = np.sqrt( np.maximum(0, 1 + R[:,0,0] + R[:,1,1] + R[:,2,2]) ) + q[:,1] = np.sqrt( np.maximum(0, 1 + R[:,0,0] - R[:,1,1] - R[:,2,2]) ) + q[:,2] = np.sqrt( np.maximum(0, 1 - R[:,0,0] + R[:,1,1] - R[:,2,2]) ) + q[:,3] = np.sqrt( np.maximum(0, 1 - R[:,0,0] - R[:,1,1] + R[:,2,2]) ) + q[:,1] *= np.sign(q[:,1] * (R[:,2,1] - R[:,1,2])) + q[:,2] *= np.sign(q[:,2] * (R[:,0,2] - R[:,2,0])) + q[:,3] *= np.sign(q[:,3] * (R[:,1,0] - R[:,0,1])) + q /= np.linalg.norm(q,axis=1,keepdims=True) + return q.squeeze() + +def quat_from_axisangle(a): + a = a.reshape(-1, 3) + phi = np.linalg.norm(a, axis=1) + iphi = np.zeros_like(phi) + np.divide(1, phi, out=iphi, where=phi != 0) + a = a * iphi.reshape(-1,1) + theta = phi / 2.0 + r = np.cos(theta) + stheta = np.sin(theta) + q = np.stack((r, stheta*a[:,0], stheta*a[:,1], stheta*a[:,2]), axis=1) + q /= np.linalg.norm(q, axis=1).reshape(-1,1) + return q.squeeze() + +def quat_identity(n=1, dtype=np.float32): + q = np.zeros((n,4), dtype=dtype) + q[:,0] = 1 + return q.squeeze() + +def quat_conjugate(q): + shape = q.shape + q = q.reshape(-1,4).copy() + q[:,1:] *= -1 + return q.reshape(shape) + +def quat_product(q1, q2): + # q1 . q2 is equivalent to R(q1) @ R(q2) + shape = q1.shape + q1, q2 = q1.reshape(-1,4), q2.reshape(-1, 4) + q = np.empty((max(q1.shape[0], q2.shape[0]), 4), dtype=q1.dtype) + a1,b1,c1,d1 = q1[:,0], q1[:,1], q1[:,2], q1[:,3] + a2,b2,c2,d2 = q2[:,0], q2[:,1], q2[:,2], q2[:,3] + q[:,0] = a1 * a2 - b1 * b2 - c1 * c2 - d1 * d2 + q[:,1] = a1 * b2 + b1 * a2 + c1 * d2 - d1 * c2 + q[:,2] = a1 * c2 - b1 * d2 + c1 * a2 + d1 * b2 + q[:,3] = a1 * d2 + b1 * c2 - c1 * b2 + d1 * a2 + return q.squeeze() + +def quat_apply(q, x): + xshape = x.shape + x = x.reshape(-1, 3) + qshape = q.shape + q = q.reshape(-1, 4) + + p = np.empty((x.shape[0], 4), dtype=x.dtype) + p[:,0] = 0 + p[:,1:] = x + + r = quat_product(quat_product(q, p), quat_conjugate(q)) + if r.ndim == 1: + return r[1:].reshape(xshape) + else: + return r[:,1:].reshape(xshape) + + +def quat_random(rng=None, n=1): + # http://planning.cs.uiuc.edu/node198.html + if rng is not None: + u = rng.uniform(0, 1, size=(3,n)) + else: + u = np.random.uniform(0, 1, size=(3,n)) + q = np.array(( + np.sqrt(1 - u[0]) * np.sin(2 * np.pi * u[1]), + np.sqrt(1 - u[0]) * np.cos(2 * np.pi * u[1]), + np.sqrt(u[0]) * np.sin(2 * np.pi * u[2]), + np.sqrt(u[0]) * np.cos(2 * np.pi * u[2]) + )).T + q /= np.linalg.norm(q,axis=1,keepdims=True) + return q.squeeze() + +def quat_distance_angle(q0, q1): + # https://math.stackexchange.com/questions/90081/quaternion-distance + # https://link.springer.com/article/10.1007%2Fs10851-009-0161-2 + q0 = q0.reshape(-1,4) + q1 = q1.reshape(-1,4) + dists = np.arccos(np.clip(2 * np.sum(q0 * q1, axis=1)**2 - 1, -1, 1)) + return dists + +def quat_distance_normdiff(q0, q1): + # https://link.springer.com/article/10.1007%2Fs10851-009-0161-2 + # \phi_4 + # [0, 1] + q0 = q0.reshape(-1,4) + q1 = q1.reshape(-1,4) + return 1 - np.sum(q0 * q1, axis=1)**2 + +def quat_distance_mineucl(q0, q1): + # https://link.springer.com/article/10.1007%2Fs10851-009-0161-2 + # http://users.cecs.anu.edu.au/~trumpf/pubs/Hartley_Trumpf_Dai_Li.pdf + q0 = q0.reshape(-1,4) + q1 = q1.reshape(-1,4) + diff0 = ((q0 - q1)**2).sum(axis=1) + diff1 = ((q0 + q1)**2).sum(axis=1) + return np.minimum(diff0, diff1) + +def quat_slerp_space(q0, q1, num=100, endpoint=True): + q0 = q0.ravel() + q1 = q1.ravel() + dot = q0.dot(q1) + if dot < 0: + q1 *= -1 + dot *= -1 + t = np.linspace(0, 1, num=num, endpoint=endpoint, dtype=q0.dtype) + t = t.reshape((-1,1)) + if dot > 0.9995: + ret = q0 + t * (q1 - q0) + return ret + dot = np.clip(dot, -1, 1) + theta0 = np.arccos(dot) + theta = theta0 * t + s0 = np.cos(theta) - dot * np.sin(theta) / np.sin(theta0) + s1 = np.sin(theta) / np.sin(theta0) + return (s0 * q0) + (s1 * q1) + +def cart_to_spherical(x): + shape = x.shape + x = x.reshape(-1,3) + y = np.empty_like(x) + y[:,0] = np.linalg.norm(x, axis=1) # r + y[:,1] = np.arccos(x[:,2] / y[:,0]) # theta + y[:,2] = np.arctan2(x[:,1], x[:,0]) # phi + return y.reshape(shape) + +def spherical_to_cart(x): + shape = x.shape + x = x.reshape(-1,3) + y = np.empty_like(x) + y[:,0] = x[:,0] * np.sin(x[:,1]) * np.cos(x[:,2]) + y[:,1] = x[:,0] * np.sin(x[:,1]) * np.sin(x[:,2]) + y[:,2] = x[:,0] * np.cos(x[:,1]) + return y.reshape(shape) + +def spherical_random(r=1, n=1): + # http://mathworld.wolfram.com/SpherePointPicking.html + # https://math.stackexchange.com/questions/1585975/how-to-generate-random-points-on-a-sphere + x = np.empty((n,3)) + x[:,0] = r + x[:,1] = 2 * np.pi * np.random.uniform(0,1, size=(n,)) + x[:,2] = np.arccos(2 * np.random.uniform(0,1, size=(n,)) - 1) + return x.squeeze() + +def color_pcl(pcl, K, im, color_axis=0, as_int=True, invalid_color=[0,0,0]): + uvd = K @ pcl.T + uvd /= uvd[2] + uvd = np.round(uvd).astype(np.int32) + mask = np.logical_and(uvd[0] >= 0, uvd[1] >= 0) + color = np.empty((pcl.shape[0], 3), dtype=im.dtype) + if color_axis == 0: + mask = np.logical_and(mask, uvd[0] < im.shape[2]) + mask = np.logical_and(mask, uvd[1] < im.shape[1]) + uvd = uvd[:,mask] + color[mask,:] = im[:,uvd[1],uvd[0]].T + elif color_axis == 2: + mask = np.logical_and(mask, uvd[0] < im.shape[1]) + mask = np.logical_and(mask, uvd[1] < im.shape[0]) + uvd = uvd[:,mask] + color[mask,:] = im[uvd[1],uvd[0], :] + else: + raise Exception('invalid color_axis') + color[np.logical_not(mask),:3] = invalid_color + if as_int: + color = (255.0 * color).astype(np.int32) + return color + +def center_pcl(pcl, robust=False, copy=False, axis=1): + if copy: + pcl = pcl.copy() + if robust: + mu = np.median(pcl, axis=axis, keepdims=True) + else: + mu = np.mean(pcl, axis=axis, keepdims=True) + return pcl - mu + +def to_homogeneous(x): + # return np.hstack((x, np.ones((x.shape[0],1),dtype=x.dtype))) + return np.concatenate((x, np.ones((*x.shape[:-1],1),dtype=x.dtype)), axis=-1) + +def from_homogeneous(x): + return x[:,:-1] / x[:,-1] + +def project_uvn(uv, Ki=None): + if uv.shape[1] == 2: + uvn = to_homogeneous(uv) + else: + uvn = uv + if uvn.shape[1] != 3: + raise Exception('uv should have shape Nx2 or Nx3') + if Ki is None: + return uvn + else: + return uvn @ Ki.T + +def project_uvd(uv, depth, K=np.eye(3), R=np.eye(3), t=np.zeros((3,1)), ignore_negative_depth=True, return_uvn=False): + Ki = np.linalg.inv(K) + + if ignore_negative_depth: + mask = depth >= 0 + uv = uv[mask,:] + d = depth[mask] + else: + d = depth.ravel() + + uv1 = to_homogeneous(uv) + + uvn1 = uv1 @ Ki.T + xyz = d.reshape(-1,1) * uvn1 + xyz = (xyz - t.reshape((1,3))) @ R + + if return_uvn: + return xyz, uvn1 + else: + return xyz + +def project_depth(depth, K, R=np.eye(3,3), t=np.zeros((3,1)), ignore_negative_depth=True, return_uvn=False): + u, v = np.meshgrid(range(depth.shape[1]), range(depth.shape[0])) + uv = np.hstack((u.reshape(-1,1), v.reshape(-1,1))) + return project_uvd(uv, depth.ravel(), K, R, t, ignore_negative_depth, return_uvn) + + +def project_xyz(xyz, K=np.eye(3), R=np.eye(3,3), t=np.zeros((3,1))): + uvd = K @ (R @ xyz.T + t.reshape((3,1))) + uvd[:2] /= uvd[2] + return uvd[:2].T, uvd[2] + + +def relative_motion(R0, t0, R1, t1, Rt_from_global=True): + t0 = t0.reshape((3,1)) + t1 = t1.reshape((3,1)) + if Rt_from_global: + Rr = R1 @ R0.T + tr = t1 - Rr @ t0 + else: + Rr = R1.T @ R0 + tr = R1.T @ (t0 - t1) + return Rr, tr.ravel() + + +def translation_to_cameracenter(R, t): + t = t.reshape(-1,3,1) + R = R.reshape(-1,3,3) + C = -R.transpose(0,2,1) @ t + return C.squeeze() + +def cameracenter_to_translation(R, C): + C = C.reshape(-1,3,1) + R = R.reshape(-1,3,3) + t = -R @ C + return t.squeeze() + +def decompose_projection_matrix(P, return_t=True): + if P.shape[0] != 3 or P.shape[1] != 4: + raise Exception('P has to be 3x4') + M = P[:, :3] + C = -np.linalg.inv(M) @ P[:, 3:] + + R,K = np.linalg.qr(np.flipud(M).T) + K = np.flipud(K.T) + K = np.fliplr(K) + R = np.flipud(R.T) + + T = np.diag(np.sign(np.diag(K))) + K = K @ T + R = T @ R + + if np.linalg.det(R) < 0: + R *= -1 + + K /= K[2,2] + if return_t: + return K, R, cameracenter_to_translation(R, C) + else: + return K, R, C + + +def compose_projection_matrix(K=np.eye(3), R=np.eye(3,3), t=np.zeros((3,1))): + return K @ np.hstack((R, t.reshape((3,1)))) + + + +def point_plane_distance(pts, plane): + pts = pts.reshape(-1,3) + return np.abs(np.sum(plane[:3] * pts, axis=1) + plane[3]) / np.linalg.norm(plane[:3]) + +def fit_plane(pts): + pts = pts.reshape(-1,3) + center = np.mean(pts, axis=0) + A = pts - center + u, s, vh = np.linalg.svd(A, full_matrices=False) + # if pts.shape[0] > 100: + # import ipdb; ipdb.set_trace() + plane = np.array([*vh[2], -vh[2].dot(center)]) + return plane + +def tetrahedron(dtype=np.float32): + verts = np.array([ + (np.sqrt(8/9), 0, -1/3), (-np.sqrt(2/9), np.sqrt(2/3), -1/3), + (-np.sqrt(2/9), -np.sqrt(2/3), -1/3), (0, 0, 1)], dtype=dtype) + faces = np.array([(0,1,2), (0,2,3), (0,1,3), (1,2,3)], dtype=np.int32) + normals = -np.mean(verts, axis=0) + verts + normals /= np.linalg.norm(normals, axis=1).reshape(-1,1) + return verts, faces, normals + +def cube(dtype=np.float32): + verts = np.array([ + [-0.5,-0.5,-0.5], [-0.5,0.5,-0.5], [0.5,0.5,-0.5], [0.5,-0.5,-0.5], + [-0.5,-0.5,0.5], [-0.5,0.5,0.5], [0.5,0.5,0.5], [0.5,-0.5,0.5]], dtype=dtype) + faces = np.array([ + (0,1,2), (0,2,3), (4,5,6), (4,6,7), + (0,4,7), (0,7,3), (1,5,6), (1,6,2), + (3,2,6), (3,6,7), (0,1,5), (0,5,4)], dtype=np.int32) + normals = -np.mean(verts, axis=0) + verts + normals /= np.linalg.norm(normals, axis=1).reshape(-1,1) + return verts, faces, normals + +def octahedron(dtype=np.float32): + verts = np.array([ + (+1,0,0), (0,+1,0), (0,0,+1), + (-1,0,0), (0,-1,0), (0,0,-1)], dtype=dtype) + faces = np.array([ + (0,1,2), (1,2,3), (3,2,4), (4,2,0), + (0,1,5), (1,5,3), (3,5,4), (4,5,0)], dtype=np.int32) + normals = -np.mean(verts, axis=0) + verts + normals /= np.linalg.norm(normals, axis=1).reshape(-1,1) + return verts, faces, normals + +def icosahedron(dtype=np.float32): + p = (1 + np.sqrt(5)) / 2 + verts = np.array([ + (-1,0,p), (1,0,p), (1,0,-p), (-1,0,-p), + (0,-p,1), (0,p,1), (0,p,-1), (0,-p,-1), + (-p,-1,0), (p,-1,0), (p,1,0), (-p,1,0) + ], dtype=dtype) + faces = np.array([ + (0,1,4), (0,1,5), (1,4,9), (1,9,10), (1,10,5), (0,4,8), (0,8,11), (0,11,5), + (5,6,11), (5,6,10), (4,7,8), (4,7,9), + (3,2,6), (3,2,7), (2,6,10), (2,10,9), (2,9,7), (3,6,11), (3,11,8), (3,8,7), + ], dtype=np.int32) + normals = -np.mean(verts, axis=0) + verts + normals /= np.linalg.norm(normals, axis=1).reshape(-1,1) + return verts, faces, normals + +def xyplane(dtype=np.float32, z=0, interleaved=False): + if interleaved: + eps = 1e-6 + verts = np.array([ + (-1,-1,z), (-1,1,z), (1,1,z), + (1-eps,1,z), (1-eps,-1,z), (-1-eps,-1,z)], dtype=dtype) + faces = np.array([(0,1,2), (3,4,5)], dtype=np.int32) + else: + verts = np.array([(-1,-1,z), (-1,1,z), (1,1,z), (1,-1,z)], dtype=dtype) + faces = np.array([(0,1,2), (0,2,3)], dtype=np.int32) + normals = np.zeros_like(verts) + normals[:,2] = -1 + return verts, faces, normals + +def mesh_independent_verts(verts, faces, normals=None): + new_verts = [] + new_normals = [] + for f in faces: + new_verts.append(verts[f[0]]) + new_verts.append(verts[f[1]]) + new_verts.append(verts[f[2]]) + if normals is not None: + new_normals.append(normals[f[0]]) + new_normals.append(normals[f[1]]) + new_normals.append(normals[f[2]]) + new_verts = np.array(new_verts) + new_faces = np.arange(0, faces.size, dtype=faces.dtype).reshape(-1,3) + if normals is None: + return new_verts, new_faces + else: + new_normals = np.array(new_normals) + return new_verts, new_faces, new_normals + + +def stack_mesh(verts, faces): + n_verts = 0 + mfaces = [] + for idx, f in enumerate(faces): + mfaces.append(f + n_verts) + n_verts += verts[idx].shape[0] + verts = np.vstack(verts) + faces = np.vstack(mfaces) + return verts, faces + +def normalize_mesh(verts): + # all the verts have unit distance to the center (0,0,0) + return verts / np.linalg.norm(verts, axis=1, keepdims=True) + + +def mesh_triangle_areas(verts, faces): + a = verts[faces[:,0]] + b = verts[faces[:,1]] + c = verts[faces[:,2]] + x = np.empty_like(a) + x = a - b + y = a - c + t = np.empty_like(a) + t[:,0] = (x[:,1] * y[:,2] - x[:,2] * y[:,1]); + t[:,1] = (x[:,2] * y[:,0] - x[:,0] * y[:,2]); + t[:,2] = (x[:,0] * y[:,1] - x[:,1] * y[:,0]); + return np.linalg.norm(t, axis=1) / 2 + +def subdivde_mesh(verts_in, faces_in, n=1): + for iter in range(n): + verts = [] + for v in verts_in: + verts.append(v) + faces = [] + verts_dict = {} + for f in faces_in: + f = np.sort(f) + i0,i1,i2 = f + v0,v1,v2 = verts_in[f] + + k = i0*len(verts_in)+i1 + if k in verts_dict: + i01 = verts_dict[k] + else: + i01 = len(verts) + verts_dict[k] = i01 + v01 = (v0 + v1) / 2 + verts.append(v01) + + k = i0*len(verts_in)+i2 + if k in verts_dict: + i02 = verts_dict[k] + else: + i02 = len(verts) + verts_dict[k] = i02 + v02 = (v0 + v2) / 2 + verts.append(v02) + + k = i1*len(verts_in)+i2 + if k in verts_dict: + i12 = verts_dict[k] + else: + i12 = len(verts) + verts_dict[k] = i12 + v12 = (v1 + v2) / 2 + verts.append(v12) + + faces.append((i0,i01,i02)) + faces.append((i01,i1,i12)) + faces.append((i12,i2,i02)) + faces.append((i01,i12,i02)) + + verts_in = np.array(verts, dtype=verts_in.dtype) + faces_in = np.array(faces, dtype=np.int32) + return verts_in, faces_in + + +def mesh_adjust_winding_order(verts, faces, normals): + n0 = normals[faces[:,0]] + n1 = normals[faces[:,1]] + n2 = normals[faces[:,2]] + fnormals = (n0 + n1 + n2) / 3 + + v0 = verts[faces[:,0]] + v1 = verts[faces[:,1]] + v2 = verts[faces[:,2]] + + e0 = v1 - v0 + e1 = v2 - v0 + fn = np.cross(e0, e1) + + dot = np.sum(fnormals * fn, axis=1) + ma = dot < 0 + + nfaces = faces.copy() + nfaces[ma,1], nfaces[ma,2] = nfaces[ma,2], nfaces[ma,1] + + return nfaces + + +def pcl_to_shapecl(verts, colors=None, shape='cube', width=1.0): + if shape == 'tetrahedron': + cverts, cfaces, _ = tetrahedron() + elif shape == 'cube': + cverts, cfaces, _ = cube() + elif shape == 'octahedron': + cverts, cfaces, _ = octahedron() + elif shape == 'icosahedron': + cverts, cfaces, _ = icosahedron() + else: + raise Exception('invalid shape') + + sverts = np.tile(cverts, (verts.shape[0], 1)) + sverts *= width + sverts += np.repeat(verts, cverts.shape[0], axis=0) + + sfaces = np.tile(cfaces, (verts.shape[0], 1)) + sfoffset = cverts.shape[0] * np.arange(0, verts.shape[0]) + sfaces += np.repeat(sfoffset, cfaces.shape[0]).reshape(-1,1) + + if colors is not None: + scolors = np.repeat(colors, cverts.shape[0], axis=0) + else: + scolors = None + + return sverts, sfaces, scolors diff --git a/co/gtimer.py b/co/gtimer.py new file mode 100644 index 0000000..5bad06b --- /dev/null +++ b/co/gtimer.py @@ -0,0 +1,32 @@ +import numpy as np + +from . import utils + +class StopWatch(utils.StopWatch): + def __del__(self): + print('='*80) + print('gtimer:') + total = ', '.join(['%s: %f[s]' % (k,v) for k,v in self.get(reduce=np.sum).items()]) + print(f' [total] {total}') + mean = ', '.join(['%s: %f[s]' % (k,v) for k,v in self.get(reduce=np.mean).items()]) + print(f' [mean] {mean}') + median = ', '.join(['%s: %f[s]' % (k,v) for k,v in self.get(reduce=np.median).items()]) + print(f' [median] {median}') + print('='*80) + +GTIMER = StopWatch() + +def start(name): + GTIMER.start(name) +def stop(name): + GTIMER.stop(name) + +class Ctx(object): + def __init__(self, name): + self.name = name + + def __enter__(self): + start(self.name) + + def __exit__(self, *args): + stop(self.name) diff --git a/co/io3d.py b/co/io3d.py new file mode 100644 index 0000000..54bc60a --- /dev/null +++ b/co/io3d.py @@ -0,0 +1,267 @@ +import struct +import numpy as np +import collections + +def _write_ply_point(fp, x,y,z, color=None, normal=None, binary=False): + args = [x,y,z] + if color is not None: + args += [int(color[0]), int(color[1]), int(color[2])] + if normal is not None: + args += [normal[0],normal[1],normal[2]] + if binary: + fmt = ' 1: + c = color[vidx] + else: + c = color[0] + else: + c = None + if normals is None: + n = None + else: + n = normals[vidx] + _write_ply_point(fp, v[0],v[1],v[2], c, n, binary) + + if trias is not None: + for t in trias: + _write_ply_triangle(fp, t[0],t[1],t[2], binary) + +def faces_to_triangles(faces): + new_faces = [] + for f in faces: + if f[0] == 3: + new_faces.append([f[1], f[2], f[3]]) + elif f[0] == 4: + new_faces.append([f[1], f[2], f[3]]) + new_faces.append([f[3], f[4], f[1]]) + else: + raise Exception('unknown face count %d', f[0]) + return new_faces + +def read_ply(path): + with open(path, 'rb') as f: + # parse header + line = f.readline().decode().strip() + if line != 'ply': + raise Exception('Header error') + n_verts = 0 + n_faces = 0 + vert_types = {} + vert_bin_format = [] + vert_bin_len = 0 + vert_bin_cols = 0 + line = f.readline().decode() + parse_vertex_prop = False + while line.strip() != 'end_header': + if 'format' in line: + if 'ascii' in line: + binary = False + elif 'binary_little_endian' in line: + binary = True + else: + raise Exception('invalid ply format') + if 'element face' in line: + splits = line.strip().split(' ') + n_faces = int(splits[-1]) + parse_vertex_prop = False + if 'element camera' in line: + parse_vertex_prop = False + if 'element vertex' in line: + splits = line.strip().split(' ') + n_verts = int(splits[-1]) + parse_vertex_prop = True + if parse_vertex_prop and 'property' in line: + prop = line.strip().split() + if prop[1] == 'float': + vert_bin_format.append('f4') + vert_bin_len += 4 + vert_bin_cols += 1 + elif prop[1] == 'uchar': + vert_bin_format.append('B') + vert_bin_len += 1 + vert_bin_cols += 1 + else: + raise Exception('invalid property') + vert_types[prop[2]] = len(vert_types) + line = f.readline().decode() + + # parse content + if binary: + sz = n_verts * vert_bin_len + fmt = ','.join(vert_bin_format) + verts = np.ndarray(shape=(1, n_verts), dtype=np.dtype(fmt), buffer=f.read(sz)) + verts = verts[0].astype(vert_bin_cols*'f4,').view(dtype='f4').reshape((n_verts,-1)) + faces = [] + for idx in range(n_faces): + fmt = '= 2 and len(parts[1]) > 0: + tidx = int(parts[1]) - 1 + else: + tidx = -1 + if len(parts) >= 3 and len(parts[2]) > 0: + nidx = int(parts[2]) - 1 + else: + nidx = -1 + return vidx, tidx, nidx + +def read_obj(path): + with open(path, 'r') as fp: + lines = fp.readlines() + + verts = [] + colors = [] + fnorms = [] + fnorm_map = collections.defaultdict(list) + faces = [] + for line in lines: + line = line.strip() + if line.startswith('#') or len(line) == 0: + continue + + parts = line.split() + if line.startswith('v '): + parts = parts[1:] + x,y,z = float(parts[0]), float(parts[1]), float(parts[2]) + if len(parts) == 4 or len(parts) == 7: + w = float(parts[3]) + x,y,z = x/w, y/w, z/w + verts.append((x,y,z)) + if len(parts) >= 6: + r,g,b = float(parts[-3]), float(parts[-2]), float(parts[-1]) + rgb.append((r,g,b)) + + elif line.startswith('vn '): + parts = parts[1:] + x,y,z = float(parts[0]), float(parts[1]), float(parts[2]) + fnorms.append((x,y,z)) + + elif line.startswith('f '): + parts = parts[1:] + if len(parts) != 3: + raise Exception('only triangle meshes supported atm') + vidx0, tidx0, nidx0 = _read_obj_split_f(parts[0]) + vidx1, tidx1, nidx1 = _read_obj_split_f(parts[1]) + vidx2, tidx2, nidx2 = _read_obj_split_f(parts[2]) + + faces.append((vidx0, vidx1, vidx2)) + if nidx0 >= 0: + fnorm_map[vidx0].append( nidx0 ) + if nidx1 >= 0: + fnorm_map[vidx1].append( nidx1 ) + if nidx2 >= 0: + fnorm_map[vidx2].append( nidx2 ) + + verts = np.array(verts) + colors = np.array(colors) + fnorms = np.array(fnorms) + faces = np.array(faces) + + # face normals to vertex normals + norms = np.zeros_like(verts) + for vidx in fnorm_map.keys(): + ind = fnorm_map[vidx] + norms[vidx] = fnorms[ind].sum(axis=0) + N = np.linalg.norm(norms, axis=1, keepdims=True) + np.divide(norms, N, out=norms, where=N != 0) + + return verts, faces, colors, norms diff --git a/co/metric.py b/co/metric.py new file mode 100644 index 0000000..26061da --- /dev/null +++ b/co/metric.py @@ -0,0 +1,248 @@ +import numpy as np +from . import geometry + +def _process_inputs(estimate, target, mask): + if estimate.shape != target.shape: + raise Exception('estimate and target have to be same shape') + if mask is None: + mask = np.ones(estimate.shape, dtype=np.bool) + else: + mask = mask != 0 + if estimate.shape != mask.shape: + raise Exception('estimate and mask have to be same shape') + return estimate, target, mask + +def mse(estimate, target, mask=None): + estimate, target, mask = _process_inputs(estimate, target, mask) + m = np.sum((estimate[mask] - target[mask])**2) / mask.sum() + return m + +def rmse(estimate, target, mask=None): + return np.sqrt(mse(estimate, target, mask)) + +def mae(estimate, target, mask=None): + estimate, target, mask = _process_inputs(estimate, target, mask) + m = np.abs(estimate[mask] - target[mask]).sum() / mask.sum() + return m + +def outlier_fraction(estimate, target, mask=None, threshold=0): + estimate, target, mask = _process_inputs(estimate, target, mask) + diff = np.abs(estimate[mask] - target[mask]) + m = (diff > threshold).sum() / mask.sum() + return m + + +class Metric(object): + def __init__(self, str_prefix=''): + self.str_prefix = str_prefix + self.reset() + + def reset(self): + pass + + def add(self, es, ta, ma=None): + pass + + def get(self): + return {} + + def items(self): + return self.get().items() + + def __str__(self): + return ', '.join([f'{self.str_prefix}{key}={value:.5f}' for key, value in self.get().items()]) + +class MultipleMetric(Metric): + def __init__(self, *metrics, **kwargs): + self.metrics = [*metrics] + super().__init__(**kwargs) + + def reset(self): + for m in self.metrics: + m.reset() + + def add(self, es, ta, ma=None): + for m in self.metrics: + m.add(es, ta, ma) + + def get(self): + ret = {} + for m in self.metrics: + vals = m.get() + for k in vals: + ret[k] = vals[k] + return ret + + def __str__(self): + return '\n'.join([str(m) for m in self.metrics]) + +class BaseDistanceMetric(Metric): + def __init__(self, name='', **kwargs): + super().__init__(**kwargs) + self.name = name + + def reset(self): + self.dists = [] + + def add(self, es, ta, ma=None): + pass + + def get(self): + dists = np.hstack(self.dists) + return { + f'dist{self.name}_mean': float(np.mean(dists)), + f'dist{self.name}_std': float(np.std(dists)), + f'dist{self.name}_median': float(np.median(dists)), + f'dist{self.name}_q10': float(np.percentile(dists, 10)), + f'dist{self.name}_q90': float(np.percentile(dists, 90)), + f'dist{self.name}_min': float(np.min(dists)), + f'dist{self.name}_max': float(np.max(dists)), + } + +class DistanceMetric(BaseDistanceMetric): + def __init__(self, vec_length, p=2, **kwargs): + super().__init__(name=f'{p}', **kwargs) + self.vec_length = vec_length + self.p = p + + def add(self, es, ta, ma=None): + if es.shape != ta.shape or es.shape[1] != self.vec_length or es.ndim != 2: + print(es.shape, ta.shape) + raise Exception('es and ta have to be of shape Nxdim') + if ma is not None: + es = es[ma != 0] + ta = ta[ma != 0] + dist = np.linalg.norm(es - ta, ord=self.p, axis=1) + self.dists.append( dist ) + +class OutlierFractionMetric(DistanceMetric): + def __init__(self, thresholds, *args, **kwargs): + super().__init__(*args, **kwargs) + self.thresholds = thresholds + + def get(self): + dists = np.hstack(self.dists) + ret = {} + for t in self.thresholds: + ma = dists > t + ret[f'of{t}'] = float(ma.sum() / ma.size) + return ret + +class RelativeDistanceMetric(BaseDistanceMetric): + def __init__(self, vec_length, p=2, **kwargs): + super().__init__(name=f'rel{p}', **kwargs) + self.vec_length = vec_length + self.p = p + + def add(self, es, ta, ma=None): + if es.shape != ta.shape or es.shape[1] != self.vec_length or es.ndim != 2: + raise Exception('es and ta have to be of shape Nxdim') + dist = np.linalg.norm(es - ta, ord=self.p, axis=1) + denom = np.linalg.norm(ta, ord=self.p, axis=1) + dist /= denom + if ma is not None: + dist = dist[ma != 0] + self.dists.append( dist ) + +class RotmDistanceMetric(BaseDistanceMetric): + def __init__(self, type='identity', **kwargs): + super().__init__(name=type, **kwargs) + self.type = type + + def add(self, es, ta, ma=None): + if es.shape != ta.shape or es.shape[1] != 3 or es.shape[2] != 3 or es.ndim != 3: + print(es.shape, ta.shape) + raise Exception('es and ta have to be of shape Nx3x3') + if ma is not None: + raise Exception('mask is not implemented') + if self.type == 'identity': + self.dists.append( geometry.rotm_distance_identity(es, ta) ) + elif self.type == 'geodesic': + self.dists.append( geometry.rotm_distance_geodesic_unit_sphere(es, ta) ) + else: + raise Exception('invalid distance type') + +class QuaternionDistanceMetric(BaseDistanceMetric): + def __init__(self, type='angle', **kwargs): + super().__init__(name=type, **kwargs) + self.type = type + + def add(self, es, ta, ma=None): + if es.shape != ta.shape or es.shape[1] != 4 or es.ndim != 2: + print(es.shape, ta.shape) + raise Exception('es and ta have to be of shape Nx4') + if ma is not None: + raise Exception('mask is not implemented') + if self.type == 'angle': + self.dists.append( geometry.quat_distance_angle(es, ta) ) + elif self.type == 'mineucl': + self.dists.append( geometry.quat_distance_mineucl(es, ta) ) + elif self.type == 'normdiff': + self.dists.append( geometry.quat_distance_normdiff(es, ta) ) + else: + raise Exception('invalid distance type') + + +class BinaryAccuracyMetric(Metric): + def __init__(self, thresholds=np.linspace(0.0, 1.0, num=101, dtype=np.float64)[:-1], **kwargs): + self.thresholds = thresholds + super().__init__(**kwargs) + + def reset(self): + self.tps = [0 for wp in self.thresholds] + self.fps = [0 for wp in self.thresholds] + self.fns = [0 for wp in self.thresholds] + self.tns = [0 for wp in self.thresholds] + self.n_pos = 0 + self.n_neg = 0 + + def add(self, es, ta, ma=None): + if ma is not None: + raise Exception('mask is not implemented') + es = es.ravel() + ta = ta.ravel() + if es.shape[0] != ta.shape[0]: + raise Exception('invalid shape of es, or ta') + if es.min() < 0 or es.max() > 1: + raise Exception('estimate has wrong value range') + ta_p = (ta == 1) + ta_n = (ta == 0) + es_p = es[ta_p] + es_n = es[ta_n] + for idx, wp in enumerate(self.thresholds): + wp = np.asscalar(wp) + self.tps[idx] += (es_p > wp).sum() + self.fps[idx] += (es_n > wp).sum() + self.fns[idx] += (es_p <= wp).sum() + self.tns[idx] += (es_n <= wp).sum() + self.n_pos += ta_p.sum() + self.n_neg += ta_n.sum() + + def get(self): + tps = np.array(self.tps).astype(np.float32) + fps = np.array(self.fps).astype(np.float32) + fns = np.array(self.fns).astype(np.float32) + tns = np.array(self.tns).astype(np.float32) + wp = self.thresholds + + ret = {} + + precisions = np.divide(tps, tps + fps, out=np.zeros_like(tps), where=tps + fps != 0) + recalls = np.divide(tps, tps + fns, out=np.zeros_like(tps), where=tps + fns != 0) # tprs + fprs = np.divide(fps, fps + tns, out=np.zeros_like(tps), where=fps + tns != 0) + + precisions = np.r_[0, precisions, 1] + recalls = np.r_[1, recalls, 0] + fprs = np.r_[1, fprs, 0] + + ret['auc'] = float(-np.trapz(recalls, fprs)) + ret['prauc'] = float(-np.trapz(precisions, recalls)) + ret['ap'] = float(-(np.diff(recalls) * precisions[:-1]).sum()) + + accuracies = np.divide(tps + tns, tps + tns + fps + fns) + aacc = np.mean(accuracies) + for t in np.linspace(0,1,num=11)[1:-1]: + idx = np.argmin(np.abs(t - wp)) + ret[f'acc{wp[idx]:.2f}'] = float(accuracies[idx]) + + return ret diff --git a/co/plt.py b/co/plt.py new file mode 100644 index 0000000..200ba25 --- /dev/null +++ b/co/plt.py @@ -0,0 +1,99 @@ +import numpy as np +import matplotlib as mpl +from matplotlib import _pylab_helpers +from matplotlib.rcsetup import interactive_bk as _interactive_bk +import matplotlib.pyplot as plt +import os +import time + +def save(path, remove_axis=False, dpi=300, fig=None): + if fig is None: + fig = plt.gcf() + dirname = os.path.dirname(path) + if dirname != '' and not os.path.exists(dirname): + os.makedirs(dirname) + if remove_axis: + for ax in fig.axes: + ax.axis('off') + ax.margins(0,0) + fig.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0) + for ax in fig.axes: + ax.xaxis.set_major_locator(plt.NullLocator()) + ax.yaxis.set_major_locator(plt.NullLocator()) + fig.savefig(path, dpi=dpi, bbox_inches='tight', pad_inches=0) + +def color_map(im_, cmap='viridis', vmin=None, vmax=None): + cm = plt.get_cmap(cmap) + im = im_.copy() + if vmin is None: + vmin = np.nanmin(im) + if vmax is None: + vmax = np.nanmax(im) + mask = np.logical_not(np.isfinite(im)) + im[mask] = vmin + im = (im.clip(vmin, vmax) - vmin) / (vmax - vmin) + im = cm(im) + im = im[...,:3] + for c in range(3): + im[mask, c] = 1 + return im + +def interactive_legend(leg=None, fig=None, all_axes=True): + if leg is None: + leg = plt.legend() + if fig is None: + fig = plt.gcf() + if all_axes: + axs = fig.get_axes() + else: + axs = [fig.gca()] + + # lined = dict() + # lines = ax.lines + # for legline, origline in zip(leg.get_lines(), ax.lines): + # legline.set_picker(5) + # lined[legline] = origline + lined = dict() + for lidx, legline in enumerate(leg.get_lines()): + legline.set_picker(5) + lined[legline] = [ax.lines[lidx] for ax in axs] + + def onpick(event): + if event.mouseevent.dblclick: + tmp = [(k,v) for k,v in lined.items()] + else: + tmp = [(event.artist, lined[event.artist])] + + for legline, origline in tmp: + for ol in origline: + vis = not ol.get_visible() + ol.set_visible(vis) + if vis: + legline.set_alpha(1.0) + else: + legline.set_alpha(0.2) + fig.canvas.draw() + + fig.canvas.mpl_connect('pick_event', onpick) + +def non_annoying_pause(interval, focus_figure=False): + # https://github.com/matplotlib/matplotlib/issues/11131 + backend = mpl.rcParams['backend'] + if backend in _interactive_bk: + figManager = _pylab_helpers.Gcf.get_active() + if figManager is not None: + canvas = figManager.canvas + if canvas.figure.stale: + canvas.draw() + if focus_figure: + plt.show(block=False) + canvas.start_event_loop(interval) + return + time.sleep(interval) + +def remove_all_ticks(fig=None): + if fig is None: + fig = plt.gcf() + for ax in fig.axes: + ax.axes.get_xaxis().set_visible(False) + ax.axes.get_yaxis().set_visible(False) diff --git a/co/plt2d.py b/co/plt2d.py new file mode 100644 index 0000000..de38aa1 --- /dev/null +++ b/co/plt2d.py @@ -0,0 +1,57 @@ +import numpy as np +import matplotlib.pyplot as plt + +from . import geometry + +def image_matrix(ims, bgval=0): + n = ims.shape[0] + m = int( np.ceil(np.sqrt(n)) ) + h = ims.shape[1] + w = ims.shape[2] + mat = np.empty((m*h, m*w), dtype=ims.dtype) + mat.fill(bgval) + idx = 0 + for r in range(m): + for c in range(m): + if idx < n: + mat[r*h:(r+1)*h, c*w:(c+1)*w] = ims[idx] + idx += 1 + return mat + +def image_cat(ims, vertical=False): + offx = [0] + offy = [0] + if vertical: + width = max([im.shape[1] for im in ims]) + offx += [0 for im in ims[:-1]] + offy += [im.shape[0] for im in ims[:-1]] + height = sum([im.shape[0] for im in ims]) + else: + height = max([im.shape[0] for im in ims]) + offx += [im.shape[1] for im in ims[:-1]] + offy += [0 for im in ims[:-1]] + width = sum([im.shape[1] for im in ims]) + offx = np.cumsum(offx) + offy = np.cumsum(offy) + + im = np.zeros((height,width,*ims[0].shape[2:]), dtype=ims[0].dtype) + for im0, ox, oy in zip(ims, offx, offy): + im[oy:oy + im0.shape[0], ox:ox + im0.shape[1]] = im0 + + return im, offx, offy + +def line(li, h, w, ax=None, *args, **kwargs): + if ax is None: + ax = plt.gca() + xs = (-li[2] - li[1] * np.array((0, h-1))) / li[0] + ys = (-li[2] - li[0] * np.array((0, w-1))) / li[1] + pts = np.array([(0,ys[0]), (w-1, ys[1]), (xs[0], 0), (xs[1], h-1)]) + pts = pts[np.logical_and(np.logical_and(pts[:,0] >= 0, pts[:,0] < w), np.logical_and(pts[:,1] >= 0, pts[:,1] < h))] + ax.plot(pts[:,0], pts[:,1], *args, **kwargs) + +def depthshow(depth, *args, ax=None, **kwargs): + if ax is None: + ax = plt.gca() + d = depth.copy() + d[d < 0] = np.NaN + ax.imshow(d, *args, **kwargs) diff --git a/co/plt3d.py b/co/plt3d.py new file mode 100644 index 0000000..8c3eb1c --- /dev/null +++ b/co/plt3d.py @@ -0,0 +1,38 @@ +import numpy as np +import matplotlib.pyplot as plt +from mpl_toolkits.mplot3d import Axes3D + +from . import geometry + +def ax3d(fig=None): + if fig is None: + fig = plt.gcf() + return fig.add_subplot(111, projection='3d') + +def plot_camera(ax=None, R=np.eye(3), t=np.zeros((3,)), size=25, marker_C='.', color='b', linestyle='-', linewidth=0.1, label=None, **kwargs): + if ax is None: + ax = plt.gca() + C0 = geometry.translation_to_cameracenter(R, t).ravel() + C1 = C0 + R.T.dot( np.array([[-size],[-size],[3*size]], dtype=np.float32) ).ravel() + C2 = C0 + R.T.dot( np.array([[-size],[+size],[3*size]], dtype=np.float32) ).ravel() + C3 = C0 + R.T.dot( np.array([[+size],[+size],[3*size]], dtype=np.float32) ).ravel() + C4 = C0 + R.T.dot( np.array([[+size],[-size],[3*size]], dtype=np.float32) ).ravel() + + if marker_C != '': + ax.plot([C0[0]], [C0[1]], [C0[2]], marker=marker_C, color=color, label=label, **kwargs) + ax.plot([C0[0], C1[0]], [C0[1], C1[1]], [C0[2], C1[2]], color=color, label='_nolegend_', linestyle=linestyle, linewidth=linewidth, **kwargs) + ax.plot([C0[0], C2[0]], [C0[1], C2[1]], [C0[2], C2[2]], color=color, label='_nolegend_', linestyle=linestyle, linewidth=linewidth, **kwargs) + ax.plot([C0[0], C3[0]], [C0[1], C3[1]], [C0[2], C3[2]], color=color, label='_nolegend_', linestyle=linestyle, linewidth=linewidth, **kwargs) + ax.plot([C0[0], C4[0]], [C0[1], C4[1]], [C0[2], C4[2]], color=color, label='_nolegend_', linestyle=linestyle, linewidth=linewidth, **kwargs) + ax.plot([C1[0], C2[0], C3[0], C4[0], C1[0]], [C1[1], C2[1], C3[1], C4[1], C1[1]], [C1[2], C2[2], C3[2], C4[2], C1[2]], color=color, label='_nolegend_', linestyle=linestyle, linewidth=linewidth, **kwargs) + +def axis_equal(ax=None): + if ax is None: + ax = plt.gca() + extents = np.array([getattr(ax, 'get_{}lim'.format(dim))() for dim in 'xyz']) + sz = extents[:,1] - extents[:,0] + centers = np.mean(extents, axis=1) + maxsize = max(abs(sz)) + r = maxsize/2 + for ctr, dim in zip(centers, 'xyz'): + getattr(ax, 'set_{}lim'.format(dim))(ctr - r, ctr + r) diff --git a/co/table.py b/co/table.py new file mode 100644 index 0000000..7b45aae --- /dev/null +++ b/co/table.py @@ -0,0 +1,445 @@ +import numpy as np +import pandas as pd +import enum +import itertools + +class Table(object): + def __init__(self, n_cols): + self.n_cols = n_cols + self.rows = [] + self.aligns = ['r' for c in range(n_cols)] + + def get_cell_align(self, r, c): + align = self.rows[r].cells[c].align + if align is None: + return self.aligns[c] + else: + return align + + def add_row(self, row): + if row.ncols() != self.n_cols: + raise Exception(f'row has invalid number of cols, {row.ncols()} vs. {self.n_cols}') + self.rows.append(row) + + def empty_row(self): + return Row.Empty(self.n_cols) + + def expand_rows(self, n_add_cols=1): + if n_add_cols < 0: raise Exception('n_add_cols has to be positive') + self.n_cols += n_add_cols + for row in self.rows: + row.cells.extend([Cell() for cidx in range(n_add_cols)]) + + def add_block(self, data, row=-1, col=0, fmt=None, expand=False): + if row < 0: row = len(self.rows) + while len(self.rows) < row + len(data): + self.add_row(self.empty_row()) + for r in range(len(data)): + cols = data[r] + if col + len(cols) > self.n_cols: + if expand: + self.expand_rows(col + len(cols) - self.n_cols) + else: + raise Exception('number of cols does not fit in table') + for c in range(len(cols)): + self.rows[row+r].cells[col+c] = Cell(data[r][c], fmt) + +class Row(object): + def __init__(self, cells, pre_separator=None, post_separator=None): + self.cells = cells + self.pre_separator = pre_separator + self.post_separator = post_separator + + @classmethod + def Empty(cls, n_cols): + return Row([Cell() for c in range(n_cols)]) + + def add_cell(self, cell): + self.cells.append(cell) + + def ncols(self): + return sum([c.span for c in self.cells]) + + + +class Color(object): + def __init__(self, color=(0,0,0), fmt='rgb'): + if fmt == 'rgb': + self.color = color + elif fmt == 'RGB': + self.color = tuple(c / 255 for c in color) + else: + return Exception('invalid color format') + + def as_rgb(self): + return self.color + + def as_RGB(self): + return tuple(int(c * 255) for c in self.color) + + @classmethod + def rgb(cls, r, g, b): + return Color(color=(r,g,b), fmt='rgb') + + @classmethod + def RGB(cls, r, g, b): + return Color(color=(r,g,b), fmt='RGB') + + +class CellFormat(object): + def __init__(self, fmt='%s', fgcolor=None, bgcolor=None, bold=False): + self.fmt = fmt + self.fgcolor = fgcolor + self.bgcolor = bgcolor + self.bold = bold + +class Cell(object): + def __init__(self, data=None, fmt=None, span=1, align=None): + self.data = data + if fmt is None: + fmt = CellFormat() + self.fmt = fmt + self.span = span + self.align = align + + def __str__(self): + return self.fmt.fmt % self.data + +class Separator(enum.Enum): + HEAD = 1 + BOTTOM = 2 + INNER = 3 + + +class Renderer(object): + def __init__(self): + pass + + def cell_str_len(self, cell): + return len(str(cell)) + + def col_widths(self, table): + widths = [0 for c in range(table.n_cols)] + for row in table.rows: + cidx = 0 + for cell in row.cells: + if cell.span == 1: + strlen = self.cell_str_len(cell) + widths[cidx] = max(widths[cidx], strlen) + cidx += cell.span + return widths + + def render(self, table): + raise NotImplementedError('not implemented') + + def __call__(self, table): + return self.render(table) + + def render_to_file_comment(self): + return '' + + def render_to_file(self, path, table): + txt = self.render(table) + with open(path, 'w') as fp: + fp.write(txt) + +class TerminalRenderer(Renderer): + def __init__(self, col_sep=' '): + super().__init__() + self.col_sep = col_sep + + def render_cell(self, table, row, col, widths): + cell = table.rows[row].cells[col] + str = cell.fmt.fmt % cell.data + str_width = len(str) + cell_width = sum([widths[idx] for idx in range(col, col+cell.span)]) + cell_width += len(self.col_sep) * (cell.span - 1) + if len(str) > cell_width: + str = str[:cell_width] + if cell.fmt.bold: + # str = sty.ef.bold + str + sty.rs.bold_dim + # str = sty.ef.bold + str + sty.rs.bold + pass + if cell.fmt.fgcolor is not None: + # color = cell.fmt.fgcolor.as_RGB() + # str = sty.fg(*color) + str + sty.rs.fg + pass + if str_width < cell_width: + n_ws = (cell_width - str_width) + if table.get_cell_align(row, col) == 'r': + str = ' '*n_ws + str + elif table.get_cell_align(row, col) == 'l': + str = str + ' '*n_ws + elif table.get_cell_align(row, col) == 'c': + n_ws1 = n_ws // 2 + n_ws0 = n_ws - n_ws1 + str = ' '*n_ws0 + str + ' '*n_ws1 + if cell.fmt.bgcolor is not None: + # color = cell.fmt.bgcolor.as_RGB() + # str = sty.bg(*color) + str + sty.rs.bg + pass + return str + + def render_separator(self, separator, tab, col_widths, total_width): + if separator == Separator.HEAD: + return '='*total_width + elif separator == Separator.INNER: + return '-'*total_width + elif separator == Separator.BOTTOM: + return '='*total_width + + def render(self, table): + widths = self.col_widths(table) + total_width = sum(widths) + len(self.col_sep) * (table.n_cols - 1) + lines = [] + for ridx, row in enumerate(table.rows): + if row.pre_separator is not None: + sepline = self.render_separator(row.pre_separator, table, widths, total_width) + if len(sepline) > 0: + lines.append(sepline) + line = [] + for cidx, cell in enumerate(row.cells): + line.append(self.render_cell(table, ridx, cidx, widths)) + lines.append(self.col_sep.join(line)) + if row.post_separator is not None: + sepline = self.render_separator(row.post_separator, table, widths, total_width) + if len(sepline) > 0: + lines.append(sepline) + return '\n'.join(lines) + +class MarkdownRenderer(TerminalRenderer): + def __init__(self): + super().__init__(col_sep='|') + self.printed_color_warning = False + + def print_color_warning(self): + if not self.printed_color_warning: + print('[WARNING] MarkdownRenderer does not support color yet') + self.printed_color_warning = True + + def cell_str_len(self, cell): + strlen = len(str(cell)) + if cell.fmt.bold: + strlen += 4 + strlen = max(5, strlen) + return strlen + + def render_cell(self, table, row, col, widths): + cell = table.rows[row].cells[col] + str = cell.fmt.fmt % cell.data + if cell.fmt.bold: + str = f'**{str}**' + + str_width = len(str) + cell_width = sum([widths[idx] for idx in range(col, col+cell.span)]) + cell_width += len(self.col_sep) * (cell.span - 1) + if len(str) > cell_width: + str = str[:cell_width] + else: + n_ws = (cell_width - str_width) + if table.get_cell_align(row, col) == 'r': + str = ' '*n_ws + str + elif table.get_cell_align(row, col) == 'l': + str = str + ' '*n_ws + elif table.get_cell_align(row, col) == 'c': + n_ws1 = n_ws // 2 + n_ws0 = n_ws - n_ws1 + str = ' '*n_ws0 + str + ' '*n_ws1 + + if col == 0: str = self.col_sep + str + if col == table.n_cols - 1: str += self.col_sep + + if cell.fmt.fgcolor is not None: + self.print_color_warning() + if cell.fmt.bgcolor is not None: + self.print_color_warning() + return str + + def render_separator(self, separator, tab, widths, total_width): + sep = '' + if separator == Separator.INNER: + sep = self.col_sep + for idx, width in enumerate(widths): + csep = '-' * (width - 2) + if tab.get_cell_align(1, idx) == 'r': + csep = '-' + csep + ':' + elif tab.get_cell_align(1, idx) == 'l': + csep = ':' + csep + '-' + elif tab.get_cell_align(1, idx) == 'c': + csep = ':' + csep + ':' + sep += csep + self.col_sep + return sep + + +class LatexRenderer(Renderer): + def __init__(self): + super().__init__() + + def render_cell(self, table, row, col): + cell = table.rows[row].cells[col] + str = cell.fmt.fmt % cell.data + if cell.fmt.bold: + str = '{\\bf '+ str + '}' + if cell.fmt.fgcolor is not None: + color = cell.fmt.fgcolor.as_rgb() + str = f'{{\\color[rgb]{{{color[0]},{color[1]},{color[2]}}} ' + str + '}' + if cell.fmt.bgcolor is not None: + color = cell.fmt.bgcolor.as_rgb() + str = f'\\cellcolor[rgb]{{{color[0]},{color[1]},{color[2]}}} ' + str + align = table.get_cell_align(row, col) + if cell.span != 1 or align != table.aligns[col]: + str = f'\\multicolumn{{{cell.span}}}{{{align}}}{{{str}}}' + return str + + def render_separator(self, separator): + if separator == Separator.HEAD: + return '\\toprule' + elif separator == Separator.INNER: + return '\\midrule' + elif separator == Separator.BOTTOM: + return '\\bottomrule' + + def render(self, table): + lines = ['\\begin{tabular}{' + ''.join(table.aligns) + '}'] + for ridx, row in enumerate(table.rows): + if row.pre_separator is not None: + lines.append(self.render_separator(row.pre_separator)) + line = [] + for cidx, cell in enumerate(row.cells): + line.append(self.render_cell(table, ridx, cidx)) + lines.append(' & '.join(line) + ' \\\\') + if row.post_separator is not None: + lines.append(self.render_separator(row.post_separator)) + lines.append('\\end{tabular}') + return '\n'.join(lines) + +class HtmlRenderer(Renderer): + def __init__(self, html_class='result_table'): + super().__init__() + self.html_class = html_class + + def render_cell(self, table, row, col): + cell = table.rows[row].cells[col] + str = cell.fmt.fmt % cell.data + styles = [] + if cell.fmt.bold: + styles.append('font-weight: bold;') + if cell.fmt.fgcolor is not None: + color = cell.fmt.fgcolor.as_RGB() + styles.append(f'color: rgb({color[0]},{color[1]},{color[2]});') + if cell.fmt.bgcolor is not None: + color = cell.fmt.bgcolor.as_RGB() + styles.append(f'background-color: rgb({color[0]},{color[1]},{color[2]});') + align = table.get_cell_align(row, col) + if align == 'l': align = 'left' + elif align == 'r': align = 'right' + elif align == 'c': align = 'center' + else: raise Exception('invalid align') + styles.append(f'text-align: {align};') + row = table.rows[row] + if row.pre_separator is not None: + styles.append(f'border-top: {self.render_separator(row.pre_separator)};') + if row.post_separator is not None: + styles.append(f'border-bottom: {self.render_separator(row.post_separator)};') + style = ' '.join(styles) + str = f' {str}\n' + return str + + def render_separator(self, separator): + if separator == Separator.HEAD: + return '1.5pt solid black' + elif separator == Separator.INNER: + return '0.75pt solid black' + elif separator == Separator.BOTTOM: + return '1.5pt solid black' + + def render(self, table): + lines = [f''] + for ridx, row in enumerate(table.rows): + line = [f' \n'] + for cidx, cell in enumerate(row.cells): + line.append(self.render_cell(table, ridx, cidx)) + line.append(' \n') + lines.append(' '.join(line)) + lines.append('
') + return '\n'.join(lines) + + +def pandas_to_table(rowname, colname, valname, data, val_cell_fmt=CellFormat(fmt='%.4f'), best_val_cell_fmt=CellFormat(fmt='%.4f', bold=True), best_is_max=[]): + rnames = data[rowname].unique() + cnames = data[colname].unique() + tab = Table(1+len(cnames)) + + header = [Cell('', align='r')] + header.extend([Cell(h, align='r') for h in cnames]) + header = Row(header, pre_separator=Separator.HEAD, post_separator=Separator.INNER) + tab.add_row(header) + + for rname in rnames: + cells = [Cell(rname, align='l')] + for cname in cnames: + cdata = data[data[colname] == cname] + if cname in best_is_max: + bestval = cdata[valname].max() + val = cdata[cdata[rowname] == rname][valname].max() + else: + bestval = cdata[valname].min() + val = cdata[cdata[rowname] == rname][valname].min() + if val == bestval: + fmt = best_val_cell_fmt + else: + fmt = val_cell_fmt + cells.append(Cell(val, align='r', fmt=fmt)) + tab.add_row(Row(cells)) + tab.rows[-1].post_separator = Separator.BOTTOM + return tab + + + +if __name__ == '__main__': + # df = pd.read_pickle('full.df') + # best_is_max = ['movF0.5', 'movF1.0'] + # tab = pandas_to_table(rowname='method', colname='metric', valname='val', data=df, best_is_max=best_is_max) + + # renderer = TerminalRenderer() + # print(renderer(tab)) + + tab = Table(7) + # header = Row([Cell('header', span=7, align='c')], pre_separator=Separator.HEAD, post_separator=Separator.INNER) + # tab.add_row(header) + # header2 = Row([Cell('thisisaverylongheader', span=4, align='c'), Cell('vals2', span=3, align='c')], post_separator=Separator.INNER) + # tab.add_row(header2) + tab.add_row(Row([Cell(f'c{c}') for c in range(7)])) + tab.rows[-1].post_separator = Separator.INNER + tab.add_block(np.arange(15*7).reshape(15,7)) + tab.rows[4].cells[2].fmt = CellFormat(bold=True) + tab.rows[2].cells[1].fmt = CellFormat(fgcolor=Color.rgb(0.2,0.6,0.1)) + tab.rows[2].cells[2].fmt = CellFormat(bgcolor=Color.rgb(0.7,0.1,0.5)) + tab.rows[5].cells[3].fmt = CellFormat(bold=True,bgcolor=Color.rgb(0.7,0.1,0.5),fgcolor=Color.rgb(0.1,0.1,0.1)) + tab.rows[-1].post_separator = Separator.BOTTOM + + renderer = TerminalRenderer() + print(renderer(tab)) + renderer = MarkdownRenderer() + print(renderer(tab)) + + # renderer = HtmlRenderer() + # html_tab = renderer(tab) + # print(html_tab) + # with open('test.html', 'w') as fp: + # fp.write(html_tab) + + # import latex + + # renderer = LatexRenderer() + # ltx_tab = renderer(tab) + # print(ltx_tab) + + # with open('test.tex', 'w') as fp: + # latex.write_doc_prefix(fp, document_class='article') + # fp.write('this is text that should appear before the table and should be long enough to wrap around.\n'*40) + # fp.write('\\begin{table}') + # fp.write(ltx_tab) + # fp.write('\\end{table}') + # fp.write('this is text that should appear after the table and should be long enough to wrap around.\n'*40) + # latex.write_doc_suffix(fp) diff --git a/co/utils.py b/co/utils.py new file mode 100644 index 0000000..c113e72 --- /dev/null +++ b/co/utils.py @@ -0,0 +1,86 @@ +import numpy as np +import pandas as pd +import time +from collections import OrderedDict +import argparse +import os +import re +import pickle +import subprocess + +def str2bool(v): + if v.lower() in ('yes', 'true', 't', 'y', '1'): + return True + elif v.lower() in ('no', 'false', 'f', 'n', '0'): + return False + else: + raise argparse.ArgumentTypeError('Boolean value expected.') + +class StopWatch(object): + def __init__(self): + self.timings = OrderedDict() + self.starts = {} + + def start(self, name): + self.starts[name] = time.time() + + def stop(self, name): + if name not in self.timings: + self.timings[name] = [] + self.timings[name].append(time.time() - self.starts[name]) + + def get(self, name=None, reduce=np.sum): + if name is not None: + return reduce(self.timings[name]) + else: + ret = {} + for k in self.timings: + ret[k] = reduce(self.timings[k]) + return ret + + def __repr__(self): + return ', '.join(['%s: %f[s]' % (k,v) for k,v in self.get().items()]) + def __str__(self): + return ', '.join(['%s: %f[s]' % (k,v) for k,v in self.get().items()]) + +class ETA(object): + def __init__(self, length): + self.length = length + self.start_time = time.time() + self.current_idx = 0 + self.current_time = time.time() + + def update(self, idx): + self.current_idx = idx + self.current_time = time.time() + + def get_elapsed_time(self): + return self.current_time - self.start_time + + def get_item_time(self): + return self.get_elapsed_time() / (self.current_idx + 1) + + def get_remaining_time(self): + return self.get_item_time() * (self.length - self.current_idx + 1) + + def format_time(self, seconds): + minutes, seconds = divmod(seconds, 60) + hours, minutes = divmod(minutes, 60) + hours = int(hours) + minutes = int(minutes) + return f'{hours:02d}:{minutes:02d}:{seconds:05.2f}' + + def get_elapsed_time_str(self): + return self.format_time(self.get_elapsed_time()) + + def get_remaining_time_str(self): + return self.format_time(self.get_remaining_time()) + +def git_hash(cwd=None): + ret = subprocess.run(['git', 'describe', '--always'], cwd=cwd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + hash = ret.stdout + if hash is not None and 'fatal' not in hash.decode(): + return hash.decode().strip() + else: + return None + diff --git a/config.json b/config.json new file mode 100644 index 0000000..a3aeebd --- /dev/null +++ b/config.json @@ -0,0 +1,5 @@ +{ + "CUDA_LIBRARY_DIR": "/usr/local/cuda/lib64", + "DATA_ROOT": "/path/to/where/to/store/data/", + "SHAPENET_ROOT": "/path/to/shapenet/dataset" +} diff --git a/create_syn_data.sh b/create_syn_data.sh new file mode 100755 index 0000000..356514d --- /dev/null +++ b/create_syn_data.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +cd data/lcn +python setup.py build_ext --inplace + +cd ../ +python create_syn_data.py diff --git a/data/__init__.py b/data/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/data/commons.py b/data/commons.py new file mode 100644 index 0000000..da88ca9 --- /dev/null +++ b/data/commons.py @@ -0,0 +1,110 @@ +import co +import numpy as np +import cv2 + + +def get_patterns(path='syn', imsizes=[], crop=True): + pattern_size = imsizes[0] + if path == 'syn': + np.random.seed(42) + pattern = np.random.uniform(0,1, size=pattern_size) + pattern = (pattern < 0.1).astype(np.float32) + pattern.reshape(*imsizes[0]) + else: + pattern = cv2.imread(path) + pattern = pattern.astype(np.float32) + pattern /= 255 + + if pattern.ndim == 2: + pattern = np.stack([pattern for idx in range(3)], axis=2) + + if crop and pattern.shape[0] > pattern_size[0] and pattern.shape[1] > pattern_size[1]: + r0 = (pattern.shape[0] - pattern_size[0]) // 2 + c0 = (pattern.shape[1] - pattern_size[1]) // 2 + pattern = pattern[r0:r0+imsizes[0][0], c0:c0+imsizes[0][1]] + + patterns = [] + for imsize in imsizes: + pat = cv2.resize(pattern, (imsize[1],imsize[0]), interpolation=cv2.INTER_LINEAR) + patterns.append(pat) + + return patterns + +def get_rotation_matrix(v0, v1): + v0 = v0/np.linalg.norm(v0) + v1 = v1/np.linalg.norm(v1) + v = np.cross(v0,v1) + c = np.dot(v0,v1) + s = np.linalg.norm(v) + I = np.eye(3) + vXStr = '{} {} {}; {} {} {}; {} {} {}'.format(0, -v[2], v[1], v[2], 0, -v[0], -v[1], v[0], 0) + k = np.matrix(vXStr) + r = I + k + k @ k * ((1 -c)/(s**2)) + return np.asarray(r.astype(np.float32)) + + +def augment_image(img,rng,disp=None,grad=None,max_shift=64,max_blur=1.5,max_noise=10.0,max_sp_noise=0.001): + + # get min/max values of image + min_val = np.min(img) + max_val = np.max(img) + + # init augmented image + img_aug = img + + # init disparity correction map + disp_aug = disp + grad_aug = grad + + # apply affine transformation + if max_shift>1: + + # affine parameters + rows,cols = img.shape + shear = 0 + shift = 0 + shear_correction = 0 + if rng.uniform(0,1)<0.75: shear = rng.uniform(-max_shift,max_shift) # shear with 75% probability + else: shift = rng.uniform(0,max_shift) # shift with 25% probability + if shear<0: shear_correction = -shear + + # affine transformation + a = shear/float(rows) + b = shift+shear_correction + + # warp image + T = np.float32([[1,a,b],[0,1,0]]) + img_aug = cv2.warpAffine(img_aug,T,(cols,rows)) + if grad is not None: + grad_aug = cv2.warpAffine(grad,T,(cols,rows)) + + # disparity correction map + col = a*np.array(range(rows))+b + disp_delta = np.tile(col,(cols,1)).transpose() + if disp is not None: + disp_aug = cv2.warpAffine(disp+disp_delta,T,(cols,rows)) + + # gaussian smoothing + if rng.uniform(0,1)<0.5: + img_aug = cv2.GaussianBlur(img_aug,(5,5),rng.uniform(0.2,max_blur)) + + # per-pixel gaussian noise + img_aug = img_aug + rng.randn(*img_aug.shape)*rng.uniform(0.0,max_noise)/255.0 + + # salt-and-pepper noise + if rng.uniform(0,1)<0.5: + ratio=rng.uniform(0.0,max_sp_noise) + img_shape = img_aug.shape + img_aug = img_aug.flatten() + coord = rng.choice(np.size(img_aug), int(np.size(img_aug)*ratio)) + img_aug[coord] = max_val + coord = rng.choice(np.size(img_aug), int(np.size(img_aug)*ratio)) + img_aug[coord] = min_val + img_aug = np.reshape(img_aug, img_shape) + + # clip intensities back to [0,1] + img_aug = np.maximum(img_aug,0.0) + img_aug = np.minimum(img_aug,1.0) + + # return image + return img_aug, disp_aug, grad_aug diff --git a/data/create_syn_data.py b/data/create_syn_data.py new file mode 100644 index 0000000..d637fd7 --- /dev/null +++ b/data/create_syn_data.py @@ -0,0 +1,259 @@ +import numpy as np +import matplotlib.pyplot as plt +import itertools +import pickle +from pathlib import Path +import multiprocessing +import time +import json +import cv2 +import os +import collections +import sys +sys.path.append('../') +import renderer +import co +from commons import get_patterns,get_rotation_matrix +from lcn import lcn + +def get_objs(shapenet_dir, obj_classes, num_perclass=100): + + shapenet = {'chair': '03001627', + 'airplane': '02691156', + 'car': '02958343', + 'watercraft': '04530566'} + + obj_paths = [] + for cls in obj_classes: + if cls not in shapenet.keys(): + raise Exception('unknown class name') + ids = shapenet[cls] + obj_path = sorted(Path(f'{shapenet_dir}/{ids}').glob('**/models/*.obj')) + obj_paths += obj_path[:num_perclass] + print(f'found {len(obj_paths)} object paths') + + objs = [] + for obj_path in obj_paths: + print(f'load {obj_path}') + v, f, _, n = co.io3d.read_obj(obj_path) + diffs = v.max(axis=0) - v.min(axis=0) + v /= (0.5 * diffs.max()) + v -= (v.min(axis=0) + 1) + f = f.astype(np.int32) + objs.append((v,f,n)) + print(f'loaded {len(objs)} objects') + + return objs + + +def get_mesh(rng, min_z=0): + # set up background board + verts, faces, normals, colors = [], [], [], [] + v, f, n = co.geometry.xyplane(z=0, interleaved=True) + v[:,2] += -v[:,2].min() + rng.uniform(2,7) + v[:,:2] *= 5e2 + v[:,2] = np.mean(v[:,2]) + (v[:,2] - np.mean(v[:,2])) * 5e2 + c = np.empty_like(v) + c[:] = rng.uniform(0,1, size=(3,)).astype(np.float32) + verts.append(v) + faces.append(f) + normals.append(n) + colors.append(c) + + # randomly sample 4 foreground objects for each scene + for shape_idx in range(4): + v, f, n = objs[rng.randint(0,len(objs))] + v, f, n = v.copy(), f.copy(), n.copy() + + s = rng.uniform(0.25, 1) + v *= s + R = co.geometry.rotm_from_quat(co.geometry.quat_random(rng=rng)) + v = v @ R.T + n = n @ R.T + v[:,2] += -v[:,2].min() + min_z + rng.uniform(0.5, 3) + v[:,:2] += rng.uniform(-1, 1, size=(1,2)) + + c = np.empty_like(v) + c[:] = rng.uniform(0,1, size=(3,)).astype(np.float32) + + verts.append(v.astype(np.float32)) + faces.append(f) + normals.append(n) + colors.append(c) + + verts, faces = co.geometry.stack_mesh(verts, faces) + normals = np.vstack(normals).astype(np.float32) + colors = np.vstack(colors).astype(np.float32) + return verts, faces, colors, normals + + +def create_data(out_root, idx, n_samples, imsize, patterns, K, baseline, blend_im, noise, track_length=4): + + tic = time.time() + rng = np.random.RandomState() + + rng.seed(idx) + + verts, faces, colors, normals = get_mesh(rng) + data = renderer.PyRenderInput(verts=verts.copy(), colors=colors.copy(), normals=normals.copy(), faces=faces.copy()) + print(f'loading mesh for sample {idx+1}/{n_samples} took {time.time()-tic}[s]') + + + # let the camera point to the center + center = np.array([0,0,3], dtype=np.float32) + + basevec = np.array([-baseline,0,0], dtype=np.float32) + unit = np.array([0,0,1],dtype=np.float32) + + cam_x_ = rng.uniform(-0.2,0.2) + cam_y_ = rng.uniform(-0.2,0.2) + cam_z_ = rng.uniform(-0.2,0.2) + + ret = collections.defaultdict(list) + blend_im_rnd = np.clip(blend_im + rng.uniform(-0.1,0.1), 0,1) + + # capture the same static scene from different view points as a track + for ind in range(track_length): + + cam_x = cam_x_ + rng.uniform(-0.1,0.1) + cam_y = cam_y_ + rng.uniform(-0.1,0.1) + cam_z = cam_z_ + rng.uniform(-0.1,0.1) + + tcam = np.array([cam_x, cam_y, cam_z], dtype=np.float32) + + if np.linalg.norm(tcam[0:2])<1e-9: + Rcam = np.eye(3, dtype=np.float32) + else: + Rcam = get_rotation_matrix(center, center-tcam) + + tproj = tcam + basevec + Rproj = Rcam + + ret['R'].append(Rcam) + ret['t'].append(tcam) + + cams = [] + projs = [] + + # render the scene at multiple scales + scales = [1, 0.5, 0.25, 0.125] + + for scale in scales: + fx = K[0,0] * scale + fy = K[1,1] * scale + px = K[0,2] * scale + py = K[1,2] * scale + im_height = imsize[0] * scale + im_width = imsize[1] * scale + cams.append( renderer.PyCamera(fx,fy,px,py, Rcam, tcam, im_width, im_height) ) + projs.append( renderer.PyCamera(fx,fy,px,py, Rproj, tproj, im_width, im_height) ) + + + for s, cam, proj, pattern in zip(itertools.count(), cams, projs, patterns): + fl = K[0,0] / (2**s) + + shader = renderer.PyShader(0.5,1.5,0.0,10) + pyrenderer = renderer.PyRenderer(cam, shader, engine='gpu') + pyrenderer.mesh_proj(data, proj, pattern, d_alpha=0, d_beta=0.35) + + # get the reflected laser pattern $R$ + im = pyrenderer.color().copy() + depth = pyrenderer.depth().copy() + disp = baseline * fl / depth + mask = depth > 0 + im = np.mean(im, axis=2) + + # get the ambient image $A$ + ambient = pyrenderer.normal().copy() + ambient = np.mean(ambient, axis=2) + + # get the noise free IR image $J$ + im = blend_im_rnd * im + (1 - blend_im_rnd) * ambient + ret[f'ambient{s}'].append( ambient[None].astype(np.float32) ) + + # get the gradient magnitude of the ambient image $|\nabla A|$ + ambient = ambient.astype(np.float32) + sobelx = cv2.Sobel(ambient,cv2.CV_32F,1,0,ksize=5) + sobely = cv2.Sobel(ambient,cv2.CV_32F,0,1,ksize=5) + grad = np.sqrt(sobelx**2 + sobely**2) + grad = np.maximum(grad-0.8,0.0) # parameter + + # get the local contract normalized grad LCN($|\nabla A|$) + grad_lcn, grad_std = lcn.normalize(grad,5,0.1) + grad_lcn = np.clip(grad_lcn,0.0,1.0) # parameter + ret[f'grad{s}'].append( grad_lcn[None].astype(np.float32)) + + ret[f'im{s}'].append( im[None].astype(np.float32)) + ret[f'mask{s}'].append(mask[None].astype(np.float32)) + ret[f'disp{s}'].append(disp[None].astype(np.float32)) + + for key in ret.keys(): + ret[key] = np.stack(ret[key], axis=0) + + # save to files + out_dir = out_root / f'{idx:08d}' + out_dir.mkdir(exist_ok=True, parents=True) + for k,val in ret.items(): + for tidx in range(track_length): + v = val[tidx] + out_path = out_dir / f'{k}_{tidx}.npy' + np.save(out_path, v) + np.save( str(out_dir /'blend_im.npy'), blend_im_rnd) + + print(f'create sample {idx+1}/{n_samples} took {time.time()-tic}[s]') + + + +if __name__=='__main__': + + np.random.seed(42) + + # output directory + with open('../config.json') as fp: + config = json.load(fp) + data_root = Path(config['DATA_ROOT']) + shapenet_root = config['SHAPENET_ROOT'] + + data_type = 'syn' + out_root = data_root / f'{data_type}' + out_root.mkdir(parents=True, exist_ok=True) + + # load shapenet models + obj_classes = ['chair'] + objs = get_objs(shapenet_root, obj_classes) + + # camera parameters + imsize = (480, 640) + imsizes = [(imsize[0]//(2**s), imsize[1]//(2**s)) for s in range(4)] + K = np.array([[567.6, 0, 324.7], [0, 570.2, 250.1], [0 ,0, 1]], dtype=np.float32) + focal_lengths = [K[0,0]/(2**s) for s in range(4)] + baseline=0.075 + blend_im = 0.6 + noise = 0 + + # capture the same static scene from different view points as a track + track_length = 4 + + # load pattern image + pattern_path = './kinect_pattern.png' + pattern_crop = True + patterns = get_patterns(pattern_path, imsizes, pattern_crop) + + # write settings to file + settings = { + 'imsizes': imsizes, + 'patterns': patterns, + 'focal_lengths': focal_lengths, + 'baseline': baseline, + 'K': K, + } + out_path = out_root / f'settings.pkl' + print(f'write settings to {out_path}') + with open(str(out_path), 'wb') as f: + pickle.dump(settings, f, pickle.HIGHEST_PROTOCOL) + + # start the job + n_samples = 2**10 + 2**13 + for idx in range(n_samples): + args = (out_root, idx, n_samples, imsize, patterns, K, baseline, blend_im, noise, track_length) + create_data(*args) diff --git a/data/dataset.py b/data/dataset.py new file mode 100644 index 0000000..ee57bd6 --- /dev/null +++ b/data/dataset.py @@ -0,0 +1,148 @@ +import torch +import torch.utils.data +import numpy as np +import matplotlib.pyplot as plt +import itertools +import pickle +import json +import time +from pathlib import Path +import collections +import cv2 +import sys +import os +import time +import glob + +import torchext +import renderer +import co +from .commons import get_patterns, augment_image + +from mpl_toolkits.mplot3d import Axes3D + +class TrackSynDataset(torchext.BaseDataset): + ''' + Load locally saved synthetic dataset + Please run ./create_syn_data.sh to generate the dataset + ''' + def __init__(self, settings_path, sample_paths, track_length=2, train=True, data_aug=False): + super().__init__(train=train) + + self.settings_path = settings_path + self.sample_paths = sample_paths + self.data_aug = data_aug + self.train = train + self.track_length=track_length + assert(track_length<=4) + + with open(str(settings_path), 'rb') as f: + settings = pickle.load(f) + self.imsizes = settings['imsizes'] + self.patterns = settings['patterns'] + self.focal_lengths = settings['focal_lengths'] + self.baseline = settings['baseline'] + self.K = settings['K'] + + self.scale = len(self.imsizes) + + self.max_shift=0 + self.max_blur=0.5 + self.max_noise=3.0 + self.max_sp_noise=0.0005 + + def __len__(self): + return len(self.sample_paths) + + def __getitem__(self, idx): + if not self.train: + rng = self.get_rng(idx) + else: + rng = np.random.RandomState() + sample_path = self.sample_paths[idx] + + if self.train: + track_ind = np.random.permutation(4)[0:self.track_length] + else: + track_ind = [0] + + ret = {} + ret['id'] = idx + + # load imgs, at all scales + for sidx in range(len(self.imsizes)): + imgs = [] + ambs = [] + grads = [] + for tidx in track_ind: + imgs.append(np.load(os.path.join(sample_path,f'im{sidx}_{tidx}.npy'))) + ambs.append(np.load(os.path.join(sample_path,f'ambient{sidx}_{tidx}.npy'))) + grads.append(np.load(os.path.join(sample_path,f'grad{sidx}_{tidx}.npy'))) + ret[f'im{sidx}'] = np.stack(imgs, axis=0) + ret[f'ambient{sidx}'] = np.stack(ambs, axis=0) + ret[f'grad{sidx}'] = np.stack(grads, axis=0) + + # load disp and grad only at full resolution + disps = [] + R = [] + t = [] + for tidx in track_ind: + disps.append(np.load(os.path.join(sample_path,f'disp0_{tidx}.npy'))) + R.append(np.load(os.path.join(sample_path,f'R_{tidx}.npy'))) + t.append(np.load(os.path.join(sample_path,f't_{tidx}.npy'))) + ret[f'disp0'] = np.stack(disps, axis=0) + ret['R'] = np.stack(R, axis=0) + ret['t'] = np.stack(t, axis=0) + + blend_im = np.load(os.path.join(sample_path,'blend_im.npy')) + ret['blend_im'] = blend_im.astype(np.float32) + + #### apply data augmentation at different scales seperately, only work for max_shift=0 + if self.data_aug: + for sidx in range(len(self.imsizes)): + if sidx==0: + img = ret[f'im{sidx}'] + disp = ret[f'disp{sidx}'] + grad = ret[f'grad{sidx}'] + img_aug = np.zeros_like(img) + disp_aug = np.zeros_like(img) + grad_aug = np.zeros_like(img) + for i in range(img.shape[0]): + img_aug_, disp_aug_, grad_aug_ = augment_image(img[i,0],rng, + disp=disp[i,0],grad=grad[i,0], + max_shift=self.max_shift, max_blur=self.max_blur, + max_noise=self.max_noise, max_sp_noise=self.max_sp_noise) + img_aug[i] = img_aug_[None].astype(np.float32) + disp_aug[i] = disp_aug_[None].astype(np.float32) + grad_aug[i] = grad_aug_[None].astype(np.float32) + ret[f'im{sidx}'] = img_aug + ret[f'disp{sidx}'] = disp_aug + ret[f'grad{sidx}'] = grad_aug + else: + img = ret[f'im{sidx}'] + img_aug = np.zeros_like(img) + for i in range(img.shape[0]): + img_aug_, _, _ = augment_image(img[i,0],rng, + max_shift=self.max_shift, max_blur=self.max_blur, + max_noise=self.max_noise, max_sp_noise=self.max_sp_noise) + img_aug[i] = img_aug_[None].astype(np.float32) + ret[f'im{sidx}'] = img_aug + + if len(track_ind)==1: + for key, val in ret.items(): + if key!='blend_im' and key!='id': + ret[key] = val[0] + + + return ret + + def getK(self, sidx=0): + K = self.K.copy() / (2**sidx) + K[2,2] = 1 + return K + + + +if __name__ == '__main__': + pass + diff --git a/data/kinect_pattern.png b/data/kinect_pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..110f3c8c1fcb166d9ce40fb640c0bf45a33814c3 GIT binary patch literal 599339 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
0^X!N)xxH2(@htLHI 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%0D4MC_5!`O^B&z@0)Rzo2UykPwdZ#B z61}B^ulV)C{C$ru&9M<%zON>_$TA1%axB?D(&W{3Bz4D-okFQI&f%{9ntodm<6e*r zw}^1Ia>IkH!p!oS2l?#s4l_~kXZ($TYfs`08n+?j4a!hbK)-%ozDbT zBootwkRdkGokiJlb948WpXqv1^NMW;=%-;nNG7}y`l&?$*CYms7eA)mQQc&L)kA-e z3NxjG8KwTDV=Fwiuf@{RZ(I#>X5h(@5Pj>Z0eZ=0t~8fu%vMuhY;a6BrmC*ne~u0Ls_t%`;C<7b>=a z$pD=Cv<5g0b(X0yFx`rzVt{1%z6e`ZnQ@KPogw-#DGLbz^XBz(0EVszn*m@I%_y^> z+C&M)-di~dfLWCxU%jmyz*&%2reTCK@Xrfn8Gr#3aQTZ$Ai~v=tt}l;C6ROhb?ztY zQ%o{T^)?5f?0T!fpe^}+g$d*?zCW|N;zR8|Ahz#oFq)T@LsdjX4t=t!V0^^aGTDmRY#pgjEW7#5s0jd#yVe)g+8fiRoAGr$xbjr&EV6`tU2DmX0)RnU zMo;#%0p>pXwdXj|Uu&z*;Fm<-?mP9vwpk*4kpnws)i&*WAw{O=((eDERI37j9jBLS z56$Ah`|=A?Jo*m0S{pm7`lUkDVys9IW_karNgnt2SI_8FUcLW-$f~K5gn;yzs0T2B z+|zr~@a0iu7CH|Qo8#%8EGbzVKw|Arx7z^uIBgRw)zDP$C2F%vEyF$l=)*@>n1Jf0 zbpUX-{z~WbvUPxd-2E2O8II0NbXEam*8;$0DVUS=4$}S2s~%0gk&4}etL`*gmI16DA%Gd_4`O$30JTHIbA z0obyiws7#F(TrsZ0Al#lRer(|GS7A9qe9UDlrGTg2{-QMOG(FW{D5vP1hk;3qqz7x zIwBCCJl4XP=EP(`^Ru?sRL*5aZvFAvz@j7DGJ?xeb}--m`pa?KX}WMbsd)=d%@+Xd z(#n>EsQ^e^e>7k;^~M+^6>@q*jHy9Bm&*T6bxUOC)_DM6XX05Nb1jk1yh?P%VZt_b z6N0h%fj8Lg8BSzT7QAck|LTlZ*N38K(CRH@r;rev%nB0K{5tNQx3~9%!%upij!N8UR_SYW!uoU%Pf)-}heN1wNBC86z52s+Lm%GLLAum|paR z=&gayPl)lhC?*Kr@Hy4`N?CD!&aCka`9fq_DPl@|gS9JoAJ6AW)oFVDR|69;4 zxJN{r?f(JxI}!?K#|dIM0qPYFoIx&jMIoU#sm8 zj(U|bWs>4a3;AR_}cjc6n0Ayjt1PAjXLNQbzev@c{ zA^{TQ;uZR4L&1=uxv^6ACedPm3rNC@DF8T^kv>nawHLBF043)83Ez~oV{~&oE;s{s z<_tBOo}WH?Ye$wlIA-~$^v?>6zivlY1y_JqSxtrFFOA(T4u-lxhxkB z-Hb>sxR(k!Z&^3p^@Lg=F_j@^g5{>R&MT&c1jKv>Gcq>_02r;um&H6FJYhEGVu~&~(QM#pnrbMD#2K8xcJ;PvbU27rbYd+NaNngLHpakBTL6+! zMP%de^hT_%82El7)V)o3h71(mrdxx80WcXf0f^?KH!HLVS#^}mRaSE}27u2!xFq})pA81Bre7wLoP+13f19}VR7n4^h5;8(=SH6oBo4p3 z#s?qzuMJ@A1bscC103+)Bs$c2hKP={|JN9@!c86}`tDz8)s!~OL;;(x-ZUhCO^QcX zO=m|S16iUowI;p(8T%gVv;koJ_akQgjv@7_-O1G8T_f6<28MnL%Y_pTf*oZ5kb1uOxC|Ia=%gDa^>rOEqPf<1D&uMv1E404620aEfCz+c`R(29 zvE~!E`fLC&=4~oeycmU{^C!Aoh-Na4N9bXnYDYaAfUsR2ZvS0GPjdc}q!wu;qPg~{ z2YX#v&n(VJfKNA*y|=z;WCl1SM^7}3*7?ljGeW%#0Ba7K8gy_+7a95)C6i?rYlmT9*t!FU-yA+|alGLB~4+-;JcQjx5QN;+~*?uJt^> z(4GVn^RChB@w%LCTVO&r{5|x?4kbhwj5EedTUI9gVhoTqMdJ{qZqF970)UUv_ic4D z0K0QMt^<(uShkOTYlRGs$Wgiw%N)HkHCKi%j94>KV?5)vcs({Cw$L&;?k8eGPt?1B zupl3z(^*rm^ln!~*W>p}0Lwlg>M^(s?ii)}bfU%gEIDOc$ES9cKd0@1=AYS~ljOp+ zS8`@DnF}1v)LGvvOX3j2!>QbxyL_&z;Y45q*Ir8lK+FRl+S%>9{;FNwb+&G)j%PCf zW+pHI=)366LTNC`83Tl@0LF@olNB@wX6&Nh_oU?7qEZn?&h52Rhf)A?x@kF5b*?5X z0J6E3s5hMBoC6u6j{;;Ap-ngM8YKE^Bw&ElATpt$3~APUYj4?-2cMQ~8Ty)D2|#YV z8Q@-YPR6}J^h(yxTYy{7A#*^gaOA)pPXVCUJ!NdUZ3M#~Un*7nklsrl`2fsB?_`&0 zrcIs5nYQj%P;<0OA4-NC1N-gMk4_8$hPJpbNz;#uTU9Qxq@g3Ql=DKWPiy5V}y(!{_N;OVt4@s&LhbI=*j5GPY(04Fz97AKGH53^L#_ zyXc9S1=AcMde;VErhTT=&#$c7_(C6%e9&O2kWC@vASc7#OM43p;LfrPAVl05qo0a` zM-fRdX%?kh zw90jN{XyFs7S4ZT%vLPd{Uq$*%e*&;4hO?SHULKh_YyjwJ35o+eNCrInP|jTD~7;{ zai$-fI^+N{w0Lg$7xb}LVf;r)2QGw4eq?ITNev(ih+Ft*lZ}%DB}F%1b&7aC!ObL!Jb1Q8BFY;SW~& zy!{r@>ca4{O0C?rlNl(XqD;0y0DRl=iomFzmA61#^GVgC+p5*AvmBK3?PN(-AXQwSmg#M8~?X&_A0) z12~icpuDrQ{TZo({Ja|0xW4p%lL=GI1Hs$x*D@u83gaZ7lYtqH@G*M47eJu-0O5ObZSO-by~@d^%0HXVe&b=t=z!?BhSTmU|9iyM-q`Cu{tAjMPUpI${UXhzO znm?>d0kdN(iGfLM93py%t_ z<`g7I=Ez^~WjO2k{j;teQx|iNx%K|3B4g2F#?p1ewZfIh#{an@)X-75h%dNBr^-6l zGvl|8mI{rjsP5FQx<#ko{NwUad2UXV6e}~gI~&--2^>{(6RzVpj+=B;+tt;e)Kp05 zst$;lrWyt}P181Q$Ir|=dv~>|P0+V<9R`5uO!XXv`+bM|iZ9(?#_u4 zt9rwxq%JwGVr6B>5Vj2<@dZ(~f}~VQHylAkeX&tHDyv$~QhAPOh@s&x8q{o4s6wh= z{Ak#YmL5_suWK8dEbRY_4!VGF7xdOGSl%ds4~_U{klsAraE7k0@brkKh~h+7$lY&# zV^2pzZ+}o>X{I{ce0S}kUQ_XRU)@n~?Mx<}(IiO^>Kt8H_3o7|Iv^x~*T44txWiR| z$4rd@B9;n)w(OajCR8vm8O&zp;NyLkq?iDp$U@<~!3z^(^jjwYWiCA#lEFEW8Ll!3 z0nr|Tyq@JyO^by^Bln5cMq;WYnlu0b(dAABfU3&+im96Nc$i9+k|Fd!<)?_~a4G~N z4B!Tj9e=Pb;Z^L&*nN6wnk}eJYiPneMf6I=rtKlx1r$%x;~f=q<)3`CBkWP=hJUj9 z;tQq z@L&x8AAK?(d|87z+pk?6Gyr2K(P0t1L1(MBqHCQDbe&rUHuC44J^*N67w%;zerN;$ zxuJ0%-JL#UV%iwFjYHkx2^+rzPlrY`;SaDE@H zuXz9fAOJ~3K~x|8*Z_IM6Y6FFU^u;PfiS|o{uW*C5#S2ABDwCuv0Q`!unUEruV|}d zM*URA3!2;7+CHJTnq6Dv-u%mtHf7g-wlTYIqYr3y{qc(nvoF6{uWGJdDR_=13Mtvn zq?3*w%lbAienPJ~^?T@-ecdt?+x3{tb*P=6(apxFA83HJmhR--T%FJ~6ZXoV=zK#w zqQ_R!245CX^EzO*{hMEq(%kKD-S!eF`3JPMODuf z5bsf+K2&xc_b$=69@6IHiAGmQ;ISwGUAM0gohW(&@I2S3xRtJJFZ=Oyo2Zn*n0|Tj z6?!ubC=r_hPWglPaz^qbeZ06qR0`k14oc9X46^5>j$Z5F0HVkK*eL_B_kUnlr`!r3 zf5<_n1Ca!CLU z4GJLTPV~6|q`Fm0l8v{&$xY8obGYj%FVy{#zHWYcR%^9>>H29}gYyY(s`0-{&C}p4 z9r8NjaX#Y{0f0NQq5ZjqwuSn@gKSKBC0r8GBq#)_|3aWbEG5{qb z!X;y{cWi*(#eco79mFtHcF{Y_QicqOky~_q{_whn z7X{=_E8pZ*!U)mMlt>hECNM#_>YWBj(i`k10S4Wxw{2m`nr3iYSK)c7sMFqR^5Wp{ zCmH}SXxwnqdoT2b!zOtg@wF2z5sLxH?HO>i&=cii@YS)bSBc2!y5wv)zdmhO_x9+P zH8z6b1AF@hM@qJyiq?dh86d09z`oHIM~AWMeBsd^o9j$%`-JX}2|!YqJVbP> z07$CaXeB4;W|&9x8*C+09B=?2af1HdR9OVv6W)+IA+#Y+X9^~nS?-xY0W!AK;Vi~jMG}hAH zRnO6AyYJ8!+26j>IE_jXu9XYHS&oj~DTy1A-phg&z-*hhM1A(w%-!^N zS&Mp0=Tw8Q5!cA{?AW)`5dhkVF53RwR3u?#+I5)0t^ubKdQYTWq!^G)#6Pzqt83?gBR#RQjuf{GBf=k21FKKqwB4{ zqbpEd&v56ih&vJ>0zbW%=vB{>0ek+@f&E11Q>g_5sZ7M|{p)d)#h@`(i4jUl?A%n) zMek=JrS`wYsuRJn8~_Y@kppnXu5|gn(V5ppUr$z#WEW@jDl1=aen6wL7gKn#xHt~k zjdx{i2Qa^)cbXkV)}rBPHv82+TDr!ZSoj7j`PfuiK$5wdI8E0Ej?lS$0D?e$zcQ_c z>L?7l1ZE38>PQ?=-LRfo4eSbgmHsi$2zOz=@xi8oVaR%Zur=0spdvE}1#H?qEYXtz zx4zp8Bj@!R0NDTdZEn7GW3R5b)zxA?e$ZK*2_H4m<$hjkB8nevjJ{~@>)R(Bz!`3T z&ZbDcMJ4(2&FwA#7{jAa1=W_p8Nis{6mk80@C>a~o-L8i?{VJM@+f#VVYlseNIVBd`Hvk6aiZ{^WeY zp0jt{P~ACWMaXt&klj?1Z*o9p8XzYuZItNYa?j9xJ$-KKNE*;G62J@-itd2Nj*OW| zyhN1JVlu$9M81-GnP^-FP#{_*cwzPWz%3OGyKt7M%>+1*|MJaVQvwvHaH`9;1p{*? zPb_ZVF&GZ0)3E<+XL8kp?L}W`u?U0O-t9*-xu~0sac)MEg`qB!r`j5$Om<97^E-!n z+m{X3IjNijFt2I;K)Kk_os?nNviAl(*pdns99Wg9Yp;(u^@lFZuLv(N?j!;Wa{c(h z*V^~d`;MyX2DAIOC7hTnT-}WCq2Jc#EklNId$KEt9?X^XWG)_Q8m7ONB_x0eD{X*5 zQ$;t?*fF9p8A{wV0kb_LI0Gz&F`1=o84QIdbhFp3e?oo5N7UzP^B#XVm;r1sfaMo- zM(cl=8d>%WZ4C@JSak2Dj3qd$Tae|FvvqB~<(c)x1BW_A4X-2LWB{Vn;&VW=z0&fr z#yVf~j(@Ycu5NTR#r5Wq{z9Rgtki%oo@%NyXQtS6DXq77U5;@;7Pz=Ot~x+O14Kt{7RDYtw>X+ttBcKOuhd4S za*q8JKSji9wpWV-zzw1i@M}cx3`#(?Zx{f)Prr@w?oueM^U4&RYnoX)>YGI8yBrx< z^Ebp+%C_*FID-!Wfd(KsXWGKFK3ArEd1}l50;#a^ z%kQdUul48YkTU%emffWj{{o6y&zQT!3u>2#h#m~gw6U-M=(pj}0v-tf$b-N1RYtFT zvk$=y8Ubb$0|6v!&|nmh!q|1Bxk&-s-|0~b(7Q(Kz~`-NZGS+t$cfgOfTjX~)z(%$ zSx8hyV&4neZgeSPXEXEm=byKG~#!HcJ^HaN}83oef@`k)bT ztXO_UTm#Tu$6=qPzdIWjW>qB^A^IRy{F{h$o24?H`E<%(NwjB}XbrQs(BV2=W>JM_ zu2F@2TK?|czzhVy^o)^>hvTP3hkv1$qPiC?`c_PrfzmB{W9S>&pZfy`mmv#smY43|#+ynIkb% zSB?{%NSPdv0KGn=!#ho%F8`3;j#tXE+b>@2dd{uX2e)$mloJxl9T9N^38gZYcj>iL2R-qfrE$YlUv(dDHE(D=i_(9d)>4p+^nzoW)s4{? zy)QnnAg(npZe;KZm4)8By>m87-ph}7GIi&b!heRguF&U$3d|F9xvBjxqT?1YN>A3z zQfZbY`g&a(5p{;AUPlL>g_k#Jr!mun>c9WguwGK(!xk={bRo9<{L+hAi|hZs@l;2U zQTj49T@g|`F(XJ|?S68knrAR|x9vLJF(6lu%prQ*%>gJ8C2N>QBy9sw$3yf}WtI%& zW_N4TPly%(I6%}^en_Wo6VbKa?T?Rm-mQlv!2FKBFU?9KKQ(o8x?))Fy+M3=}2Xcil+mSgvbvWF2WpB;Fe5lGKRy_PXQE}Y0rZ?#G zi1794Cor9CN3XY<=$5BwLPqIpx*G$KIz#s@0GX;3GG`ESWlZM70|a)0JhHZx1+8d*t=7c-Bs4 zld1k=8(jvd3^G^ah5#gpruI2SO*We{9Nq!CE~A0|o|i5*r=x|OqXRL?k)lKtFtB+< zt6GYWiMkX(cLp2@u-bBF)=$*Aa6R`Vy;7$!mFp%4M7h@u)^_Ls z---IU)%}2a0q~NqV!E%Ae2wUEtg?XkGrYdKi$wb?yg(r&De)ftbJH{u8TgUz&Qhuy zKS@{T7hij{eRjQuifdjC*_i_qo8kbnYa0yK`ubWO0BadCXR9`eX%gVforO~Olo6Oa z^?#7}c$?@D16&gT#_Fskv9ucjN z6b|k$W)9!&1oSImn;F@h7K#K1pyli9eX~lQf)dLFLeK3wJy_WC&(lSV14_flSP@Wz zv<2AXKhWE`O7^+$I^Eyk$^arhLD)N6v($#&^q}3g zH`8|WW$rLWBPrEphVMk*eto+H;4hBGrXaJTzx;oERx6nW4n=<^#&sUgW#UsZv{pZdO znAz9qpDQcVSjjFPY#TY;qeCpCTfGvX3?3bCei}vc4YVbYYHUIJ$>)_`ujVD%R=;61 ziAlQ934rC^TWyMaQ$rPUbnfUJ39w%KZFRP7V}}F8POO0l=S^0^+S65Pix^&h4s5qcmQokK#c2-jhB5#^e;PyxJ=L zH?~S9`fttL@wG4fYV6*pGr%c!hK|&XiSz<#9y<)>u6ZK^c$>D(;ykAg(K{Z@7?8a} zKUItC3Ja@2K{^bG@-_O?fLc^xy?Ua8ZuK2xP8SksPhr!wp##>@t*P!9EI zoccbS!>TCD2tyb77ClsgRAMR4Z2(MP*()(Q+LD4}q}tjA09}LZnE-fo{xa}n*%i!g z`e1RLt`xSnCYWxTc4XtWRt~+pzo}rk4b1_E6pQOj8@NN89bq~K15+JS0xdu)7D= z1q+E5Tjhu$bY0>R9?dp-DiCSS`Z4HoDw1+KIaCS4G&MguL9_?}xN0qoSh8&=f2Yk3 zhgQjYPfuJm?6A^y=l)pz>cPy&-D7j(X6OES7K?1WGNx+^s-d~W#HcG-G9nh2qHQI6 z#scc`jO*3C{&|mWa{zjw$*n(mzR|TC-nrfvHo^;c>=;+f#yJxA3US*AbN};*9-b%q zsZS2o9GPgkL4O~u5{#6rm+*8%TN-o*IH~|dUD(Nh z!TFP@Ij}uw1zv$hR&Ay<)Qpq>%`$uL(vC`BW9yYCTWfyCthyK1a?NP!q)*Zp^EG(K z>8oBINj_UVEAOE5q3vBm^i2y;xKiPV{EJU|Y5g;(@jpwXz;666?Vo*xUR=7X*Y199 zsYXK}x^dmVBJK3tqR;Gb0D{RQ&!SeNY8Knyd8#F6vQ5^O5S;?poQpJ-s-(#13IH>$ zGs~N{r%G)W^+n3rLCyfcCC(ELfc#yeRVl0PJNmv{P1ZD@nxd__+C{=s16|3c&3ot6 zzTx%XY!5Fj9M=R~8{m#5L$z!Jh~|q09jH4?_fL(=s^wEnr=#M59rOZ=?O`5a|K^;K!xoHT`$z<9n(qY)CvupTd|RAdt9yy z#|{?H%Q%*ju_DFy&_iyQ#+Xl-;UeeS)ug3BBps1dsy z8PBjtsnT=iX`@hXm>q}B+1MWe(7vLX0kAVs0AMLkO1^ew{&T;c7DMb>=m0>veYRU0 z`)y(tQz9~I?Zb?@Z?%^s^_sqtZg)eZ0J-a1 zx~7GZyQds11`#I1dgxIlBpe*uWFwPZw6qkw`esT1a1TG6V*(tOX;)sWQYo@xCSd5% zb@w_LwDJAz2@%=4%1d8-WjH8rO7Zr-U?wJM=$b6+DtM~$titpXmZIv4os0)&&yBZQ zJxiAnVu`RDd}~usKQzygB_SXe=QZ|Uri%-ftS@tzF-JG^efy4IPQ?#mUJ)0wfl^^vjkEpf_$h)0W7_Q~*}d1SB1Rw)SBIBI}4Qw*{%#c6!w4WRM}6 z8X}s^Bx9`;J_DdO$$(o(7WRj=*(^w>OR|tT)M_fSrN)My~S0=h40Ek@K1c2bc zxn4`NvTcD~>hzSh59#9!09oz6PG5u~9jPlYG6b2Y9wS(?-+Ub0?sYdujq{?2B-`>g(a9Qb*Wl(6qVrA9I)(q4Gdn>S zXA$R@2fzPMJD$hl_@8~UwFwk?-@V!TxW~K02j<;v900nnpU;MmXzcv!^D_Up$rTM~ zIC)f=-2_%1~yMbl4z0vFzQzj?Ud9Acw#BhDNO-j`E_CGRdT`uWI!^U zR7g8xay*@Cd6zE4c5Dc?z$ZE1l{aU_?fI@%CPEFUR_q0&PJlUd+1h9mf^HT07(HCFzORPwC|OA z8$kZ!k)#SlHqhyO=aKHgNMiN5G}n-5xznYp)-a7O|BK#nRfU1Gm^IQC){!(iPyoka z09*Puz0zH>-NSUM*@z^U7wuHp0i?jxxi37~s!SR08lC9vi0iu9cbhibKtz+lc(lHp zu>rS~;_%PY>1@mfkUDp=&dBtA@_8Eo$K|@l^Y7BHdv^Wy?``M09JT)MKw*z6P1;a?uq~^(D}=mrufFy zHAE7BN6%B6aC^H0ptyU)S0nM~01NBeGoS$IU)>}DNRBUx05J0bk8U}fgk201(~vfv zDgs?AUf2;G%Cb*(RZp7ycLr|%xh0jx?&nT)XaLave?xXwBmjkF#pg{_?OWS{tVm5(QbmRG4tX?`y7b{y9kNpeuzK4Ew+KDRt-1ZXL0FYio zR3}4PO0*~STt-{h6ermbZrizkUTUd~wc9>cv|Fyyh+JjGFaU`!iN*o=xoQB!l$b1u z%tu69++?^*u%LI2!xf2f8GxNl$pBD)`jaM!$GQemKy3BhTgx3t?$}Rse-#&uJDHeo z0!C8erXI#lourp7?IXH7x}ROh^*)^~0$gxO&VEF1Wh0IP z?q_q|9ZB19xgOO3XcfJdj8x2$M{z+7p0wNk{S)P{E(7zfX z>e4l}cz|}sbpW0)0nyigL|$hs{7 zx%cQo-tY_nk}gYX!Y-YsiypG4=-W=a{Y!ew4V{-ljsx-SbhpF+LydV%wsHxe;l|^Y zCV*Hp39gkxUqBx^$ z9b0*O;wdZa)k0`CgTzg)!>u~j`hqbiOAj|lN@k}AAp0uC0VwfM^f!3w1*tNC4O2vO zqcVf+FaCvSqwi$8HPc(G5>2jVw8 z@Yq56en?Xk$9Ifi8$CQcu;eCvot7+3Gb25_mo?;zwhjm`nOPyGH!fi);06FFoNJO_ z7agaK@kpR)8_yK7n~p3UCR!Kwx6y}gP#+Htu1x@{+e05_7yU6bXCIBn1i(jzdxXzj z%UL+}MZe3yW9`4uw_WWPAj25`jozs7*<|LIGIN&yL^~YFLf8`zej2uQNQeJEm{b8~ z>40MBV?WXXUz22oqk^M_Q<((1t?SiZnLupf;M|%-g3MuVyFM0$KK$`Zb)5Ge>gA)GE1sd>WI>tN^L%|n_bW>n0H>vj;WF7uq_uyw z3lzIe0KBcYx)>8>4*&+=8kC`WPu;%LP_?lO>C$YB>$UVKQS%?#QX6*b`-J{`P3Wq? zCzRo>3ZOr+9kPPg%X`&fjiTa}3Opwb^*w zsg48y#8+jefA|aoTd5;@A_JjL_5VZL`-ezX{r}^S!#&({IhT7cbD7J%!yWEiW|$df znPqm^VRxBj9d_8om6dgIadBm1TND*zV-rQgP)Uju!z8IN43p$#7``G&GK!KS!!T5m z3d1B(GKz{M!|?U|{&8pam-c$S-k)!;`6tk3?)Bbt9_R6VJ|EA=Gw(1DDAVg!q`FQn ztd01`u8y=U+1M`ued_nmm#ctRY(&3-3p;Q*6F}>GMAud|5@q_tx3s^W^XgMy675NG z-DI+T_pMv2d6a5uz?;H=SZF8LoO>-~0J!Mby|12^qB$rudK8vv+eW0!c1wn)6^f1} zE#InLrY{S*YR(XfU(Er?JlZRpW|TtJg*S6lDurCP2E~4w$Oc%dYgMl|LRVV_C)68dMz}$TktdhiYRQ@ zQWS165z}?`F}kp%&~b#$1l-6EcgSF1{f4$oHlOI2E(c!P5td^aipX>u@mi@t1pzR) ztnw}0vV{vE?hg=c$W*%rVi~(+YMdn>C)zFav~=qIMIu^KSmbF?P$gPtN(ew5TMHcOl+962*d5E!<382fR)TfLXLP0G3QXM?X!QQgTJWQ09mm7y!v<>0KnX zbUhV-ANtFPs4_3w;WngNO=$7n+N^R6{1VaLOx)7|jwp|qEBgSdKi*mqo16PmFVK~> z$t0dph$Q3E_6 z^)5{qGC}YRpfIN&h7k|PL}~;rZSB|bwRBo6~--Fx|vEf*HRvt>`f;6F3=e#v4!a3s&_tF zc9_0dwwaFSp8Rp#;F$y0OTxAppfrZgD$H)5`g2qo3Lu$V{NT-u7j_-2EfCcQrwr`E`4zG5j}eN;vgMzX7qv!Lp#9%WR|1>@F36tIALx(T`FX| z+u~-J`VTFwPBbnVZc-CUJJG*NKy0K{%*7&$1F+iW?A#jB;Cv{Klw5^hRyi{{a|Hk% zJ-a!>f#@P|X9${j_vRXZ@W{5@{|Q(skFRRnS^rc<_bS~5lx+XjY zYIThZh@Ns|Z<@>P2lr{rbkh9|AL9eMkOLA6)0M%05bXHlOPcd7Yg0oU0P>5P__>ST zZ!prf_vj5fe~3;!AZC{X%Q=Afv%l{(^^IR=0ARzv4mFs0*YjNf*m8QUah^sPCYtns|;25ijsqMUZ*2DVK4?uV~{J`mVZOk7*?F{ z1pwxyn^(w|EvB2FiV?$UV=Mz+?OP6E*S-lsD@i}!uLm%*B(V=ZEaMk@?vexSpVfB@6t zr4GShcLKUu%|Xo-1h|<1S0Lg_rt9oziykd(6+mL`@(ci2OE;vPVu=I!gM+GKNh4(d zDtB{njX^g|gEJ%v+oYkizx=~<+I&q=;f@HerRW(Wv~D4 zqq-t=w>~k})3vykGZLHjcXF;;q0Q0p&c&s+1miFQGj2OU!uG6|mwtVm8zUF!(y9}m zEj>*l2PZasR-~BbaK>Cz`gR1)2<9X27s@>HkIq@?N7D0 zfBW8m02r9RZOi~1ZRW`fO9FPxjxb#g54SY1%JaR16m35T{>_m>6IX?6 zbHx9x(&Rpe`|@d`eY5Jz14Ne=qiH1C_@BcKL>K4uQ4ABEDhQ(q=E|dVsusil{8Q}& z+OJZh%cFcha99uQG|n%qQI}3PvrvFDa|Fdl2Z8cr5%Hyc3&oXT-2zZ}l`aJ3qx1rR z*zNE^25VT?I?F9Kio5)v^HBvnCf^FkMxGsvqaAuD4ZtRt@?+ec18fX*Xi4bxsh#c zH2^5pH?NEUrMGTBX){<|b(h&&=|XR&GisM9pQLj>Ak*cV4M2>(PT#aLZIZ57@Q>1+ z#~j9@@JC2T+8c=tq99?}P z4QNXzTH4Rh-uA_dyNhvQJpRj#jlNK1ab#&rvUOy7sP`1@54=oZND~%Qmn5Z4#K1_glx^LK>xj)z3J9*dL;pX8R?|I;m3>% z0G0;8uCJkI!{J76rCI=-4RoVh0~9s%`n!_`03mc%$mswyB`pE-9XeDKR@`^G?tIr1 zTapC;<2t?3`w!ZdRLVDKn+pK;&fjk@QOuA-o#{iFlP_bB{y_VpwYcuqjYlj)W5DF~ z_oH>IHnM=)`e)jj0*V$>G(4r^9EFKafRDV`4WRJa@gf8Chrd5q96dPc*}=?y_p)ll z8fCsQ8ZN(a{fM7)^p;=lt#Ba1rCl1t9-BDp4N!~S-0RSWG z0DgCKD=*&@og|6qMf&aY^O6r%8jBtK=5&jUZfN`ekAd0KL{EkQ(0AkNLPtaE!#gV; z0GsDuU4VeuW3=zDE+BzrH|XsLmTs6|^1+;_A7k+9?*C-$paC$RB>F5_y+U6ZP@*s7 znx$wZK1Sng)<(5-Z2l86?3vq8`mWO5en7^g8eXB_YH(5s696~Hhbw@TVt7 z>L*{!0p8a02U~&Csjs2~gy)XZ**X_$)Nz3RkLfi_t-VKQ+8Bpo0RBFrGn1eGv{^E+ znD7Dvs&3SsYb7Z{I^(GxnY8<)OKduLX1!jm$Pf-D2hK`hm1fZEF zz@3C;C-S9^rQLR6z}FlDsvM!)n{92BzA~UD3wGQaqkFr&$Z&U)Mk7ru~d-a`jeE<*+1(vKNCG;f| zkxIZw?H|jPKRiCzzHx20sVMN44EsQ0aI^qqGJfTwcLt)jo0@)ZI9es~ox3XrObKpA z4|L;gdb_9@k|Xnvy9ZheDFFJu%gcFmw7Zo!04TPhDgfefFd>8I>2keU3AnM`0w#VK zT}AYM06>wpw`e#0HsG}6GrgswM7JwYk-nYIPb|4I9kz)?EaxZ{T+Z@wAY zAqopT3#1MBuM%B*{Tf}KCu4D*qn|hb_h>albm!rj3Ng|5<9`DUT=`@p-MXl}FvF=1 zKbgIs6`ms6#sDCp1q~#$b8{%(;uj|t$RH=ad;Krff<}ui{sZPUKkcu301zzpfZEpS z2WTxzH|UdSS&Dodu{-orYWBy)*gcv9@!n9rp$%p7p8O}fH ztN7%vcWsDFuLA|l-%pRl6WfT$0O0t}3EBfd(WRxC1CIt40MXXr2&?A~Z3;{I)@1HQ zqJCj`OgK)`_qA|*cP$ZU{EA|=-4lp)769`zA7_2e6lmXz( ze)@%65gF)dQ4gc38*#@GfL;?d6#D(Efq>yIrZwL70hi56_F#yJmjVYVcIAIh{kI zF?lH5*`wg^{tR5B6@UG=weu&kuuF4Es*|4O(e-om4;Okc_eqO}OZ!a7|IWNy#3v^VPUgC4alu)#0sd@0{$H|n;V z=<4{>bfw58w}9;Kbx8(*Yb)qx$x<00m(lGK5R7&t;>GrK;J!ld!~sP~IH4=c^|Q+j z2Dor)(+*(lf44OTH=X1FlR8uY)$=rJr+VW?u;ngI#$Xwy)3vPB>&fI`ZDhz5fa#ic z+>*f&qQ}G5f;)KS=2#}~W^7xNoVWF4G~p)`mEL+KQq{TJemdH_`uw|tma%Ajao%96 zzwKZ>W_P~y&RBI~qD6yZ6ozYloS9*5aWe3nT&H1roG}2xG&Irj9DUmPEWKeF3S2+* z<5rxrL}(?p5PfX{yy1D5oTi`K0kcOJZhJy%0zjRW(_}dp0gc^VgIKx(pEARSr^x-tuI@=c=8Cp_y2T^^a` zNafe(3J(9K>2Iy?JN%QxwVHBmyXN_6{?IX5>-cLrQA4zv={fxpchnnin8j(q>- z+#t8noj(hA9B4gzu5(UMOwZ2ZU3EMU-nTM(J-G(w3Y<9)m~Epg%M8o13<18G=pzI0 zDyteSGEj07g^zw51h9neJTlAg_ErGMCvQE-d91n8qGjY=r;{20wdYNm)d?kAtmlYM z7Qvz=%X>F%X}+h_BP(10e97*UYXfctYj*W8nA1P}YqRBbU8Do+FVnsxbS^ysfCa(G zWxBTEO``V~YcQYwgH9}a{`Rr%WAt7{0RVUU+HYF~6Pg}9Ji9z`>Ue3k45I7 zJZ8Wrdb$;enNB!e@I)w-+0&Ehnr#bLX|k4%WZIS%mtEh|mrH~IpoT>QQgR5ja!djP?6hH}Lkg1XB{`*uR$>RK-Y8Rr#7Y;0Pqoyb|3>hF7(kH9F$c+Tq z0B^0?oLK<4v}Sr6$4;${1bLaXnkQPp;HiQGaDO}*?Lg<5x&y=M>T9=F(71+%*FMyJ zNB#eUa)cG?J`kJD5$(D|AJm0dd*l4514P!wOb)-ZeI|C(Q-4L#_|WFLS-03Lba*bU zDn41Cp+h~RJg+RJmH}sgTIMA+icdv}LDs!%wsn}h7`R98w1dG7@)f8j zh{nMH6F>qA2TIq7Xp2+W^&5TA4#13aAX)GA%w%zX-;Tfe`cn?+yd|dlnWO+9tk%OsuWQY16LthKz%GOW;HB5-i~+Z{bxUzz&vQN^ zHHO*w#0Y?)+uMt6&pnd^f;ClBN>+G>ers`RM86datqPdM6EgAikL5X=|&)J z4=5d^vvJktIz;j*x;tJ8;@&~}sKOl}Rwg_=(l_FOpU+2$jZUKBL~~l1 z0?UE4-@CgrY>wbI3`;Rv#+L@biWB1@1K<=k?C6x0d?jlsw%0Y7n;*pKErpp;iub5WekX~*;aHmpO{{8^h~72>N)e}s<65^ z)W8&Pbo+o0Sb+jSDITH^eZQ}7iOb@pj&9%Zawg#IqANKR57KYb<3z8-jECr_8W<8g z>3vuF`{`Q1C14dS-7J1VlTJ(|TH-k?FpP+3inPZ?1u4^pPc#U?)eSpa^j&R;4x~i# zOQK#cJMhHf&Rf^&rFUq9s|u(VWGG;0nq-^_sT(5n(z@(FxIU#y!`}GfaG(Ql#y&pU zVI*Uku0j(+7vR}y$pS3b&^ee4S~E_=13q6b_MM`4%PsA$Dw5@nbkco>t~{I$chgr7 z7cB;11Hw~)!n(w(5|>8pNZDI=c*p{f-n`Fa3b5qs zZ4sF=_tO+ZVyLPZrn{jGK&v`20K#^{WRQ7k(Q3r64#d8)GXPx@&xW_k%H zo+)^?%Ji@3#$ePTq(K$wiR*MA#mirP&@b8WHQG8)I%IrUb(*{0j?^# z0FdnL^myget$kH3w&}=#m8;FfR`G4`PKE%?^=FQ?bG>D-Kf8^-9?jV4Om5yjs4I884V0jI^#hv-7Tj%FA{SB7+~Pse}QJtDk*1@6_%G=+Q|SXH;|iC3s$t**wA0~_0i@KTW|o< ztM>Q+17l!zES|500E|qi*ssugJ1)_w76=B>K2VtcgRlz#03ZNKL_t*gf%d71o+Zcr zq>~9 zsxlMCTQ%lP)5%1lt#7f{URXpl?mkD=hLTf)GeEJ{tuWk257~e!k~xzTp=&iNwah7Pz4cb#+KojKAN}Oa@}kkU@A%4M z#{oLiYN&uJz=Z%fxOo7NDv? z_C0#}kxO){1AuTX0O4D7qEtFT^y4-IPK)08KAkQAcF{9bp_#fb0WHkgy4v|J-I{ho zKV3;bL$@|GhxIy&VBldc%oHrm)FE^kx;Cr4N9U5l(#2w;{lz(OnTtp3)Nz`7(u=nc zJ)Ur<%K*^2ArbAZw9SC@Dtf1V7yS~&HsOyq+XMiA+noz54PfQfb@$^zu9gxalWLe5 zy>oZ{jG@!Vm-~S*xSz!_0I(1LJlB1+w0-L$iCCz{pQU?yW@RpPJ|eF1|BP83_l~vw zZ2-9S9`*g3zt-&syCkl^x&MB}h#vxKeP!lBjnK}V|6Szf%}?=`H>OhYzBLOC5tZ8U zgY)iyw~wj-`iQ=m`9;RGo^7Mp;5cvZ0q5o0ASiVsvX$ed@12**_b- zmsWQIVDQxF-TCE~ylq-delGR$8KP%qQ@obvOn*Ec_mI4TyfjhcTRHNA82_utuh@ zw=}~_2MoFQ=}=!St3j`f54IFm^d;>~t-q8OK~${;YXHoZo9d3}{*b<069*WyM?c@4 zV!UIlGbU$R8khpW*hfD-5!L5beDnM6I0FEEXvd(>0JCS$wz0yTynKAe?KK_%j1Zm6 zm<)h<|9)#6@I6GA6RMccQZxo2^&HU?&l0VRO8`s%qz$&}3vbh%o6{-apY-06*%lR9 zYV2sH&Tt0tKE2YG@DxBAt8dcoc?~UU%iL}3y!y@foExxLuWQ6!o9T|w#ake zS`bIe2ery%TiM@70UK6y^3jR895XrZx&i>&T>yIX%*ov^SWLZ5PrB=_(a{HtDpA*N zdypV7mgeAgHZvPXOFlm-Av)__a#mU>*V4V607Nj5o*$Ka8UTChSizVk8nQ&N{$Cqd z!***w(SYI9BlHlm$8X&H@E=5NP@IPlTM6viRhc+b^^mES3y2F-=jp3_Un`)gWzS-bqj?&dfTrf?<7On1arKUhHSGsoWPDYw+ZaZ2c z@5+db$}RNcrh>+W7u!tN+S|q>(WqaJ0pOYdr9fK03h>xWOFI*eIzjY8&`~k~Z)#Dm z?N;6_TNRZVwmLj)t46|%<{aspvZjjc@`k8ig}b@aufD#@iymyeHNR)n&#q~d+w{S{ zT=CG>5{IU7gyTy)4X6Ob*rSc+Eu$+0;IxFEmh z4qc>=ss-`ofdT9hqF=WeK>cT;H=MZ7#z3byggWTbN zUEBWj51$PM<#TkZ697y*+Hf2U;F1B{Y3=R|svpqXlONFO{?4Mso$kSQ$5aJ_vyVmvQFYl|C-#EL$6ER)L z%9iQ!f_)|`Z(e(321~eYL|CsjLX3|7R#&wuOB^VV5PkQ^ikeq@pMH7lFSGwl2zY0& zPDJ-K>qgQ?cMEY<0I=8su4K)&!!3Y>--r%mU3E5iwXV~>?KyMtEuyb`9uVG&9k!Jr*lHCU7Psd0)Mg7 zbl*QnZ5{9dBvSyOw!i(v>|XIN)0Z{tRiX`$@I7jHk*=HSA z;{f3I%&k2no}p8IdfzYGo3GeEK<9JTPWmVYUOYfo2b?eizz!fM>Dv$h@7NNh6HCXg z7VbaXw$p?PcjED7jdhx?7*GWA4C6%9sOByuq9r0|nJjlzr=2M-<5`2oFI zR=^y~O1HOX9hDnKe)`ha<3=V6fV-gu8<^Ryxnpx*_`4#&H*= zl{x^eWY~tSg=4k38J2kO!zEXP?K{xOSwnSm$Qt{xuB=`z)`W0?UtXOD4BwM-S@Eyu5I$~uXc?(8j&J~n@_#DIu+`V-+(-<7G3!&| zyhay#=M*_)!H)9T%}?9X&KRviS<7zH)sBWLeMbR^Exkgt*@9aNBDu2bNGm@%p3@A=1YdgTl}fUA*O*i^1z@qz ziP!gSav`ewU#{z1lWkM0T>!`&qr*Ose&kd7tY*OOsh4wcKS;%`m}6)CFt?p9c(U5g z?Q(|%Aek|CeWL*gyYKaf1$VunALv8V0hd9_1sBl3nN{g%@e1|AW+E!t#%Wr^!DZ-b z$fby=M*u31vb()RTVkdm4Pmi(y6w&u&z44#`;Xk+8*mBE5YO1fYqZ_BJx@0Zwou#G z^m>L@$Y=YP4z*gGo1Q-7=HzF54iP3LQy7$i3-nBlvbJ>lHK@|QCy*%!NA_8OT)IY`PcW?UZz6@W_?U2IshP1 z%oo#@PtJ~pDqt5gI$#~YKJ781cX?ablCv#kp5~*_o04Nk$0XqRy3`$)0bA)`FF5M( zRr;c4HMp?#$QH9P*h==4|k=7ailhRd|eYx z_!~rT*8J3e4`5v%U7r$jsp?-Tss9ERn4CN6s4+zu059ymN3}VuxNYtY$c7M<0SG>$ z<53p}U-$j=Ur_Wl7xsJVk`433%cZw3_Cfa;AY0_T6yqE@kfNFy2Y|)V_bXj!;HMQZ z`+2(BJP%|2Tc%RgtzDi5ZIphm%=rzq{v&O00m$t{6VggKss@;e_NVeO?gA^N=~Rhm zR|+aGc#O@+khILY@s`e?>3AW#u5Q6u{`E_RWZ!#}2B5Uga)4U2%?y<*fIdWYJQuXo+oS~;ExiGg zl0iuvAR6sjSqwRhFzy%nJKAHKDTTsKedq>FXDvC9ZvT>wwyR!{iGl!C*E&D_c4KH% z-rnD42vyqk$98Y6=X*CFm~fRjdtZh<6-Nd1T*$z}!(Tk)!py9?aJCk~s9s2yj?)(d zeheZk`_uI8Fdzc~#bki!e2wTxzUNi?d5s^$EJrd1P4S&}*~sqeah<8sZ?8IQT4i$3 z@QRB(=@et$(%uPAFhDPk2c1M4iZ>6I3;_17k(hJ*l};lAjQ#oE@XYQ?zqz+364JRD z15P$SGE#`yiHDaDcuHo=U|8QdXe(mP^AiEkR7Mw9tq7$s9=dXCt*1hzZ^_v_-v3yCrtlQe#lBKKKXj6=4$X*j#pq3X zKM5f7GW|F@F6~%yaaCIg^GxeD3Om3INKi1_wNuOBhnN9;GvB2nJ@zc-&}|3v~s+ zYWgar8UR-nNT)vR=upDtDGd;Xlk|Sq#Apjw6?=;4vc+t>qhnZSfSK!Q^D>DOM6FQc zRwAvNQuxwHFd$sDyQ6%V9-H!XMJk<_cSi~bYhe2Pz+pPt9hj>()g7yP@Y1MTS(1U` z%G?V_2V0gcD)_Yz>Gh(LT{BY22mp4mIQRwaEw~R~yR$A~Ie}lu1wmVV_(M9H1`iUZ z6b!KAaz7nQ>l}(H0j5})wuELU!j&7l!|3ob9jABqRLNISzwq6fmeqSgXjWW85gcI2 z+U~1mnV6>UYqr4bY)}OdoCD_g+E!s(x@|GvMm)16}S zk^viW*yoAp64Axvee6mfyiG?-&2`HEL9{ywF>}BEMfz}Q>@ThA#R)q8z#&J)_vvg0 z?_742=+gerX>K=N^m&+Wzu1vKczt7M3;^=`>G!>1^&;Kgy_M+p=D#Bho`s;1=OV4K z7-nvQ1aV#!bR#OxP#-=SfkD|?@A+iX5Gee;$Sl#$W7(r9h;pIaB2ie-<|(fa~u z?Jq2LxI33bb3Zc=Iz^#i02rY^Hv>SJ0+0lt&%7cl)_#RfWmKrho*)Vi5v>OdK*ZzO z?L-trLt!iT=;>yJy!!l#%GR5G0!plZG8Gx1DlE40$1kfuzCN;MOWm$s*pq>p$+VrP z9r@ypAL-|Dukta`fwXBBBON4^4L9lRN(aI#RXjw#Z4kC?n@ZGmBY0!?Fe{nR0BEIW zo)%!h*gK;Ig^8%$&4~L#75aLW1@ObPv$$wki>ap;kCYwz z;gf5#SbZ1f(3K+m-POc)lV1lK* zFb1t{nm#Tg?zxJU>kf@b?xW-A)yD0^-feVsvb+J;*>Ix4oB=^5yBQ~-k)>Cozn^o-<&h{b0} zgVkNnn&1mSgq21sHV07Lvf5_OPP!F|hO_-C08j>BolJ>L!Cpo`ESsabL#}24&*@_dh&%vaWzVc8aWH-o@^Blkkqlc(QY{60}ycz?ePn(e*^w4C0fW`jW>w~ z)t*0QOqh*{&*$isgS~s^f8)Lx#>>B@DYoni?P{=V)4M;6-+pC^ylJzlE6d1#5J8-~VM z`VxIR78j5o(~AY60L-xLn4dpMFQ){+rIxCute&2fuGBvLa3qjGELU)h@KySxUxAd~ zi$t$Fi39Y-pils$UZpq8#;P%=k1lcrq?38_?tU*8WoeD!r#wIlyvRP;T5O?5jECLm&&hy1pm=t=?LnRP2{SUvP^8*^Y)Mr{oM%r2sO%GC{S>n&C!ztT_8 z(@B8y<_Vp2bSMwqrU^r;X3T(pmFRJ^@e23+v9a+gdmgSzVCcCYP7UY)&$JekvnDN3 z)abo=x;M4u_!{3T<}I*XwXuQXo(2?#^7A*!z!NnK0Q`|I$urN=w+%ZhvniD3fGV(( z=)LGdj%xwXEY_HbAl#P9!V>U(>W>`Jg^r+@_ZQ^W*nM(l$2$JYiuRPlE9GlMk14ai zWuGKEm~Ye)RQUqY=e31D7wo%7H#R4-&;Cku@W1FlHUQWK{0~3w*;5NhSbBnpHs@B{ zrTuzS?=vrhnV2u++5Y=>9{~EVG!_Arbe{tZzuly>sh0bJ{h8li4d$rXX8!zXqW3b0 zuR23-8T0d?3+i5*zdX1Ad8I5wkS5E=Pdw00QPmRBPpOuv&UIY0x|U=TNPJH;R4NX& zTi_6eCtU?_`m1xY9oCAE9&UUubM>o{#u_wS2*#ix9;AE&P#|-o?E+Bkh^K0{E(9Q* zFa{$uEmYd5DjxY8jH!+CV@-OIcMs;><$r()@DX;BXZ9}vT_HFs*$Bl-*m%bQM zz!anp(_5KL)?^Z3R(er2&ZO3Ij6TjXP4zunTXg37D$nv9FT)`Uh1EnC(?&HYMvq0L zx~rWrsJf-VJ4=VELwm~ri~~g5blYB$F@=D2_y42q{X?Xx{{QjE;U4a}oXfqJxy)tm zaECjW8D@rAW|mCU0hLgacM;{Y)LW6-kY@ARKu33^cn!L z;o(`QWySzB@8pkvoeEh@{tb2voEo~n_PcyRGsv4b^L*K^)*pm$k%9|A8JsNsYhbd{ z4@fGe|0;Ws*8lgQ*hjxqfuJ@IdH<%wvFnegG7MhrDqX(sp1NDAQ?d7H_g~$)a2Qg0 z*LD|t-Hx_DT^R6dwXUqyoY2~eyA}H%)NGhZbf*nKDYsTd^+an-9CWEZ{N45h z*vji~_q6q-!RiecKy@S#et%J8My%S%yAp6lSNkyIwrL1nJx%XblR?a|Z9t7=%PvQ7 zfPUB%wM`glOMo$N_0%E&u?1M=X88J7S{T0ktnuixTKzz~2jWDUL2AFn(+ z78neA(Gol&)Dgy-A+&P=WiPE%fC(ZmG%p572z1O4{g{ArpWo--qmc)C6BdMX zzeTk?h0;}`Uk+3s+@>zMEmByxrP2bFc0rG(?9$Fd&Il%nuG@Z0nPQl6lf~6R7Vrq zzdP6%-L}Gzz8>-km;j4rx(geKj+jkLxz;630VuV%u8u`m`O=#Me%gjeJEHjLQyrFG zIneLKy(;Hsea}!a)9XZJ@r~_^B9XEXtDnoMVDOAE_E!K{+BlsZ{E(HS^-Ze@4=a(Q&}8+u6dci!Hc^&GA`PShQGysFy+ z7wJ$2;OQfK3u10eP(FKei*IKa^|>({YGGjtQ01(V!=eg0f5r_?IlCat6Tu-V%ln&yEm{n zYZ(f{N1zv~@m4D}cLH1G3Jh)-QbuzhZ|Zb$E8?)@Ah^V=>Ot)QbWhd@5a2wrd|^O z{GOs6edO7i1?1P40K}jAVKSuxK&fAAhOKNW0D!Jr+uFAO>Qim1T5`0RjZcQgIFZY4;xe5`y)&?`0K&hT^qafJ~UM);Q)y}^wWmc4|!*h-~giA>ARp=EW5cl`vPtH z_e&AoLGSCR6oa@HNUL+IZ}c0YSBo6tZbLRRbXqErQ6ol&3h410G}+7z8YTdL<4?3o z0^qXp716_e+t+8L)APyc-ss{b$;|Z1G~lgWUjop3en)=Ojnid_?RV%Y6TrZEdeKJm z4LY7Tgf!youhWS*AlrLIM1!@L>FaSWAEWmS01&~lhq5Yam*`THbh_*Gm|yOTOLHaB zd%hf^JL{dmlbYyEmeaZh;}QD3UQEU`zxM^AJ~wH(_9h|nzsy7zV%uHnHSK5&)K6>Y|w9Rzg5W<}NcwKe(Z^!#pKudp4G(CQU zwmA0Fzg=Bjt*8B^<8J&M?JA}cJ&lZIb7e1GSs61F1}Kt2HDi89XHVWeK(`)sxY~7+ z-tZtzfOqtD_)L|SX7>%}o~ARdof1sC6Z;1=1%N(wd{=Gkr6;N{|8c;FSaPf{c=EeZ zUjVW;R5XCd`X4sr2Omm0HXwS3yPd#oY^+;Zd!$g zB3di~L`$vc!!ZIUV*ytA=Y1I%XpK{wfE(`$NujVDJBXq8B7Gi|1ik2sqJx0gfAjJTE2Yu2t*ZrX@b(Kxi)xmCz z65V);=t>)>8bm)1w63vAM7OIJP^UYkxn{{KL{w}!L2m2vdk2YVxifo%SFcs-xc;Z4`*NM3iFzDTx^ zO=bfI#Ty;XN7Q02teeF8F#hUGW(J zrpfGJcjm=E4x~hEV0mE4+~oA|&>K%BxMg-Oh$dqh-nj8_a^#7UjbNHibp$D!=?jUd zu#%RqAiC)rMydiug3E-#QBZ(5ho&ORfX=%#Gv)yQQR; zsPz_v3ema#&Got5*dtRV&wqS<{S=)Uw4#QwXijaN)z7KY0z z6mSkNZ7=-j+yDo>qjcDbS4%d4NG>g{fw5dr%38bW^O2yOwBnv7n6zxb@a<@N7kydp zSeOsI;ZNzS!LEXDYhcUi`$Zfu7d*XS7ttFYbg_!=J>fW;>5o;ia)?f4-6dIH6`TRc z(Z?>39_yZ^44`vlC@JQh%1$^nm!~^afWvNt;<2+BF+4fwb+l?8uMnN+Go2^^&j2(j zUnbffT7{58;gRInqJ#k;bDB<;4L4s&wH=HVH{L1=K(oV4L2+?Ve(UZ&N4V+gTuQFF zXm!B?^uEOo2kMV>#)7Kb_M1duVPZB$oub286M*cTpGO-kiu|5wW-D(;za`z_{I*-!{7u=7CCyCCs=}UqEx+|Cj49^BcOc7Ib zbHcWpA#lQLUY=cyBfFv30)X_;U<4T*~0B&cke}~Qt7A$9Yap3CUjMu)VcdDAV<>wcC z0CsHMiPiOsA2pbv144nyW%t&ZqAm&(OA;zKi^V9H27_t^Syu(1b~o~_E#(}0w9}g6 z6w5`A8@|n$s=`?I$!|N83kID~6-RH}o1+Ou zGh&8J?xF7%C8{aIiraBv*j)~TA{6jQF&i=MXriZJL&ox75N(cfC{DsDT=?;k&=S&F zH-C&iS`y2@OUIk3`a+qrQ1)KQmHqS)x;*JBPUYyi`sl?gs{+q9g7Gz-d+4p0q5;S~ zdn^hVj^xGVgYL-DX-AEXY#;TanSyj<-lBK57Zfc&RvoMM9sGG&QdLTQul=!}@do{| zR0}rI^>oZHE(`(<0Mhj9fpj?kFjU!b6$>z%4d!0E!!>5dO@M(xFb=kd4tLJ+1M|r) z-7zbtx7Wfwn0tS3ql3?FTgab(t6#Rg90tvfM{-YXttMx#Je#vDE7aoV0F=gOZ&wXK zHQLFw!7u2o==>BmvwYuI0Yr<2*-|cm=Ce@xRpVy1?djRw&HhhKv0MwVO#ou}$q8E@ zQs>lMqseb*Ul#xd3DyzPUSa`xy6mysF1%zG}*j8;|rqQ**Pw<{V|+K?ijnTX6q9@e7|2d+p*R$ z(0;;W!QAzTT%?W7rH~N-^YW@d`aOD1ox6I;he!1^~5n zA#m#T^<_OZvVH*oHQ%sNIQ?}$cjgMCF*Fqv!h{D#h<@qbMR$jRL83pGgsGa%MAVkT zN*R9D0%YHhTbie$(feF2QQUB}$N~8Kf8SaL0C#yMt#JT}7%+DG+DwrFD$~tiQ8it! z4s{f5>kXpyu5U8U3I@9aGrXWkTxHyUmuP3;y-Bp);+ub=?Ly@M+*dCQDFBQ^bTq+Y zFWlP5Tg4}CsQ@<(7T@s3u;~T{xYJeZevIgSw|RHM@{C01f=Y9qou)yFrus*Fr7ocw zLv(kO7cru>{a<)OIF<-j>{`H}S@}M{Tn>1$9+A!f(Xa|(_7DwAFAP*~u8iCO1E^B5OC^+L;kNpHsn2KHD#^8k=stT~Pu5rQ`XfpMAd6uoJdrJEbFZCS%x< zSbY5J>l1*CTZ~1x{~TS21K<#*A4DQTm4Pjh+ka<=$7M91%t4rz(~*{%mCak+h%M;s zwOqwWhL)uy{fsS|jeP7cRX@@8Ofu(J&QW;tmgNBSj18I17vbR#7=n(FlL9no+3Kf>Dj`PJk+{!6RHp}J3A85u!o}cs*c}3v)0~r@!1!D zzP@a}4KLU;I6oDY+PRsdzPZ@EjmphmhSTnvVFhs3ZJ9HX$eqamK-ZdPTFrXEG<0iG zNdiDyPNO`VgY&jcwgGJFC)(^JR?a5e*Wa4eN!@sp-mV*l3Jh%wJ4zS>kR8qawZuy2 zMpD`XysfzjLg$I)|HB&ayf1Tz)&NL{M3egp+C8^vDgrA4VBN3O0Dw!hy$M*&)t2Y! zNQu=iZ=V-Wq&7^5IqW*`;{vADxD$I+!wr9V)XT;Tvz%Z6aK?G+pb`%$8AgJh8M z{B%NShBPX-=+_vmSYiDNqDN%fiwd5YK2UT4M5b3I5}Y&h@uB3?bSw!VB22sb5e*9! zW<(gy(7LhW<9|GzHPD=ftB6>AD6dPW5VSUtVQYpbr5jQ8Tr3`SYn@S3q%y@gq;Dh# zmv$zLjbhweaQt>ExCROLPt)q{0Bxbh@LKOsD`9Juy;bP)hxgruqxB zRI?BT81fu&1h*hEiEK0l1T_zeWm+EWeMArGD%@70Mg`;#v@rnyF$I8>+4m1ug(`Fg zqh4wH(9uSJGa#{6El+V|Pai5pT6~df^kPDh@sc05Av=}ctPJr~ac$L#*$k=P2Wf-$ zeML7f5xwh%6oerB9e4B%x>{5cuAH?Qa~FNzSV?sE$-G2brcM#v*>a2MS1i|dbm3yV z8c;rUcxnF}M|0mlwpBs^iR2|vdjCMX;yMwg8Xut}7J$geJ3H|I^D9zS0BnCyFJJfi zB#@|EK=!*A0|4kab?AQ9kpDT+p5Be$-5h;zpPae)lV$^+msSBcA1r*2UTV)+KT3zA zwR1mj0l>9G{B4&d&d~g zgn1uVPSq2Ua^@Ip7| zmMy$wQZlPBuyLO?Y1&i2rQ%T6xMc8m9bO9N23&F@$I_avW1wh(< z6yP$_d^l#c;yg<9b_c+XtnV9KiNXLFL^fx%+y+Is8|bH^NS|#|^;Ia)m(ZyKAnL~iMe~kNhDOOGX+3;3LsZEJkB&g9%~uD zcZsgm830)4iJr1?isUh}OAsL4jm#*E|kV;`*ZVU-kuif81d)5$vRYEFb#fN>Q`pfTr-?55H{y zx-POyy3F8py1n59-SPmT8>I>tLMXy34&+lY!%&$bM~M2J_%u<8d4Z9x6;lVcKUUCy z>gJdFM5`CT>olr=el}nw3XO8KK2`{wkD;GwwPg?dNXr34)OdNK&u`0!tGQBn)Azqk z#Z<%d^Nz-#CJx*?*%#-`sP)*YP;{$fXrv=$0FaSP+EBS>C{Ucp+zCP63-m^2crs<# zmKR~n8$EM2BLHbS`J`sM-NR{FKK##DGd^Tv{|es_fb0nXM5i7bumEOoEiyFFv5Iak z?OeL^_E1pk4ZKCAF4tW~7gNIAL)5>OF8Wdb@b5(<3j{>VEhOoW3czAc;w;fpZQg0Q ziC*!9JVz^3Kv6_$_qMX+-nvJc3AoC>RmtRviSD$XzeF23M!um}#`ezSIO7PF#?6H|)8rpMRzE75Z-5-aGWcfY$yp5jTKlM=;FLP6odsddFpG$3BaR=yJCg z0#U@Y=0=R%^-6vOjQIfIW1NVdZSf84?L-t-8*K%EwUAyLP@xd*UDJ9Bq?YIc%nMq-ZK{lJ;s529JK5O(bio71yIi~9=~ zMQeTz^8f9%l6d8xgSsfZztx^udGWyCk6IS(|0X2>_~+@yJmR96nfHCdiMPSF zwrMzSbZ(fC049#EnEyrGW%JS7svV_|jdo9^;`Svw04Q8xs9vOR(^e~B0U(Bneh-zz zm;Bbp0JLiPnfj}AxmwvxGX^4yY0aFk=o~&fVL=tPRi1DGM=-<;q;AoOZRmw^((@dE zn*ikJMBADVD((Rgxt=(LtIyttqW};Cy{^iwT9HFhfhYIoH9)n~t`=-RF(Tl;M8~=h z(%S(5o~>8_q7FBb0RYu;I!cl!dV(mEAD)hO)QP!W z#iE`)bAe7*PS6n#QsdFwv8OW%k1beMWRSX3y+LpGC7TaY)~?dVu9v3LR%GQr57lf1 zK&r8IRZfGFetf3v8DQz1PxPb~h9nQoNkuTLFQ^JYH8~L5PcH_ZpHACSShi7rkFJbc z&@)lnO-Vz>dPn;UanDhJ%*%AS6M#TEZwsD(m3~@nSXMO1uBUs?7do;9OLt28Fwvn$ zh>qukyCh{O@HW(ZZ!pFIvnW-I11n2;06m>?!0EM&o|B9J5|Bp6hkOl%fu$J^9m+BxoNE2KB^UN`HAw3W z29RF1!mIw1esvfC?I7K?VEcJX4U8NIpCY28$B3v;UqnPz4#48vwY`NzRMR*z+llta zpQH_8yLOP$co0~TWX}&2(s7|Kx^Zo&%_CC*#4UzMM^|^a$BbAg$*0C0BN9uFjuag? zruir7STPz6axp9Lb;EHq?xbRRyerEQY9%$dOprIhq%HvICTvGSbAoK1Lo&XR?mQ_Y zQDLRKlR~u|0R|Za>1@7KD@#B|z`fN(x65k8G@NOoRhI4`+PA1%lYQ?!<6DwB1_LzP z^&C|-GkXSnk$-Y~P&&J_XmE(Ya0*kjq4Ry(9D{Fi%_{eK0Q6|YN?2~ZaGGdsy6Fwu z5B*46QspR9ybDB+IWnrKPNjczv|z-CKBN6vL$Tf@I~H%-wL~>Tt~DP@;p!_6CZPFYAqC z&r~dZ`PXl4_qeo}xsvXzcN5EZ3|PKlFDCk9FVU`;4K6f0!klC|fCj4=PwB#oxzceB z0ItQs0oj$B%~VBa88Fc#Aaxdo1n%xLqnW`Y@vXBftZ-NRZT^W~EZgCG-kWry6F}i4-FV1~1vXc7%TOZ*pfI4^t85~=JlN6| z5}m!3y+pSkk2I4Cp@qfgT29;OEM1_(0-zy|&O$Q90H7zld}l5I%{+K+5G&p{vEzQ) zNIZ<$_}T#<=E(582vN*OX3Js!E*zcT-_`S9&B+vPtg$z}o3emeeu`Rb<{pX;1D0K@ z0`P;_f6l+*pAv0R0P8cNspeYE0Xy$JO#|S^Xm12S;>?j|IA4EdYXksawDd1xFW z2FeGlQM9q0=zI}?fVz$7N&q0Hfmvxk(jYpZ3!hbp=mpEKH!Dx6VP8S-c{-R}a+`Xj zR@qN9yzmX0v{-B#9ZjeKhrRa0yx_Svi24DD#y#2{pZw#wShLAQc=@Qxt=^kN-GCBh z@$BHB3r7H&GhT^mTsj3;sHu*MwMxzCmeK#PqYd~E35ucmA@ zq*!nUZb(C8V9cnD)@FXV7?!Q=yeD;wGtG=H`QY-fZE{lu0~Af|+`ete4!RH*@h5-Y zUfO$W+Hos8FFfyCxwYG>8e)NO7?n+Q_c23{1|7-16Su;AjA1&42>htx0s_+VJv&%z z*?=fTqLCS**PbTYY}$g`o@xXoM^wfW3`*xvGS5{2EM^E{4&K_=)p&N>$~||M3P32a z;?!i(jhb1fxc#TYUAnN+%f?HELWcze@9gTbq@6rQr$@#v9jq18iPH3ewWW#W<+RuN z_@+RphHaRgOG*OZnUUYa001BWNklNL^Wg%*q`04QcU=r8&1Ako#4sKz6yfpXV^n#VN&5yzA60orCG zc8XRAGkW63e%p#>fgDYl0zmB_Pj+f>cMj?tp@-U>%8Qh@|M?294NAtKTmFGRX``)j zVE|fjz=;V>N`!h9p=AVpT@C=SqeQQC=u8W;uAB4>C(1j{(jJdlmd=fhH$EF{p8I-7 zMgTy0V>p6y!MVG8Yp>DCS$85)ZPRWvw_HhdJp1X|p1Bl~XmxW5fD8trf0y$HU{u!i z&htOqbxr8r^45a|4E_VP(-lA5d48exuYV`$sPzx%!l9YW|Aoc3kFIU}pUg&DNwjz4 z+&6ZFhK^N4E}tf%1#F0@G1uktckVR-;3Q2yC=Rxte?AQWeK!t70LbA1Ifq)vcb-@Z zz}J>?`%HSdQ=m?{q}eZ?7PMb zdT!t6qX3XTPQQ)Jb6$g2>CeVWBB~pHc4F8z!$x4M97yE3IYxAO!ept{y%`5cFDwr_ z8m~vtYz$C`exp$VG4aV#0YJ?@u`nqm0406q&}ieElS45hVu5KBH;(tl64hnB34qzA z??q}CY0sALXqN$vL3PXff2Y@ry4~E}Osc|mbOzW5=%a00N3+c=sDPb~Xi+KhhrV4a z6)EXU6(N~R#_dH!+f0n)*b_XxeKl{{WMAzfc(+TMZnbN2YEWAs*u6(h{e@p8CtK51$ zYeY?J^wvZaN>_Ry?|U(8X(MAKf?U?NTtEK~J)Vi#0Axhxdc;iEYiY|0vVmimE5D}q zU;T-8+rde?y2gU!D7{N(%7E?4h;0wA_J!uJSf3W$w2Z-zuCLASyEGIxxaisY=CI49 zwdlFQm}>|yiTtsz2Xk4KGXUP$V9J89kv#MJmLTUt8k(G~_7#O1JWVH~iS#*ojPn}N zxoj+<0xOAJUBDosn(4nzKPLfjqn+CV7mM%GNrwT^;r^(ixvxFia9DJtPe#W^e8wg8 zp-#K|z_{JQs9;IW<^Yy{Lr<8B88x|4Tv##z*r(`#7v|GnryCo+<{ninDKw_K`4H3g z5S>3tbUv&VnC%>Tt4HM9Nz1TRVa(~{^gpEY3NT3YUGJ=u;>>fiCW-#6Xmg>_Cu+3= zb7=o}VDVpFj`;#K@zLzx{PwJ5cH{vT&P#J5W|5Bq$n}}{-@FDl-hWZn&U4|~jBJS+ z6(R~S)a;*Dx&;8pkv~tw00h6#k=DvYg1>shii`mm-gldxbpiWBdR%KARlJ>1Rr1y5 zoj7BweE{av!3F?z#r9sF>`eneZ2#v=0cgnt1HcU(P-A+lm1DM8#9>}kp?v6cBTxag`#aj|D~X;( zrBqPuNqdIM0SnOb3ShvP`IGh~0o7uF2K#-YCCW%KZbtUprPsbAqNjWT0B&E=Gm_8$ zPLr0s{Ob?;gjZbANOT!(o0Wo%3DrlD%^7u-ds}X5g7DFQAT9W%GX`_t6;35;XBKakrkw|4dJI?tIqK0BQ;Etxn z#)@UD3R90(@{b%^W&?oRDBX`@JYP@&wRc6vU3+Z2 z<)DqcHw?g7`_!VAp_%FX{0KF0(M5Dr0NRQ+?;}q1UQ zev<0~(PRIni}yvkH>dm^8o7Fu&M$78>u&nb6_x*AD1i4Dzpc#+(Ik)qYp6L+$qql` zkIYIEGyr5DBn4qj-J-|iV7=Gq#nv#cK>mwMv9qoUW#lrwmYez~?E!#F!vL`U*DE6c z3h!JR1knA)r$d1D41M!pN|M@gPE&j7n=0pk($R1L%ZM$o|3Whtp4T4@tN@%qW53MT zME!!7lf&i+5#^-{#ET^p@-d<_!-t4gwH~0Dq;bxo;IZ+2!K@?9^55@u5UY$zrF?_d zt^S@)hwau-6NU-C_WOIAQ|_u8w8=_0mX{K4HeX7*x@`bZoTQUK{nOSY!18;3-QPGz zpN-p`DR$Bgwa>M5iUHQDrw1exLI{luU2C<;gx_M>x|B>4fytmKKi(3$hD-piL2=`W?~Uy}zE! ziR?8xUpKOjd-2SmDJ)wE=+b_V-fIq5u-wwJO>0LA3~+`QbtE0hRI7VwEzaj~Edbk% zNjQVOu`S1zrea=b$jmeWC$svMdeOJID*-)X2qEmj@ra@n4qjT@+;AEfg-ThOwdbj4 z=$D0#0}kj)xc__w1)^%RL1eKM%yR=-9aGl_P>%KvDE4YS#)|MceJ zMaQ2gDga`Kcb1m?@OHr|t}1f?{*e!co9sXp5NFOY$o^5vW5~C^Pf_SZIM-z&^agmIqxKY>5Bk@}C3^8B3kiO_p%t?A0Uw9***m3BFE)grpW z+s#!yz_i?f)c@hSD(}&L!(FpsPGX?%!{0Umh`vb23}D$m=(vISOGNL^!Wpw2Wqx&r zWg3kv0Mu{N6&2>?)8u>2wF6#*zl0TY#3{ z@WJx|FnHzSg0}vaW=n)Jp`7tV-&jdPxU1_ z>G0Dlrz-{k#2ukaKt$t?Ye^@Sayay+sH4H97X%5vRL*-|E4j|4;dkV-fo%w`IgVkc zt(alR&2(#%ty=kxay^7f%Nx4;)08P;SR9f8Zeb*6YcbBy+_*vmcrduATWKoHctO`! zXQvAmGvEN;qf0qpWCN>fqH3F=AH+1IT@`Br01$$6LreM&0MD5jNL3p>`9puw8wCca zv2>`s$SnpyN*1d(@-14Gf0RDkm`*wz7`%9PSp)#=WSqk-)qDP`91`iT=z#mko{}g{ zl-fQWTYYLxX3O<055%dCnL)*#S<~g$hT3`c`h}TR8D%-0YXYEbhwbt-rJN=YnQD2W zCC;40m&*RN!s&IQCo_O`jc!b5j9J?hAJN|75cl3Ax;)P3*0)>Ve4MU4WdB_qdI!z? z5AZK>p8j0@pAK45pV>2~ZDnCF=kS^NY*573pG*U4`)uLGIasuyN6zL0;tyaZ&cDZw z9t%+JyR=*gxJoJkK_05?f74Mg*7>TRFNO&o!2qzB-M&iI%epq>R@Cxy zF-xW%{q<4L>56G!(PD`i(hqX)(yzna6ORq3eB!OCfvBpBXjU;Zh0#Nk6Tf{n)*+(V z?91yUkTV1nAbXV_$uLDrI-0@VlSFINss+TJrlXBJbRZivexaKcU8>Abg|~X)U^cC5 z5j*e;F%BTs84Q0zkESgJfK^P}T0Rb@M6>DXf6~E#GiirA#ea)lD|x2#(6uY03YZ~d zzGE0hVRX3=qVuTb`S93u?%46XqXQOAJBeGUzUokS~!TZ}NPV$aqomB4`} z`MY>T310Nx} z^F+3JiB{XnSaZUMKS}pWEe}h!E-?C#2Y4-S&3icjO3%aqAT~$Jy|ixb7$BuL{4?$x zn|C%YP@%L<#lLj6{$L22ermzrN6g;dCI4@jXEo+HnPT{*cXijjiS|v}Us8MOom_gn?=RRoG|}XQJN3U*gM>RT32Vos6ozF6>5La~ zJqLiW?CJsfVB{Fl2Q~m>=|wuxd@6;rbjbybY~2CCoTLDN=)`B|C$^mUxeNd@^~~=} zX1nP!WeJ2F;K)Lv@%GjZn3O#3t2%&!+kCc@L}!WUj{=}d*j6(|;OJ^@^ha8!1ES+H zZOwc^Zx@877#xsHz{qZ$^8H1l?W0&kg=A2e7#PnFd~#)_12E- zeTc42>Y<>G>emK5TeU}4<~=A-7yvOtpN7bFx~FgousK6ek>gaz;k82WBp>EM+y(`80j>e=w_lKz`P?FO>=+Vp*o= zxs`gxiAWh4Ojo>UWvVwFaTng6b`%H(#JQPHS!Sf3YPD$zB^r%?a=6;DZPc?FED@PF zwccicYS%8jGn`&HkkJ*u>F>^-pkuwBou9t^>6nhl_(VP!8+YB}5jr<{oZje&t+;w? z#!vt~myv4U2lT~=1zZYzKe#4N`vdWO{{ z)4S-^0Rb=wFpC4cgPy5+TOP3hKrUQ5wEEzn8me!{o4CeoRRBRDH9&8r0l+c=^cpGY zMuOY)K`%6;9oeP32S?r@S|>1e^PQ2eh#t34x=Op_h#aSFP7^7ebZ>_MhOe9*3dSee z)m=W<3a#CTnza5P%K@j-YR1;cOwk(NR-cn^(s$68Q2>bU`)y~p z-iAjG(`P_3q{>>*8gy^akn=~om*OGE0to^WNdX|&dcK8fn-E=6)0Hn@t zia^=_%gQEeMXT@PLL2huS7P^kIso_8LeeN68gP(2F0b^jiEj{5Zo$Pk|_Pkgd*!N1vT5@MD%;@nH00ghl zwTg`TMyPCL#!UvG{xQ*+eMJ9syaK=@1?d8i&@|p4I^BBqTA@}Ea}NY}G0}ZvtStA* zW%2C0boeyUO9>!m3kHBYsi@!pc(y<9?E3Xc7H~@iM?jeITukstXK&7l zgwiU`9=coy05xW(chaXxKzQX2TbE|KD^)6Y8HTj-1ECH{yqe7~Y8VEj0Ov{+fG%SB zkb-QByxV#z+6F{8FT zCi5foXQgnR7Bu6T+F<%;{ zrG`$PuvMjdC>v*hy@&4YpY@o6okW*kCc1mTo4t}qw%M|l7*1OZ)j$6Ehz|fG^y})_ z8aieJeEi*2sxn?t^_}$SeM$X?!@)D{egpv|G9hUzKkMMtCjZ?ykK%zhM;o}VBSiE(Af25=+x)FW zv=m6TR&*0l5BO1*;ze?IbEXjLiFVr9(PI?`OR_(Z)1KbdqR9DC_BZ)dAAk4ntVB z)A{SY0UZcpx?S*19#^4A&ch>w14^v&_3^r`0FX!TJnbtAfWo%z^`1j-jz;WM_K912 z6HTYv*STrA$LQYPH|gREn|Xn)O96lS zH#Qsq2p$@;J01<8AZT<$a1}tz0UKR#@AE}&TmV8hVK=E#t$i;QR|j;3DT!<`4HO$G z259kWOv_)S3$twF?k)*%k$L5rGyoXKZ$A?Nb~Pset*;ika8F)+zFZl-Pw6~5x-7il zR3igm`1;k!#<9Cc>h+0wTj6y4*;is{22o{ypF&3++R~e<%#$^LzIIp?2&r z0LcB+P&+TvbN7`h=z2zVx6=KIP^IV2JV^-v&=`2wYY3oh%$wEWxUD>gv>6~?BANlP z?N|E$hJ!wfs@EVIlGJM4xH8#YUpBqVHt!H|SV3<(BPQetS( zq9`#KYOz?URH|64RBEwUth8K<#mbeI>!roYm3ryL(n_T*EmkU(S}ay7wpi@*{bP3X zLv8PUf8O`acj+H(v)Rnfob#O5^Lk#->)9%eFpQ%>{?%7P0Pg7AG7j+86%8^!Iidqv z$BDbo>-DmiVMxsDY@}aWZV6zDe%c5CQe~4wpL?)*F!}Ni14+-)GxIuvI5|#)rO+`% zTtoYWsIvI6g^e9OJ@w>9)Z?O|GXVC`orz4kH1_IOT@d}ZX;NC=$g*Yin``BpqVYZh z=)Ow3n#T$TAbYxssr-Sv^!|HyX?r#mW>St@3JuM2q{2qOqFtT}FgNM1+P|S1nS&SJ zuL6pyCAR%|VNBN~-$fs^8Ntg$?;fPn832h$R{&^ZSLvIHOx90GZmc8vXPDYRbZP9& z-B)IazG@I&#s^F9q;GOsa`NNv0w#13^aKiokqygRpDD;x?*ZE6Se^7sgB=uSrX9`d zqyA*zeMOrqj`s+SG5`(lf4#Q7T)^ zfSX`SE~CTH!l0V7?X<2$dB@N#4gSI3=wKyuLpSL;Ua>){s>&0N?`e>RmOK1xLv?mt zAyql~`|i+Ba$xG(nI2z--nn^wvt^I(8mT<8wd%$yPTBh8bUtA*KK!>Wk@(qydEw>D3;$pXle_RBm-oo7b4GCcJvvg0P;V-4+;( zBlLWUXqJNm;3|^>fcL~|U9m(*xgCiC4S>CwZj4y4qG)lFBx0sbFaX*4_{thC(d*p} zNi1rZ1t0m6wnwgS4Si0u)s(N%yNlN0%1cC-F43jc+Jhp!=neX)3NW*A)o`(#=si!@ z9!tcr`viT~Gy2ty8D9i5bfTcBwH#P!%IbzuGU8}o%YOW=IZ>kD=M5GbUhBV)ih9t= z%4?~|d-uU0m~OKH)aG4_|5#b=y-)Od%YQ%WWgf~raz~BNEW7^g{CL1+s9WA*Z!A{< z;AS6eg8|?c9|m#rC!bh|l+D$J2j@KSZfo5Yno)qi5bbjSZ~;J6-=qDplM&+Ky0BiM zivs|lyJ;7IFX#&&)%Zv z8w@Q77&NXW5@EUA<^s%XD@i6>_q|x{pKbyG!2u*9Bii%RuE^3k0JiMoAGdj0<;eFN z%456Rr|8;P#;@)kvsm^Sy3(w<>*@QFYD%}<6{N$aVk$HfhGgLBf)M(1bT=>kVWN&^ zOEf1N8{B*`42^;}Xu$%sMl-1jgqH0uBcd(m=uwL`jEp&|QMpZ{jx66i-C<;3{(Ykb zzTvO^t^%Rj(#<8uDi%{2q$(XD6}|sU+F8zPYR8+;mh5EXXw{PS5qf~gc*5-{o0+i> z>HVRC#hJRFF3*G6rcy^Q=~~Pz<8L zj(1}`hsG^s6qt`}?M@pL^waX;D?6I~h2|qIv91jaKxJ)JWY^b%kvlX#+5zBOq5=Rz zm~}MvJJGQQ?;ufa;;!mSK$8HR*z(Uxha52#YvprM!%2E3?=0SvPT;Nm_8-gTil;^c zATivx5FKUk%ui>AJ7%Yn0H6(TT;h&0cA!>OkOl*=jlQU{a%}S#0||e}ofk@;n5OTi zm&nl!JOHqG%P7%%4|84-0_Z0ixi4tBL?2a!1thmD!40t@@iu+bnEj4+?LyO~L!~Lg3>zU(mDIz!4E8|OO z+gNk`v!cKrzeJ}(J6V6Ssr~d>1Gofa-dg@oqOamZ4=%uZf1xX)2F{HMqFVw6T%$6a zifL-2Cb{4X7+z)W2tAo^rQiB04B1Ut2S_w5JJ4kSEK%A%>h}Ij6A70Ah9;nRFWo!e zB8_C^SO}<-WzB8j$`f+9YADrtSGghe0(x#|RCs`G#*Oy55jY z+JGS=0baOBwDBTcj=-{>qwqENXd>mz-J?hI#hbJ(Ev&0_AVx$^wZB{$@Iy;V+cqpF z7}F~q-6d1D{EKML49?M8O|HQe;YKcJOt^*^`{IDhv`kB9B%!*=!o*~=Z*l#(ANCbJ zBO2^Xcbx6{UjP6g07*naRIVEeEdX%a)*XLsz~h3ceqnh}Yh|eHERrEWQ5?f<=!nm0 zyQ?=SO=W8J0BPGI+(mcS4$+-a7l5L|vD5{WA|efjqX!;Ts0E^}8USy6A^`KI$7%WivcIIx-wgi5#LV?K>)ID9U;zA2>D`)(Q|6P~ zBk1{pe&1>>TGO>|m?K1I|Ccl2hKN4N{ehWF;gesd0iZy1`;W=YQKG?oU1exki>$<)jCcfXsK zPPu1Ee(sbOoZZaTm+7w@X0*KEmWI2H)OI>7V3gM_=P)OT&I1g#la30l26Nj?C$72p zl}H1CwqlwUVgEq%jsQ^=DW7QClQK*Qpzf%R5(29@9+PEmwwK$jMN`eD|sQ~oGebq2%+ZbuCBQ2=b z6XO{nyrKRe89np2Zik!wv(=bps9rs@;^4hk%Lz}IV+V#@25>W&p3FJX_M7ikz;@m_ zz1&fq+|WdKW$mhrrf_@LFE7VdpsK27s|8(m9m7h5M~Gf27AuZ4GLd9}aHGh~uN}7p z2aMuQI``C#Tl*S0xXdrp>Ut6xJV}=aY@p>LU7h?FF6!kXRB2^oRKn2&4Qp(Wg020l?d7>AXz#QQbkckBG)a>}m|Fe%LI( z_i@fXN6&`>K(Kf#&VR{`x33NXfLPe$z6qeEc}a}Q?R!)O0J*C7e?1jA*E#>uy@y79 zpkr7405R78V=Vxl*+!>pxAeYb-H{0Q5>?{|6FyHLF1l-J&v__M+3_<~0LKM`jHlcC ztrh_1644TaZ|fXwHPicFt33D_PI+N11iASZ@SfRG9l+x^uS_nz()P3TeuFKRUQa%N z6VyD_c&fZ=wQG!>qM!ENpxc{MJrhL>ZC}#uwQf4yJdg(fg&U=0Ui4q50SUC6+MIoy zXbfOVE72wo==gX`RQ=bN-GCT+u|;U6Ol_qvBLKlFq89@IdjDjoGcW^ybX>pt2GOkF zmDg1O8*kA{J2`!wc6h~^YqTfLWcN^GF08le2fNMeXW1rGLDw2T%Fq2YnFae0xieYd-^V<3bBG(dN;*qP{ zL)Woj75isLC-%O$eB$nvQHPn{G~F3VizIi0(Yt4x4FJeZ{oL)v!bNUn+(J`Nn`1x- zuOS5pHJd0Utc;6NX@)F z61YLf>WsGk8fsm=L+-Ts$+6tLnU=U>95xhj?>hGmMPxZZ3$Ga&!!*v$vj8+Ingge|NbKWO7!W# zf4vB@oaoNe#yHWJ3!W8AP66!@-RWA)@$IK80pOMwDjtizb>T#wX~T2%&(ibtkmau1 z>o8-W9Y~HZO8|fyFaYv}yZ>C0YF94Oq2kD8I`$wwAHRHSs{Rx{qWuzJ%n`}~qL)3+ zt#mmB0NMCYas#5FrQy#sj!29g-xCSg1LrOeuGxFI*EZ7G7Atz1ei{$^wpg}i<$65> z;E<`7v-GKy_A^A29}|(KN!dk24uH^PMI$Ur3r4r*6&qbWIpI67Q(n5da+%|R_x(b9 z4S)-j6bQiV`r!HD6ypK_{I&hQX%$btH)=?4?V5_gS*{orKf3&AJbJh-9d9wW{5PWg z$B3Rw1{R?AociaW<{2!UT%9&FsTIyIdOsuDQs=%>XX!wbUj3A=Of99^<-p$QB=pXc$2wGKqucwEDqpr|y#sWAcxO+< z+1T?dY{1@ky4wU`AE3`4k?;=E8vy{{24H9a+d#K=XYQ}aa_`Rzx3V^;-QPsCS}uZf z5B)t80FqEG026!W$$s`Ky-^qZE{k<$_FxF0x-{40^Ppzn=#+*3`b+M`yd?H*$HRqqW;ILe##9AAF5ydG-d;rUc+$qbUi%=(x{zKi}T~ z1gn;F0M6W?2B7VYSpxuq`D27lT;9t8;TIFE_d_~lEgCwbN;@cdmLqLHFdw|s`J+tp zw-McbzRfm7(6Kz?05g_dxVzIzE*}cE(l2YdXgWnV>w!3EPXaJY-G0-4TIG*TWwP68 zhXHQI=YxpdZc0zldWZX>05xdsh@8N%A(#D1Z^_#8Z&BBSmdG;P9d}Oz;5)8u zw^T=htGefRo%!}Lor~0VqVr{M7k$4aR69QSYQ$Z3l786xCS9G#Wn6CM3%RH7?Qhz1 z?M%)K9n&byJw3jkZglsZx!o5)(?n2tZ%0a|rNZ>BUsT$XaW8@m7^SbaM!f}LZvB0~ zq30+6QcWb)-1_n;(UhUO{Q&^cbdP8<=($U)d^ZrNZo5aDi;iY^BOOI2<0uU&X>eXD zmmFL1plJ-j zbANj*1tff3cT@mY?G)qskPL}PW_V1N46kjlER6HPyJ`|lH1h-M9dfeEqgXSy)v9Veor4Un180l-9K z3IMY?0LuZ)%~$DENw)r-Xou!_PHplCGfZ2pkD}*o%WVMM2B2=E%M+Q&zb?}NtG_A@ zz@O>_fY!AQu~s2=<4AGk-*kp8uk(S~?QwGZM;g7xNCDu!L`Uj6MfEz-H$6-6=pi~$ zDZX@<9$S>*_IyLT7Bzzy{|7Rdc!=|#H8`uaWPU29P6}NQeb?mYIUsoRa+{`o=xj5P{s+;M_mdNr08sinz2s~8%6$ak%8PU? z$&3x(U!Pf;6yN8;5N*En-Iy?J9!{N%VW_?NyQ&I64Aad4RpfWkjR+io?MSCy(s4^| zovS~lvS&6~fy^46HICaCKyr|X+Hws>w#iUjGXOY*EUf!ry0#1L`aNe%?)q&{QP&`# zY`yca?QM%84(kEH&iGu@fSbgs3BOAZ^Xoc_FfP_Ey zPSt;wE=6wE_7!e;T|0;lW?Gwd8RrDLVFjV10alO*?IsSu31CF&)`lSO@FQw;* zD3TST9lgC<*Z6R{T90;`TIq3`&U?l7nTGJ%jV{aeHl3^nVc<6udQVrOz+_O6e*2B# z6oc7*`Cmhhk*b!gq074>ow4HSzx7*;#mu9TTh%5l%dlFCj@wpEC!`!aPapQGNTw~u zRAG2gn5s>a9e+Z&);dfITK2=v78^Luj}hp6h~GK zwoR|e1AvhjKe5W=41m?OZ88C^BkgO!QKGT}cml~{f*~ndtpETQVFrror{&J+7#}`}VL2cgNoT&~5&hUT)!lx%}dr9mO|~ zuXL7Db?(+zdI5}_KUV%@(cPlom?OHh_67QDBfx#h8L*aqez7Q)ou;3*0G%ISp9+D} zb-FyU&?Bb;FdyRBCjpeki6{cx?`T_!0SNE&!Fq;h#RJlpQhiK@=&fO(NCLdH)Ga?- zSOoi;yB)x~f4;{5+beSZXYbFPq1z#Z|3^7xKhbF&tXN9aBBrZ67;z@LeI`mp0|1QS znfu$QyN}&B@2~OwIRh|8zxr3(!~bggYrE%pL4O_}uD?a6D_kA8s`@}oo-Y^_K%nRJ`dCeU2^`x*zPRSKKHY{TfjOCypa zStvxkQX1~;uj_RHikY!i|43KX2Vyw#QU=WP^jwq*T@^6iCOTRYBH?xB7`*prcW6ml zaFKoG_sbh131fWcprfjmrGhaqZg`Hqu+yUMVrlp51*xdji97>%VPY)90p!PfTVMX| z^-8LSFqF#KU!T*tSt`4a(APx(Lbx0}={j~&00viBKhaN3Mgs&OR{-dxt4YA@UsjXc z_ndz`F)xP@?&HnILj@A)R8Px;beWQCR_(RuXdr8@#XF4m)xBno9yo@DQ~}q1yzM z%r$z?2e9={+{YRKOE^EGMK($gyq^4xc2^cuczLif!JiYMqg9}=Yi`N)Ia?=ciGOf{Mu5tW`RH8KG-mXcmZ0dRLDz0k0Kg7v zhKt3o?sJ=opR4+31KC+U#1_|ma=IQR^`WV9T0-_bIa%F%`*Z_jYV%Z#?xGwEn`OQ6MN)*uEN zdZD$*0QeH38GtSn z0F5smUy)B%Hg4$D0O(Q3A((U&BqKZDku!DI&2@C;EFpAD08CLBXPO3Z-!-`I=~iHN zU!>!atyzBXG|>)Ux4e`$MdS-jZ_1Z@rt(Rn(mS-wRs7yj*A2@JzQQfT(E)=waXXf? z?78XC0gT7*U4GQ%3U_Dn0KnF+PBmPnjh-RXs>T3k_~ca1cSBo&I(L)yRSIpJ9_=hQ z2hM5Qoi>7@p1@spo^GtO7@&I1Q95YrEm?q2!Tm600Z!mZj^rWw@aR4IYgR8GrFR3> zFt^iPlGMm8qAKMPH`@z%T>=mq+)A-1!I z3;o%GbBw$%Y4s}+)Q~StHN}(ked{W^x3{h#Iav2WDG}YP>RfeO#ZrE0mbRvghv#am zJ^j|`V*FtbEe&$R)&H!$&H9i|^f$eF@AfnQ>oTyi_LJ?gOXm?f%K#{w=@aYUiL!a> zBcjFj(W%Qsn`(zbwy3cp(W%;xo~Lbg?jxe+f19-r{`5+0u_D@b4nO$Kys6b50JOFL zDFy1TtWVkm0G8`*%e%tOZ2y_)n1#$S`f6hREqc8cR9Aj{X}knr=wCz^A{c(7^^n$_ zLT#40TaFQvJ?-8l}`-Si{PK6#Vo3_z~< z$I~fpGJp;5?l%C_cNB0<3O^l$;poPW{ISm`4A%1zz1z&078V0Tk@3{YvFmiYE%zLK zF>U}{W=jCm0dU7H?x!#N(`kPl(TN7bW>P>g?V6UOHormh`@R`2cCT7tG3XjgJ^Et7 zGs10?g}x8&m6+va{CwBbt1~O!9xf;VL;&tMfo|~mrESG@4=;8%84L~AiT1a75K4>- z5?86uYH5xC!v#<*2C9_4t}`S`+jl-QH1-w!y8G~*m%>6N>*NpLqg|P>Z?4}G0^l<6 zbZ_scn|+o%`g*bJAAhe3X*uhTu8)A+=!(AMAN32!)rTh%97sI6XGJ>G);aahx4LW% z#?*m|0wX?~857g=c~gz7Fn7{-72V%W@47Hn)2$(BZo5&WU)RROu&`?n%oy657fpKy z%<}1N4q&d03BUY5cl)(Ar=Ao5lxtc;RDPj#VX-L|1aVUHHJKg-ZLcWcEUHM?9%M}1D5no0$_+Oy_SyTh7ee0I~|BfkN zptLrw@!D|^Lg~QPdKmKB9mvTVSyFm5%OIVunnD1;Hag=(`{;L}KG+v%EhhieSBbXQ z$j~%jz=(B|(HHL0o;3npc*ydNryY-*9twR-mY?mXaa`uyxN24`gFgqs+B zte(Kzg`B|+8}95KdZV7g#tenXutgmz5rWr<-kRW?fsGOU)DGrYU~qHNc6Sop8$L@^ zWI$?|s8L>D{m2tdu+YO>eiN5uu zra4jrxKy2}g?9Li0gz`uZgiM*y`b&Nz8vGrZg1;$Bv)(CQ@rt*r|GT=#Q(sElUT+z zE$V!B$8babO*%7rhMtO|!qDi*8KO6OpBVN0M7F0bmjJBB%G>m6s7-wR%f6FzYirnE zDIKSqn>mClrR!M?@Jo)Sxt^CwCmrd8xz^TDW!ew*7kG{(beIjL=)0?T=>5b)dv2S95{?Qm2*TDU_a3yGzNg> zvbirISt8)X#LdnT4Bgz1!1u_2NVV01GOGLa99;OniNOO>4YA za(j2Kd~8$6+xP3qc=#|9@7`Qj!*$k{Gn1Zdy^;&0IL>E z|0^NDA_+WGH!f5r-s=GX{dla0j%ES?aCV%k0uX)EF1+#sFt6tdZIyuWcRE%~b}Urd znWfGrl>EM6C?xMWPqdFg__<6J08kWF@+E~3g9C1Nf9Jw|)_foS^WRS_${?69+FzVa zOTb`8e$^X8iCR7`hu*$B*m{Weq?dj2lm|e~pZ+mW0p>pQeQZb0f%Fc5ypS)tfCPAA`Zlf8mE>eqT8`1xW&ldtGed=m%ex0o+}l^s zQagTmEb9*+zujP%ieWVsBfIi4ebaf4W^F6e-rNkxwq=f+>!LRs90MFlqFt3#)8>g> zKT$iRnoC%m$*RiXCp6BYppuUk&-&xG2Ds^j>hyh0bf}UnRGag~f^RyHenZc8z5m9t zk&CYv&E&iEW=DbnLD9fOGj@+$RyjT%!3KNAdX&ew{$FDS(O670T&7NfMP5Rro6 zNdS4(N2#pGbcK~$clF)!fBaR(h8Il> zfoSM!UqX#oxx~Uxbr;+$MUugN?)$Z=d{3kTkUC@{3|&5dvrV%SWiy@wukl%;TfWfD zu(>g?MVL>DsA*ut17MGtFrW%GYO=w=Q{_AWW@wO=?JM&gvm;*4<7%xWY(M?=hCH;= z%s@8$@N9>o44&wB!-5mLR5Df91e<49Sj#6w)4nBBCcunRb6)3GM|U=i40~YbSXu+D zAhbl_Gr(Q<<`cvFj!lLl_M24zVd$3E_2R+Kz|K`W@@{T7ecWd|O@&m-F{Kw+vbc5U z&~tS4u{rv21BWq9^vf8tSA~Sk7N~* z|Bk9a6VYfg(npGM^+}E$SmCPCjjwb0msYtB6wB07Dg@B`>qybErni<&IZwVgNyZ^q zQd&M(dh^ZChiy|P=iZtO3}N56Fk}cz=PF>r7S=KidV&Kg z*y_FGzA7r~`vReKug|MMZgQmHPp$IjJ5wst-NE$rSLd5&bv=CU=|6LwO62Bi4l=zI zR5%BS?(R!HdX4D4YKN+kyX+P|y$QX-<9M zD601*TagEV=XnJCn_slXaKM;}jj6yvp^Sbpzc?(AB$Fl0KtgFY$(FruLE zG+pis@;$E~uSPG@7n!;wGj3szI*v^Mtmo2i8x1I|^|jwt0Qu^mlk(iq_4#+Msb)S63zH3;3xc1z(;y0G)N>2$_OzChG#7K*;2zDHM=tA<-! zw#hgZNUIo-S6FfZFL0z)Sxoh zVJQFv6RED@g6Sjys5LTXoW2??t<2l-pP(C)^UE#$=H2Hv(v3C%!pIa&6{g4=0&S;9 zivrM)*+~Z%&jKDPXI*;(hNd8iKw4l}1CzTwnvWHeJCBwMECg6a&yb zP|A7*uU;kLy3XdeB)5tw00vm+scp&lZ-;-SBei%o`~@9Yirlg@bCm?Q=FZP8iaYN8 zjt7bTm*Y{K@alH_E8g#15bhPO(8W$yTZo9x)!&B2e6s9PocAnjRU&$ELHE&nntuHs zrm#AI%)ZBC(OFRVKL~?L?>nzHKU_33%<*T6xTK7g)&z2E`pxwu;bfb-(-ch{RhasRHm=#&p_ns?FZ`r!3^-!rjA zYc|ruO$X*XP+Xt!{NVF+p$vdC)^?n(J<(pAy-Jr>ouqGj86Xt9Vrl>+%o)0(!>FXv zZpzVVzq@^b|UaK0m z-F#@ug3+>nT!*L}S|J<1s*3M^qMHZjjn&tOBJ;iag&SOU#yh1AByE;=f5l+vQ14DJ6q~DGd z!$cx!2gzvc@oGm;HRD?V2ZU3|=c8qXh#R?*XE7#(2XF@e9Nis;o{}(B1ps&KVrF^o zL|{Mw95A%DtZo~w+M2Zh(@@P}dcRd#9RbAJ_gWR?wm#R>wSTt@4By@mu08c=PW7`I zll>FD8i&=fcdRkd@CBW0V}K)_lo}t}3I|+UxP@%jNAyw_EG&k?b-3o+j7wE5_qGOp zQZn0SQm9g4GAMW^AUQBv9&-2UkZlBHgypDWVfg0&OftK&jnYMRYb!U9yeiB3qcHFT-$0!}7KsaDPV z%DF+C%c64Ui*-JLxV}6eXXMzPE)F2rercy_i;os@fBMjJemrfS{S7`5HS!1AS55K1TM|5(j z)cD7v?tk#7o~52YO4O6%wMyBfyCkMEDS+Oav{_#W`}e*4=kHuw2B7D2S`Wx~h}PCs z2Y(rFblxD^Uz6((U!s$J^)pJ(4xA=BV!_-^@8-22;NU3@2zJxuM_sqE+}$C;Y!yIZ zus6wsoi7)Y)je|_(DBg;pF@GW{n~~wzo-c+k?H*>?Y3a2!oj_}qmFB|5>Q(vT?p@0 zy3n4@&k}7^1_O=LrjDfatxZlrg_wF(SjS6=wGx$f@04pXSY@@!4$ zFgM;lQ`$A_Pd>az9k zx7Kq&ayX^DtpiMDhHsfc*7Fb2`$bJkt{Uz$L~pr?jMMh=YweTY{Hv5wwA?e_F1N@v&Esb-_NLVGQTD==PbOlInq%%bTV5yjAwY?{vE@z8=YjY-+k=ss+CsRo+ zrvkzPf|rSksv9^ECEtq-D{okvi3Zj5k3>_q=+{ZlP!wdY(VPLeU(+XReJ5Jm?#9HL zF5~kyVYpl<#(VVUvK1pGTPdCY;!(@-O~cRXjBCMLbfB0GuwEWH{PCdZo$J28x}c67*|31K=3yc4+}s2p@$xT+?<2r^zP&mG*7E0# zBC@W5roQ7uRElFWJ4$r506Zjo%p8dMt)3McFgCx(duVm?;1f z-S>}g3l9Ibf3b)=II>_F|0k~!5h)M2WVHi;@&u6&h~jVbEC6&ZuCXx3&(=PE?#}az zVzPLoMFPkqU4jkyK(YaZY1SXJ2DJ zw~;Q67J$slbm!<1y0)>q6wju#Ta!8fDKzL_!b%nn(zT-0&GyP@LsOmsER*sW0BwTk zKzp!}sGCPJh8_w4#Z|S~imCj`3Af&!z})S#Iq>G&)1eTL+&x*CI=|XgWMn}0Jk@FG z5Rd(IumFW6bqNUJ25aN8tr}V;*O>Jl-CiG>0PFjV_7#0iT>#vj zpFk>t^)C+Couh5F6k7!Yz_X7R){2Pe*R4WK0^wUfC5$V03(kJyGvz4yQM0Q4SV2bEs zuYwwz^gn%xW$}fjR&`5v^!#*!0Z9k&i7qXd;vwPV4$+}J(D4f$4%%+su8*s{Ky z*|my9p&79%SF=4`e~IYe8+3KnubiS!R!S}3 zyS!4&I8PJ36BSpq+R5!ir!%hCR8B~MHNW(a{?^@Z^c}7tQbKY-4Qu@3}7;y4|J0O z(0hA*COM$V;2k5Q9JZEz$0{v8vGD{UKc#K11}Z0rx#R5CZA3E^{&dXl}D*$A&>4P|6(wfVFAH z0)nUBoA(%XcfHzT8k$Te(DWhw{eDv>>py5i<2HbHBHDD{?kf=Obx^7(z}DCTWfv_H z1f~aTAu~X&mCm2^f$a0^^8XiLk53)$SVZz2r?;5)#MP}Ky1%3|8367tAlswFUsmY-?j`9sM>1)|D!_fP-iw9d?x{5D*hY zO-91%dwohZTo}tn1I5Y{?JOXk;0wT&V9-|{?G^~u|4O5-(ROYoWB{r+&Nm}-ncf_9 zWYT5;tDz8C_wXzZ{q_BsknwPNBLJ{OZFH-&1w`N$w@hRLhZml>@Ynu>bat%NICb$% zw*ce9_bjvf?45l{W-z$Bh~8_A(zSki7^#$+NEKeBa}Jjh&(Kh6G)J}m;^@%U|?Y#s|#BW&-k&JvZ}f(|Aa{1OzsK|qr(AXGpNG=NEWb|O%0 z?gkbBuX(DZ01%@tAQGd!q19okimDn+$!1s2mRw%``fOLKzdOu0md|14+A~5CmI6&p z8%z;GSf*$@N3=6zxNfReP12l%AsE0Dz78nOy?Lk5>ZQVX>XasASdN?^=g051N|^+# zCoc{-&}KgC_M3XM7EjJx?$<<}F=K!#7RWgN0R26qTf%f>VU{JCn(gY&2momz09eeL zU-BKRSC)GEYK4cGyj3h8&^vt_Xg#~7$AGtW*UC!G220j><^3})&ct+~^75O@06;xP zmj-z~ zu#*4H$hYli+sEltD-wQ?;Bf%)nL<>8 z51hUMPyVs^CjFFMZv z^k0cbi|o1F{t&+4O?oR{8P3NP8`Bt<=nV&$AGGc}fb;=*n4Ym~h3F-pk+M|)O^?S) z9`_ykZSo;uJAUf{`gGLf!U@w-OHF+A;Yee5e<%PL`r`Mh^N&PmHFHvL!#h2~solZm zQ+KwtJwew?K(J+9*)ux6z1;v-|N72Gx)-_KlgrZP@}H?gMg_$mEM){!gQ5zri-`L5 zr0zIO<&1$@z6idet6Av5XlLMvkBK&=8PoC&o`BeXeocL`XuSg==L!JDZ}K^S+`HH3 zJODf)0H|JL%=0LE`~z3_{o4bW=}9VCsIgCu=YO(sKMvV<{5v?+k)gsx+o*6=@RM0Zp`<0;$r7u=yk<&585YF&GmHsmtg>F=Mq@@ShH&45oii(X+*6|BNVL$`)q>^UO(YEf zh^@V}sb;sVyEq(xaYu&=aHv4;^(p{&L)DjHEr}Vsp8Hex{YRoh9l9_%;5*SEFf*e9 zh1*02Jk2gvN}h%=p+K3}VX!ITMn|m>%<0Z00l)YJLM4wJe5{DlJ>~!ij(z%cYm-^W zPmWEYpW6JF+)1}5IMhu<-<7qe(ECr*F1th3`tx7+Cq0dxMb>($*jy+k0Hb@J1t76`%M@Fh>_|f$*)=O_Rzq4$!@B&dK5p?_DNc0meDLU!*XcQ1bhnFU$_Zls+YP%-vSwBAGyV?FX zM+%Dj;+-`%_+C2GC)J+A<246>Ce&s`Tfa`P76c%8@hduz1;9<)kPPVf;`2HKq$8rx zQ0fL#68-zOwTNg2o#VzOc(DAvZ2?zQ07f`A(U#CTAOvT+`50>;lkK&(Br_9=oz3MF zo-Kq`s3qevRrK{(%yE51xP`$mm8`gh#3U4?LW=aWmm9MGA)d7`uP?naL(0Al%l{UQ+__-%`) zoApF);QGmtWPI@2^ZCzdhXr%qcsb$64ZC}wXU9)hh8XwD^QyLB)^XY&ni9-Nq>mEq z@nCuq<{_d>^UU=R=v*g5Z0kSiWKNH{p=%pb0buWoovsH5#1`Q0>C8EgMrKrqJMUo&3MCQ;Qd5Y0>4011ze*3X<>*kr@+;n z?5lO`8gZI?LQZavT1rb_9T~{Y9}QduKsZpdz2)_p3obC8)L}GEGjWXQ;?NTt+sHe` zzFPP%@S^g`jWtaYD?Ju{m|T{@?Xv)=-q;|}v1SIkn$2bEMq4w#uU-BtP%_7eu7&vj z^73s!*-x)Leo^_l3G^JKq0!HsUM?wIs?Ju|2Ihr?m?Jv2R@*lC5?o^wzTZNZ_FxmkadJO*S^jj?nCN6pv3nO9SbxLB#K?F zmecHEU;tn(_=YZbTWL?@F+Vf}6Sil!UdljDq^-bvbqwJHq4#^ z2jIq}VH%zdUMG5&qe#@x63d7}7zy(p?JcP;(H0MYOdlYcAG6#T0A1uB(JospKcF!) zpD#;Ov>B;8M2lT%wwBU>&;d6HG{q}=ZYduF7T>0g4hQve$rQ5x~8RAbCYwH_2vzC<4?P)Eg^(s z%4q5(Cf{x>TOmvZa2Jl50ED72K!r7Ya9t66_~@+Y{<&Lz*z76kee}8&34yW$aR`8| zrMDfRm+tieK2b2u&vmCw=!gpgQYf%*G%D)=b0;6r!^kMfNQZ9|z1Iea@(sGM>ITsU z=TCYgdcJ%w5~rA>!@-j(V9?{X%ztOT$ezYVGxD9iD^$#n`@_!KoyZ=guABzL$T%!-N!9lt< z5nJ;cz4JuLV-@|nd*=TqiN5chHg}CP1xUO=zwK#$RJMZXQ0oNE@FzgqWCP(B(z(aO z%T+|P{?!%d-rbQ>TA!Ul9b=#`0YJ>!+F+7XvCR19*3|Or+ot@e6Dk06{moBCcm0F* zm3H30G)s+eL5-Kk>d|~Tue&YQytU>YqEFr+Iv$w=^NmE`o*=r|rY2t|`fI|>X?DwS zi!j;_61`xVNojzCic|4O8Ty>ZIM7P#ghjSdvOmQ%~r4pt}uhNgJJ%8fS_cg#Sw{=@_ z08B6WDF=qCkJ7gWz>_g)I_rO3QPx^U4z}7NJFClsRysK=k@XC_I)ho2s z1+eiRZFE~~&36H2n1%wckd_SMDA60`QmY>y{DOYlU}^266`LbA3-p;MWS0?}CT7EL-3V~>`4NS4=jS{7$;c7C}kx9jc} z6Jq6qJ*|?(Hyr8_0MsRS-kP)i&Y{7Uu3Q6}Ll*!Xb2>OVMYJ!SX=v)7M54X)=s?+d z<`#X>WBkdWwVsK`R3Yite)&rrfEiiE_5XEU=x)CI%oIFT4mD8Sd*SaJ%j&U)WZUWlzfIMd%t z7M8ydjeLrlB=vZEQ8oL{-M88#--&!%OyRF|cRwXNev(blY(W1z zeUf@Yh%KJ<{%M@k8pMhp_Sg`*G~Bosgb6!dtWPBzo#*J=`2a9*kxrGTa67YLyjWbb zw`q@^9$MHvaOnGG0!sbxp)LT3*H#ZCx%~`%8x_cu#$;eS96z=vqqpXUHw1;(AFeie z45k1BptlJCFrg@pYMBHmZw4_Qc6SlsHZa-T?4oTgj*~&BJzQG zL9pe8NZQTqLU&QZib*aTQvQ?)DCxGe0Vw_7&^BK{jptsxM|&^O{cW#3_-nrTZXN4MFlHJiytNNUTMPBp ztnTWDrJJfy9g#Ld4gv0PKv6hgYsFl^0Z-E*0cl5->kh}T(_Z%jdN&8VJlMPTAsvY3 zQDLMpDOyzl1QwL8ks<(C6T@Y%>0r(`?e23Yx6bt#klb&_ zkOF|&Hz#z=_LD#FtcHgF3VqP3iSmLrGeSRZ8Zn_lO$2s4&ROZ;)j4LY(J^OF(*3Q# zvY$5vm91Oao&cD}!n9|#369#U{ZD7|(@9MMkRaM#AbM0pk%-12Un;q=?Z@~0%i59rmh^D})m zyYb0y($x+2|4Jm7d7EAmkF#-rn0iv_ga6pt80GvsJ;~gDAb0Ls1pt=PuX{c4nb!Fz z&Jqx%2%i{r~829z~Z*hF?2Ioe0KZDs;hf*-4{NYts~yo;aD** zVZ{X#ncluoaMKA&^Nw9w;ka$D-+kFJ>Zfn6lKSKq$9o*p(4354J3^O7L#No4wc^jw z?G0YW3v&s^?TiG9C+KRMDfH})pT;yGwuyduIcN)Wq2;7SCY3FZ_{B?fvSOP#M>kZ( z0hnz=Gc8ALoLwxnXGvB8<6w8W-rZ_4CWE$=((=+PeGK5K;T3Iq={#NQ z(!dx~05MHHG*0gIbhiRPXc-&eqF`yx)DJL}h<1el%wUD@)V7Xv8Yo9l1|od-dU~zh;O_{$A+C{KhjR$O26^w@2eAyJQ$$YQiMB2;by;o-|^0DO|ZZ28^IlZ_Z}I=U{lO@(ja`*eT$9W!$c z$M9WXoM?6m3@Cp^G%nnZ$hSBKz-~&_y*amuhJeC%M1xZ`n5REP27uX<-+$N?Hg#+m zj@;?nMrsD^{txM(e45}VHuTAj6$SuwzkQ^S8^Pe~&$nc|11qfewPc*)aDNP31C-QO zy45HBbwtN?Y4PS`l5UF==e7P_RTGFMQ^lzR&Q=8A1w#WHs>MXAWB>vT$hI(rvAE5o z03gSR`VGc45o6hRZm)a(*GJEKIu|k6??yXENf#Vw0^zr`D+zA2eodN(pEIu`WDg_rS@W<0F` zEHS)&)OY5bq<6en{q6U?0;Xle0TtQ=(GsVYtENJG;31vp ztz{QQc5wPvi{*5@DJ(H$)w&V@67 zG?%gyv-`uYod-uv#zkSy(s>TklQG?julVdh8)NPBa#A&PO_&lri? z09e#3XPRb{&5iwT_e+3h{WJh4NLMoqP`djQ0Ad3(Qdhe(r{^d8B*5ovc-oGi|MkT| z0C1CH26!t^uh>2gcbRQO7iLDc{&V!>layBcG`(y#DnXF>sssSR|0T6&5#^03$HrbD0O&2g4utQ}cO#-9Dw=wn zmJMb0{u^{S1(EXD)WcRdposQ&iB5+AoY#mxbf9oc^>)#B?%G0m+%l)Ock{O*h(3e=}}s@nYFAG$tgsiy6sv*U#r1O_O>& z8KmN#%^@8xEG+qqE>vWqSO^j_)|?H`A-o{h=SrAvOEM9QXWU#$a1KK-C9#n{PrJTj zw6rIT+@{+Px)o;|J*ugI3T+#WC10X~l2Xu8nw908RgTla!drA8dx~-#0^oI`enU!O zSO|8VA1xL&CluQ7;2acOPy@0Z>%Qrzv(N*15ee z8%gh*UmKfKRm85<6(m@~2?n2aOTprIsnJ@V3WYRAm+a|6g+XZTjW;|Iu3p>25=) z5?+7M_J_|gO+*f$|ApvP4S-AouwcZX0GUTkpG6?JORJjcYSY`>)B#}l_B)&J5IqY3 zPUAbH*J(WWco<;N}rWQTk5b+iGb7 z7`*&-!?0g&xc2gj-Z#JL6v2ABx5>7RL{Ho?J>Pj7;V|0j(}05EUR-qE|X zD=oWk(sF|#EN)$rhP~(4*Kz{}tjG?4A@|}d zHG{YB-Wr;g?*b?ur?;yIzgj(X_|`@T0Avi6^S3qy4a3&p?c1xSsBDD`0Ew4>eqq22 zOn{Gn_jPrK3x#Ok6xl>}9a!AbJl#A)7+y=EwZ+C%%bB~MXiYP|O%q*c8hrgd;h^R2H+oE`y^E+HeB5p9RS6FnTf1xMr9G&2ABuw(ujff z(?7q~qXRJZ(e)KNTHm8HjklEd5`DjDDs{Euxt;V?0Kj|pFC}QXX-3N!kG%hvU0yPU znDN=s7~^sUfVpb2JW+ zpNlTF-t>$}j;)wE%5Ew=wyN$Q|K`^7>j5Y&cTZ0xiSBU2utoH(m`=r?`?dbW71)tu zVAu7R!!>uKIrYsmrTYr41dzY@^&rsEk%?=QH|VX5ralqZD?(EsXP=`x697;?K^G>E z(7hKD(BihH8`?FaiS9Xs388iTQwhGpBLX}2_(<8-`e z_dlYm{V|BzH5wJkr4MLhF&6i{eA$N)k|Bp=bQa1DtvL z4s7ecf1Bg7<0O_Hou>b>%Gy}jrC(vT1 z8FP$Oa*6?06qZOcX@bGMM87U`VR)`wL$qoReNh}I+Uo(mxBE>1Nbg*ei-I}^%sRTl z?O2op*ut-tDFCYFI3Pw!8~~JEzulZ4Z!0_ob5c!ix<~Y)Yn~%okpM7rus3s6fJsp} zN5`hCyW`hC>H{DPex&3L0KjNoe=I6j=Z2l>Oz_sW%1j-}TDm^U0ecS}ivcj=EK1;) z5uF+NH>^v0h-Npd!WTlo%Rl)hHaY$nB!(~lryy3k@Yxgg&i< zTW1^H5`*;UwO~pk$753ww~}-bgVm^HJjt8_a5s3fr$XtFh`O6pa??K)TB0o$6;-2W zQ)9*@`nYU!K-0ie38Ud1$^qzR!j}Nx=NwgP3}F7E<+DQeROJ-+#?K!J03b1M_u5?V z-p$2?4uAjbhnA6_UKK|CJipp42X;C!YuaCFY-X;1vDTUVYKHcn) zLCm(}PLOl}xShp9ayI=oA)xA}1Z2!~?M!RHrD>IksMqZ>T8XITdpcn@oRI{FUyLy= z`ys7QSTMZhzb)_$a|bOlRq5xvv=Mcm`PWX5=UciCKbJT1Z9yh&Xsdpr4W^fEFS^q3 zIy>gq4Mlfzn}0k~Qj#g(RI&w$Si)&(%jCTH)_WI*vxUR-%Z{+6+E+47$96}a?JzRc zK$=dIMUDA>dE4>6u46Y=I0E*-$i5qs7Uwn?hpq}WSg_1Bq55I(KuR-B@X~R*;V95! zxt2aB8Fnly#Z5C`i!-RE1QLx0FhDdcAcK71IgY`do~}*+Wyjo2G%g}PftuEp&;*!N zVwUMU07PgQj;|SEM=2F^J4>!96>t3Rl?8@T9vf=&&FMk4qV(e8u-3iyhs(=421=4K z4!~$O@B%+;{Uy3r7aUT-Akpj&qT!uHG=vlpjZdo^lEq92z{rM! zM0;|m5K+OXZYA1dVZkHX?ZO0DF6Y+n(awle^9^`=HzYJ}tv@(mGq{@G&_^4ek9Q}Eh1Awo6{plI3TaFHx zkTG-MEYT?;;!P!gYT_1M8C>z@&GC$;Knr_nSz#h(+o~BoO(CTS zCf1aEUb_0A*YE)|Q$8JehPk_Gb3rkA;dR;_Oi;fpKhrbqdI`h#`^vU07({6KMVHxi z+bo@-kpyqpyM?7vHc0rsp>iYc8-bSD{btoNRRtVO*s+w$m>tg)7tgi9gbFZ2&mP!Y z)!~{DV+WoMHD~F^?~VH+?g`FeJBB7C0HfNQ;tHU77C2X|Y;Gg{V~eSow(hu@gzm;o zUsHq>s@nhMm2N*B1e5fAy-?MGSgst#tTdNGiF?^Kbbr_|meY}pup3fqX#!Bfh5ZEq zn1&7ML6)x5Gm=3yP^3*R0I{BS#Fg}hwJF}5$L25y(*b0Ves)dCjG3le4ze+C&AqS3 z7OWdcSI2rnLv@-3$)0a+txmUmPPDhEF#vA7LDV*+mjIHfDJ4L3=sK~d4dQP4xfhOq zJK+FOVhE4WwRP{%SDo<|2FxY8z1#v~ss_L?TE3#cw@Z%PdvvD{qJ7n{uR{Pyzus+Y zU<=(|D(!bVrYD}nu3D+>p3@Z+xkHL`5zOZus4gse>v-R%Dt z-NW&zaM=xhmv?Fa!it>Ep#uQ_okfCilCBK^w#!ib=rO_aG_bV3L3FfpKhZG>VD2^g z!1`lMjn8b1n0{H?=`t#QEK^7WW_?3fUT>85hQ^i8< z*io131~a_ko{wfJs+(X?JulexWw*&wqdSLF++O=(hY-?jd0|_zyr9UyC0Ni_FG>dC z<|gj_*r}Q8XqzdFV5F2Rlntb;NC#k;b}Yud+(?LEi0Eu~P7DCI8x!<8V=~cCv@@F-aFB5OP-iBCmU~Uv6U-wzTiSHR6W!8GEE<<$5J74C()_Ke$eOaSX`aA zZq+OsfTquRYgZP4-m|b>2cWKc_<{=tYsD}7bMp?(Z%HN~0BBBYZz7%#;?nb@vs#IW zj}(AbB08)B1{dJz5P;ey0mCX6O90}UH=Wjc6%P=%Z;qLOSiJ0aR(tgwjYO(4za9sG zXMduXX9(1y{w1W((y2}W_;ZzUV#(>(|EzM`vu_XptZ1w-FXsVcVr3=!Ul7}HRHm8&A(%*=diMZ8JP$vMGD(qTWXJB2Q z(%BcjrUxql2s3OA;FW^=XT!esR3?+)0EC2E>drRx^^1wOox*OW&l3N$+GH6dr zC(dL;5fYm!B?>8It-*|0^^3H>=`3joEz_FRY`+vWCi?vyQAR<{W(oWaeyIY*}PNECG#+()j(>9@4rJZ!ygy2YRrk~fU49rf&gO)(X+S?Ka z5@+esa{6s;GzE@%Os~^r8|_5jwRqXTP_=MkO{@VqOz6?q~Z%@Ve%)Gqz>eCVB` zj|UCwIDI-V-4;p(A{n+H|7pFA#F5K$lW!jD&f8C0==QR`1NpJ}w$RM5TulIGp{ub@ zZ7u+e6I}@z2ls3F90N2bW_Dbs2OHy1LjdMHx;M0v&b73jf4FeQ-j61KQcJ@0>wy62Yjd;^AMns!Io!dK|MJXq~7;R+66$?Oo z`MMSbKv;e}(=wXdxIEru=}i}aVN6Tj02sUJ>TJOp;Yj#A(bpyXPt8lc#~n#UVEBm@ zw6kX>@b3A~0nqu~^(b6f|1+IwB$6#>=~xtAaRGom{__(z=oJ9SouEU1EaRzcpdX^5 zshOC5PTX?Qa-Gf=fJVpu^r4!cMKr21+epU!WVByn01!?`ae9KY`tG4J0HhK+Fs0q} zr46(^_sfe8RH0=<1%Ok`*!?&5wDg~$UD1MAcXw}4`(}R@0F2QO*Es-;iEnSL@&R|v z_FAy^@_Qu!inns}iWScvdwyX1txpGH052V*kIDda*H)S_BLE0JJEy-?c7WM`qlZTZ z4KEYty1$F=Z;b`DGxYf~dbAtdaf&a{XBlD0@D;kZFm5uLHyNPig%OnV(akOrk!wTi zCZb|XkZcQ0z*GUZq85o>N^#BsSki29t@_*DaR7?vZXMEK7`Dd@BWTOUIGeanj!!m=bSD$<$=EGZ0ZyCv>O(;>GcN{S!JBlvGoHOXv zzKp3eczr#-D$TUZgeFa?G6pb9X1AOe5VCam%3Rm7P2H_+eI^@&THNz!kIqyev4QSP zm|#geZgXY`(+HAMwx6c=hNHS(Bt4Vs=+^|V5mBwxpFLz%iHeQs^h`4WW;*4hV~E0L zqFr%SU3HC)&wrmbrJ?q;dz!5QX-|zT!t!f6{o-WZ1S|DcJP%0gx&)+Y24`t+cMvm- zMPnXdFCK82Y+p9y0h!gyT8i6Nx>g~uEqmRDtkj)1E)Ex8J>2ialZ{?86>!65Q-ET| zSKhol6bpCX+m%xQck=bw5~6e57i!#wURm<;u)_ek_TI*v34gpUAXm}-Nka>|5&)~y zgXK%;m;OO|v^X7A`~hGaQ2>ZcYupsi6Hx*1rU>&^I#r1bV#GHzZa#nWg(mjomqrnR zxq0qmF<^PNEB=hu=O^jC@k+jdcJa#FL>EW>#Mb+Cb5&!5PM+HqOnyfnm7eJ8pl?Qs z2k6q!qAOocYf=&&Guc2{A9~U@;9twFD}Od8&fD5(8yoxIRk+0GuWWAwU21L3@E?n# ziyICM000}^_Xn4twfR6|?z$#rn0?%TtFk0=QmI;i7EI}+)i(My4VE(v0O4pPO!_?s z6U=+;aW>pfU8q2Kgy?Y=BRz48mM{2$?)F7tprM-Y5G?_KuFFJg6u>@3bYnv{WjT%} zP0L^aw23Qp^2j5iBR$o8U`u!S*}lHIGvji!M0BsT%CZd~6TL4XN|Oy!SHm+pS5Fp9 zX%<>-t8ZQezU>Qh*3hM8Mse$koR%~&HLg)pqycT=$%3(!J~mnsaQ6^-3{n+IpfnM> zLvzf;qS5xM!UOfh}a*?~Wn%7EwPS=k}Iv(t~+(ChEBzKfhmO zLgi4v6{8Xwrr+wOMi*yQ*!{h>aBa!ZXr?pEJ6`OG<#*ivYJmXHy+@zSaToyZhpr_7 zZhFO*xL*uR##8O(R4St>3RK5Q>WbmlW+%g9F{Y;fLf;LU3eywWjLW4+=-Gj4f-fdG2#s zBbnD*fAn_g^{>W~mTKFk7Z;G4l*#T=km~C$>j?8PkqY}<#hps_M8fI+j%ZCnS6aWM zwU(!wmPF)e#f`v8o}jxEjgqd-0mN(u!%0?-ovulRp>X1CS7GmgnY~(mJ{cSPmj2qV z0Hwop)km#p1Evqil%>^d(pj2~mhv{~e!RxD}oQ_IMZhTD^ z0NUtkHvrk+qBqhOo^ifh|M5D>b42Ioy-sv#?;U!7 zTBectBM+rZw`=4^*&h-_A|AUE`0Foy3 zqjdV;&=>v-3|~Xv))CEdmja^u-rt{MgjFKC8~VHHLC5saRROG~4+UT!YScfP=ZGNy zI3FAhe^;tog3I4^YXfp?V3D64|f27W~&Wu$_&bR z&G6G2Uol(W+Y|hbp=3SFWssW z?QV+;X(D^M-tgk|@6&{z&NvA`0qjD^6-C;Uzg%hsAbH0fqDAG=VsMRU#Pv)GD2DXH zjF#T@&*xuzK%0`@#Eq|(IRIA~6s8EkG=!NDZkSFvhGp5s;d(+afR#?%Ty0x!&|Y0} z<@)NBYinBk1^TFa)1@69DJBHxfRS+dZ zaCROLmRa9RXWGG3!MU)?)&4FQGEvKM=u81(eI?J(yB8z@IXeMpsu>m8O$$Pmk}>2e zNdSgDo|U$17AkqaLFC%Df1b{d-J`z_N(iMAOJ~3K~&CiH))*(NFXi&n5*s{ zsBF9Oa(f(5W>2)K0E*Ru!=nYQ8M1!*P({@uJb3IIH2GNy>^(fhj#Zk!K)^W|{& z+0(64-M9@9?42BP0iZBB(wa2#LuHM-l?AQM{wDV&`nuotR@3>&(@H>JML+dUQ|)Fh zFPI$|qeS-uaBej^;f?CP!B`Z&t83 zy*mB`{igh$tv^OLb_CHD`lEgeZyNYV-Qx8mxj=Nh;M7mig+2ff{X_BD7wG(k^K_xdaTD>(ywQfT zRRT3GW)+SATBT(OL3w}1*jaVqH&QQfpO#{EsdQJ<*zdUm2}6(y5?uwqxACuBUc@Zg^A zRsYzX5oWx0o;LbW@=HhiRxaso4-1=?l0j=%Z1!2qJfFAStU@8^p;PBUOt{MeYqy*khs$ z9WmI0+m}qUI@%^WKOg`v2h9Dr8$dt3=1U;$JrRLKR*!&TF<$^s*y@M$&*pSa;|Y?A zt+;)zt^zDJ{`Y;op2Gkzr&4_UcQ&?}|J2&;0GJ^9$EGK1 z%}7n-u2??g!C3HW1pwkBMbRv5TTOLT`TrLG*519+`$ykf_tRk)0M`6W`x_Vb3Vky( zH%{)M<1w*~J}E`i#qp`m8x;UXf1r!%OkDw5-q_s&Ab9i9t{|1nFaTKxU}BUGHqV)A z0RY6n?y2bmJ1M$}CZH&Z8??4@4ACY90CJ;Ipc#GRT;p{sES~2F=;)#w<$-ua1AzD3kcC+l4lm!Y3^SXYc zx+rzo`as%ZfRs=f41l>NlkRu)%fhfNJNN?~Eh<7`%#e22o#cuFs2lIyTwywA>DFjW z8eDW_olM#=Q?4*$BAoc!cVp7D6P_bg&STwcpWia^9vuwK*V4 zG`_6d@%EMBm}N2zkYlG0mtsJE-<{_=xBcV!vOoLqeglws%~Ao)(7jkoJ!WRs(La}4 z?Pux1LM<%0e#vGEj5^V)LB&!4m@Mk6Ruo4%{u@N=28d=0AT+Cv#l1v7(aRY?_7hF& zko}#GTj_}G$6)4~Iu`jF9b7p0{^DYH-p}oRXTrBTzdcvWZCIXhJi&8Yqod01uGw&2 z`0DZsN0$uZ;3uQe>F&**m9?2Lxta_ty?*A}7;hq%d+_`9Rj8U$f-cgg#bjG(LqGxc4WrDlK`N#=k4G7jN-JO9or_=;#lbisd6kaqe14*q2>5-t0Ke7bs$P6hy! z{tL$&ajdcJpBD$GKYd~SMLJu}y-8ox0I*H}+&p8i1M1|Dbf6jILqSHA57{5iY`>@Uv?JVctCc6Lj_e8s0#&pkclZH{;c8j)hw4SCj zYs0vT)wig;_GHI>nhOgxM`-s)z^*{3?o^a)z#PG z8jJ&pJ@mI>FVkI11->o~A#4MQVoN5O09d*;6?FBMO-R?_@LZvqfYIV7-PuR)F7?_6 zM+RMZ3w93V7t`g+YmZjNG+QriJTZ3zT`dC8S5O@qINN@I0H{D$zerbxh$=0gZLuVb z(l*-Al^>ehMf5^Z7$SA;&N3S?6J-rzYIqn^lTIPt0(ph#hlTAyU`wNPm3DRaz4?&# zeowSL88e+Tbbnlnt9a$nx!#mpXf1dGSs&nLW421~=V$6V1FD~#?2xK7ZPu_sLu}Di zIvx3)Ar{z{0PLROoTa4;&k=o=SE4C+t{S(QsD1L=LC?&&b~Mib${)A)o1VUmel5?~ z6|Cr4(42wB>@K&`~j|UkpI{*&#=N97LbWf!UpViO%MJPubg+2KZa(%Rd>W6z^)C+8R;abPmz4 z6PZ6Q9gh*c`=8T*a~><@kEp`H%O6kX+y?Dy!iNCbV)d0jZGc#yjZ`4+_x&C7hLoV7s+Q9YU z41n(MzaMcY&u_H>g!5|v{AFK0Zv%j~>dS2jVC4GIoM8-qK|Aw9r@k7Qc?RwMe31fl z?wCv&DwyfURlrG@-LJ0V0HkRc02FC&c<|S1QyTBJy+L$yl@~akh;Yr0^N#a$PO$W> z;mUZzExIuPve-z{8NmIV3Ntm#0py;k7OFX*o9MwP(Zg62W$+BqiMGjYF1T##Nk^+& z_$?9*YKPA&7{DOiX=PAVr8$r)VV3>qa4>~)gMJt^q#iQ_VD|ck#h8riP|diX>Pl&5 zcXuh5@x4M2V~XHLT!Z@3Z#%6jxtmmr>Ptr#q)RBBJc( znJ9E1l@5D;JlVtG?^)d47v!9T1=coRFx=9yzYMpnUz-Df!dr*t4^DLX#aH$(D#lC> z*06Q=0tT7OB?>1`bh}9vg~J~VH?dWioO7W&gJW$euIfXem$Y)4)%&m+el||HCkO=7f1S>j{zXaT|MB+y zp;27j`_E-AbB8<33_I+wv&=F(?6MO!Y}hPWvSGs}BqSJ##9%NOiNs*gq9`hg7K;_7 zQcH`KN)?MmrP36Ol}e>87L`g{e6h4rsm0Bh zNC1hct6Rlj);~+5(N!)JNk3ypIMs0Eul?m0|8ab^o7_!j)AjmiuuI(y9L(=L z`2BcwADzrfKw)CudpjHevhULSd7i6mUSa@B#!yTExi=onuU)3Su|in~fWl^acRSI9 zFqRRmGN1wO1W^Z%>rEWYA0(P*s!rELo(bt>0l>5ZJ9d@+97_70BK)N2oLrh@04nPO zuE$3Y_ofvXJwtt&q?zz6H{mVbGv2v;`*<;%8yw8pwuHO${3_4R_AV&+*|j%6nWum^ zE*VNITFft%M!%r1zb3jgUqI7z$JU+s7cTT>8#n!MYo(Wwim96Um%s zr;Or-0UHT!KTnfgy)V{+SiDIz6g|sr+0~_UKpKXSVbO}U%`3=>lE3Ia?aDGZ4Go6d zY%qf%rZVXy8be!a3lyjT&xWPTbZ%+fidiw8&nQR1VD?_3mqO1om=r=a64R_$W=UVL zal>#<}Ka6KeO>Wki{#5F{l-yg&aVdXp0>c>z^G6i5V$b*UtBP z-W-+@oRv0D+gh8C*4efG!D)Zi@*mT*MI+dHdTBgyl)f5I&Wwm1pf_!xdX8wH5l!~? zGejqz2y_vXn?7=5{v1a(GV+RN*4HJy^N4QGpNeBvi2mGA{UNIMDlSkYzWZM|W@ycZ zD61A?cEB~>J^I)_QXHQJc}myf1ON<7KI%Ptn|CGvptzwI0D?_p1^|>UUM&MKRv+u0 zh1=yTzfAm%hu``0PwgB)cA)I_UfYv@a#mpB#ZdvE{QY!q(Qx11S>ovKx9KUrI&bcu zk<&BV>fP8qHG^h-KKS~IIrY|fI9!Q&)lv-L#l?poeAvu{H#+Qc7CyhXN$9Fb*p`z> zJN`j>#|`^dKU;RT(LYKMaSnjHVM=9y(SMA-SaqJR7A(iH;5|=&z6hZE06o~Oh1==Z z#V`a{Etp`oXBmk?#S5>}Mw>zEem33y-Zh`G{MFlehXGLYbiX2*vv__2=p-6ep&DVu z)3ta|kWc^x&V8cg#m;PyA1fMGGUMrpCl1kW7lm8&LddPenxEV)!h&1nV{%f*63J{0q`7d89Ed&70f!kzh-c536^re!40qDz=&%ls>>H7r|Qme zg@=PBr}oKj&lNjL)5}JU#T^4c>xCblf0yoVi~~Uaoo|*!Q_J4}iPY8}Hk9nir|DfmRASVFG19WoE17U^3bg2UX-$Czcfb75e!&3ml z7wGqwINXM#bZN$(40aLSXa#`WW81}gq7NDY_)DDpB+=g(_B)BHfICU_Nu8q{B)V-) z$6OLmhw=PfdMg0|FFqC8Vu0dVfVJ@#qSZ0A&WDI7qt;q;n|_;^Rnu2=enwX}oFh6` zvQ)FBR&7cr8cz|uW*e^(ohTZR2_t;&-orhPTL`5waDm=Ur#q{&<{blIz-sDiXzbry zR_ei$O*`{|mMv}AeZ#Ly9~7u24^#k5%-^>_fdF7yIWH~1ku6D;GX^+~9c4p~ z5w!{Cj<0HVOke?hm4*IK+S?kjrT&(sL%-8XTaODcWAC5KQjOt))h#xxeSfS^3Tai( zp6w3vd0$$VxAeyQL;HTCmnwr_(V-9k)KuP&9i#`FEmhSGZpHFR_ghRucbt{{C zIh9)sbD}Dc{){FIe8#I`QUQ0f;o6%&teBb=x?@HJhZ3_>{Tt?)0N9Ej=u|fHc%&1q z|0i868J-bK4!-+fj{(j_ZCR)>Km$_k!_TzGn3EnqzV|KqwABWTpl8?u(6X)KwQrg) zfYLi>vfxgo*JjZAS5+TVf2oYC;6)WsQ}pH5$O~#FqEUY+1R%Hnc)j*H(fQ(x2j%`q zTMM`7LJ3pNsO6Sb^_+|5N}AaPp8<%?B)s-r-RJ-RK#Kma8y7wO&F~bAnGEoX@qe4i z%WnGL4*|>GrYD^a>xdK%Hcd?qHz$D|f4()#rcWcn$)K;^B9E zz^L7vcG>kKr-o);x2!F+^d%e1PGX>W%G69$$8r&p8x8v(9FOR`)`0}Ln_bY9WNP2H zbZOq~(*A`#cQ22wy-7PP&u{6k<}@b#7ar1ytXy-4&Q%!G63NV#AL(?HZhCIK^#py; zmXHaXCuT*;6fYM_=@wiWMgDkP*M-7`lQWD&Jn+m?*)fw0hGoPAG%aSUfM)Bi#Y0PSFP#cNzFgDSfRShY) zv<$bHF=VWJ!@`D?ZTq1s6r<;@3lqKpE~ErBK#Ohp;muMk(Ya$~%Cn(z%~^Z*gH{bP zvyaXd9L3H8!gWS&{kq+iR=An2=YedeAHGJ{a%Onu!RE%|X8L2DA)#%g`+?F*MC(Np z(Skih&r3K(E0zve7ZIiWcB0qgV5XConqKX!bzkgIp+oou%joL0^WV|13TR9P7tUSU zmJ)TJG2dzf-s#=V?sU^zTLb33JX+8C;FzgebVP_m+=-kSV z?jH1}-3e>Qr|Xi;FaTLukhhz9116`^F_@w283|@^X1H7E_EJqXVC}j+T(>5KYZpzh zyu)Dbpa(;6w-epZM%((V0v-VHHm&3U;!})R<97PG)Uak%1wgD&i1*V63t}_&jeD2A z-SB|ueCyOI*-vyZ1pwW*=*sHrbhN~==sS99+UL^dx=6vXJwA}#_WjYvdQh1EhK0t{ z@qYuCI*!^vFfcc zl3>NIyrVF^CzxsmVKp@OgsDJ-D1Jl-eE`tg`$8w|8ei5V0BI<({Id0tX$L*%=t!!X zFgh>1SARr$r8mYk4rkYuE&<4lfR&8s)To4m6fpYUe>tV-?%<-7zp!j+U_d;k#=Mq9 zdS1OinA%5lXvMwbO}3Sis&{~>thJA~T_sw;WQC~3X&x`Ya68>nvgTtOtunb1wCCe0 zq?YJj^lZP+AuX;+(YWnbTA~5qR%U#6o`==v_H>7h$+QKj}a^9`xR3@~XqI>1an!K4!d60g!Hoo?2%1r)(FsaZiGDWz1I zQOH^f3>Vxh#j};(w58itsa9d|4$}MS&fO(I6g$(d*|Ph&PAd*xc&f$L-J$CXVv0M_ z(Y^iD^}d*GFmNf6J4>(lj=SOHpzGOTy&_Jb{QP1IfMWtM7{p#$WdI5cr;^U!rSBG| zE!_+)n==4><lLxWXgJk~N*0FEMVEPu$;;~$?`5%LVr{^^Hs^did*zH!JHhdM3ZJ7t*E|L+#_|6c{`@EU=~Gx=iTXv_OP9^DeuK^5zga(#dF#%j-QFr&|82>( zJv6IoeQ`w_0Cc|C51`?_-=BSaXo+$}GE|4Bs1DY>Y0NK9?Wp#wC#aPsrr&Pk+U-#Q zDRJ~En*qWG^6%Y$AxzXl26sB$+B;3VGFI`}U&jgnV5X98qaPE{Iy>E&C=X|9^LhHP z#sDa(d_ves+fap}Niz`!aa-4VtwZx>`u-dUbJEG?Qx?EoML5E`LiDU7 zbO5SQxSjc$XhYcQsEnI_y#HG|R?IKDPP=@kdYPWdR1f`jy3@{oNc8?ZmosTw4e!z3 zq)?Ezg9S;!?3MFtlf(RCLrb6{g3~;L{D>-f$aux{i z4Mz)h%X2jc7GRAYuHV4aAkS|16u|CkQq<<|u#RPI@2+pRoARb*Bn|8F;AY*@HRmGi zjBES!z0(B%#?WY40!_PCJAh*`)-YAU%Rlwyh;7d3^B%z~?{&H{zVsXVy8qG0Y3sJ2 zK7$7DE}dD*mFH#^ZEiX`QF;uMTmSe^@o(>6d*)=W6hD2pqS+gNx-<5#<%NbiD>>xf ztncveMymw?j1t{hfMBHnnx^rT4N+9XUg!W5J^OfLjGCik~KjzNNz@VEjAUAplq$4B)zDyRLk6+hU6D zZohXRp)yFb{%12s=tMH!KT_Yujj$ysA3qb?z3X}uRdT7Q-Fp|=wHL>;Oh_?ss7G*p zjP8use(mDDiQ3VB&KCgUwf?-n?p}42=uSN|D$x;x;dMq)nNG zG#2X__FWIbBo;8Pl=9oddUVGde=odlug*CRAoF?e-mo{ z1pTlhV+Aec_21Kb1r1y#QeHw>91wuMoz4cb_cQuOGXtcxneJ_kal}In_LiIT=bidx zvxFivkrlAxGU84}e9Ir(3aSy+H&Ij@fGBP**^Z?v(ezRpZysz(O+38-fLKj$xsEfq zs)-3+?92l!+t8R_J-=!7pI?>HB*l#Y03ZNKL_t)WTqE#;<1}J4)hqxa)?jD=)U$MV z?LUc@#N&a5;7dAH1`50H(cZim{DyYUYRX{+$#kune(BHSc>u_+92@zVKB&c?{hiLW zMfFeKpw~>>5mIozp6H7qi(8iN%(A+4BlR+UF+XcbD7p<%94>PJ={1`x8k~)vjyM3+ z`NvoKK%4`f%+6a|D6G4=v7`d70Cd1UPnSctyX=CaWeL%1DuA-)OEBNJ83YlHoT1q* zzTM6TG~}YG`sKu9`5nBo@n6z$XNW%Onbka40LSQ$9jmU>wUMd5)KK@+iMq|OQh){9Bx0`qXFhSzQkYGu*c7Z;gLDP+*52J$R8akz z*3WD^JdrJ=ryr0J)O~eBMd}27SOl2gpa6hsbbdrp0MLq)4pTf4Vi@3HhI3s1cWLWRDZ*FXMK@m6(x=7as6fWSJ9EPbG>9V()zD#ma zHzGvO3Zjjxh*mKeBi+3PDVGpYyX+-eZX#Dqcn67gcpX6;tpDNiLb;Tkp4nVWs{n#k zOZ&F}cBoNTTnYWz3mZ}p)t*o8ZwZjOe0y`MUJqLWkcL#CP7-a?pzA`oh2EjTis|k7 zaCFMnTGii>4EmQ8b=X_q9xwp##(_KlYg%Z$o<8sHT3mA6TuueE;;sQ@716D3IY#v3 z5&`6I&~ICO$Bh})g~1rn!~I0`s)u=WWxfMI4ZA&oMDf6Z3I|`bDWX#z<|4cWE0 zV88zUuCe0u2ZxA``v73SLFZZlz&SuS$DZK!K2LAw3J2)?Y$TQ~|7PBsPxNgNSN>B2 z5KMbwE6zvoPHw#W^dm8y?Z4AY>DG_wm0;Fx7R8A_rpaK&o1Yq6_ANU8*gdq20r2u} zqVv;FE|O&$cDa-Q!~}io0_G5X=K_kN8h|>qkLVr)haQ`&<$)U6)6SF_yYLjz!a7dH z0l;kUmavAVGs5F7GX=UN07cG4X(Qj{*<9*jYY?CQL=0V^7p5p&zVgR7&{q=7)PoA$Zz{)jtWdSIq_wR0!kiD<1NH0A7N&rB#?p~QGt{qGH zt&8_;4kctNuIGx1XxR1ffa3?Pfo*qftQnd#;`OY3%eDYvsZlbtrD%X2Qvh%~J?4qv z3{kUTa6l7zq8FEJ-rwHHQ5*I&nSYHsrQPTlM#399eSRpObDh4s``Sa#l8~06#6O_} z9aRrt5R9on%n=4hDyu?asf;bdbF@FSounyyFW=qdCZ2yl2Yt=T1ePi?ZK0t_-H18) zCND09^*qs}2>^yA!;ZFwq{_5RB^Q{Ml@fNoGYxKAy20EX^i?q&TDJWz-DvYGrNCQ7 zxBGlo0(Reyf&kET;h2SV&-?pBiPYY;HrExV0TL(#=V-8*?)N9%%K6bY3r6!b+U0Sd zXq5#;!he=%Q`S=qVC><6?snheu06Gv#WaAaW^TB%z3A!yRBpHua8p80wdM^NnY8wp zXXGtfQg(#la79z3mG!MeHjDvkJt@7Vu=X~c?+g8WgJfX5`xCm*tU9~tWEAW3Gx@Of zG<{x;B%}*IIK8Z51*3Zwa#)-1jAtTu=zMQ!<*uSMOcXEwzGLWHdbpN}PWr9W(*eNn z6R<85?Q;PjyI28CB06SkT||3?$fyOyPXiF2(cubH061jL`TX9B z8=LZ_5)quPyc#uxg<@FNzvahG*I>5_QwY;K%g%Aa`jb@l-2Y_z*xp~h8=t-O`2XZD z)_&=YY6SPl|1Jh18e^F)-eW}M98B%Hes4POH!27yx8A!w%)BG?%xrc5fIGPJ1|6^v zKI*9RdCx7LQ%Tror!pP|#>lw3hU@$8D!U37}r$!=~`nLouBvXP#{k{aC*ws?q%=RQt zU7%;?{XT90fvYpmsRF55!UWP~hkMy^#Q#Aw zYMVf%H_KI)?#e0vgKT}SW-uE%;0+aRmpR#Q?o^;E07`eCNds}w|HC`;5*%PkS`CDz zCM^aq%Mk#QzGbM)^`!1h?SM==X%mRsn#v_-!MiusHWVt2QQ_3!wJ$bwtXfqnzx3XK zr8w)3ja3fOsf;Ek?z|J}C^8wqdVzjiANeRdi7xrE^3w4X09h#XGy@R1Y~@{|n|YyH z&83B2uJ4(eZDrloNFH79DerXm+p`v3FI^n5;XgywS>~Gfm98(;XJsS!1^{6QVBi6b zX-pu;gz9+T(Cq;Lh+n0rvjABACrw|{8+F$dxAggB z1T(coNq{A1!SA+*FDL*sFPDh*eM+Y~T|1b)U-JAcsf~4rK5_vpx&KuSaGV)Jm*}ey z=(|au#vU!PI`RYk`2t`zIr*T)n+scJH_$j&I=#XavM;YnN%#V`OIW@@r8vkaG?Q!mdvdltCflk34<{Js+UgYD}zVgm3E(w}csO+ad@ zbP@oh>pNTNQpwa^AEKc@1h>q>yun5ZB^4kTSX5p6^Mq75bD#mRmK|sTE1erN07%0~ zt!j~KeA}f~vpyfx0AiGm7p)keJ4po$N{Xd{`0CNEP9u;|Z3qh}xYhm#G{hJLPrO64 zxa8WITXb)#3=&hJ<~Pku+w7H3yHwux)q|D8U!RTyBnr^-(x~2b?s;Dbsq)cp>Fw?l zbfCS_cXjas(dnvd#<$(4(Aw-DltUm zluW7jzcOCe2lQTf_>wE^+S0raMZ}n@3g&v zq8jr65Ug8aPKP_{^v(K@SNZkw6w2(_rM;Qx^DMBG=!4l-U_YIf>MHtUy8A^z;=eyu z#{d-W5zRCb(%vQNVxJRz>H|=((2+UqkDk8&*Mf-Ae6%NsG4$E)DZJw&U(;J5_lt7| z8PA!8dfZ*BzE5Z30M^p2dYfMvdH^tTmp+z2@Y>HCANz;FN%~`MfL(Ot0I37eOGLk` z07PNar8CnK(a4Xr#2%sz49t$|R4@i`-?8EiDPiWvYIT6#P!RyMjAL>jX;%{{-=v#m z0IcQOm1->8Q&0ieTy-U&zd?t6C?cNAq`O)exZ@_Hf5(%(gRc|4VgkZ&Tmfj7p(irM zhT<{$=d!v;#x}s5a%&7cXqwxa&X6)Lt?c4$^i2x@a}7N_ew^qegHc_ZO3UOC5z_U41VNBei6}h%(oiQC6z_~1cO2?~FwxH+PmbLin zbBny}mM>mubi+Mo#|(IH&~7Q(-n-agS{h*Or7uP^8UQI2H;BbKz-8Bkvq7Q|O2G0s z0~ai6BNW6<;fMX(>5@Aw%vbVN2Gz=X0FX~=3mz_L2oDlXP6eivAZ?@?(<+;)5g;rG zWTm^4Xti%6;aG}LA?%0W^dx&aZ3P_Q&Pdg%oEj^(Pxfm76kEww9X041%mGSj-B1E> z_iynSidPQxFS~JLfx!SRA6TPb?k()Pe{rvE}TVKpXNn;#|q zlqg^^hqzk%(=*ZBQ!16XtpZ_I6Djg{mjDZC%0KRH}arT`{*MC^-uO^~H>Z4g~|HTol{BUAUOO1jD z7+WU$>n{Hzu59IhW+!z3&OjTKO>g$h{bb!AG+8&uW4TCapw_up`+2(P1KPT7c&LK<{Wk27s}JsDJ1$+A#i* zXn+Gq{zx|pK=yljCIhtIy3(rxh2d5KK-XPcFMmzDr3}@rb{Yfoh8(kls$ZBlba5ZX^-%hv#`$rPsUe6S5z~fv2 z6svUT^8^6VdH%bFYv^_-14KGyNT%xmV2;v{el|*3V$un_h#uyPJ$VN)p>S!3XK8bD zei_j%2_Hf$ent}&qK`_jo}sap-)X`DWbMjU&vrZBpt0KV6%8>@3doLaPZ#{YuRmB` zSnyP{#(9vE8i4Q$El)&oP?jGE4J)i<j_9BxG%FLPeJ3UX;bpy)XPJq(2{2f$yNf=GLzPBY&^RQI3Ae!mkHu7> zI-RY~RBs6g!?X-l1pv-ngXb4{mM9*6IATwW+zZcCG6^>_eC$Alp8^VLxr}IcV1~<^ z95)Wg9MP&!0)SRb3nX>1`>)Tt44vD$3c&r2ZmhgT+mitLzo!EQ!L2wTxZ}sQd{n1y z!8hj?g>Ebsc2+&9CTzfW8KhG>^nfnRkI9%*toXX%n(G=|y1grF#xq2h2V(UG@`e?g z!zwyEF4tU{+WcBnQoL{PsNK7N+>F#9>%;jsei~6#BT~(1X!-894VKnTbTDeEYzBWA;@k_f3oQr7>3o3+vGNc4y6-VH$Xsqt z=@|61+|sp=rlhd{G&hb{bpSm0-xOB!=32cwcR2OUT_ zo&W=!IKT|sl8P*zrZZy&f0F(=AtUIV-Ct21xI$OfPSVu@J@E>C(xPk9uJh~+GquyK zY-2Vbq&T2(1tNOgTC)4hy@uH_{m}( zIieBWPH6!6U7{|5uyb_GHXPrxH4FKB^l?qNDbIQ40UhcMtW*RgYGEkUqMbK=nT{6i z&TF(e(>v5)+OfvCeEMfPkhi)o-x{@o-WMif=Fk;-Yp}Cx{px}dzD>7QXMDk8Y2Oxb za<)~N-x)|5bMp08OzPHKYaPQ=8+Ly>=m^H8k!g!;R~_I&Rn0mTV|ziNJ}sCL0I{se zOxG_Iq>P>!3tyo>^D?q1;-69h0MrnAu)X3b4HxLg{ul!|{7n7zcGBB51~}eGyJ=Wp z^Ou(rEVFb=SGIp?#c~wad-JoW3WM!IC1({vRdpE@=oZI@d*=phXu1*e{j_b?2?PMa z`}a0mv6vxwB9xJ-#S{R7dB^F)Rz1FaTSiiqhXkd_tPRv0^>&Q3%>CNkQB<~)KY~)07+E#9RDk{dH4lK^k9dLsN*u4>Y)mF88 zf3N2=AMs*&W79M~nfvLB+4;xu*6!Ss#fQDuep){@-U*^>w#CPYKHvbjA8_b^IrK&w zfG(onA0JM>ws308P#XMcVo`VORJJWCTeqy}+4>i4=`AnJ>VOFPT?KH;c{lO`)MS0f zl!a1rE%_L4Xq89$Qd~8|(eCKV`nI2sW}rk9ULV|8l}dbY^0~xguTw~;cKD}#m5Iy8 zn{9pGI|p0IZ!!RI=7589r+s2Wq~9$T zH@;18G&c1%2TW$SEtEb>6jh~tW4`q2J1rU$J#Po#Ttxo$rLv)>Q;wqo4BU3X#vg38 zEyF67y6@21c{?{&k}(b-o=v-U-m@*v!z*;QVl2EtM@x1!tLHNoMq($?xukF# z0}j;|5fcYh+Nz;WO{b`@0QUiKCA;^RdBV13+m`JfbKM3Gy>I!id-87H?=XcBhu>|t zIDiIlV;~`|^1JlMLf119lg3nf*K(o_NrAj!0ANVmp%0tmt`p;c<~KV4q~mS5PvfdK z_T!m~im6ig*1Vxm*t)HIs}2ptxp1Z{#OQI?QaA^=WpLG&GaH|9(+O+cJvuWL%CcUe zd#~<$aD7Yy#l@itWBBEMqrO06+vw&Z&ZWJ9ep(H{mH-Eg-9&Hs_TzZLv)v;K48zlr zzCv^{kVn^T;n`k8ftoe-&%ud_$zoKUoa_4Us+5rsTqEns!<2{}j73%nq=+LZh zc1mJ3N9wbK=sb(8A$=3kbw|T6(XBdEO9{YUM91Plf#|nJ0A^P5*+?Ago~D6kbPTb| zqDpg43c-1PG119!+Y;>#X8;rt_XD@LE2asjxiec<>a;XO%};Pc&UxEfvg0&P;bLDFV{wictL*=<6;n>oGMM zH#DH$B#ebm)4d5NNCEY3hX7>fkzqrD%zK7RrYs%c!ZRw*&=!LgY76~_Y^A$X2a*Pl zd+>v#TWATxC8?Aag^}&~wdSOZF2|&8f&(IBsikeht*LZxIZ?e!>!*^Pm{@u5NReA+ zyf)k(#>0F|Q`#wZto`oim8R4E<>fvhiyKxHlW9*zaU{;QU|>zBnaHM`q{UP*@5Ju% z#GZajFQ2-zS~4bDj~$Kj9V}tQjPh7@FVVRMGnQ}7GWd-gN~Xn2SK?m#Xy|Ah5Yf|D zJvW<5sCs(gHF~R{2899oeR+D@cmhy-nTxk_=LK58fCfFII@41j16EwQZvH;%Fr)on z0DwEWy};3WZdK$Axua*cgwwGeBsIX%wEWFi0w8|%)2>1+QLc9gP8M5(T3)K|IeIaW zBi~I&26!;}Y9j*>9y`_Va3H;G-K?->I7#mm>KZI<58Zz8ExNTK2{0?^0g5fBU5`YY zFGbu6!nUT_uAei$a@qf+|Lr3hh%O_ZqPrCzE)n&`0j<>lVAlB5#5M~u+6y}V`m#7T zLgE5|vvyUjzA$^gKQ}OIji!qd*}X?sh1t+~k^!^e8tr)^0)~g*Xn5>oZ0=WA(RaiD z@*jGWQH#d^TnM;hU$ayBwB8;KonP&)?}^6N?UAae>B8X@0L0hTbF`aQx&WFo0AMc} z>z{cG=|vHlSni&Mn3XOE2>Svc+o1!1wRWQefGz*_{H$_>#{N4S{%(+V=<(w5OBw)g z;=ob|V3jp>v$T5sg9HHXm<&+L+fo3G7wMo1WS^z(M=!PTS^6YuJdNy4qD~2w0VXe% z^C_r(cRre;1LF2Gf6}0cZFxZ3EC5~{uvEMJDXkD}CV`Oa;KMiHtp5?k(E-Gl?wqJ? zx%K9()(T3>VRQF4t95)+jZ4RjDS)@{`dSsDGEx+fBfERt;#2)j%oRYm>cDyfNRJOn z0Q%s!-}PEix4MKHc~zw!=!X_ByO(}yw3s3#w1NuwnQYeZd_7%#WAPZ#A_o2NWS{}8 zov5#3*G^DtR)NtijqKXvi(;Aa(ZI4-oEywB0CAgx2aVk^!A%+NJszcPS}r&BQ?#|H z>bC89tqaOF04D6r=DW1NSSdAT1-O?>8&U#L8X6L@FrW8CBHP#+SYEAaE5X}zdgTQ= zk>&BUqj3fnbEmfxBUU|0XG=rd7UZnzJNLF4ele-1cG1_P2Ol2XKy=yDBpQxg%K+}^ z`o5UE>%pE-u+on8z65i(?JTAyx-BIxgkl;FP~6{b05JPH6M)n0*^t}?Tu*pJdvhv^ zxpXGROvK!To6v)UMC0}9pvIKxY1qm%-|img{t?r!!yqnCO$G9uo(NPS0SAmG7)1B1;}d^Wa!t_i+DAG}Ot?f*2l4 zyWmZIxmo8FVWj+ooSst(08^SOSa!BZxxXx;h=Xem6agUrd>&B6>SLWM*c@|9)I0!) zAA7$4k@%(`<$gsv6;*)G#<}LNPept4!fUiAHM3%8Y=niopJ*Z(hl#F@&xLTYn?CPG z@q=HdWwv$0CDmI0!ecJ+IMM0}`eqJ8DyG_*jA30M3!(4imUU$N#)~W!u5uK}L=f6XjS^-TH&By5bwSiY?tv!E^ ze%YeMx6s`+whd^W@AU7eDnP8I90NFz-A7+%rMH3Z75%*JW?Rd)0Wgib8AnyDzPkc)}NY*dK`)C5nKZAB-du9t`go%X+oD*2EZrmr)g*_Vc{0j_B-;n_a8g8G#6HLQYPA}%`-I~bd zWbWj*9kFEJ)mz<8?|7zdb9SbV2-#<9LfZCTd+KEKCAmYC)L(8?q zW3KN;iy?XUR^4_003ZNKL_t)DPB_!>q^_Z>L+gp&oC)P>D6jp;>-k3t5N9_oP@m{` z#Wl-}uvbk2D2@;vt^%lXeOd;-h-eT1vfflF8~gsozd?g=rpBB9<^3g*WBMi0vBv0p zc!_9-`6yUf?_B8xfWBp66eDseF!Ri$bcwhp6_wuP(W%seM-8MN(O9QkgN9jf_DPsWg-JuIB zGp}v_n{==51l{!k&fuM+=eb^X;@lnBGe0h}UfR$A9&{WZ^k6RBU9^g;Uih><&>Bum zdE#pPCGL&9>>)dtsEc>BTDgsKB} z!f{GX4q%Oy6#$+Mz>vn^*Ys|epK ?H$^a>%B;SZg-PuH&g8{yP4y3(2b8?qscty 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 E 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

t4xubXg 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 literal 0 HcmV?d00001 diff --git a/data/lcn/img.png b/data/lcn/img.png new file mode 100644 index 0000000000000000000000000000000000000000..ded9fe4cea88d184b9c265c5d9ecca1883b200ae GIT binary patch literal 767724 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

gJ75JMS}rvdj0d8J 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

uE!th6FS1Hi!(k(OTaQ%xi`R<| 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%0A}^0rGD$@NeBQttMx{uKhgri+tfC(IX*@-oI*|i# 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ⅇ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

;j^A8%Ui=9y3V_paH64EM8#IEY-K$ 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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 + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 +#elif defined(PYSTON_VERSION) + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_PYSTON 1 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #ifndef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 1 + #endif + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #undef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 0 + #undef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 0 + #ifndef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 1 + #endif + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #ifndef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 0 + #endif + #ifndef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 1 + #endif + #ifndef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 1 + #endif + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #undef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 0 + #undef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 0 + #undef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE 0 + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 +#else + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_PYSTON 0 + #define CYTHON_COMPILING_IN_CPYTHON 1 + #ifndef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 1 + #endif + #if PY_VERSION_HEX < 0x02070000 + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #elif !defined(CYTHON_USE_PYTYPE_LOOKUP) + #define CYTHON_USE_PYTYPE_LOOKUP 1 + #endif + #if PY_MAJOR_VERSION < 3 + #undef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 0 + #elif !defined(CYTHON_USE_ASYNC_SLOTS) + #define CYTHON_USE_ASYNC_SLOTS 1 + #endif + #if PY_VERSION_HEX < 0x02070000 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #elif !defined(CYTHON_USE_PYLONG_INTERNALS) + #define CYTHON_USE_PYLONG_INTERNALS 1 + #endif + #ifndef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 1 + #endif + #ifndef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 1 + #endif + #if PY_VERSION_HEX < 0x030300F0 + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #elif !defined(CYTHON_USE_UNICODE_WRITER) + #define CYTHON_USE_UNICODE_WRITER 1 + #endif + #ifndef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 0 + #endif + #ifndef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 1 + #endif + #ifndef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 1 + #endif + #ifndef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 1 + #endif + #ifndef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 1 + #endif + #ifndef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) + #endif + #ifndef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) + #endif + #ifndef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) + #endif + #ifndef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) + #endif +#endif +#if !defined(CYTHON_FAST_PYCCALL) +#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) +#endif +#if CYTHON_USE_PYLONG_INTERNALS + #include "longintrepr.h" + #undef SHIFT + #undef BASE + #undef MASK +#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 +#ifndef METH_STACKLESS + #define METH_STACKLESS 0 +#endif +#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) + #ifndef METH_FASTCALL + #define METH_FASTCALL 0x80 + #endif + typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs); + typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args, + Py_ssize_t nargs, PyObject *kwnames); +#else + #define __Pyx_PyCFunctionFast _PyCFunctionFast + #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords +#endif +#if CYTHON_FAST_PYCCALL +#define __Pyx_PyFastCFunction_Check(func)\ + ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))))) +#else +#define __Pyx_PyFastCFunction_Check(func) 0 +#endif +#if CYTHON_USE_DICT_VERSIONS +#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) +#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ + (version_var) = __PYX_GET_DICT_VERSION(dict);\ + (cache_var) = (value); +#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ + static PY_UINT64_T __pyx_dict_version = 0;\ + static PyObject *__pyx_dict_cached_value = NULL;\ + if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ + (VAR) = __pyx_dict_cached_value;\ + } else {\ + (VAR) = __pyx_dict_cached_value = (LOOKUP);\ + __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ + }\ + } +#else +#define __PYX_GET_DICT_VERSION(dict) (0) +#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) +#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) + #define PyObject_Malloc(s) PyMem_Malloc(s) + #define PyObject_Free(p) PyMem_Free(p) + #define PyObject_Realloc(p) PyMem_Realloc(p) +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1 + #define PyMem_RawMalloc(n) PyMem_Malloc(n) + #define PyMem_RawRealloc(p, n) PyMem_Realloc(p, n) + #define PyMem_RawFree(p) PyMem_Free(p) +#endif +#if CYTHON_COMPILING_IN_PYSTON + #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) + #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno) +#else + #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) + #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) +#endif +#if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000 + #define __Pyx_PyThreadState_Current PyThreadState_GET() +#elif PY_VERSION_HEX >= 0x03060000 + #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet() +#elif PY_VERSION_HEX >= 0x03000000 + #define __Pyx_PyThreadState_Current PyThreadState_GET() +#else + #define __Pyx_PyThreadState_Current _PyThreadState_Current +#endif +#if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) +#include "pythread.h" +#define Py_tss_NEEDS_INIT 0 +typedef int Py_tss_t; +static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) { + *key = PyThread_create_key(); + return 0; // 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 || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) +#define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) +#if PY_MAJOR_VERSION >= 3 + #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) +#else + #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) +#endif +#if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) + #define PyObject_ASCII(o) PyObject_Repr(o) +#endif +#if PY_MAJOR_VERSION >= 3 + #define PyBaseString_Type PyUnicode_Type + #define PyStringObject PyUnicodeObject + #define PyString_Type PyUnicode_Type + #define PyString_Check PyUnicode_Check + #define PyString_CheckExact PyUnicode_CheckExact + #define PyObject_Unicode PyObject_Str +#endif +#if PY_MAJOR_VERSION >= 3 + #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) + #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) +#else + #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) + #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) +#endif +#ifndef PySet_CheckExact + #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) +#endif +#if CYTHON_ASSUME_SAFE_MACROS + #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) +#else + #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) +#endif +#if PY_MAJOR_VERSION >= 3 + #define PyIntObject PyLongObject + #define PyInt_Type PyLong_Type + #define PyInt_Check(op) PyLong_Check(op) + #define PyInt_CheckExact(op) PyLong_CheckExact(op) + #define PyInt_FromString PyLong_FromString + #define PyInt_FromUnicode PyLong_FromUnicode + #define PyInt_FromLong PyLong_FromLong + #define PyInt_FromSize_t PyLong_FromSize_t + #define PyInt_FromSsize_t PyLong_FromSsize_t + #define PyInt_AsLong PyLong_AsLong + #define PyInt_AS_LONG PyLong_AS_LONG + #define PyInt_AsSsize_t PyLong_AsSsize_t + #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask + #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask + #define PyNumber_Int PyNumber_Long +#endif +#if PY_MAJOR_VERSION >= 3 + #define PyBoolObject PyLongObject +#endif +#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY + #ifndef PyUnicode_InternFromString + #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) + #endif +#endif +#if PY_VERSION_HEX < 0x030200A4 + typedef long Py_hash_t; + #define __Pyx_PyInt_FromHash_t PyInt_FromLong + #define __Pyx_PyInt_AsHash_t PyInt_AsLong +#else + #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t + #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t +#endif +#if PY_MAJOR_VERSION >= 3 + #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) +#else + #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) +#endif +#if CYTHON_USE_ASYNC_SLOTS + #if PY_VERSION_HEX >= 0x030500B1 + #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods + #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) + #else + #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) + #endif +#else + #define __Pyx_PyType_AsAsync(obj) NULL +#endif +#ifndef __Pyx_PyAsyncMethodsStruct + typedef struct { + unaryfunc am_await; + unaryfunc am_aiter; + unaryfunc am_anext; + } __Pyx_PyAsyncMethodsStruct; +#endif + +#if defined(WIN32) || defined(MS_WINDOWS) + #define _USE_MATH_DEFINES +#endif +#include +#ifdef NAN +#define __PYX_NAN() ((float) NAN) +#else +static CYTHON_INLINE float __PYX_NAN() { + float value; + memset(&value, 0xFF, sizeof(value)); + return value; +} +#endif +#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) +#define __Pyx_truncl trunc +#else +#define __Pyx_truncl truncl +#endif + + +#define __PYX_ERR(f_index, lineno, Ln_error) \ +{ \ + __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ +} + +#ifndef __PYX_EXTERN_C + #ifdef __cplusplus + #define __PYX_EXTERN_C extern "C" + #else + #define __PYX_EXTERN_C extern + #endif +#endif + +#define __PYX_HAVE__lcn +#define __PYX_HAVE_API__lcn +/* Early includes */ +#include "math.h" +#include "pythread.h" +#include +#include +#include +#include "pystate.h" +#ifdef _OPENMP +#include +#endif /* _OPENMP */ + +#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) +#define CYTHON_WITHOUT_ASSERTIONS +#endif + +typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; + const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; + +#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 +#define __PYX_DEFAULT_STRING_ENCODING_IS_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))) ) +static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) { + return (size_t) i < (size_t) limit; +} +#if defined (__cplusplus) && __cplusplus >= 201103L + #include + #define __Pyx_sst_abs(value) std::abs(value) +#elif SIZEOF_INT >= SIZEOF_SIZE_T + #define __Pyx_sst_abs(value) abs(value) +#elif SIZEOF_LONG >= SIZEOF_SIZE_T + #define __Pyx_sst_abs(value) labs(value) +#elif defined (_MSC_VER) + #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value)) +#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + #define __Pyx_sst_abs(value) llabs(value) +#elif defined (__GNUC__) + #define __Pyx_sst_abs(value) __builtin_llabs(value) +#else + #define __Pyx_sst_abs(value) ((value<0) ? -value : value) +#endif +static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*); +static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); +#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s)) +#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) +#define __Pyx_PyBytes_FromString PyBytes_FromString +#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize +static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); +#if PY_MAJOR_VERSION < 3 + #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString + #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize +#else + #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString + #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize +#endif +#define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyObject_AsWritableString(s) ((char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsWritableSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) +#define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) +#define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) +#define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) +#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) +static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { + const Py_UNICODE *u_end = u; + while (*u_end++) ; + return (size_t)(u_end - u - 1); +} +#define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) +#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode +#define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode +#define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) +#define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) +static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); +static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); +static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*); +static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); +#define __Pyx_PySequence_Tuple(obj)\ + (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) +static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); +static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); +#if CYTHON_ASSUME_SAFE_MACROS +#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) +#else +#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) +#endif +#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) +#if PY_MAJOR_VERSION >= 3 +#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) +#else +#define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) +#endif +#define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x)) +#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII +static int __Pyx_sys_getdefaultencoding_not_ascii; +static int __Pyx_init_sys_getdefaultencoding_params(void) { + PyObject* sys; + PyObject* default_encoding = NULL; + PyObject* ascii_chars_u = NULL; + PyObject* ascii_chars_b = NULL; + const char* default_encoding_c; + sys = PyImport_ImportModule("sys"); + if (!sys) goto bad; + default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL); + Py_DECREF(sys); + if (!default_encoding) goto bad; + default_encoding_c = PyBytes_AsString(default_encoding); + if (!default_encoding_c) goto bad; + if (strcmp(default_encoding_c, "ascii") == 0) { + __Pyx_sys_getdefaultencoding_not_ascii = 0; + } else { + char ascii_chars[128]; + int c; + for (c = 0; c < 128; c++) { + ascii_chars[c] = c; + } + __Pyx_sys_getdefaultencoding_not_ascii = 1; + ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); + if (!ascii_chars_u) goto bad; + ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); + if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { + PyErr_Format( + PyExc_ValueError, + "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.", + default_encoding_c); + goto bad; + } + Py_DECREF(ascii_chars_u); + Py_DECREF(ascii_chars_b); + } + Py_DECREF(default_encoding); + return 0; +bad: + Py_XDECREF(default_encoding); + Py_XDECREF(ascii_chars_u); + Py_XDECREF(ascii_chars_b); + return -1; +} +#endif +#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 +#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) +#else +#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) +#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT +static char* __PYX_DEFAULT_STRING_ENCODING; +static int __Pyx_init_sys_getdefaultencoding_params(void) { + PyObject* sys; + PyObject* default_encoding = NULL; + char* default_encoding_c; + sys = PyImport_ImportModule("sys"); + if (!sys) goto bad; + default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); + Py_DECREF(sys); + if (!default_encoding) goto bad; + default_encoding_c = PyBytes_AsString(default_encoding); + if (!default_encoding_c) goto bad; + __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1); + if (!__PYX_DEFAULT_STRING_ENCODING) goto bad; + strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); + Py_DECREF(default_encoding); + return 0; +bad: + Py_XDECREF(default_encoding); + return -1; +} +#endif +#endif + + +/* Test for GCC > 2.95 */ +#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) + #define likely(x) __builtin_expect(!!(x), 1) + #define unlikely(x) __builtin_expect(!!(x), 0) +#else /* !__GNUC__ or GCC < 2.95 */ + #define likely(x) (x) + #define unlikely(x) (x) +#endif /* __GNUC__ */ +static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; } + +static PyObject *__pyx_m = NULL; +static PyObject *__pyx_d; +static PyObject *__pyx_b; +static PyObject *__pyx_cython_runtime = NULL; +static PyObject *__pyx_empty_tuple; +static PyObject *__pyx_empty_bytes; +static PyObject *__pyx_empty_unicode; +static int __pyx_lineno; +static int __pyx_clineno = 0; +static const char * __pyx_cfilenm= __FILE__; +static const char *__pyx_filename; + + +static const char *__pyx_f[] = { + "lcn.pyx", + "stringsource", +}; +/* MemviewSliceStruct.proto */ +struct __pyx_memoryview_obj; +typedef struct { + struct __pyx_memoryview_obj *memview; + char *data; + Py_ssize_t shape[8]; + Py_ssize_t strides[8]; + Py_ssize_t suboffsets[8]; +} __Pyx_memviewslice; +#define __Pyx_MemoryView_Len(m) (m.shape[0]) + +/* Atomics.proto */ +#include +#ifndef CYTHON_ATOMICS + #define CYTHON_ATOMICS 1 +#endif +#define __pyx_atomic_int_type int +#if CYTHON_ATOMICS && __GNUC__ >= 4 && (__GNUC_MINOR__ > 1 ||\ + (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL >= 2)) &&\ + !defined(__i386__) + #define __pyx_atomic_incr_aligned(value, lock) __sync_fetch_and_add(value, 1) + #define __pyx_atomic_decr_aligned(value, lock) __sync_fetch_and_sub(value, 1) + #ifdef __PYX_DEBUG_ATOMICS + #warning "Using GNU atomics" + #endif +#elif CYTHON_ATOMICS && defined(_MSC_VER) && 0 + #include + #undef __pyx_atomic_int_type + #define __pyx_atomic_int_type LONG + #define __pyx_atomic_incr_aligned(value, lock) InterlockedIncrement(value) + #define __pyx_atomic_decr_aligned(value, lock) InterlockedDecrement(value) + #ifdef __PYX_DEBUG_ATOMICS + #pragma message ("Using MSVC atomics") + #endif +#elif CYTHON_ATOMICS && (defined(__ICC) || defined(__INTEL_COMPILER)) && 0 + #define __pyx_atomic_incr_aligned(value, lock) _InterlockedIncrement(value) + #define __pyx_atomic_decr_aligned(value, lock) _InterlockedDecrement(value) + #ifdef __PYX_DEBUG_ATOMICS + #warning "Using Intel atomics" + #endif +#else + #undef CYTHON_ATOMICS + #define CYTHON_ATOMICS 0 + #ifdef __PYX_DEBUG_ATOMICS + #warning "Not using atomics" + #endif +#endif +typedef volatile __pyx_atomic_int_type __pyx_atomic_int; +#if CYTHON_ATOMICS + #define __pyx_add_acquisition_count(memview)\ + __pyx_atomic_incr_aligned(__pyx_get_slice_count_pointer(memview), memview->lock) + #define __pyx_sub_acquisition_count(memview)\ + __pyx_atomic_decr_aligned(__pyx_get_slice_count_pointer(memview), memview->lock) +#else + #define __pyx_add_acquisition_count(memview)\ + __pyx_add_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock) + #define __pyx_sub_acquisition_count(memview)\ + __pyx_sub_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock) +#endif + +/* ForceInitThreads.proto */ +#ifndef __PYX_FORCE_INIT_THREADS + #define __PYX_FORCE_INIT_THREADS 0 +#endif + +/* NoFastGil.proto */ +#define __Pyx_PyGILState_Ensure PyGILState_Ensure +#define __Pyx_PyGILState_Release PyGILState_Release +#define __Pyx_FastGIL_Remember() +#define __Pyx_FastGIL_Forget() +#define __Pyx_FastGilFuncInit() + +/* BufferFormatStructs.proto */ +#define IS_UNSIGNED(type) (((type) -1) > 0) +struct __Pyx_StructField_; +#define __PYX_BUF_FLAGS_PACKED_STRUCT (1 << 0) +typedef struct { + const char* name; + struct __Pyx_StructField_* fields; + size_t size; + size_t arraysize[8]; + int ndim; + char typegroup; + char is_unsigned; + int flags; +} __Pyx_TypeInfo; +typedef struct __Pyx_StructField_ { + __Pyx_TypeInfo* type; + const char* name; + size_t offset; +} __Pyx_StructField; +typedef struct { + __Pyx_StructField* field; + size_t parent_offset; +} __Pyx_BufFmt_StackElem; +typedef struct { + __Pyx_StructField root; + __Pyx_BufFmt_StackElem* head; + size_t fmt_offset; + size_t new_count, enc_count; + size_t struct_alignment; + int is_complex; + char enc_type; + char new_packmode; + char enc_packmode; + char is_valid_array; +} __Pyx_BufFmt_Context; + + +/*--- Type declarations ---*/ +struct __pyx_array_obj; +struct __pyx_MemviewEnum_obj; +struct __pyx_memoryview_obj; +struct __pyx_memoryviewslice_obj; + +/* "View.MemoryView":104 + * + * @cname("__pyx_array") + * cdef class array: # <<<<<<<<<<<<<< + * + * cdef: + */ +struct __pyx_array_obj { + PyObject_HEAD + struct __pyx_vtabstruct_array *__pyx_vtab; + char *data; + Py_ssize_t len; + char *format; + int ndim; + Py_ssize_t *_shape; + Py_ssize_t *_strides; + Py_ssize_t itemsize; + PyObject *mode; + PyObject *_format; + void (*callback_free_data)(void *); + int free_data; + int dtype_is_object; +}; + + +/* "View.MemoryView":278 + * + * @cname('__pyx_MemviewEnum') + * cdef class Enum(object): # <<<<<<<<<<<<<< + * cdef object name + * def __init__(self, name): + */ +struct __pyx_MemviewEnum_obj { + PyObject_HEAD + PyObject *name; +}; + + +/* "View.MemoryView":329 + * + * @cname('__pyx_memoryview') + * cdef class memoryview(object): # <<<<<<<<<<<<<< + * + * cdef object obj + */ +struct __pyx_memoryview_obj { + PyObject_HEAD + struct __pyx_vtabstruct_memoryview *__pyx_vtab; + PyObject *obj; + PyObject *_size; + PyObject *_array_interface; + PyThread_type_lock lock; + __pyx_atomic_int acquisition_count[2]; + __pyx_atomic_int *acquisition_count_aligned_p; + Py_buffer view; + int flags; + int dtype_is_object; + __Pyx_TypeInfo *typeinfo; +}; + + +/* "View.MemoryView":960 + * + * @cname('__pyx_memoryviewslice') + * cdef class _memoryviewslice(memoryview): # <<<<<<<<<<<<<< + * "Internal class for passing memoryview slices to Python" + * + */ +struct __pyx_memoryviewslice_obj { + struct __pyx_memoryview_obj __pyx_base; + __Pyx_memviewslice from_slice; + PyObject *from_object; + PyObject *(*to_object_func)(char *); + int (*to_dtype_func)(char *, PyObject *); +}; + + + +/* "View.MemoryView":104 + * + * @cname("__pyx_array") + * cdef class array: # <<<<<<<<<<<<<< + * + * cdef: + */ + +struct __pyx_vtabstruct_array { + PyObject *(*get_memview)(struct __pyx_array_obj *); +}; +static struct __pyx_vtabstruct_array *__pyx_vtabptr_array; + + +/* "View.MemoryView":329 + * + * @cname('__pyx_memoryview') + * cdef class memoryview(object): # <<<<<<<<<<<<<< + * + * cdef object obj + */ + +struct __pyx_vtabstruct_memoryview { + char *(*get_item_pointer)(struct __pyx_memoryview_obj *, PyObject *); + PyObject *(*is_slice)(struct __pyx_memoryview_obj *, PyObject *); + PyObject *(*setitem_slice_assignment)(struct __pyx_memoryview_obj *, PyObject *, PyObject *); + PyObject *(*setitem_slice_assign_scalar)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *); + PyObject *(*setitem_indexed)(struct __pyx_memoryview_obj *, PyObject *, PyObject *); + PyObject *(*convert_item_to_object)(struct __pyx_memoryview_obj *, char *); + PyObject *(*assign_item_from_object)(struct __pyx_memoryview_obj *, char *, PyObject *); +}; +static struct __pyx_vtabstruct_memoryview *__pyx_vtabptr_memoryview; + + +/* "View.MemoryView":960 + * + * @cname('__pyx_memoryviewslice') + * cdef class _memoryviewslice(memoryview): # <<<<<<<<<<<<<< + * "Internal class for passing memoryview slices to Python" + * + */ + +struct __pyx_vtabstruct__memoryviewslice { + struct __pyx_vtabstruct_memoryview __pyx_base; +}; +static struct __pyx_vtabstruct__memoryviewslice *__pyx_vtabptr__memoryviewslice; + +/* --- Runtime support code (head) --- */ +/* Refnanny.proto */ +#ifndef CYTHON_REFNANNY + #define CYTHON_REFNANNY 0 +#endif +#if CYTHON_REFNANNY + typedef struct { + void (*INCREF)(void*, PyObject*, int); + void (*DECREF)(void*, PyObject*, int); + void (*GOTREF)(void*, PyObject*, int); + void (*GIVEREF)(void*, PyObject*, int); + void* (*SetupContext)(const char*, int, const char*); + void (*FinishContext)(void**); + } __Pyx_RefNannyAPIStruct; + static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; + static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); + #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; +#ifdef WITH_THREAD + #define __Pyx_RefNannySetupContext(name, acquire_gil)\ + if (acquire_gil) {\ + PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ + PyGILState_Release(__pyx_gilstate_save);\ + } else {\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ + } +#else + #define __Pyx_RefNannySetupContext(name, acquire_gil)\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) +#endif + #define __Pyx_RefNannyFinishContext()\ + __Pyx_RefNanny->FinishContext(&__pyx_refnanny) + #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) + #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) + #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) + #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) +#else + #define __Pyx_RefNannyDeclarations + #define __Pyx_RefNannySetupContext(name, acquire_gil) + #define __Pyx_RefNannyFinishContext() + #define __Pyx_INCREF(r) Py_INCREF(r) + #define __Pyx_DECREF(r) Py_DECREF(r) + #define __Pyx_GOTREF(r) + #define __Pyx_GIVEREF(r) + #define __Pyx_XINCREF(r) Py_XINCREF(r) + #define __Pyx_XDECREF(r) Py_XDECREF(r) + #define __Pyx_XGOTREF(r) + #define __Pyx_XGIVEREF(r) +#endif +#define __Pyx_XDECREF_SET(r, v) do {\ + PyObject *tmp = (PyObject *) r;\ + r = v; __Pyx_XDECREF(tmp);\ + } while (0) +#define __Pyx_DECREF_SET(r, v) do {\ + PyObject *tmp = (PyObject *) r;\ + r = v; __Pyx_DECREF(tmp);\ + } while (0) +#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) +#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) + +/* PyObjectGetAttrStr.proto */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) +#endif + +/* GetBuiltinName.proto */ +static PyObject *__Pyx_GetBuiltinName(PyObject *name); + +/* 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); + +/* 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); + +/* GetModuleGlobalName.proto */ +#if CYTHON_USE_DICT_VERSIONS +#define __Pyx_GetModuleGlobalName(var, name) {\ + static PY_UINT64_T __pyx_dict_version = 0;\ + static PyObject *__pyx_dict_cached_value = NULL;\ + (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\ + (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\ + __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ +} +#define __Pyx_GetModuleGlobalNameUncached(var, name) {\ + PY_UINT64_T __pyx_dict_version;\ + PyObject *__pyx_dict_cached_value;\ + (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ +} +static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value); +#else +#define __Pyx_GetModuleGlobalName(var, name) (var) = __Pyx__GetModuleGlobalName(name) +#define __Pyx_GetModuleGlobalNameUncached(var, name) (var) = __Pyx__GetModuleGlobalName(name) +static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name); +#endif + +/* 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 + +/* MemviewSliceInit.proto */ +#define __Pyx_BUF_MAX_NDIMS %(BUF_MAX_NDIMS)d +#define __Pyx_MEMVIEW_DIRECT 1 +#define __Pyx_MEMVIEW_PTR 2 +#define __Pyx_MEMVIEW_FULL 4 +#define __Pyx_MEMVIEW_CONTIG 8 +#define __Pyx_MEMVIEW_STRIDED 16 +#define __Pyx_MEMVIEW_FOLLOW 32 +#define __Pyx_IS_C_CONTIG 1 +#define __Pyx_IS_F_CONTIG 2 +static int __Pyx_init_memviewslice( + struct __pyx_memoryview_obj *memview, + int ndim, + __Pyx_memviewslice *memviewslice, + int memview_is_new_reference); +static CYTHON_INLINE int __pyx_add_acquisition_count_locked( + __pyx_atomic_int *acquisition_count, PyThread_type_lock lock); +static CYTHON_INLINE int __pyx_sub_acquisition_count_locked( + __pyx_atomic_int *acquisition_count, PyThread_type_lock lock); +#define __pyx_get_slice_count_pointer(memview) (memview->acquisition_count_aligned_p) +#define __pyx_get_slice_count(memview) (*__pyx_get_slice_count_pointer(memview)) +#define __PYX_INC_MEMVIEW(slice, have_gil) __Pyx_INC_MEMVIEW(slice, have_gil, __LINE__) +#define __PYX_XDEC_MEMVIEW(slice, have_gil) __Pyx_XDEC_MEMVIEW(slice, have_gil, __LINE__) +static CYTHON_INLINE void __Pyx_INC_MEMVIEW(__Pyx_memviewslice *, int, int); +static CYTHON_INLINE void __Pyx_XDEC_MEMVIEW(__Pyx_memviewslice *, int, int); + +/* 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); + +/* PyThreadStateGet.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; +#define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; +#define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type +#else +#define __Pyx_PyThreadState_declare +#define __Pyx_PyThreadState_assign +#define __Pyx_PyErr_Occurred() PyErr_Occurred() +#endif + +/* PyErrFetchRestore.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) +#define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) +#define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) +#define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) +#define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) +static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); +static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); +#if CYTHON_COMPILING_IN_CPYTHON +#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) +#else +#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) +#endif +#else +#define __Pyx_PyErr_Clear() PyErr_Clear() +#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) +#define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) +#define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) +#define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) +#endif + +/* RaiseException.proto */ +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); + +/* 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 +#define __Pyx_BUILD_ASSERT_EXPR(cond)\ + (sizeof(char [1 - 2*!(cond)]) - 1) +#ifndef Py_MEMBER_SIZE +#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) +#endif + static size_t __pyx_pyframe_localsplus_offset = 0; + #include "frameobject.h" + #define __Pxy_PyFrame_Initialize_Offsets()\ + ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ + (void)(__pyx_pyframe_localsplus_offset = PyFrame_Type.tp_basicsize - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) + #define __Pyx_PyFrame_GetLocalsplus(frame)\ + (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) +#endif + +/* PyObjectCall2Args.proto */ +static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2); + +/* PyObjectCallMethO.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); +#endif + +/* PyObjectCallOneArg.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); + +/* IncludeStringH.proto */ +#include + +/* BytesEquals.proto */ +static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals); + +/* UnicodeEquals.proto */ +static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals); + +/* StrEquals.proto */ +#if PY_MAJOR_VERSION >= 3 +#define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals +#else +#define __Pyx_PyString_Equals __Pyx_PyBytes_Equals +#endif + +/* None.proto */ +static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t, Py_ssize_t); + +/* UnaryNegOverflows.proto */ +#define UNARY_NEG_WOULD_OVERFLOW(x)\ + (((x) < 0) & ((unsigned long)(x) == 0-(unsigned long)(x))) + +static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ +static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *); /*proto*/ +/* GetAttr.proto */ +static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); + +/* 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 + +/* decode_c_string_utf16.proto */ +static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16(const char *s, Py_ssize_t size, const char *errors) { + int byteorder = 0; + return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); +} +static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16LE(const char *s, Py_ssize_t size, const char *errors) { + int byteorder = -1; + return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); +} +static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16BE(const char *s, Py_ssize_t size, const char *errors) { + int byteorder = 1; + return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); +} + +/* decode_c_string.proto */ +static CYTHON_INLINE PyObject* __Pyx_decode_c_string( + const char* cstring, Py_ssize_t start, Py_ssize_t stop, + const char* encoding, const char* errors, + PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)); + +/* 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 + +/* GetAttr3.proto */ +static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *); + +/* 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); + +/* GetTopmostException.proto */ +#if CYTHON_USE_EXC_INFO_STACK +static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); +#endif + +/* SaveResetException.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb) +static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); +#define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb) +static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); +#else +#define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb) +#define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb) +#endif + +/* 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 + +/* SwapException.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_ExceptionSwap(type, value, tb) __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb) +static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); +#else +static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb); +#endif + +/* Import.proto */ +static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); + +/* FastTypeChecks.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) +static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); +static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); +static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); +#else +#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) +#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) +#define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) +#endif +#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) + +static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ +/* ListCompAppend.proto */ +#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS +static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) { + PyListObject* L = (PyListObject*) list; + Py_ssize_t len = Py_SIZE(list); + if (likely(L->allocated > len)) { + Py_INCREF(x); + PyList_SET_ITEM(list, len, x); + Py_SIZE(list) = len+1; + return 0; + } + return PyList_Append(list, x); +} +#else +#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x) +#endif + +/* PyIntBinop.proto */ +#if !CYTHON_COMPILING_IN_PYPY +static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace); +#else +#define __Pyx_PyInt_AddObjC(op1, op2, intval, inplace)\ + (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2)) +#endif + +/* ListExtend.proto */ +static CYTHON_INLINE int __Pyx_PyList_Extend(PyObject* L, PyObject* v) { +#if CYTHON_COMPILING_IN_CPYTHON + PyObject* none = _PyList_Extend((PyListObject*)L, v); + if (unlikely(!none)) + return -1; + Py_DECREF(none); + return 0; +#else + return PyList_SetSlice(L, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, v); +#endif +} + +/* ListAppend.proto */ +#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS +static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) { + PyListObject* L = (PyListObject*) list; + Py_ssize_t len = Py_SIZE(list); + if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) { + Py_INCREF(x); + PyList_SET_ITEM(list, len, x); + Py_SIZE(list) = len+1; + return 0; + } + return PyList_Append(list, x); +} +#else +#define __Pyx_PyList_Append(L,x) PyList_Append(L,x) +#endif + +/* None.proto */ +static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname); + +/* None.proto */ +static CYTHON_INLINE long __Pyx_div_long(long, long); + +/* WriteUnraisableException.proto */ +static void __Pyx_WriteUnraisable(const char *name, int clineno, + int lineno, const char *filename, + int full_traceback, int nogil); + +/* ImportFrom.proto */ +static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); + +/* HasAttr.proto */ +static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *); + +/* PyObject_GenericGetAttrNoDict.proto */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr +#endif + +/* PyObject_GenericGetAttr.proto */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr +#endif + +/* SetVTable.proto */ +static int __Pyx_SetVtable(PyObject *dict, void *vtable); + +/* SetupReduce.proto */ +static int __Pyx_setup_reduce(PyObject* type_obj); + +/* CLineInTraceback.proto */ +#ifdef CYTHON_CLINE_IN_TRACEBACK +#define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) +#else +static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); +#endif + +/* CodeObjectCache.proto */ +typedef struct { + PyCodeObject* code_object; + int code_line; +} __Pyx_CodeObjectCacheEntry; +struct __Pyx_CodeObjectCache { + int count; + int max_count; + __Pyx_CodeObjectCacheEntry* entries; +}; +static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; +static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); +static PyCodeObject *__pyx_find_code_object(int code_line); +static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); + +/* AddTraceback.proto */ +static void __Pyx_AddTraceback(const char *funcname, int c_line, + int py_line, const char *filename); + +#if PY_MAJOR_VERSION < 3 + static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags); + static void __Pyx_ReleaseBuffer(Py_buffer *view); +#else + #define __Pyx_GetBuffer PyObject_GetBuffer + #define __Pyx_ReleaseBuffer PyBuffer_Release +#endif + + +/* BufferStructDeclare.proto */ +typedef struct { + Py_ssize_t shape, strides, suboffsets; +} __Pyx_Buf_DimInfo; +typedef struct { + size_t refcount; + Py_buffer pybuffer; +} __Pyx_Buffer; +typedef struct { + __Pyx_Buffer *rcbuffer; + char *data; + __Pyx_Buf_DimInfo diminfo[8]; +} __Pyx_LocalBuf_ND; + +/* MemviewSliceIsContig.proto */ +static int __pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim); + +/* OverlappingSlices.proto */ +static int __pyx_slices_overlap(__Pyx_memviewslice *slice1, + __Pyx_memviewslice *slice2, + int ndim, size_t itemsize); + +/* Capsule.proto */ +static CYTHON_INLINE PyObject *__pyx_capsule_create(void *p, const char *sig); + +/* IsLittleEndian.proto */ +static CYTHON_INLINE int __Pyx_Is_Little_Endian(void); + +/* BufferFormatCheck.proto */ +static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts); +static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, + __Pyx_BufFmt_StackElem* stack, + __Pyx_TypeInfo* type); + +/* TypeInfoCompare.proto */ +static int __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b); + +/* MemviewSliceValidateAndInit.proto */ +static int __Pyx_ValidateAndInit_memviewslice( + int *axes_specs, + int c_or_f_flag, + int buf_flags, + int ndim, + __Pyx_TypeInfo *dtype, + __Pyx_BufFmt_StackElem stack[], + __Pyx_memviewslice *memviewslice, + PyObject *original_obj); + +/* ObjectToMemviewSlice.proto */ +static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_float(PyObject *, int writable_flag); + +/* None.proto */ +static CYTHON_INLINE Py_ssize_t __Pyx_pow_Py_ssize_t(Py_ssize_t, Py_ssize_t); + +/* MemviewSliceCopyTemplate.proto */ +static __Pyx_memviewslice +__pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, + const char *mode, int ndim, + size_t sizeof_dtype, int contig_flag, + int dtype_is_object); + +/* CIntFromPy.proto */ +static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *); + +/* CheckBinaryVersion.proto */ +static int __Pyx_check_binary_version(void); + +/* InitStrings.proto */ +static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); + +static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self); /* proto*/ +static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto*/ +static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj); /* proto*/ +static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src); /* proto*/ +static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value); /* proto*/ +static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto*/ +static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/ +static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/ +static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/ +static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/ + +/* Module declarations from 'cython.view' */ + +/* Module declarations from 'cython' */ + +/* Module declarations from 'lcn' */ +static PyTypeObject *__pyx_array_type = 0; +static PyTypeObject *__pyx_MemviewEnum_type = 0; +static PyTypeObject *__pyx_memoryview_type = 0; +static PyTypeObject *__pyx_memoryviewslice_type = 0; +static PyObject *generic = 0; +static PyObject *strided = 0; +static PyObject *indirect = 0; +static PyObject *contiguous = 0; +static PyObject *indirect_contiguous = 0; +static int __pyx_memoryview_thread_locks_used; +static PyThread_type_lock __pyx_memoryview_thread_locks[8]; +static struct __pyx_array_obj *__pyx_array_new(PyObject *, Py_ssize_t, char *, char *, char *); /*proto*/ +static void *__pyx_align_pointer(void *, size_t); /*proto*/ +static PyObject *__pyx_memoryview_new(PyObject *, int, int, __Pyx_TypeInfo *); /*proto*/ +static CYTHON_INLINE int __pyx_memoryview_check(PyObject *); /*proto*/ +static PyObject *_unellipsify(PyObject *, int); /*proto*/ +static PyObject *assert_direct_dimensions(Py_ssize_t *, int); /*proto*/ +static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *, PyObject *); /*proto*/ +static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int, int); /*proto*/ +static char *__pyx_pybuffer_index(Py_buffer *, char *, Py_ssize_t, Py_ssize_t); /*proto*/ +static int __pyx_memslice_transpose(__Pyx_memviewslice *); /*proto*/ +static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice, int, PyObject *(*)(char *), int (*)(char *, PyObject *), int); /*proto*/ +static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ +static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ +static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *); /*proto*/ +static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ +static Py_ssize_t abs_py_ssize_t(Py_ssize_t); /*proto*/ +static char __pyx_get_best_slice_order(__Pyx_memviewslice *, int); /*proto*/ +static void _copy_strided_to_strided(char *, Py_ssize_t *, char *, Py_ssize_t *, Py_ssize_t *, Py_ssize_t *, int, size_t); /*proto*/ +static void copy_strided_to_strided(__Pyx_memviewslice *, __Pyx_memviewslice *, int, size_t); /*proto*/ +static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *, int); /*proto*/ +static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *, Py_ssize_t *, Py_ssize_t, int, char); /*proto*/ +static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *, __Pyx_memviewslice *, char, int); /*proto*/ +static int __pyx_memoryview_err_extents(int, Py_ssize_t, Py_ssize_t); /*proto*/ +static int __pyx_memoryview_err_dim(PyObject *, char *, int); /*proto*/ +static int __pyx_memoryview_err(PyObject *, char *); /*proto*/ +static int __pyx_memoryview_copy_contents(__Pyx_memviewslice, __Pyx_memviewslice, int, int, int); /*proto*/ +static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *, int, int); /*proto*/ +static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *, int, int, int); /*proto*/ +static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/ +static void __pyx_memoryview_refcount_objects_in_slice(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/ +static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *, int, size_t, void *, int); /*proto*/ +static void __pyx_memoryview__slice_assign_scalar(char *, Py_ssize_t *, Py_ssize_t *, int, size_t, void *); /*proto*/ +static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *, PyObject *); /*proto*/ +static __Pyx_TypeInfo __Pyx_TypeInfo_float = { "float", NULL, sizeof(float), { 0 }, 0, 'R', 0, 0 }; +#define __Pyx_MODULE_NAME "lcn" +extern int __pyx_module_is_main_lcn; +int __pyx_module_is_main_lcn = 0; + +/* Implementation of 'lcn' */ +static PyObject *__pyx_builtin_range; +static PyObject *__pyx_builtin_ValueError; +static PyObject *__pyx_builtin_MemoryError; +static PyObject *__pyx_builtin_enumerate; +static PyObject *__pyx_builtin_TypeError; +static PyObject *__pyx_builtin_Ellipsis; +static PyObject *__pyx_builtin_id; +static PyObject *__pyx_builtin_IndexError; +static const char __pyx_k_M[] = "M"; +static const char __pyx_k_N[] = "N"; +static const char __pyx_k_O[] = "O"; +static const char __pyx_k_c[] = "c"; +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_n[] = "n"; +static const char __pyx_k_id[] = "id"; +static const char __pyx_k_ks[] = "ks"; +static const char __pyx_k_np[] = "np"; +static const char __pyx_k_eps[] = "eps"; +static const char __pyx_k_img[] = "img"; +static const char __pyx_k_lcn[] = "lcn"; +static const char __pyx_k_new[] = "__new__"; +static const char __pyx_k_num[] = "num"; +static const char __pyx_k_obj[] = "obj"; +static const char __pyx_k_tmp[] = "tmp"; +static const char __pyx_k_base[] = "base"; +static const char __pyx_k_dict[] = "__dict__"; +static const char __pyx_k_main[] = "__main__"; +static const char __pyx_k_mean[] = "mean"; +static const char __pyx_k_mode[] = "mode"; +static const char __pyx_k_name[] = "name"; +static const char __pyx_k_ndim[] = "ndim"; +static const char __pyx_k_pack[] = "pack"; +static const char __pyx_k_size[] = "size"; +static const char __pyx_k_step[] = "step"; +static const char __pyx_k_stop[] = "stop"; +static const char __pyx_k_test[] = "__test__"; +static const char __pyx_k_ASCII[] = "ASCII"; +static const char __pyx_k_class[] = "__class__"; +static const char __pyx_k_dtype[] = "dtype"; +static const char __pyx_k_error[] = "error"; +static const char __pyx_k_flags[] = "flags"; +static const char __pyx_k_numpy[] = "numpy"; +static const char __pyx_k_range[] = "range"; +static const char __pyx_k_shape[] = "shape"; +static const char __pyx_k_start[] = "start"; +static const char __pyx_k_zeros[] = "zeros"; +static const char __pyx_k_encode[] = "encode"; +static const char __pyx_k_format[] = "format"; +static const char __pyx_k_import[] = "__import__"; +static const char __pyx_k_name_2[] = "__name__"; +static const char __pyx_k_pickle[] = "pickle"; +static const char __pyx_k_reduce[] = "__reduce__"; +static const char __pyx_k_stddev[] = "stddev"; +static const char __pyx_k_struct[] = "struct"; +static const char __pyx_k_unpack[] = "unpack"; +static const char __pyx_k_update[] = "update"; +static const char __pyx_k_epsilon[] = "epsilon"; +static const char __pyx_k_float32[] = "float32"; +static const char __pyx_k_fortran[] = "fortran"; +static const char __pyx_k_img_lcn[] = "img_lcn"; +static const char __pyx_k_img_std[] = "img_std"; +static const char __pyx_k_lcn_pyx[] = "lcn.pyx"; +static const char __pyx_k_memview[] = "memview"; +static const char __pyx_k_Ellipsis[] = "Ellipsis"; +static const char __pyx_k_getstate[] = "__getstate__"; +static const char __pyx_k_itemsize[] = "itemsize"; +static const char __pyx_k_pyx_type[] = "__pyx_type"; +static const char __pyx_k_setstate[] = "__setstate__"; +static const char __pyx_k_TypeError[] = "TypeError"; +static const char __pyx_k_enumerate[] = "enumerate"; +static const char __pyx_k_normalize[] = "normalize"; +static const char __pyx_k_pyx_state[] = "__pyx_state"; +static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; +static const char __pyx_k_IndexError[] = "IndexError"; +static const char __pyx_k_ValueError[] = "ValueError"; +static const char __pyx_k_pyx_result[] = "__pyx_result"; +static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; +static const char __pyx_k_MemoryError[] = "MemoryError"; +static const char __pyx_k_PickleError[] = "PickleError"; +static const char __pyx_k_kernel_size[] = "kernel_size"; +static const char __pyx_k_img_lcn_view[] = "img_lcn_view"; +static const char __pyx_k_img_std_view[] = "img_std_view"; +static const char __pyx_k_pyx_checksum[] = "__pyx_checksum"; +static const char __pyx_k_stringsource[] = "stringsource"; +static const char __pyx_k_pyx_getbuffer[] = "__pyx_getbuffer"; +static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; +static const char __pyx_k_View_MemoryView[] = "View.MemoryView"; +static const char __pyx_k_allocate_buffer[] = "allocate_buffer"; +static const char __pyx_k_dtype_is_object[] = "dtype_is_object"; +static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError"; +static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; +static const char __pyx_k_pyx_unpickle_Enum[] = "__pyx_unpickle_Enum"; +static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; +static const char __pyx_k_strided_and_direct[] = ""; +static const char __pyx_k_strided_and_indirect[] = ""; +static const char __pyx_k_contiguous_and_direct[] = ""; +static const char __pyx_k_MemoryView_of_r_object[] = ""; +static const char __pyx_k_MemoryView_of_r_at_0x_x[] = ""; +static const char __pyx_k_contiguous_and_indirect[] = ""; +static const char __pyx_k_Cannot_index_with_type_s[] = "Cannot index with type '%s'"; +static const char __pyx_k_Invalid_shape_in_axis_d_d[] = "Invalid shape in axis %d: %d."; +static const char __pyx_k_itemsize_0_for_cython_array[] = "itemsize <= 0 for cython.array"; +static const char __pyx_k_unable_to_allocate_array_data[] = "unable to allocate array data."; +static const char __pyx_k_strided_and_direct_or_indirect[] = ""; +static const char __pyx_k_Buffer_view_does_not_expose_stri[] = "Buffer view does not expose strides"; +static const char __pyx_k_Can_only_create_a_buffer_that_is[] = "Can only create a buffer that is contiguous in memory."; +static const char __pyx_k_Cannot_assign_to_read_only_memor[] = "Cannot assign to read-only memoryview"; +static const char __pyx_k_Cannot_create_writable_memory_vi[] = "Cannot create writable memory view from read-only memoryview"; +static const char __pyx_k_Empty_shape_tuple_for_cython_arr[] = "Empty shape tuple for cython.array"; +static const char __pyx_k_Incompatible_checksums_s_vs_0xb0[] = "Incompatible checksums (%s vs 0xb068931 = (name))"; +static const char __pyx_k_Indirect_dimensions_not_supporte[] = "Indirect dimensions not supported"; +static const char __pyx_k_Invalid_mode_expected_c_or_fortr[] = "Invalid mode, expected 'c' or 'fortran', got %s"; +static const char __pyx_k_Out_of_bounds_on_buffer_access_a[] = "Out of bounds on buffer access (axis %d)"; +static const char __pyx_k_Unable_to_convert_item_to_object[] = "Unable to convert item to object"; +static const char __pyx_k_got_differing_extents_in_dimensi[] = "got differing extents in dimension %d (got %d and %d)"; +static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__"; +static const char __pyx_k_unable_to_allocate_shape_and_str[] = "unable to allocate shape and strides."; +static PyObject *__pyx_n_s_ASCII; +static PyObject *__pyx_kp_s_Buffer_view_does_not_expose_stri; +static PyObject *__pyx_kp_s_Can_only_create_a_buffer_that_is; +static PyObject *__pyx_kp_s_Cannot_assign_to_read_only_memor; +static PyObject *__pyx_kp_s_Cannot_create_writable_memory_vi; +static PyObject *__pyx_kp_s_Cannot_index_with_type_s; +static PyObject *__pyx_n_s_Ellipsis; +static PyObject *__pyx_kp_s_Empty_shape_tuple_for_cython_arr; +static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xb0; +static PyObject *__pyx_n_s_IndexError; +static PyObject *__pyx_kp_s_Indirect_dimensions_not_supporte; +static PyObject *__pyx_kp_s_Invalid_mode_expected_c_or_fortr; +static PyObject *__pyx_kp_s_Invalid_shape_in_axis_d_d; +static PyObject *__pyx_n_s_M; +static PyObject *__pyx_n_s_MemoryError; +static PyObject *__pyx_kp_s_MemoryView_of_r_at_0x_x; +static PyObject *__pyx_kp_s_MemoryView_of_r_object; +static PyObject *__pyx_n_s_N; +static PyObject *__pyx_n_b_O; +static PyObject *__pyx_kp_s_Out_of_bounds_on_buffer_access_a; +static PyObject *__pyx_n_s_PickleError; +static PyObject *__pyx_n_s_TypeError; +static PyObject *__pyx_kp_s_Unable_to_convert_item_to_object; +static PyObject *__pyx_n_s_ValueError; +static PyObject *__pyx_n_s_View_MemoryView; +static PyObject *__pyx_n_s_allocate_buffer; +static PyObject *__pyx_n_s_base; +static PyObject *__pyx_n_s_c; +static PyObject *__pyx_n_u_c; +static PyObject *__pyx_n_s_class; +static PyObject *__pyx_n_s_cline_in_traceback; +static PyObject *__pyx_kp_s_contiguous_and_direct; +static PyObject *__pyx_kp_s_contiguous_and_indirect; +static PyObject *__pyx_n_s_dict; +static PyObject *__pyx_n_s_dtype; +static PyObject *__pyx_n_s_dtype_is_object; +static PyObject *__pyx_n_s_encode; +static PyObject *__pyx_n_s_enumerate; +static PyObject *__pyx_n_s_eps; +static PyObject *__pyx_n_s_epsilon; +static PyObject *__pyx_n_s_error; +static PyObject *__pyx_n_s_flags; +static PyObject *__pyx_n_s_float32; +static PyObject *__pyx_n_s_format; +static PyObject *__pyx_n_s_fortran; +static PyObject *__pyx_n_u_fortran; +static PyObject *__pyx_n_s_getstate; +static PyObject *__pyx_kp_s_got_differing_extents_in_dimensi; +static PyObject *__pyx_n_s_i; +static PyObject *__pyx_n_s_id; +static PyObject *__pyx_n_s_img; +static PyObject *__pyx_n_s_img_lcn; +static PyObject *__pyx_n_s_img_lcn_view; +static PyObject *__pyx_n_s_img_std; +static PyObject *__pyx_n_s_img_std_view; +static PyObject *__pyx_n_s_import; +static PyObject *__pyx_n_s_itemsize; +static PyObject *__pyx_kp_s_itemsize_0_for_cython_array; +static PyObject *__pyx_n_s_j; +static PyObject *__pyx_n_s_kernel_size; +static PyObject *__pyx_n_s_ks; +static PyObject *__pyx_n_s_lcn; +static PyObject *__pyx_kp_s_lcn_pyx; +static PyObject *__pyx_n_s_m; +static PyObject *__pyx_n_s_main; +static PyObject *__pyx_n_s_mean; +static PyObject *__pyx_n_s_memview; +static PyObject *__pyx_n_s_mode; +static PyObject *__pyx_n_s_n; +static PyObject *__pyx_n_s_name; +static PyObject *__pyx_n_s_name_2; +static PyObject *__pyx_n_s_ndim; +static PyObject *__pyx_n_s_new; +static PyObject *__pyx_kp_s_no_default___reduce___due_to_non; +static PyObject *__pyx_n_s_normalize; +static PyObject *__pyx_n_s_np; +static PyObject *__pyx_n_s_num; +static PyObject *__pyx_n_s_numpy; +static PyObject *__pyx_n_s_obj; +static PyObject *__pyx_n_s_pack; +static PyObject *__pyx_n_s_pickle; +static PyObject *__pyx_n_s_pyx_PickleError; +static PyObject *__pyx_n_s_pyx_checksum; +static PyObject *__pyx_n_s_pyx_getbuffer; +static PyObject *__pyx_n_s_pyx_result; +static PyObject *__pyx_n_s_pyx_state; +static PyObject *__pyx_n_s_pyx_type; +static PyObject *__pyx_n_s_pyx_unpickle_Enum; +static PyObject *__pyx_n_s_pyx_vtable; +static PyObject *__pyx_n_s_range; +static PyObject *__pyx_n_s_reduce; +static PyObject *__pyx_n_s_reduce_cython; +static PyObject *__pyx_n_s_reduce_ex; +static PyObject *__pyx_n_s_setstate; +static PyObject *__pyx_n_s_setstate_cython; +static PyObject *__pyx_n_s_shape; +static PyObject *__pyx_n_s_size; +static PyObject *__pyx_n_s_start; +static PyObject *__pyx_n_s_stddev; +static PyObject *__pyx_n_s_step; +static PyObject *__pyx_n_s_stop; +static PyObject *__pyx_kp_s_strided_and_direct; +static PyObject *__pyx_kp_s_strided_and_direct_or_indirect; +static PyObject *__pyx_kp_s_strided_and_indirect; +static PyObject *__pyx_kp_s_stringsource; +static PyObject *__pyx_n_s_struct; +static PyObject *__pyx_n_s_test; +static PyObject *__pyx_n_s_tmp; +static PyObject *__pyx_kp_s_unable_to_allocate_array_data; +static PyObject *__pyx_kp_s_unable_to_allocate_shape_and_str; +static PyObject *__pyx_n_s_unpack; +static PyObject *__pyx_n_s_update; +static PyObject *__pyx_n_s_zeros; +static PyObject *__pyx_pf_3lcn_normalize(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_img, int __pyx_v_kernel_size, float __pyx_v_epsilon); /* proto */ +static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer); /* proto */ +static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ +static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self); /* proto */ +static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(struct __pyx_array_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr); /* proto */ +static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ +static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ +static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ +static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object); /* proto */ +static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto */ +static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto */ +static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ +static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_int_0; +static PyObject *__pyx_int_1; +static PyObject *__pyx_int_184977713; +static PyObject *__pyx_int_neg_1; +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_slice__15; +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__16; +static PyObject *__pyx_tuple__17; +static PyObject *__pyx_tuple__18; +static PyObject *__pyx_tuple__19; +static PyObject *__pyx_tuple__21; +static PyObject *__pyx_tuple__22; +static PyObject *__pyx_tuple__23; +static PyObject *__pyx_tuple__24; +static PyObject *__pyx_tuple__25; +static PyObject *__pyx_tuple__26; +static PyObject *__pyx_codeobj__20; +static PyObject *__pyx_codeobj__27; +/* Late includes */ + +/* "lcn.pyx":16 + * # - kernel size (actually this is the radius, kernel is 2*k+1) + * # - small constant epsilon that is used to avoid division by zero + * def normalize(float[:, :] img, int kernel_size = 4, float epsilon = 0.01): # <<<<<<<<<<<<<< + * + * # image dimensions + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_3lcn_1normalize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_3lcn_1normalize = {"normalize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_3lcn_1normalize, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_3lcn_1normalize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + __Pyx_memviewslice __pyx_v_img = { 0, 0, { 0 }, { 0 }, { 0 } }; + int __pyx_v_kernel_size; + float __pyx_v_epsilon; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("normalize (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_img,&__pyx_n_s_kernel_size,&__pyx_n_s_epsilon,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_img)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kernel_size); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_epsilon); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "normalize") < 0)) __PYX_ERR(0, 16, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_img = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_img.memview)) __PYX_ERR(0, 16, __pyx_L3_error) + if (values[1]) { + __pyx_v_kernel_size = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_kernel_size == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 16, __pyx_L3_error) + } else { + __pyx_v_kernel_size = ((int)4); + } + if (values[2]) { + __pyx_v_epsilon = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_epsilon == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 16, __pyx_L3_error) + } else { + __pyx_v_epsilon = ((float)0.01); + } + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("normalize", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 16, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("lcn.normalize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_3lcn_normalize(__pyx_self, __pyx_v_img, __pyx_v_kernel_size, __pyx_v_epsilon); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_3lcn_normalize(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_img, int __pyx_v_kernel_size, float __pyx_v_epsilon) { + Py_ssize_t __pyx_v_M; + Py_ssize_t __pyx_v_N; + PyObject *__pyx_v_img_lcn = NULL; + PyObject *__pyx_v_img_std = NULL; + __Pyx_memviewslice __pyx_v_img_lcn_view = { 0, 0, { 0 }, { 0 }, { 0 } }; + __Pyx_memviewslice __pyx_v_img_std_view = { 0, 0, { 0 }, { 0 }, { 0 } }; + float __pyx_v_mean; + float __pyx_v_stddev; + Py_ssize_t __pyx_v_m; + Py_ssize_t __pyx_v_n; + Py_ssize_t __pyx_v_i; + Py_ssize_t __pyx_v_j; + Py_ssize_t __pyx_v_ks; + float __pyx_v_eps; + float __pyx_v_num; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + __Pyx_memviewslice __pyx_t_6 = { 0, 0, { 0 }, { 0 }, { 0 } }; + 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; + 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; + __Pyx_RefNannySetupContext("normalize", 0); + + /* "lcn.pyx":19 + * + * # image dimensions + * cdef Py_ssize_t M = img.shape[0] # <<<<<<<<<<<<<< + * cdef Py_ssize_t N = img.shape[1] + * + */ + __pyx_v_M = (__pyx_v_img.shape[0]); + + /* "lcn.pyx":20 + * # image dimensions + * cdef Py_ssize_t M = img.shape[0] + * cdef Py_ssize_t N = img.shape[1] # <<<<<<<<<<<<<< + * + * # create outputs and output views + */ + __pyx_v_N = (__pyx_v_img.shape[1]); + + /* "lcn.pyx":23 + * + * # create outputs and output views + * img_lcn = np.zeros((M, N), dtype=np.float32) # <<<<<<<<<<<<<< + * img_std = np.zeros((M, N), dtype=np.float32) + * cdef float[:, :] img_lcn_view = img_lcn + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __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, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_M); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_N); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_float32); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 23, __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_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 23, __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_4); __pyx_t_4 = 0; + __pyx_v_img_lcn = __pyx_t_5; + __pyx_t_5 = 0; + + /* "lcn.pyx":24 + * # create outputs and output views + * img_lcn = np.zeros((M, N), dtype=np.float32) + * img_std = np.zeros((M, N), dtype=np.float32) # <<<<<<<<<<<<<< + * cdef float[:, :] img_lcn_view = img_lcn + * cdef float[:, :] img_std_view = img_std + */ + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_M); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_N); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); + __pyx_t_5 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_float32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_1) < 0) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __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; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_img_std = __pyx_t_1; + __pyx_t_1 = 0; + + /* "lcn.pyx":25 + * img_lcn = np.zeros((M, N), dtype=np.float32) + * img_std = np.zeros((M, N), dtype=np.float32) + * cdef float[:, :] img_lcn_view = img_lcn # <<<<<<<<<<<<<< + * cdef float[:, :] img_std_view = img_std + * + */ + __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(__pyx_v_img_lcn, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 25, __pyx_L1_error) + __pyx_v_img_lcn_view = __pyx_t_6; + __pyx_t_6.memview = NULL; + __pyx_t_6.data = NULL; + + /* "lcn.pyx":26 + * img_std = np.zeros((M, N), dtype=np.float32) + * cdef float[:, :] img_lcn_view = img_lcn + * cdef float[:, :] img_std_view = img_std # <<<<<<<<<<<<<< + * + * # temporary c variables + */ + __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(__pyx_v_img_std, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 26, __pyx_L1_error) + __pyx_v_img_std_view = __pyx_t_6; + __pyx_t_6.memview = NULL; + __pyx_t_6.data = NULL; + + /* "lcn.pyx":31 + * cdef float tmp, mean, stddev + * cdef Py_ssize_t m, n, i, j + * cdef Py_ssize_t ks = kernel_size # <<<<<<<<<<<<<< + * cdef float eps = epsilon + * cdef float num = (ks*2+1)**2 + */ + __pyx_v_ks = __pyx_v_kernel_size; + + /* "lcn.pyx":32 + * cdef Py_ssize_t m, n, i, j + * cdef Py_ssize_t ks = kernel_size + * cdef float eps = epsilon # <<<<<<<<<<<<<< + * cdef float num = (ks*2+1)**2 + * + */ + __pyx_v_eps = __pyx_v_epsilon; + + /* "lcn.pyx":33 + * cdef Py_ssize_t ks = kernel_size + * cdef float eps = epsilon + * cdef float num = (ks*2+1)**2 # <<<<<<<<<<<<<< + * + * # for all pixels do + */ + __pyx_v_num = __Pyx_pow_Py_ssize_t(((__pyx_v_ks * 2) + 1), 2); + + /* "lcn.pyx":36 + * + * # for all pixels do + * for m in range(ks,M-ks): # <<<<<<<<<<<<<< + * for n in range(ks,N-ks): + * + */ + __pyx_t_7 = (__pyx_v_M - __pyx_v_ks); + __pyx_t_8 = __pyx_t_7; + for (__pyx_t_9 = __pyx_v_ks; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { + __pyx_v_m = __pyx_t_9; + + /* "lcn.pyx":37 + * # for all pixels do + * for m in range(ks,M-ks): + * for n in range(ks,N-ks): # <<<<<<<<<<<<<< + * + * # calculate mean + */ + __pyx_t_10 = (__pyx_v_N - __pyx_v_ks); + __pyx_t_11 = __pyx_t_10; + for (__pyx_t_12 = __pyx_v_ks; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { + __pyx_v_n = __pyx_t_12; + + /* "lcn.pyx":40 + * + * # calculate mean + * mean = 0; # <<<<<<<<<<<<<< + * for i in range(-ks,ks+1): + * for j in range(-ks,ks+1): + */ + __pyx_v_mean = 0.0; + + /* "lcn.pyx":41 + * # calculate mean + * mean = 0; + * for i in range(-ks,ks+1): # <<<<<<<<<<<<<< + * for j in range(-ks,ks+1): + * mean += img[m+i, n+j] + */ + __pyx_t_13 = (__pyx_v_ks + 1); + __pyx_t_14 = __pyx_t_13; + for (__pyx_t_15 = (-__pyx_v_ks); __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) { + __pyx_v_i = __pyx_t_15; + + /* "lcn.pyx":42 + * mean = 0; + * for i in range(-ks,ks+1): + * for j in range(-ks,ks+1): # <<<<<<<<<<<<<< + * mean += img[m+i, n+j] + * mean = mean/num + */ + __pyx_t_16 = (__pyx_v_ks + 1); + __pyx_t_17 = __pyx_t_16; + for (__pyx_t_18 = (-__pyx_v_ks); __pyx_t_18 < __pyx_t_17; __pyx_t_18+=1) { + __pyx_v_j = __pyx_t_18; + + /* "lcn.pyx":43 + * for i in range(-ks,ks+1): + * for j in range(-ks,ks+1): + * mean += img[m+i, n+j] # <<<<<<<<<<<<<< + * mean = mean/num + * + */ + __pyx_t_19 = (__pyx_v_m + __pyx_v_i); + __pyx_t_20 = (__pyx_v_n + __pyx_v_j); + __pyx_v_mean = (__pyx_v_mean + (*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_img.data + __pyx_t_19 * __pyx_v_img.strides[0]) ) + __pyx_t_20 * __pyx_v_img.strides[1]) )))); + } + } + + /* "lcn.pyx":44 + * for j in range(-ks,ks+1): + * mean += img[m+i, n+j] + * mean = mean/num # <<<<<<<<<<<<<< + * + * # calculate std dev + */ + __pyx_v_mean = (__pyx_v_mean / __pyx_v_num); + + /* "lcn.pyx":47 + * + * # calculate std dev + * stddev = 0; # <<<<<<<<<<<<<< + * for i in range(-ks,ks+1): + * for j in range(-ks,ks+1): + */ + __pyx_v_stddev = 0.0; + + /* "lcn.pyx":48 + * # calculate std dev + * stddev = 0; + * for i in range(-ks,ks+1): # <<<<<<<<<<<<<< + * for j in range(-ks,ks+1): + * stddev = stddev + (img[m+i, n+j]-mean)*(img[m+i, n+j]-mean) + */ + __pyx_t_13 = (__pyx_v_ks + 1); + __pyx_t_14 = __pyx_t_13; + for (__pyx_t_15 = (-__pyx_v_ks); __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) { + __pyx_v_i = __pyx_t_15; + + /* "lcn.pyx":49 + * stddev = 0; + * for i in range(-ks,ks+1): + * for j in range(-ks,ks+1): # <<<<<<<<<<<<<< + * stddev = stddev + (img[m+i, n+j]-mean)*(img[m+i, n+j]-mean) + * stddev = sqrt(stddev/num) + */ + __pyx_t_16 = (__pyx_v_ks + 1); + __pyx_t_17 = __pyx_t_16; + for (__pyx_t_18 = (-__pyx_v_ks); __pyx_t_18 < __pyx_t_17; __pyx_t_18+=1) { + __pyx_v_j = __pyx_t_18; + + /* "lcn.pyx":50 + * for i in range(-ks,ks+1): + * for j in range(-ks,ks+1): + * stddev = stddev + (img[m+i, n+j]-mean)*(img[m+i, n+j]-mean) # <<<<<<<<<<<<<< + * stddev = sqrt(stddev/num) + * + */ + __pyx_t_21 = (__pyx_v_m + __pyx_v_i); + __pyx_t_22 = (__pyx_v_n + __pyx_v_j); + __pyx_t_23 = (__pyx_v_m + __pyx_v_i); + __pyx_t_24 = (__pyx_v_n + __pyx_v_j); + __pyx_v_stddev = (__pyx_v_stddev + (((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_img.data + __pyx_t_21 * __pyx_v_img.strides[0]) ) + __pyx_t_22 * __pyx_v_img.strides[1]) ))) - __pyx_v_mean) * ((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_img.data + __pyx_t_23 * __pyx_v_img.strides[0]) ) + __pyx_t_24 * __pyx_v_img.strides[1]) ))) - __pyx_v_mean))); + } + } + + /* "lcn.pyx":51 + * for j in range(-ks,ks+1): + * stddev = stddev + (img[m+i, n+j]-mean)*(img[m+i, n+j]-mean) + * stddev = sqrt(stddev/num) # <<<<<<<<<<<<<< + * + * # compute normalized image (add epsilon) and std dev image + */ + __pyx_v_stddev = sqrt((__pyx_v_stddev / __pyx_v_num)); + + /* "lcn.pyx":54 + * + * # compute normalized image (add epsilon) and std dev image + * img_lcn_view[m, n] = (img[m, n]-mean)/(stddev+eps) # <<<<<<<<<<<<<< + * img_std_view[m, n] = stddev + * + */ + __pyx_t_25 = __pyx_v_m; + __pyx_t_26 = __pyx_v_n; + __pyx_t_27 = __pyx_v_m; + __pyx_t_28 = __pyx_v_n; + *((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_img_lcn_view.data + __pyx_t_27 * __pyx_v_img_lcn_view.strides[0]) ) + __pyx_t_28 * __pyx_v_img_lcn_view.strides[1]) )) = (((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_img.data + __pyx_t_25 * __pyx_v_img.strides[0]) ) + __pyx_t_26 * __pyx_v_img.strides[1]) ))) - __pyx_v_mean) / (__pyx_v_stddev + __pyx_v_eps)); + + /* "lcn.pyx":55 + * # compute normalized image (add epsilon) and std dev image + * img_lcn_view[m, n] = (img[m, n]-mean)/(stddev+eps) + * img_std_view[m, n] = stddev # <<<<<<<<<<<<<< + * + * # return both + */ + __pyx_t_29 = __pyx_v_m; + __pyx_t_30 = __pyx_v_n; + *((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_img_std_view.data + __pyx_t_29 * __pyx_v_img_std_view.strides[0]) ) + __pyx_t_30 * __pyx_v_img_std_view.strides[1]) )) = __pyx_v_stddev; + } + } + + /* "lcn.pyx":58 + * + * # return both + * return img_lcn, img_std # <<<<<<<<<<<<<< + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_img_lcn); + __Pyx_GIVEREF(__pyx_v_img_lcn); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_img_lcn); + __Pyx_INCREF(__pyx_v_img_std); + __Pyx_GIVEREF(__pyx_v_img_std); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_img_std); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "lcn.pyx":16 + * # - kernel size (actually this is the radius, kernel is 2*k+1) + * # - small constant epsilon that is used to avoid division by zero + * def normalize(float[:, :] img, int kernel_size = 4, float epsilon = 0.01): # <<<<<<<<<<<<<< + * + * # image dimensions + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1); + __Pyx_AddTraceback("lcn.normalize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_img_lcn); + __Pyx_XDECREF(__pyx_v_img_std); + __PYX_XDEC_MEMVIEW(&__pyx_v_img_lcn_view, 1); + __PYX_XDEC_MEMVIEW(&__pyx_v_img_std_view, 1); + __PYX_XDEC_MEMVIEW(&__pyx_v_img, 1); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":121 + * cdef bint dtype_is_object + * + * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< + * mode="c", bint allocate_buffer=True): + * + */ + +/* Python wrapper */ +static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_shape = 0; + Py_ssize_t __pyx_v_itemsize; + PyObject *__pyx_v_format = 0; + PyObject *__pyx_v_mode = 0; + int __pyx_v_allocate_buffer; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_shape,&__pyx_n_s_itemsize,&__pyx_n_s_format,&__pyx_n_s_mode,&__pyx_n_s_allocate_buffer,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[3] = ((PyObject *)__pyx_n_s_c); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_shape)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_itemsize)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 1); __PYX_ERR(1, 121, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_format)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 2); __PYX_ERR(1, 121, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allocate_buffer); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(1, 121, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_shape = ((PyObject*)values[0]); + __pyx_v_itemsize = __Pyx_PyIndex_AsSsize_t(values[1]); if (unlikely((__pyx_v_itemsize == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 121, __pyx_L3_error) + __pyx_v_format = values[2]; + __pyx_v_mode = values[3]; + if (values[4]) { + __pyx_v_allocate_buffer = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allocate_buffer == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 122, __pyx_L3_error) + } else { + + /* "View.MemoryView":122 + * + * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, + * mode="c", bint allocate_buffer=True): # <<<<<<<<<<<<<< + * + * cdef int idx + */ + __pyx_v_allocate_buffer = ((int)1); + } + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 121, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_shape), (&PyTuple_Type), 1, "shape", 1))) __PYX_ERR(1, 121, __pyx_L1_error) + if (unlikely(((PyObject *)__pyx_v_format) == Py_None)) { + PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "format"); __PYX_ERR(1, 121, __pyx_L1_error) + } + __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(((struct __pyx_array_obj *)__pyx_v_self), __pyx_v_shape, __pyx_v_itemsize, __pyx_v_format, __pyx_v_mode, __pyx_v_allocate_buffer); + + /* "View.MemoryView":121 + * cdef bint dtype_is_object + * + * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< + * mode="c", bint allocate_buffer=True): + * + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer) { + int __pyx_v_idx; + Py_ssize_t __pyx_v_i; + Py_ssize_t __pyx_v_dim; + PyObject **__pyx_v_p; + char __pyx_v_order; + int __pyx_r; + __Pyx_RefNannyDeclarations + Py_ssize_t __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + char *__pyx_t_7; + int __pyx_t_8; + Py_ssize_t __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + Py_ssize_t __pyx_t_11; + __Pyx_RefNannySetupContext("__cinit__", 0); + __Pyx_INCREF(__pyx_v_format); + + /* "View.MemoryView":128 + * cdef PyObject **p + * + * self.ndim = len(shape) # <<<<<<<<<<<<<< + * self.itemsize = itemsize + * + */ + if (unlikely(__pyx_v_shape == Py_None)) { + PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); + __PYX_ERR(1, 128, __pyx_L1_error) + } + __pyx_t_1 = PyTuple_GET_SIZE(__pyx_v_shape); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(1, 128, __pyx_L1_error) + __pyx_v_self->ndim = ((int)__pyx_t_1); + + /* "View.MemoryView":129 + * + * self.ndim = len(shape) + * self.itemsize = itemsize # <<<<<<<<<<<<<< + * + * if not self.ndim: + */ + __pyx_v_self->itemsize = __pyx_v_itemsize; + + /* "View.MemoryView":131 + * self.itemsize = itemsize + * + * if not self.ndim: # <<<<<<<<<<<<<< + * raise ValueError("Empty shape tuple for cython.array") + * + */ + __pyx_t_2 = ((!(__pyx_v_self->ndim != 0)) != 0); + if (unlikely(__pyx_t_2)) { + + /* "View.MemoryView":132 + * + * if not self.ndim: + * raise ValueError("Empty shape tuple for cython.array") # <<<<<<<<<<<<<< + * + * if itemsize <= 0: + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 132, __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, 132, __pyx_L1_error) + + /* "View.MemoryView":131 + * self.itemsize = itemsize + * + * if not self.ndim: # <<<<<<<<<<<<<< + * raise ValueError("Empty shape tuple for cython.array") + * + */ + } + + /* "View.MemoryView":134 + * raise ValueError("Empty shape tuple for cython.array") + * + * if itemsize <= 0: # <<<<<<<<<<<<<< + * raise ValueError("itemsize <= 0 for cython.array") + * + */ + __pyx_t_2 = ((__pyx_v_itemsize <= 0) != 0); + if (unlikely(__pyx_t_2)) { + + /* "View.MemoryView":135 + * + * if itemsize <= 0: + * raise ValueError("itemsize <= 0 for cython.array") # <<<<<<<<<<<<<< + * + * if not isinstance(format, bytes): + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 135, __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, 135, __pyx_L1_error) + + /* "View.MemoryView":134 + * raise ValueError("Empty shape tuple for cython.array") + * + * if itemsize <= 0: # <<<<<<<<<<<<<< + * raise ValueError("itemsize <= 0 for cython.array") + * + */ + } + + /* "View.MemoryView":137 + * raise ValueError("itemsize <= 0 for cython.array") + * + * if not isinstance(format, bytes): # <<<<<<<<<<<<<< + * format = format.encode('ASCII') + * self._format = format # keep a reference to the byte string + */ + __pyx_t_2 = PyBytes_Check(__pyx_v_format); + __pyx_t_4 = ((!(__pyx_t_2 != 0)) != 0); + if (__pyx_t_4) { + + /* "View.MemoryView":138 + * + * if not isinstance(format, bytes): + * format = format.encode('ASCII') # <<<<<<<<<<<<<< + * self._format = format # keep a reference to the byte string + * self.format = self._format + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_format, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 138, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_n_s_ASCII) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_n_s_ASCII); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 138, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF_SET(__pyx_v_format, __pyx_t_3); + __pyx_t_3 = 0; + + /* "View.MemoryView":137 + * raise ValueError("itemsize <= 0 for cython.array") + * + * if not isinstance(format, bytes): # <<<<<<<<<<<<<< + * format = format.encode('ASCII') + * self._format = format # keep a reference to the byte string + */ + } + + /* "View.MemoryView":139 + * if not isinstance(format, bytes): + * format = format.encode('ASCII') + * self._format = format # keep a reference to the byte string # <<<<<<<<<<<<<< + * self.format = self._format + * + */ + if (!(likely(PyBytes_CheckExact(__pyx_v_format))||((__pyx_v_format) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_v_format)->tp_name), 0))) __PYX_ERR(1, 139, __pyx_L1_error) + __pyx_t_3 = __pyx_v_format; + __Pyx_INCREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_v_self->_format); + __Pyx_DECREF(__pyx_v_self->_format); + __pyx_v_self->_format = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "View.MemoryView":140 + * format = format.encode('ASCII') + * self._format = format # keep a reference to the byte string + * self.format = self._format # <<<<<<<<<<<<<< + * + * + */ + if (unlikely(__pyx_v_self->_format == Py_None)) { + PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); + __PYX_ERR(1, 140, __pyx_L1_error) + } + __pyx_t_7 = __Pyx_PyBytes_AsWritableString(__pyx_v_self->_format); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(1, 140, __pyx_L1_error) + __pyx_v_self->format = __pyx_t_7; + + /* "View.MemoryView":143 + * + * + * self._shape = PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2) # <<<<<<<<<<<<<< + * self._strides = self._shape + self.ndim + * + */ + __pyx_v_self->_shape = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * __pyx_v_self->ndim) * 2))); + + /* "View.MemoryView":144 + * + * self._shape = PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2) + * self._strides = self._shape + self.ndim # <<<<<<<<<<<<<< + * + * if not self._shape: + */ + __pyx_v_self->_strides = (__pyx_v_self->_shape + __pyx_v_self->ndim); + + /* "View.MemoryView":146 + * self._strides = self._shape + self.ndim + * + * if not self._shape: # <<<<<<<<<<<<<< + * raise MemoryError("unable to allocate shape and strides.") + * + */ + __pyx_t_4 = ((!(__pyx_v_self->_shape != 0)) != 0); + if (unlikely(__pyx_t_4)) { + + /* "View.MemoryView":147 + * + * if not self._shape: + * raise MemoryError("unable to allocate shape and strides.") # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 147, __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, 147, __pyx_L1_error) + + /* "View.MemoryView":146 + * self._strides = self._shape + self.ndim + * + * if not self._shape: # <<<<<<<<<<<<<< + * raise MemoryError("unable to allocate shape and strides.") + * + */ + } + + /* "View.MemoryView":150 + * + * + * for idx, dim in enumerate(shape): # <<<<<<<<<<<<<< + * if dim <= 0: + * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) + */ + __pyx_t_8 = 0; + __pyx_t_3 = __pyx_v_shape; __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = 0; + for (;;) { + if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_3)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_5); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(1, 150, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_5); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 150, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_dim = __pyx_t_9; + __pyx_v_idx = __pyx_t_8; + __pyx_t_8 = (__pyx_t_8 + 1); + + /* "View.MemoryView":151 + * + * for idx, dim in enumerate(shape): + * if dim <= 0: # <<<<<<<<<<<<<< + * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) + * self._shape[idx] = dim + */ + __pyx_t_4 = ((__pyx_v_dim <= 0) != 0); + if (unlikely(__pyx_t_4)) { + + /* "View.MemoryView":152 + * for idx, dim in enumerate(shape): + * if dim <= 0: + * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) # <<<<<<<<<<<<<< + * self._shape[idx] = dim + * + */ + __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_idx); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_6); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Invalid_shape_in_axis_d_d, __pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_Raise(__pyx_t_10, 0, 0, 0); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __PYX_ERR(1, 152, __pyx_L1_error) + + /* "View.MemoryView":151 + * + * for idx, dim in enumerate(shape): + * if dim <= 0: # <<<<<<<<<<<<<< + * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) + * self._shape[idx] = dim + */ + } + + /* "View.MemoryView":153 + * if dim <= 0: + * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) + * self._shape[idx] = dim # <<<<<<<<<<<<<< + * + * cdef char order + */ + (__pyx_v_self->_shape[__pyx_v_idx]) = __pyx_v_dim; + + /* "View.MemoryView":150 + * + * + * for idx, dim in enumerate(shape): # <<<<<<<<<<<<<< + * if dim <= 0: + * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) + */ + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "View.MemoryView":156 + * + * cdef char order + * if mode == 'fortran': # <<<<<<<<<<<<<< + * order = b'F' + * self.mode = u'fortran' + */ + __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_fortran, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 156, __pyx_L1_error) + if (__pyx_t_4) { + + /* "View.MemoryView":157 + * cdef char order + * if mode == 'fortran': + * order = b'F' # <<<<<<<<<<<<<< + * self.mode = u'fortran' + * elif mode == 'c': + */ + __pyx_v_order = 'F'; + + /* "View.MemoryView":158 + * if mode == 'fortran': + * order = b'F' + * self.mode = u'fortran' # <<<<<<<<<<<<<< + * elif mode == 'c': + * order = b'C' + */ + __Pyx_INCREF(__pyx_n_u_fortran); + __Pyx_GIVEREF(__pyx_n_u_fortran); + __Pyx_GOTREF(__pyx_v_self->mode); + __Pyx_DECREF(__pyx_v_self->mode); + __pyx_v_self->mode = __pyx_n_u_fortran; + + /* "View.MemoryView":156 + * + * cdef char order + * if mode == 'fortran': # <<<<<<<<<<<<<< + * order = b'F' + * self.mode = u'fortran' + */ + goto __pyx_L10; + } + + /* "View.MemoryView":159 + * order = b'F' + * self.mode = u'fortran' + * elif mode == 'c': # <<<<<<<<<<<<<< + * order = b'C' + * self.mode = u'c' + */ + __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_c, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 159, __pyx_L1_error) + if (likely(__pyx_t_4)) { + + /* "View.MemoryView":160 + * self.mode = u'fortran' + * elif mode == 'c': + * order = b'C' # <<<<<<<<<<<<<< + * self.mode = u'c' + * else: + */ + __pyx_v_order = 'C'; + + /* "View.MemoryView":161 + * elif mode == 'c': + * order = b'C' + * self.mode = u'c' # <<<<<<<<<<<<<< + * else: + * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) + */ + __Pyx_INCREF(__pyx_n_u_c); + __Pyx_GIVEREF(__pyx_n_u_c); + __Pyx_GOTREF(__pyx_v_self->mode); + __Pyx_DECREF(__pyx_v_self->mode); + __pyx_v_self->mode = __pyx_n_u_c; + + /* "View.MemoryView":159 + * order = b'F' + * self.mode = u'fortran' + * elif mode == 'c': # <<<<<<<<<<<<<< + * order = b'C' + * self.mode = u'c' + */ + goto __pyx_L10; + } + + /* "View.MemoryView":163 + * self.mode = u'c' + * else: + * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) # <<<<<<<<<<<<<< + * + * self.len = fill_contig_strides_array(self._shape, self._strides, + */ + /*else*/ { + __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Invalid_mode_expected_c_or_fortr, __pyx_v_mode); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_10, 0, 0, 0); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __PYX_ERR(1, 163, __pyx_L1_error) + } + __pyx_L10:; + + /* "View.MemoryView":165 + * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) + * + * self.len = fill_contig_strides_array(self._shape, self._strides, # <<<<<<<<<<<<<< + * itemsize, self.ndim, order) + * + */ + __pyx_v_self->len = __pyx_fill_contig_strides_array(__pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_itemsize, __pyx_v_self->ndim, __pyx_v_order); + + /* "View.MemoryView":168 + * itemsize, self.ndim, order) + * + * self.free_data = allocate_buffer # <<<<<<<<<<<<<< + * self.dtype_is_object = format == b'O' + * if allocate_buffer: + */ + __pyx_v_self->free_data = __pyx_v_allocate_buffer; + + /* "View.MemoryView":169 + * + * self.free_data = allocate_buffer + * self.dtype_is_object = format == b'O' # <<<<<<<<<<<<<< + * if allocate_buffer: + * + */ + __pyx_t_10 = PyObject_RichCompare(__pyx_v_format, __pyx_n_b_O, Py_EQ); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 169, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 169, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_v_self->dtype_is_object = __pyx_t_4; + + /* "View.MemoryView":170 + * self.free_data = allocate_buffer + * self.dtype_is_object = format == b'O' + * if allocate_buffer: # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_4 = (__pyx_v_allocate_buffer != 0); + if (__pyx_t_4) { + + /* "View.MemoryView":173 + * + * + * self.data = malloc(self.len) # <<<<<<<<<<<<<< + * if not self.data: + * raise MemoryError("unable to allocate array data.") + */ + __pyx_v_self->data = ((char *)malloc(__pyx_v_self->len)); + + /* "View.MemoryView":174 + * + * self.data = malloc(self.len) + * if not self.data: # <<<<<<<<<<<<<< + * raise MemoryError("unable to allocate array data.") + * + */ + __pyx_t_4 = ((!(__pyx_v_self->data != 0)) != 0); + if (unlikely(__pyx_t_4)) { + + /* "View.MemoryView":175 + * self.data = malloc(self.len) + * if not self.data: + * raise MemoryError("unable to allocate array data.") # <<<<<<<<<<<<<< + * + * if self.dtype_is_object: + */ + __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_Raise(__pyx_t_10, 0, 0, 0); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __PYX_ERR(1, 175, __pyx_L1_error) + + /* "View.MemoryView":174 + * + * self.data = malloc(self.len) + * if not self.data: # <<<<<<<<<<<<<< + * raise MemoryError("unable to allocate array data.") + * + */ + } + + /* "View.MemoryView":177 + * raise MemoryError("unable to allocate array data.") + * + * if self.dtype_is_object: # <<<<<<<<<<<<<< + * p = self.data + * for i in range(self.len / itemsize): + */ + __pyx_t_4 = (__pyx_v_self->dtype_is_object != 0); + if (__pyx_t_4) { + + /* "View.MemoryView":178 + * + * if self.dtype_is_object: + * p = self.data # <<<<<<<<<<<<<< + * for i in range(self.len / itemsize): + * p[i] = Py_None + */ + __pyx_v_p = ((PyObject **)__pyx_v_self->data); + + /* "View.MemoryView":179 + * if self.dtype_is_object: + * p = self.data + * for i in range(self.len / itemsize): # <<<<<<<<<<<<<< + * p[i] = Py_None + * Py_INCREF(Py_None) + */ + if (unlikely(__pyx_v_itemsize == 0)) { + PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero"); + __PYX_ERR(1, 179, __pyx_L1_error) + } + else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_v_self->len))) { + PyErr_SetString(PyExc_OverflowError, "value too large to perform division"); + __PYX_ERR(1, 179, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_div_Py_ssize_t(__pyx_v_self->len, __pyx_v_itemsize); + __pyx_t_9 = __pyx_t_1; + for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_9; __pyx_t_11+=1) { + __pyx_v_i = __pyx_t_11; + + /* "View.MemoryView":180 + * p = self.data + * for i in range(self.len / itemsize): + * p[i] = Py_None # <<<<<<<<<<<<<< + * Py_INCREF(Py_None) + * + */ + (__pyx_v_p[__pyx_v_i]) = Py_None; + + /* "View.MemoryView":181 + * for i in range(self.len / itemsize): + * p[i] = Py_None + * Py_INCREF(Py_None) # <<<<<<<<<<<<<< + * + * @cname('getbuffer') + */ + Py_INCREF(Py_None); + } + + /* "View.MemoryView":177 + * raise MemoryError("unable to allocate array data.") + * + * if self.dtype_is_object: # <<<<<<<<<<<<<< + * p = self.data + * for i in range(self.len / itemsize): + */ + } + + /* "View.MemoryView":170 + * self.free_data = allocate_buffer + * self.dtype_is_object = format == b'O' + * if allocate_buffer: # <<<<<<<<<<<<<< + * + * + */ + } + + /* "View.MemoryView":121 + * cdef bint dtype_is_object + * + * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< + * mode="c", bint allocate_buffer=True): + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_format); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":184 + * + * @cname('getbuffer') + * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< + * cdef int bufmode = -1 + * if self.mode == u"c": + */ + +/* Python wrapper */ +static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ +static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); + __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(((struct __pyx_array_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { + int __pyx_v_bufmode; + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + char *__pyx_t_4; + Py_ssize_t __pyx_t_5; + int __pyx_t_6; + Py_ssize_t *__pyx_t_7; + if (__pyx_v_info == NULL) { + PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); + return -1; + } + __Pyx_RefNannySetupContext("__getbuffer__", 0); + __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(__pyx_v_info->obj); + + /* "View.MemoryView":185 + * @cname('getbuffer') + * def __getbuffer__(self, Py_buffer *info, int flags): + * cdef int bufmode = -1 # <<<<<<<<<<<<<< + * if self.mode == u"c": + * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + */ + __pyx_v_bufmode = -1; + + /* "View.MemoryView":186 + * def __getbuffer__(self, Py_buffer *info, int flags): + * cdef int bufmode = -1 + * if self.mode == u"c": # <<<<<<<<<<<<<< + * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * elif self.mode == u"fortran": + */ + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_c, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 186, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":187 + * cdef int bufmode = -1 + * if self.mode == u"c": + * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS # <<<<<<<<<<<<<< + * elif self.mode == u"fortran": + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + */ + __pyx_v_bufmode = (PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS); + + /* "View.MemoryView":186 + * def __getbuffer__(self, Py_buffer *info, int flags): + * cdef int bufmode = -1 + * if self.mode == u"c": # <<<<<<<<<<<<<< + * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * elif self.mode == u"fortran": + */ + goto __pyx_L3; + } + + /* "View.MemoryView":188 + * if self.mode == u"c": + * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * elif self.mode == u"fortran": # <<<<<<<<<<<<<< + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * if not (flags & bufmode): + */ + __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_fortran, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 188, __pyx_L1_error) + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":189 + * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * elif self.mode == u"fortran": + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS # <<<<<<<<<<<<<< + * if not (flags & bufmode): + * raise ValueError("Can only create a buffer that is contiguous in memory.") + */ + __pyx_v_bufmode = (PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS); + + /* "View.MemoryView":188 + * if self.mode == u"c": + * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * elif self.mode == u"fortran": # <<<<<<<<<<<<<< + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * if not (flags & bufmode): + */ + } + __pyx_L3:; + + /* "View.MemoryView":190 + * elif self.mode == u"fortran": + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * if not (flags & bufmode): # <<<<<<<<<<<<<< + * raise ValueError("Can only create a buffer that is contiguous in memory.") + * info.buf = self.data + */ + __pyx_t_1 = ((!((__pyx_v_flags & __pyx_v_bufmode) != 0)) != 0); + if (unlikely(__pyx_t_1)) { + + /* "View.MemoryView":191 + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * if not (flags & bufmode): + * raise ValueError("Can only create a buffer that is contiguous in memory.") # <<<<<<<<<<<<<< + * info.buf = self.data + * info.len = self.len + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 191, __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, 191, __pyx_L1_error) + + /* "View.MemoryView":190 + * elif self.mode == u"fortran": + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * if not (flags & bufmode): # <<<<<<<<<<<<<< + * raise ValueError("Can only create a buffer that is contiguous in memory.") + * info.buf = self.data + */ + } + + /* "View.MemoryView":192 + * if not (flags & bufmode): + * raise ValueError("Can only create a buffer that is contiguous in memory.") + * info.buf = self.data # <<<<<<<<<<<<<< + * info.len = self.len + * info.ndim = self.ndim + */ + __pyx_t_4 = __pyx_v_self->data; + __pyx_v_info->buf = __pyx_t_4; + + /* "View.MemoryView":193 + * raise ValueError("Can only create a buffer that is contiguous in memory.") + * info.buf = self.data + * info.len = self.len # <<<<<<<<<<<<<< + * info.ndim = self.ndim + * info.shape = self._shape + */ + __pyx_t_5 = __pyx_v_self->len; + __pyx_v_info->len = __pyx_t_5; + + /* "View.MemoryView":194 + * info.buf = self.data + * info.len = self.len + * info.ndim = self.ndim # <<<<<<<<<<<<<< + * info.shape = self._shape + * info.strides = self._strides + */ + __pyx_t_6 = __pyx_v_self->ndim; + __pyx_v_info->ndim = __pyx_t_6; + + /* "View.MemoryView":195 + * info.len = self.len + * info.ndim = self.ndim + * info.shape = self._shape # <<<<<<<<<<<<<< + * info.strides = self._strides + * info.suboffsets = NULL + */ + __pyx_t_7 = __pyx_v_self->_shape; + __pyx_v_info->shape = __pyx_t_7; + + /* "View.MemoryView":196 + * info.ndim = self.ndim + * info.shape = self._shape + * info.strides = self._strides # <<<<<<<<<<<<<< + * info.suboffsets = NULL + * info.itemsize = self.itemsize + */ + __pyx_t_7 = __pyx_v_self->_strides; + __pyx_v_info->strides = __pyx_t_7; + + /* "View.MemoryView":197 + * info.shape = self._shape + * info.strides = self._strides + * info.suboffsets = NULL # <<<<<<<<<<<<<< + * info.itemsize = self.itemsize + * info.readonly = 0 + */ + __pyx_v_info->suboffsets = NULL; + + /* "View.MemoryView":198 + * info.strides = self._strides + * info.suboffsets = NULL + * info.itemsize = self.itemsize # <<<<<<<<<<<<<< + * info.readonly = 0 + * + */ + __pyx_t_5 = __pyx_v_self->itemsize; + __pyx_v_info->itemsize = __pyx_t_5; + + /* "View.MemoryView":199 + * info.suboffsets = NULL + * info.itemsize = self.itemsize + * info.readonly = 0 # <<<<<<<<<<<<<< + * + * if flags & PyBUF_FORMAT: + */ + __pyx_v_info->readonly = 0; + + /* "View.MemoryView":201 + * info.readonly = 0 + * + * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< + * info.format = self.format + * else: + */ + __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":202 + * + * if flags & PyBUF_FORMAT: + * info.format = self.format # <<<<<<<<<<<<<< + * else: + * info.format = NULL + */ + __pyx_t_4 = __pyx_v_self->format; + __pyx_v_info->format = __pyx_t_4; + + /* "View.MemoryView":201 + * info.readonly = 0 + * + * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< + * info.format = self.format + * else: + */ + goto __pyx_L5; + } + + /* "View.MemoryView":204 + * info.format = self.format + * else: + * info.format = NULL # <<<<<<<<<<<<<< + * + * info.obj = self + */ + /*else*/ { + __pyx_v_info->format = NULL; + } + __pyx_L5:; + + /* "View.MemoryView":206 + * info.format = NULL + * + * info.obj = self # <<<<<<<<<<<<<< + * + * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") + */ + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); + __Pyx_GOTREF(__pyx_v_info->obj); + __Pyx_DECREF(__pyx_v_info->obj); + __pyx_v_info->obj = ((PyObject *)__pyx_v_self); + + /* "View.MemoryView":184 + * + * @cname('getbuffer') + * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< + * cdef int bufmode = -1 + * if self.mode == u"c": + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.array.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + if (__pyx_v_info->obj != NULL) { + __Pyx_GOTREF(__pyx_v_info->obj); + __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; + } + goto __pyx_L2; + __pyx_L0:; + if (__pyx_v_info->obj == Py_None) { + __Pyx_GOTREF(__pyx_v_info->obj); + __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; + } + __pyx_L2:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":210 + * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") + * + * def __dealloc__(array self): # <<<<<<<<<<<<<< + * if self.callback_free_data != NULL: + * self.callback_free_data(self.data) + */ + +/* Python wrapper */ +static void __pyx_array___dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_array___dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(((struct __pyx_array_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self) { + __Pyx_RefNannyDeclarations + int __pyx_t_1; + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "View.MemoryView":211 + * + * def __dealloc__(array self): + * if self.callback_free_data != NULL: # <<<<<<<<<<<<<< + * self.callback_free_data(self.data) + * elif self.free_data: + */ + __pyx_t_1 = ((__pyx_v_self->callback_free_data != NULL) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":212 + * def __dealloc__(array self): + * if self.callback_free_data != NULL: + * self.callback_free_data(self.data) # <<<<<<<<<<<<<< + * elif self.free_data: + * if self.dtype_is_object: + */ + __pyx_v_self->callback_free_data(__pyx_v_self->data); + + /* "View.MemoryView":211 + * + * def __dealloc__(array self): + * if self.callback_free_data != NULL: # <<<<<<<<<<<<<< + * self.callback_free_data(self.data) + * elif self.free_data: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":213 + * if self.callback_free_data != NULL: + * self.callback_free_data(self.data) + * elif self.free_data: # <<<<<<<<<<<<<< + * if self.dtype_is_object: + * refcount_objects_in_slice(self.data, self._shape, + */ + __pyx_t_1 = (__pyx_v_self->free_data != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":214 + * self.callback_free_data(self.data) + * elif self.free_data: + * if self.dtype_is_object: # <<<<<<<<<<<<<< + * refcount_objects_in_slice(self.data, self._shape, + * self._strides, self.ndim, False) + */ + __pyx_t_1 = (__pyx_v_self->dtype_is_object != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":215 + * elif self.free_data: + * if self.dtype_is_object: + * refcount_objects_in_slice(self.data, self._shape, # <<<<<<<<<<<<<< + * self._strides, self.ndim, False) + * free(self.data) + */ + __pyx_memoryview_refcount_objects_in_slice(__pyx_v_self->data, __pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_self->ndim, 0); + + /* "View.MemoryView":214 + * self.callback_free_data(self.data) + * elif self.free_data: + * if self.dtype_is_object: # <<<<<<<<<<<<<< + * refcount_objects_in_slice(self.data, self._shape, + * self._strides, self.ndim, False) + */ + } + + /* "View.MemoryView":217 + * refcount_objects_in_slice(self.data, self._shape, + * self._strides, self.ndim, False) + * free(self.data) # <<<<<<<<<<<<<< + * PyObject_Free(self._shape) + * + */ + free(__pyx_v_self->data); + + /* "View.MemoryView":213 + * if self.callback_free_data != NULL: + * self.callback_free_data(self.data) + * elif self.free_data: # <<<<<<<<<<<<<< + * if self.dtype_is_object: + * refcount_objects_in_slice(self.data, self._shape, + */ + } + __pyx_L3:; + + /* "View.MemoryView":218 + * self._strides, self.ndim, False) + * free(self.data) + * PyObject_Free(self._shape) # <<<<<<<<<<<<<< + * + * @property + */ + PyObject_Free(__pyx_v_self->_shape); + + /* "View.MemoryView":210 + * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") + * + * def __dealloc__(array self): # <<<<<<<<<<<<<< + * if self.callback_free_data != NULL: + * self.callback_free_data(self.data) + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "View.MemoryView":221 + * + * @property + * def memview(self): # <<<<<<<<<<<<<< + * return self.get_memview() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_5array_7memview___get__(((struct __pyx_array_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":222 + * @property + * def memview(self): + * return self.get_memview() # <<<<<<<<<<<<<< + * + * @cname('get_memview') + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_array *)__pyx_v_self->__pyx_vtab)->get_memview(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "View.MemoryView":221 + * + * @property + * def memview(self): # <<<<<<<<<<<<<< + * return self.get_memview() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.array.memview.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":225 + * + * @cname('get_memview') + * cdef get_memview(self): # <<<<<<<<<<<<<< + * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE + * return memoryview(self, flags, self.dtype_is_object) + */ + +static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self) { + int __pyx_v_flags; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + __Pyx_RefNannySetupContext("get_memview", 0); + + /* "View.MemoryView":226 + * @cname('get_memview') + * cdef get_memview(self): + * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE # <<<<<<<<<<<<<< + * return memoryview(self, flags, self.dtype_is_object) + * + */ + __pyx_v_flags = ((PyBUF_ANY_CONTIGUOUS | PyBUF_FORMAT) | PyBUF_WRITABLE); + + /* "View.MemoryView":227 + * cdef get_memview(self): + * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE + * return memoryview(self, flags, self.dtype_is_object) # <<<<<<<<<<<<<< + * + * def __len__(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 227, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 227, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 227, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); + PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self)); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 227, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":225 + * + * @cname('get_memview') + * cdef get_memview(self): # <<<<<<<<<<<<<< + * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE + * return memoryview(self, flags, self.dtype_is_object) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.array.get_memview", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":229 + * return memoryview(self, flags, self.dtype_is_object) + * + * def __len__(self): # <<<<<<<<<<<<<< + * return self._shape[0] + * + */ + +/* Python wrapper */ +static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self); /*proto*/ +static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self) { + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); + __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(((struct __pyx_array_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(struct __pyx_array_obj *__pyx_v_self) { + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__len__", 0); + + /* "View.MemoryView":230 + * + * def __len__(self): + * return self._shape[0] # <<<<<<<<<<<<<< + * + * def __getattr__(self, attr): + */ + __pyx_r = (__pyx_v_self->_shape[0]); + goto __pyx_L0; + + /* "View.MemoryView":229 + * return memoryview(self, flags, self.dtype_is_object) + * + * def __len__(self): # <<<<<<<<<<<<<< + * return self._shape[0] + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":232 + * return self._shape[0] + * + * def __getattr__(self, attr): # <<<<<<<<<<<<<< + * return getattr(self.memview, attr) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr); /*proto*/ +static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getattr__ (wrapper)", 0); + __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_attr)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + __Pyx_RefNannySetupContext("__getattr__", 0); + + /* "View.MemoryView":233 + * + * def __getattr__(self, attr): + * return getattr(self.memview, attr) # <<<<<<<<<<<<<< + * + * def __getitem__(self, item): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_GetAttr(__pyx_t_1, __pyx_v_attr); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":232 + * return self._shape[0] + * + * def __getattr__(self, attr): # <<<<<<<<<<<<<< + * return getattr(self.memview, attr) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView.array.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":235 + * return getattr(self.memview, attr) + * + * def __getitem__(self, item): # <<<<<<<<<<<<<< + * return self.memview[item] + * + */ + +/* Python wrapper */ +static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/ +static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); + __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + __Pyx_RefNannySetupContext("__getitem__", 0); + + /* "View.MemoryView":236 + * + * def __getitem__(self, item): + * return self.memview[item] # <<<<<<<<<<<<<< + * + * def __setitem__(self, item, value): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_item); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":235 + * return getattr(self.memview, attr) + * + * def __getitem__(self, item): # <<<<<<<<<<<<<< + * return self.memview[item] + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView.array.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":238 + * return self.memview[item] + * + * def __setitem__(self, item, value): # <<<<<<<<<<<<<< + * self.memview[item] = value + * + */ + +/* Python wrapper */ +static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); + __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__setitem__", 0); + + /* "View.MemoryView":239 + * + * def __setitem__(self, item, value): + * self.memview[item] = value # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_item, __pyx_v_value) < 0)) __PYX_ERR(1, 239, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "View.MemoryView":238 + * return self.memview[item] + * + * def __setitem__(self, item, value): # <<<<<<<<<<<<<< + * self.memview[item] = value + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.array.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_array___reduce_cython__(((struct __pyx_array_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__reduce_cython__", 0); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(1, 2, __pyx_L1_error) + + /* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.array.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ +static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_array_2__setstate_cython__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__setstate_cython__", 0); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(1, 4, __pyx_L1_error) + + /* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.array.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":243 + * + * @cname("__pyx_array_new") + * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, # <<<<<<<<<<<<<< + * char *mode, char *buf): + * cdef array result + */ + +static struct __pyx_array_obj *__pyx_array_new(PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, char *__pyx_v_format, char *__pyx_v_mode, char *__pyx_v_buf) { + struct __pyx_array_obj *__pyx_v_result = 0; + struct __pyx_array_obj *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + __Pyx_RefNannySetupContext("array_cwrapper", 0); + + /* "View.MemoryView":247 + * cdef array result + * + * if buf == NULL: # <<<<<<<<<<<<<< + * result = array(shape, itemsize, format, mode.decode('ASCII')) + * else: + */ + __pyx_t_1 = ((__pyx_v_buf == NULL) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":248 + * + * if buf == NULL: + * result = array(shape, itemsize, format, mode.decode('ASCII')) # <<<<<<<<<<<<<< + * else: + * result = array(shape, itemsize, format, mode.decode('ASCII'), + */ + __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_decode_c_string(__pyx_v_mode, 0, strlen(__pyx_v_mode), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(__pyx_v_shape); + __Pyx_GIVEREF(__pyx_v_shape); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_shape); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_array_type), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_4); + __pyx_t_4 = 0; + + /* "View.MemoryView":247 + * cdef array result + * + * if buf == NULL: # <<<<<<<<<<<<<< + * result = array(shape, itemsize, format, mode.decode('ASCII')) + * else: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":250 + * result = array(shape, itemsize, format, mode.decode('ASCII')) + * else: + * result = array(shape, itemsize, format, mode.decode('ASCII'), # <<<<<<<<<<<<<< + * allocate_buffer=False) + * result.data = buf + */ + /*else*/ { + __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_mode, 0, strlen(__pyx_v_mode), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_v_shape); + __Pyx_GIVEREF(__pyx_v_shape); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_shape); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_3); + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_3 = 0; + + /* "View.MemoryView":251 + * else: + * result = array(shape, itemsize, format, mode.decode('ASCII'), + * allocate_buffer=False) # <<<<<<<<<<<<<< + * result.data = buf + * + */ + __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_allocate_buffer, Py_False) < 0) __PYX_ERR(1, 251, __pyx_L1_error) + + /* "View.MemoryView":250 + * result = array(shape, itemsize, format, mode.decode('ASCII')) + * else: + * result = array(shape, itemsize, format, mode.decode('ASCII'), # <<<<<<<<<<<<<< + * allocate_buffer=False) + * result.data = buf + */ + __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_array_type), __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_5); + __pyx_t_5 = 0; + + /* "View.MemoryView":252 + * result = array(shape, itemsize, format, mode.decode('ASCII'), + * allocate_buffer=False) + * result.data = buf # <<<<<<<<<<<<<< + * + * return result + */ + __pyx_v_result->data = __pyx_v_buf; + } + __pyx_L3:; + + /* "View.MemoryView":254 + * result.data = buf + * + * return result # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = __pyx_v_result; + goto __pyx_L0; + + /* "View.MemoryView":243 + * + * @cname("__pyx_array_new") + * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, # <<<<<<<<<<<<<< + * char *mode, char *buf): + * cdef array result + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView.array_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":280 + * cdef class Enum(object): + * cdef object name + * def __init__(self, name): # <<<<<<<<<<<<<< + * self.name = name + * def __repr__(self): + */ + +/* Python wrapper */ +static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 280, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_name = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 280, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("View.MemoryView.Enum.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), __pyx_v_name); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__", 0); + + /* "View.MemoryView":281 + * cdef object name + * def __init__(self, name): + * self.name = name # <<<<<<<<<<<<<< + * def __repr__(self): + * return self.name + */ + __Pyx_INCREF(__pyx_v_name); + __Pyx_GIVEREF(__pyx_v_name); + __Pyx_GOTREF(__pyx_v_self->name); + __Pyx_DECREF(__pyx_v_self->name); + __pyx_v_self->name = __pyx_v_name; + + /* "View.MemoryView":280 + * cdef class Enum(object): + * cdef object name + * def __init__(self, name): # <<<<<<<<<<<<<< + * self.name = name + * def __repr__(self): + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":282 + * def __init__(self, name): + * self.name = name + * def __repr__(self): # <<<<<<<<<<<<<< + * return self.name + * + */ + +/* Python wrapper */ +static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); + __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__repr__", 0); + + /* "View.MemoryView":283 + * self.name = name + * def __repr__(self): + * return self.name # <<<<<<<<<<<<<< + * + * cdef generic = Enum("") + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->name); + __pyx_r = __pyx_v_self->name; + goto __pyx_L0; + + /* "View.MemoryView":282 + * def __init__(self, name): + * self.name = name + * def __repr__(self): # <<<<<<<<<<<<<< + * return self.name + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * cdef bint use_setstate + * state = (self.name,) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_MemviewEnum___reduce_cython__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self) { + int __pyx_v_use_setstate; + PyObject *__pyx_v_state = NULL; + PyObject *__pyx_v__dict = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + __Pyx_RefNannySetupContext("__reduce_cython__", 0); + + /* "(tree fragment)":3 + * def __reduce_cython__(self): + * cdef bint use_setstate + * state = (self.name,) # <<<<<<<<<<<<<< + * _dict = getattr(self, '__dict__', None) + * if _dict is not None: + */ + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_self->name); + __Pyx_GIVEREF(__pyx_v_self->name); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->name); + __pyx_v_state = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + /* "(tree fragment)":4 + * cdef bint use_setstate + * state = (self.name,) + * _dict = getattr(self, '__dict__', None) # <<<<<<<<<<<<<< + * if _dict is not None: + * state += (_dict,) + */ + __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v__dict = __pyx_t_1; + __pyx_t_1 = 0; + + /* "(tree fragment)":5 + * state = (self.name,) + * _dict = getattr(self, '__dict__', None) + * if _dict is not None: # <<<<<<<<<<<<<< + * state += (_dict,) + * use_setstate = True + */ + __pyx_t_2 = (__pyx_v__dict != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "(tree fragment)":6 + * _dict = getattr(self, '__dict__', None) + * if _dict is not None: + * state += (_dict,) # <<<<<<<<<<<<<< + * use_setstate = True + * else: + */ + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v__dict); + __Pyx_GIVEREF(__pyx_v__dict); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict); + __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4)); + __pyx_t_4 = 0; + + /* "(tree fragment)":7 + * if _dict is not None: + * state += (_dict,) + * use_setstate = True # <<<<<<<<<<<<<< + * else: + * use_setstate = self.name is not None + */ + __pyx_v_use_setstate = 1; + + /* "(tree fragment)":5 + * state = (self.name,) + * _dict = getattr(self, '__dict__', None) + * if _dict is not None: # <<<<<<<<<<<<<< + * state += (_dict,) + * use_setstate = True + */ + goto __pyx_L3; + } + + /* "(tree fragment)":9 + * use_setstate = True + * else: + * use_setstate = self.name is not None # <<<<<<<<<<<<<< + * if use_setstate: + * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state + */ + /*else*/ { + __pyx_t_3 = (__pyx_v_self->name != Py_None); + __pyx_v_use_setstate = __pyx_t_3; + } + __pyx_L3:; + + /* "(tree fragment)":10 + * else: + * use_setstate = self.name is not None + * if use_setstate: # <<<<<<<<<<<<<< + * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state + * else: + */ + __pyx_t_3 = (__pyx_v_use_setstate != 0); + if (__pyx_t_3) { + + /* "(tree fragment)":11 + * use_setstate = self.name is not None + * if use_setstate: + * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state # <<<<<<<<<<<<<< + * else: + * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __Pyx_INCREF(__pyx_int_184977713); + __Pyx_GIVEREF(__pyx_int_184977713); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_184977713); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1); + __Pyx_INCREF(__pyx_v_state); + __Pyx_GIVEREF(__pyx_v_state); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state); + __pyx_t_4 = 0; + __pyx_t_1 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "(tree fragment)":10 + * else: + * use_setstate = self.name is not None + * if use_setstate: # <<<<<<<<<<<<<< + * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state + * else: + */ + } + + /* "(tree fragment)":13 + * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state + * else: + * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * __pyx_unpickle_Enum__set_state(self, __pyx_state) + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __Pyx_INCREF(__pyx_int_184977713); + __Pyx_GIVEREF(__pyx_int_184977713); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_184977713); + __Pyx_INCREF(__pyx_v_state); + __Pyx_GIVEREF(__pyx_v_state); + PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); + __pyx_t_5 = 0; + __pyx_t_1 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + } + + /* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * cdef bint use_setstate + * state = (self.name,) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView.Enum.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_state); + __Pyx_XDECREF(__pyx_v__dict); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":14 + * else: + * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * __pyx_unpickle_Enum__set_state(self, __pyx_state) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ +static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_MemviewEnum_2__setstate_cython__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__setstate_cython__", 0); + + /* "(tree fragment)":15 + * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) + * def __setstate_cython__(self, __pyx_state): + * __pyx_unpickle_Enum__set_state(self, __pyx_state) # <<<<<<<<<<<<<< + */ + if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 15, __pyx_L1_error) + __pyx_t_1 = __pyx_unpickle_Enum__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "(tree fragment)":14 + * else: + * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * __pyx_unpickle_Enum__set_state(self, __pyx_state) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.Enum.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":297 + * + * @cname('__pyx_align_pointer') + * cdef void *align_pointer(void *memory, size_t alignment) nogil: # <<<<<<<<<<<<<< + * "Align pointer memory on a given boundary" + * cdef Py_intptr_t aligned_p = memory + */ + +static void *__pyx_align_pointer(void *__pyx_v_memory, size_t __pyx_v_alignment) { + Py_intptr_t __pyx_v_aligned_p; + size_t __pyx_v_offset; + void *__pyx_r; + int __pyx_t_1; + + /* "View.MemoryView":299 + * cdef void *align_pointer(void *memory, size_t alignment) nogil: + * "Align pointer memory on a given boundary" + * cdef Py_intptr_t aligned_p = memory # <<<<<<<<<<<<<< + * cdef size_t offset + * + */ + __pyx_v_aligned_p = ((Py_intptr_t)__pyx_v_memory); + + /* "View.MemoryView":303 + * + * with cython.cdivision(True): + * offset = aligned_p % alignment # <<<<<<<<<<<<<< + * + * if offset > 0: + */ + __pyx_v_offset = (__pyx_v_aligned_p % __pyx_v_alignment); + + /* "View.MemoryView":305 + * offset = aligned_p % alignment + * + * if offset > 0: # <<<<<<<<<<<<<< + * aligned_p += alignment - offset + * + */ + __pyx_t_1 = ((__pyx_v_offset > 0) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":306 + * + * if offset > 0: + * aligned_p += alignment - offset # <<<<<<<<<<<<<< + * + * return aligned_p + */ + __pyx_v_aligned_p = (__pyx_v_aligned_p + (__pyx_v_alignment - __pyx_v_offset)); + + /* "View.MemoryView":305 + * offset = aligned_p % alignment + * + * if offset > 0: # <<<<<<<<<<<<<< + * aligned_p += alignment - offset + * + */ + } + + /* "View.MemoryView":308 + * aligned_p += alignment - offset + * + * return aligned_p # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = ((void *)__pyx_v_aligned_p); + goto __pyx_L0; + + /* "View.MemoryView":297 + * + * @cname('__pyx_align_pointer') + * cdef void *align_pointer(void *memory, size_t alignment) nogil: # <<<<<<<<<<<<<< + * "Align pointer memory on a given boundary" + * cdef Py_intptr_t aligned_p = memory + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":344 + * cdef __Pyx_TypeInfo *typeinfo + * + * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): # <<<<<<<<<<<<<< + * self.obj = obj + * self.flags = flags + */ + +/* Python wrapper */ +static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_obj = 0; + int __pyx_v_flags; + int __pyx_v_dtype_is_object; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,&__pyx_n_s_flags,&__pyx_n_s_dtype_is_object,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, 1); __PYX_ERR(1, 344, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dtype_is_object); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(1, 344, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_obj = values[0]; + __pyx_v_flags = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 344, __pyx_L3_error) + if (values[2]) { + __pyx_v_dtype_is_object = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_dtype_is_object == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 344, __pyx_L3_error) + } else { + __pyx_v_dtype_is_object = ((int)0); + } + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 344, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_obj, __pyx_v_flags, __pyx_v_dtype_is_object); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "View.MemoryView":345 + * + * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): + * self.obj = obj # <<<<<<<<<<<<<< + * self.flags = flags + * if type(self) is memoryview or obj is not None: + */ + __Pyx_INCREF(__pyx_v_obj); + __Pyx_GIVEREF(__pyx_v_obj); + __Pyx_GOTREF(__pyx_v_self->obj); + __Pyx_DECREF(__pyx_v_self->obj); + __pyx_v_self->obj = __pyx_v_obj; + + /* "View.MemoryView":346 + * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): + * self.obj = obj + * self.flags = flags # <<<<<<<<<<<<<< + * if type(self) is memoryview or obj is not None: + * __Pyx_GetBuffer(obj, &self.view, flags) + */ + __pyx_v_self->flags = __pyx_v_flags; + + /* "View.MemoryView":347 + * self.obj = obj + * self.flags = flags + * if type(self) is memoryview or obj is not None: # <<<<<<<<<<<<<< + * __Pyx_GetBuffer(obj, &self.view, flags) + * if self.view.obj == NULL: + */ + __pyx_t_2 = (((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))) == ((PyObject *)__pyx_memoryview_type)); + __pyx_t_3 = (__pyx_t_2 != 0); + if (!__pyx_t_3) { + } else { + __pyx_t_1 = __pyx_t_3; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_3 = (__pyx_v_obj != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + + /* "View.MemoryView":348 + * self.flags = flags + * if type(self) is memoryview or obj is not None: + * __Pyx_GetBuffer(obj, &self.view, flags) # <<<<<<<<<<<<<< + * if self.view.obj == NULL: + * (<__pyx_buffer *> &self.view).obj = Py_None + */ + __pyx_t_4 = __Pyx_GetBuffer(__pyx_v_obj, (&__pyx_v_self->view), __pyx_v_flags); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 348, __pyx_L1_error) + + /* "View.MemoryView":349 + * if type(self) is memoryview or obj is not None: + * __Pyx_GetBuffer(obj, &self.view, flags) + * if self.view.obj == NULL: # <<<<<<<<<<<<<< + * (<__pyx_buffer *> &self.view).obj = Py_None + * Py_INCREF(Py_None) + */ + __pyx_t_1 = ((((PyObject *)__pyx_v_self->view.obj) == NULL) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":350 + * __Pyx_GetBuffer(obj, &self.view, flags) + * if self.view.obj == NULL: + * (<__pyx_buffer *> &self.view).obj = Py_None # <<<<<<<<<<<<<< + * Py_INCREF(Py_None) + * + */ + ((Py_buffer *)(&__pyx_v_self->view))->obj = Py_None; + + /* "View.MemoryView":351 + * if self.view.obj == NULL: + * (<__pyx_buffer *> &self.view).obj = Py_None + * Py_INCREF(Py_None) # <<<<<<<<<<<<<< + * + * global __pyx_memoryview_thread_locks_used + */ + Py_INCREF(Py_None); + + /* "View.MemoryView":349 + * if type(self) is memoryview or obj is not None: + * __Pyx_GetBuffer(obj, &self.view, flags) + * if self.view.obj == NULL: # <<<<<<<<<<<<<< + * (<__pyx_buffer *> &self.view).obj = Py_None + * Py_INCREF(Py_None) + */ + } + + /* "View.MemoryView":347 + * self.obj = obj + * self.flags = flags + * if type(self) is memoryview or obj is not None: # <<<<<<<<<<<<<< + * __Pyx_GetBuffer(obj, &self.view, flags) + * if self.view.obj == NULL: + */ + } + + /* "View.MemoryView":354 + * + * global __pyx_memoryview_thread_locks_used + * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: # <<<<<<<<<<<<<< + * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] + * __pyx_memoryview_thread_locks_used += 1 + */ + __pyx_t_1 = ((__pyx_memoryview_thread_locks_used < 8) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":355 + * global __pyx_memoryview_thread_locks_used + * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: + * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] # <<<<<<<<<<<<<< + * __pyx_memoryview_thread_locks_used += 1 + * if self.lock is NULL: + */ + __pyx_v_self->lock = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]); + + /* "View.MemoryView":356 + * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: + * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] + * __pyx_memoryview_thread_locks_used += 1 # <<<<<<<<<<<<<< + * if self.lock is NULL: + * self.lock = PyThread_allocate_lock() + */ + __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used + 1); + + /* "View.MemoryView":354 + * + * global __pyx_memoryview_thread_locks_used + * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: # <<<<<<<<<<<<<< + * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] + * __pyx_memoryview_thread_locks_used += 1 + */ + } + + /* "View.MemoryView":357 + * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] + * __pyx_memoryview_thread_locks_used += 1 + * if self.lock is NULL: # <<<<<<<<<<<<<< + * self.lock = PyThread_allocate_lock() + * if self.lock is NULL: + */ + __pyx_t_1 = ((__pyx_v_self->lock == NULL) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":358 + * __pyx_memoryview_thread_locks_used += 1 + * if self.lock is NULL: + * self.lock = PyThread_allocate_lock() # <<<<<<<<<<<<<< + * if self.lock is NULL: + * raise MemoryError + */ + __pyx_v_self->lock = PyThread_allocate_lock(); + + /* "View.MemoryView":359 + * if self.lock is NULL: + * self.lock = PyThread_allocate_lock() + * if self.lock is NULL: # <<<<<<<<<<<<<< + * raise MemoryError + * + */ + __pyx_t_1 = ((__pyx_v_self->lock == NULL) != 0); + if (unlikely(__pyx_t_1)) { + + /* "View.MemoryView":360 + * self.lock = PyThread_allocate_lock() + * if self.lock is NULL: + * raise MemoryError # <<<<<<<<<<<<<< + * + * if flags & PyBUF_FORMAT: + */ + PyErr_NoMemory(); __PYX_ERR(1, 360, __pyx_L1_error) + + /* "View.MemoryView":359 + * if self.lock is NULL: + * self.lock = PyThread_allocate_lock() + * if self.lock is NULL: # <<<<<<<<<<<<<< + * raise MemoryError + * + */ + } + + /* "View.MemoryView":357 + * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] + * __pyx_memoryview_thread_locks_used += 1 + * if self.lock is NULL: # <<<<<<<<<<<<<< + * self.lock = PyThread_allocate_lock() + * if self.lock is NULL: + */ + } + + /* "View.MemoryView":362 + * raise MemoryError + * + * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< + * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') + * else: + */ + __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":363 + * + * if flags & PyBUF_FORMAT: + * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') # <<<<<<<<<<<<<< + * else: + * self.dtype_is_object = dtype_is_object + */ + __pyx_t_2 = (((__pyx_v_self->view.format[0]) == 'O') != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L11_bool_binop_done; + } + __pyx_t_2 = (((__pyx_v_self->view.format[1]) == '\x00') != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L11_bool_binop_done:; + __pyx_v_self->dtype_is_object = __pyx_t_1; + + /* "View.MemoryView":362 + * raise MemoryError + * + * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< + * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') + * else: + */ + goto __pyx_L10; + } + + /* "View.MemoryView":365 + * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') + * else: + * self.dtype_is_object = dtype_is_object # <<<<<<<<<<<<<< + * + * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( + */ + /*else*/ { + __pyx_v_self->dtype_is_object = __pyx_v_dtype_is_object; + } + __pyx_L10:; + + /* "View.MemoryView":367 + * self.dtype_is_object = dtype_is_object + * + * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( # <<<<<<<<<<<<<< + * &self.acquisition_count[0], sizeof(__pyx_atomic_int)) + * self.typeinfo = NULL + */ + __pyx_v_self->acquisition_count_aligned_p = ((__pyx_atomic_int *)__pyx_align_pointer(((void *)(&(__pyx_v_self->acquisition_count[0]))), (sizeof(__pyx_atomic_int)))); + + /* "View.MemoryView":369 + * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( + * &self.acquisition_count[0], sizeof(__pyx_atomic_int)) + * self.typeinfo = NULL # <<<<<<<<<<<<<< + * + * def __dealloc__(memoryview self): + */ + __pyx_v_self->typeinfo = NULL; + + /* "View.MemoryView":344 + * cdef __Pyx_TypeInfo *typeinfo + * + * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): # <<<<<<<<<<<<<< + * self.obj = obj + * self.flags = flags + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":371 + * self.typeinfo = NULL + * + * def __dealloc__(memoryview self): # <<<<<<<<<<<<<< + * if self.obj is not None: + * __Pyx_ReleaseBuffer(&self.view) + */ + +/* Python wrapper */ +static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self) { + int __pyx_v_i; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyThread_type_lock __pyx_t_6; + PyThread_type_lock __pyx_t_7; + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "View.MemoryView":372 + * + * def __dealloc__(memoryview self): + * if self.obj is not None: # <<<<<<<<<<<<<< + * __Pyx_ReleaseBuffer(&self.view) + * + */ + __pyx_t_1 = (__pyx_v_self->obj != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":373 + * def __dealloc__(memoryview self): + * if self.obj is not None: + * __Pyx_ReleaseBuffer(&self.view) # <<<<<<<<<<<<<< + * + * cdef int i + */ + __Pyx_ReleaseBuffer((&__pyx_v_self->view)); + + /* "View.MemoryView":372 + * + * def __dealloc__(memoryview self): + * if self.obj is not None: # <<<<<<<<<<<<<< + * __Pyx_ReleaseBuffer(&self.view) + * + */ + } + + /* "View.MemoryView":377 + * cdef int i + * global __pyx_memoryview_thread_locks_used + * if self.lock != NULL: # <<<<<<<<<<<<<< + * for i in range(__pyx_memoryview_thread_locks_used): + * if __pyx_memoryview_thread_locks[i] is self.lock: + */ + __pyx_t_2 = ((__pyx_v_self->lock != NULL) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":378 + * global __pyx_memoryview_thread_locks_used + * if self.lock != NULL: + * for i in range(__pyx_memoryview_thread_locks_used): # <<<<<<<<<<<<<< + * if __pyx_memoryview_thread_locks[i] is self.lock: + * __pyx_memoryview_thread_locks_used -= 1 + */ + __pyx_t_3 = __pyx_memoryview_thread_locks_used; + __pyx_t_4 = __pyx_t_3; + for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { + __pyx_v_i = __pyx_t_5; + + /* "View.MemoryView":379 + * if self.lock != NULL: + * for i in range(__pyx_memoryview_thread_locks_used): + * if __pyx_memoryview_thread_locks[i] is self.lock: # <<<<<<<<<<<<<< + * __pyx_memoryview_thread_locks_used -= 1 + * if i != __pyx_memoryview_thread_locks_used: + */ + __pyx_t_2 = (((__pyx_memoryview_thread_locks[__pyx_v_i]) == __pyx_v_self->lock) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":380 + * for i in range(__pyx_memoryview_thread_locks_used): + * if __pyx_memoryview_thread_locks[i] is self.lock: + * __pyx_memoryview_thread_locks_used -= 1 # <<<<<<<<<<<<<< + * if i != __pyx_memoryview_thread_locks_used: + * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( + */ + __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used - 1); + + /* "View.MemoryView":381 + * if __pyx_memoryview_thread_locks[i] is self.lock: + * __pyx_memoryview_thread_locks_used -= 1 + * if i != __pyx_memoryview_thread_locks_used: # <<<<<<<<<<<<<< + * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( + * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) + */ + __pyx_t_2 = ((__pyx_v_i != __pyx_memoryview_thread_locks_used) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":383 + * if i != __pyx_memoryview_thread_locks_used: + * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( + * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) # <<<<<<<<<<<<<< + * break + * else: + */ + __pyx_t_6 = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]); + __pyx_t_7 = (__pyx_memoryview_thread_locks[__pyx_v_i]); + + /* "View.MemoryView":382 + * __pyx_memoryview_thread_locks_used -= 1 + * if i != __pyx_memoryview_thread_locks_used: + * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( # <<<<<<<<<<<<<< + * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) + * break + */ + (__pyx_memoryview_thread_locks[__pyx_v_i]) = __pyx_t_6; + (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]) = __pyx_t_7; + + /* "View.MemoryView":381 + * if __pyx_memoryview_thread_locks[i] is self.lock: + * __pyx_memoryview_thread_locks_used -= 1 + * if i != __pyx_memoryview_thread_locks_used: # <<<<<<<<<<<<<< + * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( + * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) + */ + } + + /* "View.MemoryView":384 + * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( + * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) + * break # <<<<<<<<<<<<<< + * else: + * PyThread_free_lock(self.lock) + */ + goto __pyx_L6_break; + + /* "View.MemoryView":379 + * if self.lock != NULL: + * for i in range(__pyx_memoryview_thread_locks_used): + * if __pyx_memoryview_thread_locks[i] is self.lock: # <<<<<<<<<<<<<< + * __pyx_memoryview_thread_locks_used -= 1 + * if i != __pyx_memoryview_thread_locks_used: + */ + } + } + /*else*/ { + + /* "View.MemoryView":386 + * break + * else: + * PyThread_free_lock(self.lock) # <<<<<<<<<<<<<< + * + * cdef char *get_item_pointer(memoryview self, object index) except NULL: + */ + PyThread_free_lock(__pyx_v_self->lock); + } + __pyx_L6_break:; + + /* "View.MemoryView":377 + * cdef int i + * global __pyx_memoryview_thread_locks_used + * if self.lock != NULL: # <<<<<<<<<<<<<< + * for i in range(__pyx_memoryview_thread_locks_used): + * if __pyx_memoryview_thread_locks[i] is self.lock: + */ + } + + /* "View.MemoryView":371 + * self.typeinfo = NULL + * + * def __dealloc__(memoryview self): # <<<<<<<<<<<<<< + * if self.obj is not None: + * __Pyx_ReleaseBuffer(&self.view) + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "View.MemoryView":388 + * PyThread_free_lock(self.lock) + * + * cdef char *get_item_pointer(memoryview self, object index) except NULL: # <<<<<<<<<<<<<< + * cdef Py_ssize_t dim + * cdef char *itemp = self.view.buf + */ + +static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) { + Py_ssize_t __pyx_v_dim; + char *__pyx_v_itemp; + PyObject *__pyx_v_idx = NULL; + char *__pyx_r; + __Pyx_RefNannyDeclarations + Py_ssize_t __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + Py_ssize_t __pyx_t_3; + PyObject *(*__pyx_t_4)(PyObject *); + PyObject *__pyx_t_5 = NULL; + Py_ssize_t __pyx_t_6; + char *__pyx_t_7; + __Pyx_RefNannySetupContext("get_item_pointer", 0); + + /* "View.MemoryView":390 + * cdef char *get_item_pointer(memoryview self, object index) except NULL: + * cdef Py_ssize_t dim + * cdef char *itemp = self.view.buf # <<<<<<<<<<<<<< + * + * for dim, idx in enumerate(index): + */ + __pyx_v_itemp = ((char *)__pyx_v_self->view.buf); + + /* "View.MemoryView":392 + * cdef char *itemp = self.view.buf + * + * for dim, idx in enumerate(index): # <<<<<<<<<<<<<< + * itemp = pybuffer_index(&self.view, itemp, idx, dim) + * + */ + __pyx_t_1 = 0; + if (likely(PyList_CheckExact(__pyx_v_index)) || PyTuple_CheckExact(__pyx_v_index)) { + __pyx_t_2 = __pyx_v_index; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + } else { + __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 392, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_4)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 392, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + } else { + if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 392, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + } + } else { + __pyx_t_5 = __pyx_t_4(__pyx_t_2); + if (unlikely(!__pyx_t_5)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(1, 392, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_5); + } + __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_5); + __pyx_t_5 = 0; + __pyx_v_dim = __pyx_t_1; + __pyx_t_1 = (__pyx_t_1 + 1); + + /* "View.MemoryView":393 + * + * for dim, idx in enumerate(index): + * itemp = pybuffer_index(&self.view, itemp, idx, dim) # <<<<<<<<<<<<<< + * + * return itemp + */ + __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 393, __pyx_L1_error) + __pyx_t_7 = __pyx_pybuffer_index((&__pyx_v_self->view), __pyx_v_itemp, __pyx_t_6, __pyx_v_dim); if (unlikely(__pyx_t_7 == ((char *)NULL))) __PYX_ERR(1, 393, __pyx_L1_error) + __pyx_v_itemp = __pyx_t_7; + + /* "View.MemoryView":392 + * cdef char *itemp = self.view.buf + * + * for dim, idx in enumerate(index): # <<<<<<<<<<<<<< + * itemp = pybuffer_index(&self.view, itemp, idx, dim) + * + */ + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "View.MemoryView":395 + * itemp = pybuffer_index(&self.view, itemp, idx, dim) + * + * return itemp # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = __pyx_v_itemp; + goto __pyx_L0; + + /* "View.MemoryView":388 + * PyThread_free_lock(self.lock) + * + * cdef char *get_item_pointer(memoryview self, object index) except NULL: # <<<<<<<<<<<<<< + * cdef Py_ssize_t dim + * cdef char *itemp = self.view.buf + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView.memoryview.get_item_pointer", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_idx); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":398 + * + * + * def __getitem__(memoryview self, object index): # <<<<<<<<<<<<<< + * if index is Ellipsis: + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index); /*proto*/ +static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) { + PyObject *__pyx_v_have_slices = NULL; + PyObject *__pyx_v_indices = NULL; + char *__pyx_v_itemp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + char *__pyx_t_6; + __Pyx_RefNannySetupContext("__getitem__", 0); + + /* "View.MemoryView":399 + * + * def __getitem__(memoryview self, object index): + * if index is Ellipsis: # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = (__pyx_v_index == __pyx_builtin_Ellipsis); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":400 + * def __getitem__(memoryview self, object index): + * if index is Ellipsis: + * return self # <<<<<<<<<<<<<< + * + * have_slices, indices = _unellipsify(index, self.view.ndim) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "View.MemoryView":399 + * + * def __getitem__(memoryview self, object index): + * if index is Ellipsis: # <<<<<<<<<<<<<< + * return self + * + */ + } + + /* "View.MemoryView":402 + * return self + * + * have_slices, indices = _unellipsify(index, self.view.ndim) # <<<<<<<<<<<<<< + * + * cdef char *itemp + */ + __pyx_t_3 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (likely(__pyx_t_3 != Py_None)) { + PyObject* sequence = __pyx_t_3; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(1, 402, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + #else + __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } else { + __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 402, __pyx_L1_error) + } + __pyx_v_have_slices = __pyx_t_4; + __pyx_t_4 = 0; + __pyx_v_indices = __pyx_t_5; + __pyx_t_5 = 0; + + /* "View.MemoryView":405 + * + * cdef char *itemp + * if have_slices: # <<<<<<<<<<<<<< + * return memview_slice(self, indices) + * else: + */ + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 405, __pyx_L1_error) + if (__pyx_t_2) { + + /* "View.MemoryView":406 + * cdef char *itemp + * if have_slices: + * return memview_slice(self, indices) # <<<<<<<<<<<<<< + * else: + * itemp = self.get_item_pointer(indices) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = ((PyObject *)__pyx_memview_slice(__pyx_v_self, __pyx_v_indices)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "View.MemoryView":405 + * + * cdef char *itemp + * if have_slices: # <<<<<<<<<<<<<< + * return memview_slice(self, indices) + * else: + */ + } + + /* "View.MemoryView":408 + * return memview_slice(self, indices) + * else: + * itemp = self.get_item_pointer(indices) # <<<<<<<<<<<<<< + * return self.convert_item_to_object(itemp) + * + */ + /*else*/ { + __pyx_t_6 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_indices); if (unlikely(__pyx_t_6 == ((char *)NULL))) __PYX_ERR(1, 408, __pyx_L1_error) + __pyx_v_itemp = __pyx_t_6; + + /* "View.MemoryView":409 + * else: + * itemp = self.get_item_pointer(indices) + * return self.convert_item_to_object(itemp) # <<<<<<<<<<<<<< + * + * def __setitem__(memoryview self, object index, object value): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->convert_item_to_object(__pyx_v_self, __pyx_v_itemp); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "View.MemoryView":398 + * + * + * def __getitem__(memoryview self, object index): # <<<<<<<<<<<<<< + * if index is Ellipsis: + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView.memoryview.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_have_slices); + __Pyx_XDECREF(__pyx_v_indices); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":411 + * return self.convert_item_to_object(itemp) + * + * def __setitem__(memoryview self, object index, object value): # <<<<<<<<<<<<<< + * if self.view.readonly: + * raise TypeError("Cannot assign to read-only memoryview") + */ + +/* Python wrapper */ +static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { + PyObject *__pyx_v_have_slices = NULL; + PyObject *__pyx_v_obj = NULL; + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + __Pyx_RefNannySetupContext("__setitem__", 0); + __Pyx_INCREF(__pyx_v_index); + + /* "View.MemoryView":412 + * + * def __setitem__(memoryview self, object index, object value): + * if self.view.readonly: # <<<<<<<<<<<<<< + * raise TypeError("Cannot assign to read-only memoryview") + * + */ + __pyx_t_1 = (__pyx_v_self->view.readonly != 0); + if (unlikely(__pyx_t_1)) { + + /* "View.MemoryView":413 + * def __setitem__(memoryview self, object index, object value): + * if self.view.readonly: + * raise TypeError("Cannot assign to read-only memoryview") # <<<<<<<<<<<<<< + * + * have_slices, index = _unellipsify(index, self.view.ndim) + */ + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(1, 413, __pyx_L1_error) + + /* "View.MemoryView":412 + * + * def __setitem__(memoryview self, object index, object value): + * if self.view.readonly: # <<<<<<<<<<<<<< + * raise TypeError("Cannot assign to read-only memoryview") + * + */ + } + + /* "View.MemoryView":415 + * raise TypeError("Cannot assign to read-only memoryview") + * + * have_slices, index = _unellipsify(index, self.view.ndim) # <<<<<<<<<<<<<< + * + * if have_slices: + */ + __pyx_t_2 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (likely(__pyx_t_2 != Py_None)) { + PyObject* sequence = __pyx_t_2; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(1, 415, __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, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } else { + __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 415, __pyx_L1_error) + } + __pyx_v_have_slices = __pyx_t_3; + __pyx_t_3 = 0; + __Pyx_DECREF_SET(__pyx_v_index, __pyx_t_4); + __pyx_t_4 = 0; + + /* "View.MemoryView":417 + * have_slices, index = _unellipsify(index, self.view.ndim) + * + * if have_slices: # <<<<<<<<<<<<<< + * obj = self.is_slice(value) + * if obj: + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 417, __pyx_L1_error) + if (__pyx_t_1) { + + /* "View.MemoryView":418 + * + * if have_slices: + * obj = self.is_slice(value) # <<<<<<<<<<<<<< + * if obj: + * self.setitem_slice_assignment(self[index], obj) + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->is_slice(__pyx_v_self, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_obj = __pyx_t_2; + __pyx_t_2 = 0; + + /* "View.MemoryView":419 + * if have_slices: + * obj = self.is_slice(value) + * if obj: # <<<<<<<<<<<<<< + * self.setitem_slice_assignment(self[index], obj) + * else: + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_obj); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 419, __pyx_L1_error) + if (__pyx_t_1) { + + /* "View.MemoryView":420 + * obj = self.is_slice(value) + * if obj: + * self.setitem_slice_assignment(self[index], obj) # <<<<<<<<<<<<<< + * else: + * self.setitem_slice_assign_scalar(self[index], value) + */ + __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assignment(__pyx_v_self, __pyx_t_2, __pyx_v_obj); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "View.MemoryView":419 + * if have_slices: + * obj = self.is_slice(value) + * if obj: # <<<<<<<<<<<<<< + * self.setitem_slice_assignment(self[index], obj) + * else: + */ + goto __pyx_L5; + } + + /* "View.MemoryView":422 + * self.setitem_slice_assignment(self[index], obj) + * else: + * self.setitem_slice_assign_scalar(self[index], value) # <<<<<<<<<<<<<< + * else: + * self.setitem_indexed(index, value) + */ + /*else*/ { + __pyx_t_4 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_memoryview_type))))) __PYX_ERR(1, 422, __pyx_L1_error) + __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assign_scalar(__pyx_v_self, ((struct __pyx_memoryview_obj *)__pyx_t_4), __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __pyx_L5:; + + /* "View.MemoryView":417 + * have_slices, index = _unellipsify(index, self.view.ndim) + * + * if have_slices: # <<<<<<<<<<<<<< + * obj = self.is_slice(value) + * if obj: + */ + goto __pyx_L4; + } + + /* "View.MemoryView":424 + * self.setitem_slice_assign_scalar(self[index], value) + * else: + * self.setitem_indexed(index, value) # <<<<<<<<<<<<<< + * + * cdef is_slice(self, obj): + */ + /*else*/ { + __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_indexed(__pyx_v_self, __pyx_v_index, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __pyx_L4:; + + /* "View.MemoryView":411 + * return self.convert_item_to_object(itemp) + * + * def __setitem__(memoryview self, object index, object value): # <<<<<<<<<<<<<< + * if self.view.readonly: + * raise TypeError("Cannot assign to read-only memoryview") + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("View.MemoryView.memoryview.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_have_slices); + __Pyx_XDECREF(__pyx_v_obj); + __Pyx_XDECREF(__pyx_v_index); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":426 + * self.setitem_indexed(index, value) + * + * cdef is_slice(self, obj): # <<<<<<<<<<<<<< + * if not isinstance(obj, memoryview): + * try: + */ + +static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_t_9; + __Pyx_RefNannySetupContext("is_slice", 0); + __Pyx_INCREF(__pyx_v_obj); + + /* "View.MemoryView":427 + * + * cdef is_slice(self, obj): + * if not isinstance(obj, memoryview): # <<<<<<<<<<<<<< + * try: + * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_obj, __pyx_memoryview_type); + __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":428 + * cdef is_slice(self, obj): + * if not isinstance(obj, memoryview): + * try: # <<<<<<<<<<<<<< + * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, + * self.dtype_is_object) + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_4); + __Pyx_XGOTREF(__pyx_t_5); + /*try:*/ { + + /* "View.MemoryView":429 + * if not isinstance(obj, memoryview): + * try: + * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, # <<<<<<<<<<<<<< + * self.dtype_is_object) + * except TypeError: + */ + __pyx_t_6 = __Pyx_PyInt_From_int((__pyx_v_self->flags | PyBUF_ANY_CONTIGUOUS)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 429, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "View.MemoryView":430 + * try: + * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, + * self.dtype_is_object) # <<<<<<<<<<<<<< + * except TypeError: + * return None + */ + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 430, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_7); + + /* "View.MemoryView":429 + * if not isinstance(obj, memoryview): + * try: + * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, # <<<<<<<<<<<<<< + * self.dtype_is_object) + * except TypeError: + */ + __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 429, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_INCREF(__pyx_v_obj); + __Pyx_GIVEREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_obj); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7); + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 429, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF_SET(__pyx_v_obj, __pyx_t_7); + __pyx_t_7 = 0; + + /* "View.MemoryView":428 + * cdef is_slice(self, obj): + * if not isinstance(obj, memoryview): + * try: # <<<<<<<<<<<<<< + * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, + * self.dtype_is_object) + */ + } + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + goto __pyx_L9_try_end; + __pyx_L4_error:; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "View.MemoryView":431 + * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, + * self.dtype_is_object) + * except TypeError: # <<<<<<<<<<<<<< + * return None + * + */ + __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError); + if (__pyx_t_9) { + __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_6) < 0) __PYX_ERR(1, 431, __pyx_L6_except_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GOTREF(__pyx_t_6); + + /* "View.MemoryView":432 + * self.dtype_is_object) + * except TypeError: + * return None # <<<<<<<<<<<<<< + * + * return obj + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + goto __pyx_L7_except_return; + } + goto __pyx_L6_except_error; + __pyx_L6_except_error:; + + /* "View.MemoryView":428 + * cdef is_slice(self, obj): + * if not isinstance(obj, memoryview): + * try: # <<<<<<<<<<<<<< + * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, + * self.dtype_is_object) + */ + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); + goto __pyx_L1_error; + __pyx_L7_except_return:; + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); + goto __pyx_L0; + __pyx_L9_try_end:; + } + + /* "View.MemoryView":427 + * + * cdef is_slice(self, obj): + * if not isinstance(obj, memoryview): # <<<<<<<<<<<<<< + * try: + * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, + */ + } + + /* "View.MemoryView":434 + * return None + * + * return obj # <<<<<<<<<<<<<< + * + * cdef setitem_slice_assignment(self, dst, src): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_obj); + __pyx_r = __pyx_v_obj; + goto __pyx_L0; + + /* "View.MemoryView":426 + * self.setitem_indexed(index, value) + * + * cdef is_slice(self, obj): # <<<<<<<<<<<<<< + * if not isinstance(obj, memoryview): + * try: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_obj); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":436 + * return obj + * + * cdef setitem_slice_assignment(self, dst, src): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice dst_slice + * cdef __Pyx_memviewslice src_slice + */ + +static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src) { + __Pyx_memviewslice __pyx_v_dst_slice; + __Pyx_memviewslice __pyx_v_src_slice; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_RefNannySetupContext("setitem_slice_assignment", 0); + + /* "View.MemoryView":440 + * cdef __Pyx_memviewslice src_slice + * + * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], # <<<<<<<<<<<<<< + * get_slice_from_memview(dst, &dst_slice)[0], + * src.ndim, dst.ndim, self.dtype_is_object) + */ + if (!(likely(((__pyx_v_src) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_src, __pyx_memoryview_type))))) __PYX_ERR(1, 440, __pyx_L1_error) + + /* "View.MemoryView":441 + * + * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], + * get_slice_from_memview(dst, &dst_slice)[0], # <<<<<<<<<<<<<< + * src.ndim, dst.ndim, self.dtype_is_object) + * + */ + if (!(likely(((__pyx_v_dst) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_dst, __pyx_memoryview_type))))) __PYX_ERR(1, 441, __pyx_L1_error) + + /* "View.MemoryView":442 + * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], + * get_slice_from_memview(dst, &dst_slice)[0], + * src.ndim, dst.ndim, self.dtype_is_object) # <<<<<<<<<<<<<< + * + * cdef setitem_slice_assign_scalar(self, memoryview dst, value): + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_src, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 442, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dst, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 442, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "View.MemoryView":440 + * cdef __Pyx_memviewslice src_slice + * + * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], # <<<<<<<<<<<<<< + * get_slice_from_memview(dst, &dst_slice)[0], + * src.ndim, dst.ndim, self.dtype_is_object) + */ + __pyx_t_4 = __pyx_memoryview_copy_contents((__pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_src), (&__pyx_v_src_slice))[0]), (__pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_dst), (&__pyx_v_dst_slice))[0]), __pyx_t_2, __pyx_t_3, __pyx_v_self->dtype_is_object); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 440, __pyx_L1_error) + + /* "View.MemoryView":436 + * return obj + * + * cdef setitem_slice_assignment(self, dst, src): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice dst_slice + * cdef __Pyx_memviewslice src_slice + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assignment", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":444 + * src.ndim, dst.ndim, self.dtype_is_object) + * + * cdef setitem_slice_assign_scalar(self, memoryview dst, value): # <<<<<<<<<<<<<< + * cdef int array[128] + * cdef void *tmp = NULL + */ + +static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value) { + int __pyx_v_array[0x80]; + void *__pyx_v_tmp; + void *__pyx_v_item; + __Pyx_memviewslice *__pyx_v_dst_slice; + __Pyx_memviewslice __pyx_v_tmp_slice; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + __Pyx_RefNannySetupContext("setitem_slice_assign_scalar", 0); + + /* "View.MemoryView":446 + * cdef setitem_slice_assign_scalar(self, memoryview dst, value): + * cdef int array[128] + * cdef void *tmp = NULL # <<<<<<<<<<<<<< + * cdef void *item + * + */ + __pyx_v_tmp = NULL; + + /* "View.MemoryView":451 + * cdef __Pyx_memviewslice *dst_slice + * cdef __Pyx_memviewslice tmp_slice + * dst_slice = get_slice_from_memview(dst, &tmp_slice) # <<<<<<<<<<<<<< + * + * if self.view.itemsize > sizeof(array): + */ + __pyx_v_dst_slice = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_dst, (&__pyx_v_tmp_slice)); + + /* "View.MemoryView":453 + * dst_slice = get_slice_from_memview(dst, &tmp_slice) + * + * if self.view.itemsize > sizeof(array): # <<<<<<<<<<<<<< + * tmp = PyMem_Malloc(self.view.itemsize) + * if tmp == NULL: + */ + __pyx_t_1 = ((((size_t)__pyx_v_self->view.itemsize) > (sizeof(__pyx_v_array))) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":454 + * + * if self.view.itemsize > sizeof(array): + * tmp = PyMem_Malloc(self.view.itemsize) # <<<<<<<<<<<<<< + * if tmp == NULL: + * raise MemoryError + */ + __pyx_v_tmp = PyMem_Malloc(__pyx_v_self->view.itemsize); + + /* "View.MemoryView":455 + * if self.view.itemsize > sizeof(array): + * tmp = PyMem_Malloc(self.view.itemsize) + * if tmp == NULL: # <<<<<<<<<<<<<< + * raise MemoryError + * item = tmp + */ + __pyx_t_1 = ((__pyx_v_tmp == NULL) != 0); + if (unlikely(__pyx_t_1)) { + + /* "View.MemoryView":456 + * tmp = PyMem_Malloc(self.view.itemsize) + * if tmp == NULL: + * raise MemoryError # <<<<<<<<<<<<<< + * item = tmp + * else: + */ + PyErr_NoMemory(); __PYX_ERR(1, 456, __pyx_L1_error) + + /* "View.MemoryView":455 + * if self.view.itemsize > sizeof(array): + * tmp = PyMem_Malloc(self.view.itemsize) + * if tmp == NULL: # <<<<<<<<<<<<<< + * raise MemoryError + * item = tmp + */ + } + + /* "View.MemoryView":457 + * if tmp == NULL: + * raise MemoryError + * item = tmp # <<<<<<<<<<<<<< + * else: + * item = array + */ + __pyx_v_item = __pyx_v_tmp; + + /* "View.MemoryView":453 + * dst_slice = get_slice_from_memview(dst, &tmp_slice) + * + * if self.view.itemsize > sizeof(array): # <<<<<<<<<<<<<< + * tmp = PyMem_Malloc(self.view.itemsize) + * if tmp == NULL: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":459 + * item = tmp + * else: + * item = array # <<<<<<<<<<<<<< + * + * try: + */ + /*else*/ { + __pyx_v_item = ((void *)__pyx_v_array); + } + __pyx_L3:; + + /* "View.MemoryView":461 + * item = array + * + * try: # <<<<<<<<<<<<<< + * if self.dtype_is_object: + * ( item)[0] = value + */ + /*try:*/ { + + /* "View.MemoryView":462 + * + * try: + * if self.dtype_is_object: # <<<<<<<<<<<<<< + * ( item)[0] = value + * else: + */ + __pyx_t_1 = (__pyx_v_self->dtype_is_object != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":463 + * try: + * if self.dtype_is_object: + * ( item)[0] = value # <<<<<<<<<<<<<< + * else: + * self.assign_item_from_object( item, value) + */ + (((PyObject **)__pyx_v_item)[0]) = ((PyObject *)__pyx_v_value); + + /* "View.MemoryView":462 + * + * try: + * if self.dtype_is_object: # <<<<<<<<<<<<<< + * ( item)[0] = value + * else: + */ + goto __pyx_L8; + } + + /* "View.MemoryView":465 + * ( item)[0] = value + * else: + * self.assign_item_from_object( item, value) # <<<<<<<<<<<<<< + * + * + */ + /*else*/ { + __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, ((char *)__pyx_v_item), __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 465, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __pyx_L8:; + + /* "View.MemoryView":469 + * + * + * if self.view.suboffsets != NULL: # <<<<<<<<<<<<<< + * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) + * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, + */ + __pyx_t_1 = ((__pyx_v_self->view.suboffsets != NULL) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":470 + * + * if self.view.suboffsets != NULL: + * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) # <<<<<<<<<<<<<< + * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, + * item, self.dtype_is_object) + */ + __pyx_t_2 = assert_direct_dimensions(__pyx_v_self->view.suboffsets, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 470, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "View.MemoryView":469 + * + * + * if self.view.suboffsets != NULL: # <<<<<<<<<<<<<< + * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) + * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, + */ + } + + /* "View.MemoryView":471 + * if self.view.suboffsets != NULL: + * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) + * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, # <<<<<<<<<<<<<< + * item, self.dtype_is_object) + * finally: + */ + __pyx_memoryview_slice_assign_scalar(__pyx_v_dst_slice, __pyx_v_dst->view.ndim, __pyx_v_self->view.itemsize, __pyx_v_item, __pyx_v_self->dtype_is_object); + } + + /* "View.MemoryView":474 + * item, self.dtype_is_object) + * finally: + * PyMem_Free(tmp) # <<<<<<<<<<<<<< + * + * cdef setitem_indexed(self, index, value): + */ + /*finally:*/ { + /*normal exit:*/{ + PyMem_Free(__pyx_v_tmp); + goto __pyx_L7; + } + __pyx_L6_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + PyMem_Free(__pyx_v_tmp); + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + } + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; + } + __pyx_L7:; + } + + /* "View.MemoryView":444 + * src.ndim, dst.ndim, self.dtype_is_object) + * + * cdef setitem_slice_assign_scalar(self, memoryview dst, value): # <<<<<<<<<<<<<< + * cdef int array[128] + * cdef void *tmp = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assign_scalar", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":476 + * PyMem_Free(tmp) + * + * cdef setitem_indexed(self, index, value): # <<<<<<<<<<<<<< + * cdef char *itemp = self.get_item_pointer(index) + * self.assign_item_from_object(itemp, value) + */ + +static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { + char *__pyx_v_itemp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + char *__pyx_t_1; + PyObject *__pyx_t_2 = NULL; + __Pyx_RefNannySetupContext("setitem_indexed", 0); + + /* "View.MemoryView":477 + * + * cdef setitem_indexed(self, index, value): + * cdef char *itemp = self.get_item_pointer(index) # <<<<<<<<<<<<<< + * self.assign_item_from_object(itemp, value) + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_index); if (unlikely(__pyx_t_1 == ((char *)NULL))) __PYX_ERR(1, 477, __pyx_L1_error) + __pyx_v_itemp = __pyx_t_1; + + /* "View.MemoryView":478 + * cdef setitem_indexed(self, index, value): + * cdef char *itemp = self.get_item_pointer(index) + * self.assign_item_from_object(itemp, value) # <<<<<<<<<<<<<< + * + * cdef convert_item_to_object(self, char *itemp): + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 478, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "View.MemoryView":476 + * PyMem_Free(tmp) + * + * cdef setitem_indexed(self, index, value): # <<<<<<<<<<<<<< + * cdef char *itemp = self.get_item_pointer(index) + * self.assign_item_from_object(itemp, value) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_indexed", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":480 + * self.assign_item_from_object(itemp, value) + * + * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< + * """Only used if instantiated manually by the user, or if Cython doesn't + * know how to convert the type""" + */ + +static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp) { + PyObject *__pyx_v_struct = NULL; + PyObject *__pyx_v_bytesitem = 0; + PyObject *__pyx_v_result = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + size_t __pyx_t_10; + int __pyx_t_11; + __Pyx_RefNannySetupContext("convert_item_to_object", 0); + + /* "View.MemoryView":483 + * """Only used if instantiated manually by the user, or if Cython doesn't + * know how to convert the type""" + * import struct # <<<<<<<<<<<<<< + * cdef bytes bytesitem + * + */ + __pyx_t_1 = __Pyx_Import(__pyx_n_s_struct, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 483, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_struct = __pyx_t_1; + __pyx_t_1 = 0; + + /* "View.MemoryView":486 + * cdef bytes bytesitem + * + * bytesitem = itemp[:self.view.itemsize] # <<<<<<<<<<<<<< + * try: + * result = struct.unpack(self.view.format, bytesitem) + */ + __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_itemp + 0, __pyx_v_self->view.itemsize - 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_bytesitem = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + /* "View.MemoryView":487 + * + * bytesitem = itemp[:self.view.itemsize] + * try: # <<<<<<<<<<<<<< + * result = struct.unpack(self.view.format, bytesitem) + * except struct.error: + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_4); + /*try:*/ { + + /* "View.MemoryView":488 + * bytesitem = itemp[:self.view.itemsize] + * try: + * result = struct.unpack(self.view.format, bytesitem) # <<<<<<<<<<<<<< + * except struct.error: + * raise ValueError("Unable to convert item to object") + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_unpack); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 488, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 488, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = NULL; + __pyx_t_8 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + __pyx_t_8 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_v_bytesitem}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 488, __pyx_L3_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_v_bytesitem}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 488, __pyx_L3_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 488, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_6); + __Pyx_INCREF(__pyx_v_bytesitem); + __Pyx_GIVEREF(__pyx_v_bytesitem); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_bytesitem); + __pyx_t_6 = 0; + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 488, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_result = __pyx_t_1; + __pyx_t_1 = 0; + + /* "View.MemoryView":487 + * + * bytesitem = itemp[:self.view.itemsize] + * try: # <<<<<<<<<<<<<< + * result = struct.unpack(self.view.format, bytesitem) + * except struct.error: + */ + } + + /* "View.MemoryView":492 + * raise ValueError("Unable to convert item to object") + * else: + * if len(self.view.format) == 1: # <<<<<<<<<<<<<< + * return result[0] + * return result + */ + /*else:*/ { + __pyx_t_10 = strlen(__pyx_v_self->view.format); + __pyx_t_11 = ((__pyx_t_10 == 1) != 0); + if (__pyx_t_11) { + + /* "View.MemoryView":493 + * else: + * if len(self.view.format) == 1: + * return result[0] # <<<<<<<<<<<<<< + * return result + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_result, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 493, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L6_except_return; + + /* "View.MemoryView":492 + * raise ValueError("Unable to convert item to object") + * else: + * if len(self.view.format) == 1: # <<<<<<<<<<<<<< + * return result[0] + * return result + */ + } + + /* "View.MemoryView":494 + * if len(self.view.format) == 1: + * return result[0] + * return result # <<<<<<<<<<<<<< + * + * cdef assign_item_from_object(self, char *itemp, object value): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_result); + __pyx_r = __pyx_v_result; + goto __pyx_L6_except_return; + } + __pyx_L3_error:; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "View.MemoryView":489 + * try: + * result = struct.unpack(self.view.format, bytesitem) + * except struct.error: # <<<<<<<<<<<<<< + * raise ValueError("Unable to convert item to object") + * else: + */ + __Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_5, &__pyx_t_9); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_error); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 489, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_6); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_ErrRestore(__pyx_t_1, __pyx_t_5, __pyx_t_9); + __pyx_t_1 = 0; __pyx_t_5 = 0; __pyx_t_9 = 0; + if (__pyx_t_8) { + __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_5, &__pyx_t_1) < 0) __PYX_ERR(1, 489, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GOTREF(__pyx_t_1); + + /* "View.MemoryView":490 + * result = struct.unpack(self.view.format, bytesitem) + * except struct.error: + * raise ValueError("Unable to convert item to object") # <<<<<<<<<<<<<< + * else: + * if len(self.view.format) == 1: + */ + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 490, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_Raise(__pyx_t_6, 0, 0, 0); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __PYX_ERR(1, 490, __pyx_L5_except_error) + } + goto __pyx_L5_except_error; + __pyx_L5_except_error:; + + /* "View.MemoryView":487 + * + * bytesitem = itemp[:self.view.itemsize] + * try: # <<<<<<<<<<<<<< + * result = struct.unpack(self.view.format, bytesitem) + * except struct.error: + */ + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); + goto __pyx_L1_error; + __pyx_L6_except_return:; + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); + goto __pyx_L0; + } + + /* "View.MemoryView":480 + * self.assign_item_from_object(itemp, value) + * + * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< + * """Only used if instantiated manually by the user, or if Cython doesn't + * know how to convert the type""" + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_struct); + __Pyx_XDECREF(__pyx_v_bytesitem); + __Pyx_XDECREF(__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":496 + * return result + * + * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< + * """Only used if instantiated manually by the user, or if Cython doesn't + * know how to convert the type""" + */ + +static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) { + PyObject *__pyx_v_struct = NULL; + char __pyx_v_c; + PyObject *__pyx_v_bytesvalue = 0; + Py_ssize_t __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + Py_ssize_t __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + char *__pyx_t_11; + char *__pyx_t_12; + char *__pyx_t_13; + char *__pyx_t_14; + __Pyx_RefNannySetupContext("assign_item_from_object", 0); + + /* "View.MemoryView":499 + * """Only used if instantiated manually by the user, or if Cython doesn't + * know how to convert the type""" + * import struct # <<<<<<<<<<<<<< + * cdef char c + * cdef bytes bytesvalue + */ + __pyx_t_1 = __Pyx_Import(__pyx_n_s_struct, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_struct = __pyx_t_1; + __pyx_t_1 = 0; + + /* "View.MemoryView":504 + * cdef Py_ssize_t i + * + * if isinstance(value, tuple): # <<<<<<<<<<<<<< + * bytesvalue = struct.pack(self.view.format, *value) + * else: + */ + __pyx_t_2 = PyTuple_Check(__pyx_v_value); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "View.MemoryView":505 + * + * if isinstance(value, tuple): + * bytesvalue = struct.pack(self.view.format, *value) # <<<<<<<<<<<<<< + * else: + * bytesvalue = struct.pack(self.view.format, value) + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_v_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(1, 505, __pyx_L1_error) + __pyx_v_bytesvalue = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "View.MemoryView":504 + * cdef Py_ssize_t i + * + * if isinstance(value, tuple): # <<<<<<<<<<<<<< + * bytesvalue = struct.pack(self.view.format, *value) + * else: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":507 + * bytesvalue = struct.pack(self.view.format, *value) + * else: + * bytesvalue = struct.pack(self.view.format, value) # <<<<<<<<<<<<<< + * + * for i, c in enumerate(bytesvalue): + */ + /*else*/ { + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = NULL; + __pyx_t_7 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); + __pyx_t_7 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_1, __pyx_v_value}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 507, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_1, __pyx_v_value}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 507, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else + #endif + { + __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__pyx_t_5) { + __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_1); + __Pyx_INCREF(__pyx_v_value); + __Pyx_GIVEREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_value); + __pyx_t_1 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(1, 507, __pyx_L1_error) + __pyx_v_bytesvalue = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + } + __pyx_L3:; + + /* "View.MemoryView":509 + * bytesvalue = struct.pack(self.view.format, value) + * + * for i, c in enumerate(bytesvalue): # <<<<<<<<<<<<<< + * itemp[i] = c + * + */ + __pyx_t_9 = 0; + if (unlikely(__pyx_v_bytesvalue == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' is not iterable"); + __PYX_ERR(1, 509, __pyx_L1_error) + } + __Pyx_INCREF(__pyx_v_bytesvalue); + __pyx_t_10 = __pyx_v_bytesvalue; + __pyx_t_12 = PyBytes_AS_STRING(__pyx_t_10); + __pyx_t_13 = (__pyx_t_12 + PyBytes_GET_SIZE(__pyx_t_10)); + for (__pyx_t_14 = __pyx_t_12; __pyx_t_14 < __pyx_t_13; __pyx_t_14++) { + __pyx_t_11 = __pyx_t_14; + __pyx_v_c = (__pyx_t_11[0]); + + /* "View.MemoryView":510 + * + * for i, c in enumerate(bytesvalue): + * itemp[i] = c # <<<<<<<<<<<<<< + * + * @cname('getbuffer') + */ + __pyx_v_i = __pyx_t_9; + + /* "View.MemoryView":509 + * bytesvalue = struct.pack(self.view.format, value) + * + * for i, c in enumerate(bytesvalue): # <<<<<<<<<<<<<< + * itemp[i] = c + * + */ + __pyx_t_9 = (__pyx_t_9 + 1); + + /* "View.MemoryView":510 + * + * for i, c in enumerate(bytesvalue): + * itemp[i] = c # <<<<<<<<<<<<<< + * + * @cname('getbuffer') + */ + (__pyx_v_itemp[__pyx_v_i]) = __pyx_v_c; + } + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + + /* "View.MemoryView":496 + * return result + * + * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< + * """Only used if instantiated manually by the user, or if Cython doesn't + * know how to convert the type""" + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("View.MemoryView.memoryview.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_struct); + __Pyx_XDECREF(__pyx_v_bytesvalue); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":513 + * + * @cname('getbuffer') + * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< + * if flags & PyBUF_WRITABLE and self.view.readonly: + * raise ValueError("Cannot create writable memory view from read-only memoryview") + */ + +/* Python wrapper */ +static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ +static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + Py_ssize_t *__pyx_t_4; + char *__pyx_t_5; + void *__pyx_t_6; + int __pyx_t_7; + Py_ssize_t __pyx_t_8; + if (__pyx_v_info == NULL) { + PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); + return -1; + } + __Pyx_RefNannySetupContext("__getbuffer__", 0); + __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(__pyx_v_info->obj); + + /* "View.MemoryView":514 + * @cname('getbuffer') + * def __getbuffer__(self, Py_buffer *info, int flags): + * if flags & PyBUF_WRITABLE and self.view.readonly: # <<<<<<<<<<<<<< + * raise ValueError("Cannot create writable memory view from read-only memoryview") + * + */ + __pyx_t_2 = ((__pyx_v_flags & PyBUF_WRITABLE) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_2 = (__pyx_v_self->view.readonly != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (unlikely(__pyx_t_1)) { + + /* "View.MemoryView":515 + * def __getbuffer__(self, Py_buffer *info, int flags): + * if flags & PyBUF_WRITABLE and self.view.readonly: + * raise ValueError("Cannot create writable memory view from read-only memoryview") # <<<<<<<<<<<<<< + * + * if flags & PyBUF_STRIDES: + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 515, __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, 515, __pyx_L1_error) + + /* "View.MemoryView":514 + * @cname('getbuffer') + * def __getbuffer__(self, Py_buffer *info, int flags): + * if flags & PyBUF_WRITABLE and self.view.readonly: # <<<<<<<<<<<<<< + * raise ValueError("Cannot create writable memory view from read-only memoryview") + * + */ + } + + /* "View.MemoryView":517 + * raise ValueError("Cannot create writable memory view from read-only memoryview") + * + * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< + * info.shape = self.view.shape + * else: + */ + __pyx_t_1 = ((__pyx_v_flags & PyBUF_STRIDES) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":518 + * + * if flags & PyBUF_STRIDES: + * info.shape = self.view.shape # <<<<<<<<<<<<<< + * else: + * info.shape = NULL + */ + __pyx_t_4 = __pyx_v_self->view.shape; + __pyx_v_info->shape = __pyx_t_4; + + /* "View.MemoryView":517 + * raise ValueError("Cannot create writable memory view from read-only memoryview") + * + * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< + * info.shape = self.view.shape + * else: + */ + goto __pyx_L6; + } + + /* "View.MemoryView":520 + * info.shape = self.view.shape + * else: + * info.shape = NULL # <<<<<<<<<<<<<< + * + * if flags & PyBUF_STRIDES: + */ + /*else*/ { + __pyx_v_info->shape = NULL; + } + __pyx_L6:; + + /* "View.MemoryView":522 + * info.shape = NULL + * + * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< + * info.strides = self.view.strides + * else: + */ + __pyx_t_1 = ((__pyx_v_flags & PyBUF_STRIDES) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":523 + * + * if flags & PyBUF_STRIDES: + * info.strides = self.view.strides # <<<<<<<<<<<<<< + * else: + * info.strides = NULL + */ + __pyx_t_4 = __pyx_v_self->view.strides; + __pyx_v_info->strides = __pyx_t_4; + + /* "View.MemoryView":522 + * info.shape = NULL + * + * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< + * info.strides = self.view.strides + * else: + */ + goto __pyx_L7; + } + + /* "View.MemoryView":525 + * info.strides = self.view.strides + * else: + * info.strides = NULL # <<<<<<<<<<<<<< + * + * if flags & PyBUF_INDIRECT: + */ + /*else*/ { + __pyx_v_info->strides = NULL; + } + __pyx_L7:; + + /* "View.MemoryView":527 + * info.strides = NULL + * + * if flags & PyBUF_INDIRECT: # <<<<<<<<<<<<<< + * info.suboffsets = self.view.suboffsets + * else: + */ + __pyx_t_1 = ((__pyx_v_flags & PyBUF_INDIRECT) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":528 + * + * if flags & PyBUF_INDIRECT: + * info.suboffsets = self.view.suboffsets # <<<<<<<<<<<<<< + * else: + * info.suboffsets = NULL + */ + __pyx_t_4 = __pyx_v_self->view.suboffsets; + __pyx_v_info->suboffsets = __pyx_t_4; + + /* "View.MemoryView":527 + * info.strides = NULL + * + * if flags & PyBUF_INDIRECT: # <<<<<<<<<<<<<< + * info.suboffsets = self.view.suboffsets + * else: + */ + goto __pyx_L8; + } + + /* "View.MemoryView":530 + * info.suboffsets = self.view.suboffsets + * else: + * info.suboffsets = NULL # <<<<<<<<<<<<<< + * + * if flags & PyBUF_FORMAT: + */ + /*else*/ { + __pyx_v_info->suboffsets = NULL; + } + __pyx_L8:; + + /* "View.MemoryView":532 + * info.suboffsets = NULL + * + * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< + * info.format = self.view.format + * else: + */ + __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":533 + * + * if flags & PyBUF_FORMAT: + * info.format = self.view.format # <<<<<<<<<<<<<< + * else: + * info.format = NULL + */ + __pyx_t_5 = __pyx_v_self->view.format; + __pyx_v_info->format = __pyx_t_5; + + /* "View.MemoryView":532 + * info.suboffsets = NULL + * + * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< + * info.format = self.view.format + * else: + */ + goto __pyx_L9; + } + + /* "View.MemoryView":535 + * info.format = self.view.format + * else: + * info.format = NULL # <<<<<<<<<<<<<< + * + * info.buf = self.view.buf + */ + /*else*/ { + __pyx_v_info->format = NULL; + } + __pyx_L9:; + + /* "View.MemoryView":537 + * info.format = NULL + * + * info.buf = self.view.buf # <<<<<<<<<<<<<< + * info.ndim = self.view.ndim + * info.itemsize = self.view.itemsize + */ + __pyx_t_6 = __pyx_v_self->view.buf; + __pyx_v_info->buf = __pyx_t_6; + + /* "View.MemoryView":538 + * + * info.buf = self.view.buf + * info.ndim = self.view.ndim # <<<<<<<<<<<<<< + * info.itemsize = self.view.itemsize + * info.len = self.view.len + */ + __pyx_t_7 = __pyx_v_self->view.ndim; + __pyx_v_info->ndim = __pyx_t_7; + + /* "View.MemoryView":539 + * info.buf = self.view.buf + * info.ndim = self.view.ndim + * info.itemsize = self.view.itemsize # <<<<<<<<<<<<<< + * info.len = self.view.len + * info.readonly = self.view.readonly + */ + __pyx_t_8 = __pyx_v_self->view.itemsize; + __pyx_v_info->itemsize = __pyx_t_8; + + /* "View.MemoryView":540 + * info.ndim = self.view.ndim + * info.itemsize = self.view.itemsize + * info.len = self.view.len # <<<<<<<<<<<<<< + * info.readonly = self.view.readonly + * info.obj = self + */ + __pyx_t_8 = __pyx_v_self->view.len; + __pyx_v_info->len = __pyx_t_8; + + /* "View.MemoryView":541 + * info.itemsize = self.view.itemsize + * info.len = self.view.len + * info.readonly = self.view.readonly # <<<<<<<<<<<<<< + * info.obj = self + * + */ + __pyx_t_1 = __pyx_v_self->view.readonly; + __pyx_v_info->readonly = __pyx_t_1; + + /* "View.MemoryView":542 + * info.len = self.view.len + * info.readonly = self.view.readonly + * info.obj = self # <<<<<<<<<<<<<< + * + * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") + */ + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); + __Pyx_GOTREF(__pyx_v_info->obj); + __Pyx_DECREF(__pyx_v_info->obj); + __pyx_v_info->obj = ((PyObject *)__pyx_v_self); + + /* "View.MemoryView":513 + * + * @cname('getbuffer') + * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< + * if flags & PyBUF_WRITABLE and self.view.readonly: + * raise ValueError("Cannot create writable memory view from read-only memoryview") + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.memoryview.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + if (__pyx_v_info->obj != NULL) { + __Pyx_GOTREF(__pyx_v_info->obj); + __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; + } + goto __pyx_L2; + __pyx_L0:; + if (__pyx_v_info->obj == Py_None) { + __Pyx_GOTREF(__pyx_v_info->obj); + __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; + } + __pyx_L2:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":548 + * + * @property + * def T(self): # <<<<<<<<<<<<<< + * cdef _memoryviewslice result = memoryview_copy(self) + * transpose_memslice(&result.from_slice) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + struct __pyx_memoryviewslice_obj *__pyx_v_result = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":549 + * @property + * def T(self): + * cdef _memoryviewslice result = memoryview_copy(self) # <<<<<<<<<<<<<< + * transpose_memslice(&result.from_slice) + * return result + */ + __pyx_t_1 = __pyx_memoryview_copy_object(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 549, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_memoryviewslice_type))))) __PYX_ERR(1, 549, __pyx_L1_error) + __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "View.MemoryView":550 + * def T(self): + * cdef _memoryviewslice result = memoryview_copy(self) + * transpose_memslice(&result.from_slice) # <<<<<<<<<<<<<< + * return result + * + */ + __pyx_t_2 = __pyx_memslice_transpose((&__pyx_v_result->from_slice)); if (unlikely(__pyx_t_2 == ((int)0))) __PYX_ERR(1, 550, __pyx_L1_error) + + /* "View.MemoryView":551 + * cdef _memoryviewslice result = memoryview_copy(self) + * transpose_memslice(&result.from_slice) + * return result # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "View.MemoryView":548 + * + * @property + * def T(self): # <<<<<<<<<<<<<< + * cdef _memoryviewslice result = memoryview_copy(self) + * transpose_memslice(&result.from_slice) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.memoryview.T.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":554 + * + * @property + * def base(self): # <<<<<<<<<<<<<< + * return self.obj + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":555 + * @property + * def base(self): + * return self.obj # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->obj); + __pyx_r = __pyx_v_self->obj; + goto __pyx_L0; + + /* "View.MemoryView":554 + * + * @property + * def base(self): # <<<<<<<<<<<<<< + * return self.obj + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":558 + * + * @property + * def shape(self): # <<<<<<<<<<<<<< + * return tuple([length for length in self.view.shape[:self.view.ndim]]) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + Py_ssize_t __pyx_v_length; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + Py_ssize_t *__pyx_t_2; + Py_ssize_t *__pyx_t_3; + Py_ssize_t *__pyx_t_4; + PyObject *__pyx_t_5 = NULL; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":559 + * @property + * def shape(self): + * return tuple([length for length in self.view.shape[:self.view.ndim]]) # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim); + for (__pyx_t_4 = __pyx_v_self->view.shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) { + __pyx_t_2 = __pyx_t_4; + __pyx_v_length = (__pyx_t_2[0]); + __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_length); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(1, 559, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __pyx_t_5 = PyList_AsTuple(((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "View.MemoryView":558 + * + * @property + * def shape(self): # <<<<<<<<<<<<<< + * return tuple([length for length in self.view.shape[:self.view.ndim]]) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView.memoryview.shape.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":562 + * + * @property + * def strides(self): # <<<<<<<<<<<<<< + * if self.view.strides == NULL: + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + Py_ssize_t __pyx_v_stride; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + Py_ssize_t *__pyx_t_3; + Py_ssize_t *__pyx_t_4; + Py_ssize_t *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":563 + * @property + * def strides(self): + * if self.view.strides == NULL: # <<<<<<<<<<<<<< + * + * raise ValueError("Buffer view does not expose strides") + */ + __pyx_t_1 = ((__pyx_v_self->view.strides == NULL) != 0); + if (unlikely(__pyx_t_1)) { + + /* "View.MemoryView":565 + * if self.view.strides == NULL: + * + * raise ValueError("Buffer view does not expose strides") # <<<<<<<<<<<<<< + * + * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) + */ + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 565, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(1, 565, __pyx_L1_error) + + /* "View.MemoryView":563 + * @property + * def strides(self): + * if self.view.strides == NULL: # <<<<<<<<<<<<<< + * + * raise ValueError("Buffer view does not expose strides") + */ + } + + /* "View.MemoryView":567 + * raise ValueError("Buffer view does not expose strides") + * + * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = (__pyx_v_self->view.strides + __pyx_v_self->view.ndim); + for (__pyx_t_5 = __pyx_v_self->view.strides; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) { + __pyx_t_3 = __pyx_t_5; + __pyx_v_stride = (__pyx_t_3[0]); + __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_stride); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_6))) __PYX_ERR(1, 567, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __pyx_t_6 = PyList_AsTuple(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_6; + __pyx_t_6 = 0; + goto __pyx_L0; + + /* "View.MemoryView":562 + * + * @property + * def strides(self): # <<<<<<<<<<<<<< + * if self.view.strides == NULL: + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("View.MemoryView.memoryview.strides.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":570 + * + * @property + * def suboffsets(self): # <<<<<<<<<<<<<< + * if self.view.suboffsets == NULL: + * return (-1,) * self.view.ndim + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + Py_ssize_t __pyx_v_suboffset; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + Py_ssize_t *__pyx_t_4; + Py_ssize_t *__pyx_t_5; + Py_ssize_t *__pyx_t_6; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":571 + * @property + * def suboffsets(self): + * if self.view.suboffsets == NULL: # <<<<<<<<<<<<<< + * return (-1,) * self.view.ndim + * + */ + __pyx_t_1 = ((__pyx_v_self->view.suboffsets == NULL) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":572 + * def suboffsets(self): + * if self.view.suboffsets == NULL: + * return (-1,) * self.view.ndim # <<<<<<<<<<<<<< + * + * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyNumber_Multiply(__pyx_tuple__12, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "View.MemoryView":571 + * @property + * def suboffsets(self): + * if self.view.suboffsets == NULL: # <<<<<<<<<<<<<< + * return (-1,) * self.view.ndim + * + */ + } + + /* "View.MemoryView":574 + * return (-1,) * self.view.ndim + * + * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = (__pyx_v_self->view.suboffsets + __pyx_v_self->view.ndim); + for (__pyx_t_6 = __pyx_v_self->view.suboffsets; __pyx_t_6 < __pyx_t_5; __pyx_t_6++) { + __pyx_t_4 = __pyx_t_6; + __pyx_v_suboffset = (__pyx_t_4[0]); + __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_suboffset); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_2))) __PYX_ERR(1, 574, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __pyx_t_2 = PyList_AsTuple(((PyObject*)__pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":570 + * + * @property + * def suboffsets(self): # <<<<<<<<<<<<<< + * if self.view.suboffsets == NULL: + * return (-1,) * self.view.ndim + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.memoryview.suboffsets.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":577 + * + * @property + * def ndim(self): # <<<<<<<<<<<<<< + * return self.view.ndim + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":578 + * @property + * def ndim(self): + * return self.view.ndim # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "View.MemoryView":577 + * + * @property + * def ndim(self): # <<<<<<<<<<<<<< + * return self.view.ndim + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.memoryview.ndim.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":581 + * + * @property + * def itemsize(self): # <<<<<<<<<<<<<< + * return self.view.itemsize + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":582 + * @property + * def itemsize(self): + * return self.view.itemsize # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "View.MemoryView":581 + * + * @property + * def itemsize(self): # <<<<<<<<<<<<<< + * return self.view.itemsize + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.memoryview.itemsize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":585 + * + * @property + * def nbytes(self): # <<<<<<<<<<<<<< + * return self.size * self.view.itemsize + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":586 + * @property + * def nbytes(self): + * return self.size * self.view.itemsize # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "View.MemoryView":585 + * + * @property + * def nbytes(self): # <<<<<<<<<<<<<< + * return self.size * self.view.itemsize + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.memoryview.nbytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":589 + * + * @property + * def size(self): # <<<<<<<<<<<<<< + * if self._size is None: + * result = 1 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_v_result = NULL; + PyObject *__pyx_v_length = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Py_ssize_t *__pyx_t_3; + Py_ssize_t *__pyx_t_4; + Py_ssize_t *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":590 + * @property + * def size(self): + * if self._size is None: # <<<<<<<<<<<<<< + * result = 1 + * + */ + __pyx_t_1 = (__pyx_v_self->_size == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":591 + * def size(self): + * if self._size is None: + * result = 1 # <<<<<<<<<<<<<< + * + * for length in self.view.shape[:self.view.ndim]: + */ + __Pyx_INCREF(__pyx_int_1); + __pyx_v_result = __pyx_int_1; + + /* "View.MemoryView":593 + * result = 1 + * + * for length in self.view.shape[:self.view.ndim]: # <<<<<<<<<<<<<< + * result *= length + * + */ + __pyx_t_4 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim); + for (__pyx_t_5 = __pyx_v_self->view.shape; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) { + __pyx_t_3 = __pyx_t_5; + __pyx_t_6 = PyInt_FromSsize_t((__pyx_t_3[0])); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 593, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_6); + __pyx_t_6 = 0; + + /* "View.MemoryView":594 + * + * for length in self.view.shape[:self.view.ndim]: + * result *= length # <<<<<<<<<<<<<< + * + * self._size = result + */ + __pyx_t_6 = PyNumber_InPlaceMultiply(__pyx_v_result, __pyx_v_length); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 594, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_6); + __pyx_t_6 = 0; + } + + /* "View.MemoryView":596 + * result *= length + * + * self._size = result # <<<<<<<<<<<<<< + * + * return self._size + */ + __Pyx_INCREF(__pyx_v_result); + __Pyx_GIVEREF(__pyx_v_result); + __Pyx_GOTREF(__pyx_v_self->_size); + __Pyx_DECREF(__pyx_v_self->_size); + __pyx_v_self->_size = __pyx_v_result; + + /* "View.MemoryView":590 + * @property + * def size(self): + * if self._size is None: # <<<<<<<<<<<<<< + * result = 1 + * + */ + } + + /* "View.MemoryView":598 + * self._size = result + * + * return self._size # <<<<<<<<<<<<<< + * + * def __len__(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->_size); + __pyx_r = __pyx_v_self->_size; + goto __pyx_L0; + + /* "View.MemoryView":589 + * + * @property + * def size(self): # <<<<<<<<<<<<<< + * if self._size is None: + * result = 1 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("View.MemoryView.memoryview.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_result); + __Pyx_XDECREF(__pyx_v_length); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":600 + * return self._size + * + * def __len__(self): # <<<<<<<<<<<<<< + * if self.view.ndim >= 1: + * return self.view.shape[0] + */ + +/* Python wrapper */ +static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self); /*proto*/ +static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self) { + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self) { + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + __Pyx_RefNannySetupContext("__len__", 0); + + /* "View.MemoryView":601 + * + * def __len__(self): + * if self.view.ndim >= 1: # <<<<<<<<<<<<<< + * return self.view.shape[0] + * + */ + __pyx_t_1 = ((__pyx_v_self->view.ndim >= 1) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":602 + * def __len__(self): + * if self.view.ndim >= 1: + * return self.view.shape[0] # <<<<<<<<<<<<<< + * + * return 0 + */ + __pyx_r = (__pyx_v_self->view.shape[0]); + goto __pyx_L0; + + /* "View.MemoryView":601 + * + * def __len__(self): + * if self.view.ndim >= 1: # <<<<<<<<<<<<<< + * return self.view.shape[0] + * + */ + } + + /* "View.MemoryView":604 + * return self.view.shape[0] + * + * return 0 # <<<<<<<<<<<<<< + * + * def __repr__(self): + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "View.MemoryView":600 + * return self._size + * + * def __len__(self): # <<<<<<<<<<<<<< + * if self.view.ndim >= 1: + * return self.view.shape[0] + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":606 + * return 0 + * + * def __repr__(self): # <<<<<<<<<<<<<< + * return "" % (self.base.__class__.__name__, + * id(self)) + */ + +/* Python wrapper */ +static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + __Pyx_RefNannySetupContext("__repr__", 0); + + /* "View.MemoryView":607 + * + * def __repr__(self): + * return "" % (self.base.__class__.__name__, # <<<<<<<<<<<<<< + * id(self)) + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "View.MemoryView":608 + * def __repr__(self): + * return "" % (self.base.__class__.__name__, + * id(self)) # <<<<<<<<<<<<<< + * + * def __str__(self): + */ + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 608, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "View.MemoryView":607 + * + * def __repr__(self): + * return "" % (self.base.__class__.__name__, # <<<<<<<<<<<<<< + * id(self)) + * + */ + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":606 + * return 0 + * + * def __repr__(self): # <<<<<<<<<<<<<< + * return "" % (self.base.__class__.__name__, + * id(self)) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.memoryview.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":610 + * id(self)) + * + * def __str__(self): # <<<<<<<<<<<<<< + * return "" % (self.base.__class__.__name__,) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + __Pyx_RefNannySetupContext("__str__", 0); + + /* "View.MemoryView":611 + * + * def __str__(self): + * return "" % (self.base.__class__.__name__,) # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_object, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "View.MemoryView":610 + * id(self)) + * + * def __str__(self): # <<<<<<<<<<<<<< + * return "" % (self.base.__class__.__name__,) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView.memoryview.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":614 + * + * + * def is_c_contig(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice *mslice + * cdef __Pyx_memviewslice tmp + */ + +/* Python wrapper */ +static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("is_c_contig (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self) { + __Pyx_memviewslice *__pyx_v_mslice; + __Pyx_memviewslice __pyx_v_tmp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("is_c_contig", 0); + + /* "View.MemoryView":617 + * cdef __Pyx_memviewslice *mslice + * cdef __Pyx_memviewslice tmp + * mslice = get_slice_from_memview(self, &tmp) # <<<<<<<<<<<<<< + * return slice_is_contig(mslice[0], 'C', self.view.ndim) + * + */ + __pyx_v_mslice = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); + + /* "View.MemoryView":618 + * cdef __Pyx_memviewslice tmp + * mslice = get_slice_from_memview(self, &tmp) + * return slice_is_contig(mslice[0], 'C', self.view.ndim) # <<<<<<<<<<<<<< + * + * def is_f_contig(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'C', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "View.MemoryView":614 + * + * + * def is_c_contig(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice *mslice + * cdef __Pyx_memviewslice tmp + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.memoryview.is_c_contig", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":620 + * return slice_is_contig(mslice[0], 'C', self.view.ndim) + * + * def is_f_contig(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice *mslice + * cdef __Pyx_memviewslice tmp + */ + +/* Python wrapper */ +static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("is_f_contig (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self) { + __Pyx_memviewslice *__pyx_v_mslice; + __Pyx_memviewslice __pyx_v_tmp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("is_f_contig", 0); + + /* "View.MemoryView":623 + * cdef __Pyx_memviewslice *mslice + * cdef __Pyx_memviewslice tmp + * mslice = get_slice_from_memview(self, &tmp) # <<<<<<<<<<<<<< + * return slice_is_contig(mslice[0], 'F', self.view.ndim) + * + */ + __pyx_v_mslice = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); + + /* "View.MemoryView":624 + * cdef __Pyx_memviewslice tmp + * mslice = get_slice_from_memview(self, &tmp) + * return slice_is_contig(mslice[0], 'F', self.view.ndim) # <<<<<<<<<<<<<< + * + * def copy(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'F', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 624, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "View.MemoryView":620 + * return slice_is_contig(mslice[0], 'C', self.view.ndim) + * + * def is_f_contig(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice *mslice + * cdef __Pyx_memviewslice tmp + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.memoryview.is_f_contig", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":626 + * return slice_is_contig(mslice[0], 'F', self.view.ndim) + * + * def copy(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice mslice + * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS + */ + +/* Python wrapper */ +static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self) { + __Pyx_memviewslice __pyx_v_mslice; + int __pyx_v_flags; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_memviewslice __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + __Pyx_RefNannySetupContext("copy", 0); + + /* "View.MemoryView":628 + * def copy(self): + * cdef __Pyx_memviewslice mslice + * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS # <<<<<<<<<<<<<< + * + * slice_copy(self, &mslice) + */ + __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_F_CONTIGUOUS)); + + /* "View.MemoryView":630 + * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS + * + * slice_copy(self, &mslice) # <<<<<<<<<<<<<< + * mslice = slice_copy_contig(&mslice, "c", self.view.ndim, + * self.view.itemsize, + */ + __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_mslice)); + + /* "View.MemoryView":631 + * + * slice_copy(self, &mslice) + * mslice = slice_copy_contig(&mslice, "c", self.view.ndim, # <<<<<<<<<<<<<< + * self.view.itemsize, + * flags|PyBUF_C_CONTIGUOUS, + */ + __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_mslice), ((char *)"c"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_C_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 631, __pyx_L1_error) + __pyx_v_mslice = __pyx_t_1; + + /* "View.MemoryView":636 + * self.dtype_is_object) + * + * return memoryview_copy_from_slice(self, &mslice) # <<<<<<<<<<<<<< + * + * def copy_fortran(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_mslice)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 636, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":626 + * return slice_is_contig(mslice[0], 'F', self.view.ndim) + * + * def copy(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice mslice + * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView.memoryview.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":638 + * return memoryview_copy_from_slice(self, &mslice) + * + * def copy_fortran(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice src, dst + * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS + */ + +/* Python wrapper */ +static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy_fortran (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self) { + __Pyx_memviewslice __pyx_v_src; + __Pyx_memviewslice __pyx_v_dst; + int __pyx_v_flags; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_memviewslice __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + __Pyx_RefNannySetupContext("copy_fortran", 0); + + /* "View.MemoryView":640 + * def copy_fortran(self): + * cdef __Pyx_memviewslice src, dst + * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS # <<<<<<<<<<<<<< + * + * slice_copy(self, &src) + */ + __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_C_CONTIGUOUS)); + + /* "View.MemoryView":642 + * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS + * + * slice_copy(self, &src) # <<<<<<<<<<<<<< + * dst = slice_copy_contig(&src, "fortran", self.view.ndim, + * self.view.itemsize, + */ + __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_src)); + + /* "View.MemoryView":643 + * + * slice_copy(self, &src) + * dst = slice_copy_contig(&src, "fortran", self.view.ndim, # <<<<<<<<<<<<<< + * self.view.itemsize, + * flags|PyBUF_F_CONTIGUOUS, + */ + __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_src), ((char *)"fortran"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_F_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 643, __pyx_L1_error) + __pyx_v_dst = __pyx_t_1; + + /* "View.MemoryView":648 + * self.dtype_is_object) + * + * return memoryview_copy_from_slice(self, &dst) # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_dst)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":638 + * return memoryview_copy_from_slice(self, &mslice) + * + * def copy_fortran(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice src, dst + * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView.memoryview.copy_fortran", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_memoryview___reduce_cython__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__reduce_cython__", 0); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(1, 2, __pyx_L1_error) + + /* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.memoryview.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ +static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_memoryview_2__setstate_cython__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__setstate_cython__", 0); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(1, 4, __pyx_L1_error) + + /* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.memoryview.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":652 + * + * @cname('__pyx_memoryview_new') + * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): # <<<<<<<<<<<<<< + * cdef memoryview result = memoryview(o, flags, dtype_is_object) + * result.typeinfo = typeinfo + */ + +static PyObject *__pyx_memoryview_new(PyObject *__pyx_v_o, int __pyx_v_flags, int __pyx_v_dtype_is_object, __Pyx_TypeInfo *__pyx_v_typeinfo) { + struct __pyx_memoryview_obj *__pyx_v_result = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + __Pyx_RefNannySetupContext("memoryview_cwrapper", 0); + + /* "View.MemoryView":653 + * @cname('__pyx_memoryview_new') + * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): + * cdef memoryview result = memoryview(o, flags, dtype_is_object) # <<<<<<<<<<<<<< + * result.typeinfo = typeinfo + * return result + */ + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_o); + __Pyx_GIVEREF(__pyx_v_o); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_o); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_result = ((struct __pyx_memoryview_obj *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "View.MemoryView":654 + * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): + * cdef memoryview result = memoryview(o, flags, dtype_is_object) + * result.typeinfo = typeinfo # <<<<<<<<<<<<<< + * return result + * + */ + __pyx_v_result->typeinfo = __pyx_v_typeinfo; + + /* "View.MemoryView":655 + * cdef memoryview result = memoryview(o, flags, dtype_is_object) + * result.typeinfo = typeinfo + * return result # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_check') + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "View.MemoryView":652 + * + * @cname('__pyx_memoryview_new') + * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): # <<<<<<<<<<<<<< + * cdef memoryview result = memoryview(o, flags, dtype_is_object) + * result.typeinfo = typeinfo + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.memoryview_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":658 + * + * @cname('__pyx_memoryview_check') + * cdef inline bint memoryview_check(object o): # <<<<<<<<<<<<<< + * return isinstance(o, memoryview) + * + */ + +static CYTHON_INLINE int __pyx_memoryview_check(PyObject *__pyx_v_o) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + __Pyx_RefNannySetupContext("memoryview_check", 0); + + /* "View.MemoryView":659 + * @cname('__pyx_memoryview_check') + * cdef inline bint memoryview_check(object o): + * return isinstance(o, memoryview) # <<<<<<<<<<<<<< + * + * cdef tuple _unellipsify(object index, int ndim): + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_o, __pyx_memoryview_type); + __pyx_r = __pyx_t_1; + goto __pyx_L0; + + /* "View.MemoryView":658 + * + * @cname('__pyx_memoryview_check') + * cdef inline bint memoryview_check(object o): # <<<<<<<<<<<<<< + * return isinstance(o, memoryview) + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":661 + * return isinstance(o, memoryview) + * + * cdef tuple _unellipsify(object index, int ndim): # <<<<<<<<<<<<<< + * """ + * Replace all ellipses with full slices and fill incomplete indices with + */ + +static PyObject *_unellipsify(PyObject *__pyx_v_index, int __pyx_v_ndim) { + PyObject *__pyx_v_tup = NULL; + PyObject *__pyx_v_result = NULL; + int __pyx_v_have_slices; + int __pyx_v_seen_ellipsis; + CYTHON_UNUSED PyObject *__pyx_v_idx = NULL; + PyObject *__pyx_v_item = NULL; + Py_ssize_t __pyx_v_nslices; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + Py_ssize_t __pyx_t_5; + PyObject *(*__pyx_t_6)(PyObject *); + PyObject *__pyx_t_7 = NULL; + Py_ssize_t __pyx_t_8; + int __pyx_t_9; + int __pyx_t_10; + PyObject *__pyx_t_11 = NULL; + __Pyx_RefNannySetupContext("_unellipsify", 0); + + /* "View.MemoryView":666 + * full slices. + * """ + * if not isinstance(index, tuple): # <<<<<<<<<<<<<< + * tup = (index,) + * else: + */ + __pyx_t_1 = PyTuple_Check(__pyx_v_index); + __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":667 + * """ + * if not isinstance(index, tuple): + * tup = (index,) # <<<<<<<<<<<<<< + * else: + * tup = index + */ + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 667, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_index); + __Pyx_GIVEREF(__pyx_v_index); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_index); + __pyx_v_tup = __pyx_t_3; + __pyx_t_3 = 0; + + /* "View.MemoryView":666 + * full slices. + * """ + * if not isinstance(index, tuple): # <<<<<<<<<<<<<< + * tup = (index,) + * else: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":669 + * tup = (index,) + * else: + * tup = index # <<<<<<<<<<<<<< + * + * result = [] + */ + /*else*/ { + __Pyx_INCREF(__pyx_v_index); + __pyx_v_tup = __pyx_v_index; + } + __pyx_L3:; + + /* "View.MemoryView":671 + * tup = index + * + * result = [] # <<<<<<<<<<<<<< + * have_slices = False + * seen_ellipsis = False + */ + __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 671, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_result = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "View.MemoryView":672 + * + * result = [] + * have_slices = False # <<<<<<<<<<<<<< + * seen_ellipsis = False + * for idx, item in enumerate(tup): + */ + __pyx_v_have_slices = 0; + + /* "View.MemoryView":673 + * result = [] + * have_slices = False + * seen_ellipsis = False # <<<<<<<<<<<<<< + * for idx, item in enumerate(tup): + * if item is Ellipsis: + */ + __pyx_v_seen_ellipsis = 0; + + /* "View.MemoryView":674 + * have_slices = False + * seen_ellipsis = False + * for idx, item in enumerate(tup): # <<<<<<<<<<<<<< + * if item is Ellipsis: + * if not seen_ellipsis: + */ + __Pyx_INCREF(__pyx_int_0); + __pyx_t_3 = __pyx_int_0; + if (likely(PyList_CheckExact(__pyx_v_tup)) || PyTuple_CheckExact(__pyx_v_tup)) { + __pyx_t_4 = __pyx_v_tup; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; + __pyx_t_6 = NULL; + } else { + __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_tup); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 674, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { + if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 674, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + } else { + if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 674, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + } + } else { + __pyx_t_7 = __pyx_t_6(__pyx_t_4); + if (unlikely(!__pyx_t_7)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(1, 674, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_7); + } + __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_7); + __pyx_t_7 = 0; + __Pyx_INCREF(__pyx_t_3); + __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_3); + __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_3); + __pyx_t_3 = __pyx_t_7; + __pyx_t_7 = 0; + + /* "View.MemoryView":675 + * seen_ellipsis = False + * for idx, item in enumerate(tup): + * if item is Ellipsis: # <<<<<<<<<<<<<< + * if not seen_ellipsis: + * result.extend([slice(None)] * (ndim - len(tup) + 1)) + */ + __pyx_t_2 = (__pyx_v_item == __pyx_builtin_Ellipsis); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":676 + * for idx, item in enumerate(tup): + * if item is Ellipsis: + * if not seen_ellipsis: # <<<<<<<<<<<<<< + * result.extend([slice(None)] * (ndim - len(tup) + 1)) + * seen_ellipsis = True + */ + __pyx_t_1 = ((!(__pyx_v_seen_ellipsis != 0)) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":677 + * if item is Ellipsis: + * if not seen_ellipsis: + * result.extend([slice(None)] * (ndim - len(tup) + 1)) # <<<<<<<<<<<<<< + * seen_ellipsis = True + * else: + */ + __pyx_t_8 = PyObject_Length(__pyx_v_tup); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(1, 677, __pyx_L1_error) + __pyx_t_7 = PyList_New(1 * ((((__pyx_v_ndim - __pyx_t_8) + 1)<0) ? 0:((__pyx_v_ndim - __pyx_t_8) + 1))); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + { Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < ((__pyx_v_ndim - __pyx_t_8) + 1); __pyx_temp++) { + __Pyx_INCREF(__pyx_slice__15); + __Pyx_GIVEREF(__pyx_slice__15); + PyList_SET_ITEM(__pyx_t_7, __pyx_temp, __pyx_slice__15); + } + } + __pyx_t_9 = __Pyx_PyList_Extend(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 677, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "View.MemoryView":678 + * if not seen_ellipsis: + * result.extend([slice(None)] * (ndim - len(tup) + 1)) + * seen_ellipsis = True # <<<<<<<<<<<<<< + * else: + * result.append(slice(None)) + */ + __pyx_v_seen_ellipsis = 1; + + /* "View.MemoryView":676 + * for idx, item in enumerate(tup): + * if item is Ellipsis: + * if not seen_ellipsis: # <<<<<<<<<<<<<< + * result.extend([slice(None)] * (ndim - len(tup) + 1)) + * seen_ellipsis = True + */ + goto __pyx_L7; + } + + /* "View.MemoryView":680 + * seen_ellipsis = True + * else: + * result.append(slice(None)) # <<<<<<<<<<<<<< + * have_slices = True + * else: + */ + /*else*/ { + __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result, __pyx_slice__15); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 680, __pyx_L1_error) + } + __pyx_L7:; + + /* "View.MemoryView":681 + * else: + * result.append(slice(None)) + * have_slices = True # <<<<<<<<<<<<<< + * else: + * if not isinstance(item, slice) and not PyIndex_Check(item): + */ + __pyx_v_have_slices = 1; + + /* "View.MemoryView":675 + * seen_ellipsis = False + * for idx, item in enumerate(tup): + * if item is Ellipsis: # <<<<<<<<<<<<<< + * if not seen_ellipsis: + * result.extend([slice(None)] * (ndim - len(tup) + 1)) + */ + goto __pyx_L6; + } + + /* "View.MemoryView":683 + * have_slices = True + * else: + * if not isinstance(item, slice) and not PyIndex_Check(item): # <<<<<<<<<<<<<< + * raise TypeError("Cannot index with type '%s'" % type(item)) + * + */ + /*else*/ { + __pyx_t_2 = PySlice_Check(__pyx_v_item); + __pyx_t_10 = ((!(__pyx_t_2 != 0)) != 0); + if (__pyx_t_10) { + } else { + __pyx_t_1 = __pyx_t_10; + goto __pyx_L9_bool_binop_done; + } + __pyx_t_10 = ((!(PyIndex_Check(__pyx_v_item) != 0)) != 0); + __pyx_t_1 = __pyx_t_10; + __pyx_L9_bool_binop_done:; + if (unlikely(__pyx_t_1)) { + + /* "View.MemoryView":684 + * else: + * if not isinstance(item, slice) and not PyIndex_Check(item): + * raise TypeError("Cannot index with type '%s'" % type(item)) # <<<<<<<<<<<<<< + * + * have_slices = have_slices or isinstance(item, slice) + */ + __pyx_t_7 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Cannot_index_with_type_s, ((PyObject *)Py_TYPE(__pyx_v_item))); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_Raise(__pyx_t_11, 0, 0, 0); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __PYX_ERR(1, 684, __pyx_L1_error) + + /* "View.MemoryView":683 + * have_slices = True + * else: + * if not isinstance(item, slice) and not PyIndex_Check(item): # <<<<<<<<<<<<<< + * raise TypeError("Cannot index with type '%s'" % type(item)) + * + */ + } + + /* "View.MemoryView":686 + * raise TypeError("Cannot index with type '%s'" % type(item)) + * + * have_slices = have_slices or isinstance(item, slice) # <<<<<<<<<<<<<< + * result.append(item) + * + */ + __pyx_t_10 = (__pyx_v_have_slices != 0); + if (!__pyx_t_10) { + } else { + __pyx_t_1 = __pyx_t_10; + goto __pyx_L11_bool_binop_done; + } + __pyx_t_10 = PySlice_Check(__pyx_v_item); + __pyx_t_2 = (__pyx_t_10 != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L11_bool_binop_done:; + __pyx_v_have_slices = __pyx_t_1; + + /* "View.MemoryView":687 + * + * have_slices = have_slices or isinstance(item, slice) + * result.append(item) # <<<<<<<<<<<<<< + * + * nslices = ndim - len(result) + */ + __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result, __pyx_v_item); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 687, __pyx_L1_error) + } + __pyx_L6:; + + /* "View.MemoryView":674 + * have_slices = False + * seen_ellipsis = False + * for idx, item in enumerate(tup): # <<<<<<<<<<<<<< + * if item is Ellipsis: + * if not seen_ellipsis: + */ + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "View.MemoryView":689 + * result.append(item) + * + * nslices = ndim - len(result) # <<<<<<<<<<<<<< + * if nslices: + * result.extend([slice(None)] * nslices) + */ + __pyx_t_5 = PyList_GET_SIZE(__pyx_v_result); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 689, __pyx_L1_error) + __pyx_v_nslices = (__pyx_v_ndim - __pyx_t_5); + + /* "View.MemoryView":690 + * + * nslices = ndim - len(result) + * if nslices: # <<<<<<<<<<<<<< + * result.extend([slice(None)] * nslices) + * + */ + __pyx_t_1 = (__pyx_v_nslices != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":691 + * nslices = ndim - len(result) + * if nslices: + * result.extend([slice(None)] * nslices) # <<<<<<<<<<<<<< + * + * return have_slices or nslices, tuple(result) + */ + __pyx_t_3 = PyList_New(1 * ((__pyx_v_nslices<0) ? 0:__pyx_v_nslices)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < __pyx_v_nslices; __pyx_temp++) { + __Pyx_INCREF(__pyx_slice__15); + __Pyx_GIVEREF(__pyx_slice__15); + PyList_SET_ITEM(__pyx_t_3, __pyx_temp, __pyx_slice__15); + } + } + __pyx_t_9 = __Pyx_PyList_Extend(__pyx_v_result, __pyx_t_3); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 691, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "View.MemoryView":690 + * + * nslices = ndim - len(result) + * if nslices: # <<<<<<<<<<<<<< + * result.extend([slice(None)] * nslices) + * + */ + } + + /* "View.MemoryView":693 + * result.extend([slice(None)] * nslices) + * + * return have_slices or nslices, tuple(result) # <<<<<<<<<<<<<< + * + * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): + */ + __Pyx_XDECREF(__pyx_r); + if (!__pyx_v_have_slices) { + } else { + __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_have_slices); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 693, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L14_bool_binop_done; + } + __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_nslices); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 693, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_t_4; + __pyx_t_4 = 0; + __pyx_L14_bool_binop_done:; + __pyx_t_4 = PyList_AsTuple(__pyx_v_result); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 693, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 693, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_4); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = ((PyObject*)__pyx_t_11); + __pyx_t_11 = 0; + goto __pyx_L0; + + /* "View.MemoryView":661 + * return isinstance(o, memoryview) + * + * cdef tuple _unellipsify(object index, int ndim): # <<<<<<<<<<<<<< + * """ + * Replace all ellipses with full slices and fill incomplete indices with + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("View.MemoryView._unellipsify", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tup); + __Pyx_XDECREF(__pyx_v_result); + __Pyx_XDECREF(__pyx_v_idx); + __Pyx_XDECREF(__pyx_v_item); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":695 + * return have_slices or nslices, tuple(result) + * + * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): # <<<<<<<<<<<<<< + * for suboffset in suboffsets[:ndim]: + * if suboffset >= 0: + */ + +static PyObject *assert_direct_dimensions(Py_ssize_t *__pyx_v_suboffsets, int __pyx_v_ndim) { + Py_ssize_t __pyx_v_suboffset; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + Py_ssize_t *__pyx_t_1; + Py_ssize_t *__pyx_t_2; + Py_ssize_t *__pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + __Pyx_RefNannySetupContext("assert_direct_dimensions", 0); + + /* "View.MemoryView":696 + * + * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): + * for suboffset in suboffsets[:ndim]: # <<<<<<<<<<<<<< + * if suboffset >= 0: + * raise ValueError("Indirect dimensions not supported") + */ + __pyx_t_2 = (__pyx_v_suboffsets + __pyx_v_ndim); + for (__pyx_t_3 = __pyx_v_suboffsets; __pyx_t_3 < __pyx_t_2; __pyx_t_3++) { + __pyx_t_1 = __pyx_t_3; + __pyx_v_suboffset = (__pyx_t_1[0]); + + /* "View.MemoryView":697 + * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): + * for suboffset in suboffsets[:ndim]: + * if suboffset >= 0: # <<<<<<<<<<<<<< + * raise ValueError("Indirect dimensions not supported") + * + */ + __pyx_t_4 = ((__pyx_v_suboffset >= 0) != 0); + if (unlikely(__pyx_t_4)) { + + /* "View.MemoryView":698 + * for suboffset in suboffsets[:ndim]: + * if suboffset >= 0: + * raise ValueError("Indirect dimensions not supported") # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(1, 698, __pyx_L1_error) + + /* "View.MemoryView":697 + * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): + * for suboffset in suboffsets[:ndim]: + * if suboffset >= 0: # <<<<<<<<<<<<<< + * raise ValueError("Indirect dimensions not supported") + * + */ + } + } + + /* "View.MemoryView":695 + * return have_slices or nslices, tuple(result) + * + * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): # <<<<<<<<<<<<<< + * for suboffset in suboffsets[:ndim]: + * if suboffset >= 0: + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView.assert_direct_dimensions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":705 + * + * @cname('__pyx_memview_slice') + * cdef memoryview memview_slice(memoryview memview, object indices): # <<<<<<<<<<<<<< + * cdef int new_ndim = 0, suboffset_dim = -1, dim + * cdef bint negative_step + */ + +static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *__pyx_v_memview, PyObject *__pyx_v_indices) { + int __pyx_v_new_ndim; + int __pyx_v_suboffset_dim; + int __pyx_v_dim; + __Pyx_memviewslice __pyx_v_src; + __Pyx_memviewslice __pyx_v_dst; + __Pyx_memviewslice *__pyx_v_p_src; + struct __pyx_memoryviewslice_obj *__pyx_v_memviewsliceobj = 0; + __Pyx_memviewslice *__pyx_v_p_dst; + int *__pyx_v_p_suboffset_dim; + Py_ssize_t __pyx_v_start; + Py_ssize_t __pyx_v_stop; + Py_ssize_t __pyx_v_step; + int __pyx_v_have_start; + int __pyx_v_have_stop; + int __pyx_v_have_step; + PyObject *__pyx_v_index = NULL; + struct __pyx_memoryview_obj *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + struct __pyx_memoryview_obj *__pyx_t_4; + char *__pyx_t_5; + int __pyx_t_6; + Py_ssize_t __pyx_t_7; + PyObject *(*__pyx_t_8)(PyObject *); + PyObject *__pyx_t_9 = NULL; + Py_ssize_t __pyx_t_10; + int __pyx_t_11; + Py_ssize_t __pyx_t_12; + __Pyx_RefNannySetupContext("memview_slice", 0); + + /* "View.MemoryView":706 + * @cname('__pyx_memview_slice') + * cdef memoryview memview_slice(memoryview memview, object indices): + * cdef int new_ndim = 0, suboffset_dim = -1, dim # <<<<<<<<<<<<<< + * cdef bint negative_step + * cdef __Pyx_memviewslice src, dst + */ + __pyx_v_new_ndim = 0; + __pyx_v_suboffset_dim = -1; + + /* "View.MemoryView":713 + * + * + * memset(&dst, 0, sizeof(dst)) # <<<<<<<<<<<<<< + * + * cdef _memoryviewslice memviewsliceobj + */ + (void)(memset((&__pyx_v_dst), 0, (sizeof(__pyx_v_dst)))); + + /* "View.MemoryView":717 + * cdef _memoryviewslice memviewsliceobj + * + * assert memview.view.ndim > 0 # <<<<<<<<<<<<<< + * + * if isinstance(memview, _memoryviewslice): + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(!Py_OptimizeFlag)) { + if (unlikely(!((__pyx_v_memview->view.ndim > 0) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(1, 717, __pyx_L1_error) + } + } + #endif + + /* "View.MemoryView":719 + * assert memview.view.ndim > 0 + * + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * memviewsliceobj = memview + * p_src = &memviewsliceobj.from_slice + */ + __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":720 + * + * if isinstance(memview, _memoryviewslice): + * memviewsliceobj = memview # <<<<<<<<<<<<<< + * p_src = &memviewsliceobj.from_slice + * else: + */ + if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(1, 720, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_v_memview); + __Pyx_INCREF(__pyx_t_3); + __pyx_v_memviewsliceobj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "View.MemoryView":721 + * if isinstance(memview, _memoryviewslice): + * memviewsliceobj = memview + * p_src = &memviewsliceobj.from_slice # <<<<<<<<<<<<<< + * else: + * slice_copy(memview, &src) + */ + __pyx_v_p_src = (&__pyx_v_memviewsliceobj->from_slice); + + /* "View.MemoryView":719 + * assert memview.view.ndim > 0 + * + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * memviewsliceobj = memview + * p_src = &memviewsliceobj.from_slice + */ + goto __pyx_L3; + } + + /* "View.MemoryView":723 + * p_src = &memviewsliceobj.from_slice + * else: + * slice_copy(memview, &src) # <<<<<<<<<<<<<< + * p_src = &src + * + */ + /*else*/ { + __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_src)); + + /* "View.MemoryView":724 + * else: + * slice_copy(memview, &src) + * p_src = &src # <<<<<<<<<<<<<< + * + * + */ + __pyx_v_p_src = (&__pyx_v_src); + } + __pyx_L3:; + + /* "View.MemoryView":730 + * + * + * dst.memview = p_src.memview # <<<<<<<<<<<<<< + * dst.data = p_src.data + * + */ + __pyx_t_4 = __pyx_v_p_src->memview; + __pyx_v_dst.memview = __pyx_t_4; + + /* "View.MemoryView":731 + * + * dst.memview = p_src.memview + * dst.data = p_src.data # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_5 = __pyx_v_p_src->data; + __pyx_v_dst.data = __pyx_t_5; + + /* "View.MemoryView":736 + * + * + * cdef __Pyx_memviewslice *p_dst = &dst # <<<<<<<<<<<<<< + * cdef int *p_suboffset_dim = &suboffset_dim + * cdef Py_ssize_t start, stop, step + */ + __pyx_v_p_dst = (&__pyx_v_dst); + + /* "View.MemoryView":737 + * + * cdef __Pyx_memviewslice *p_dst = &dst + * cdef int *p_suboffset_dim = &suboffset_dim # <<<<<<<<<<<<<< + * cdef Py_ssize_t start, stop, step + * cdef bint have_start, have_stop, have_step + */ + __pyx_v_p_suboffset_dim = (&__pyx_v_suboffset_dim); + + /* "View.MemoryView":741 + * cdef bint have_start, have_stop, have_step + * + * for dim, index in enumerate(indices): # <<<<<<<<<<<<<< + * if PyIndex_Check(index): + * slice_memviewslice( + */ + __pyx_t_6 = 0; + if (likely(PyList_CheckExact(__pyx_v_indices)) || PyTuple_CheckExact(__pyx_v_indices)) { + __pyx_t_3 = __pyx_v_indices; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + } else { + __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_indices); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 741, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_8)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_9 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(1, 741, __pyx_L1_error) + #else + __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #endif + } else { + if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_3)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(1, 741, __pyx_L1_error) + #else + __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #endif + } + } else { + __pyx_t_9 = __pyx_t_8(__pyx_t_3); + if (unlikely(!__pyx_t_9)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(1, 741, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_9); + } + __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_9); + __pyx_t_9 = 0; + __pyx_v_dim = __pyx_t_6; + __pyx_t_6 = (__pyx_t_6 + 1); + + /* "View.MemoryView":742 + * + * for dim, index in enumerate(indices): + * if PyIndex_Check(index): # <<<<<<<<<<<<<< + * slice_memviewslice( + * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], + */ + __pyx_t_2 = (PyIndex_Check(__pyx_v_index) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":746 + * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], + * dim, new_ndim, p_suboffset_dim, + * index, 0, 0, # start, stop, step # <<<<<<<<<<<<<< + * 0, 0, 0, # have_{start,stop,step} + * False) + */ + __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 746, __pyx_L1_error) + + /* "View.MemoryView":743 + * for dim, index in enumerate(indices): + * if PyIndex_Check(index): + * slice_memviewslice( # <<<<<<<<<<<<<< + * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], + * dim, new_ndim, p_suboffset_dim, + */ + __pyx_t_11 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_t_10, 0, 0, 0, 0, 0, 0); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(1, 743, __pyx_L1_error) + + /* "View.MemoryView":742 + * + * for dim, index in enumerate(indices): + * if PyIndex_Check(index): # <<<<<<<<<<<<<< + * slice_memviewslice( + * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], + */ + goto __pyx_L6; + } + + /* "View.MemoryView":749 + * 0, 0, 0, # have_{start,stop,step} + * False) + * elif index is None: # <<<<<<<<<<<<<< + * p_dst.shape[new_ndim] = 1 + * p_dst.strides[new_ndim] = 0 + */ + __pyx_t_2 = (__pyx_v_index == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":750 + * False) + * elif index is None: + * p_dst.shape[new_ndim] = 1 # <<<<<<<<<<<<<< + * p_dst.strides[new_ndim] = 0 + * p_dst.suboffsets[new_ndim] = -1 + */ + (__pyx_v_p_dst->shape[__pyx_v_new_ndim]) = 1; + + /* "View.MemoryView":751 + * elif index is None: + * p_dst.shape[new_ndim] = 1 + * p_dst.strides[new_ndim] = 0 # <<<<<<<<<<<<<< + * p_dst.suboffsets[new_ndim] = -1 + * new_ndim += 1 + */ + (__pyx_v_p_dst->strides[__pyx_v_new_ndim]) = 0; + + /* "View.MemoryView":752 + * p_dst.shape[new_ndim] = 1 + * p_dst.strides[new_ndim] = 0 + * p_dst.suboffsets[new_ndim] = -1 # <<<<<<<<<<<<<< + * new_ndim += 1 + * else: + */ + (__pyx_v_p_dst->suboffsets[__pyx_v_new_ndim]) = -1L; + + /* "View.MemoryView":753 + * p_dst.strides[new_ndim] = 0 + * p_dst.suboffsets[new_ndim] = -1 + * new_ndim += 1 # <<<<<<<<<<<<<< + * else: + * start = index.start or 0 + */ + __pyx_v_new_ndim = (__pyx_v_new_ndim + 1); + + /* "View.MemoryView":749 + * 0, 0, 0, # have_{start,stop,step} + * False) + * elif index is None: # <<<<<<<<<<<<<< + * p_dst.shape[new_ndim] = 1 + * p_dst.strides[new_ndim] = 0 + */ + goto __pyx_L6; + } + + /* "View.MemoryView":755 + * new_ndim += 1 + * else: + * start = index.start or 0 # <<<<<<<<<<<<<< + * stop = index.stop or 0 + * step = index.step or 0 + */ + /*else*/ { + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 755, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 755, __pyx_L1_error) + if (!__pyx_t_1) { + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } else { + __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 755, __pyx_L1_error) + __pyx_t_10 = __pyx_t_12; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L7_bool_binop_done; + } + __pyx_t_10 = 0; + __pyx_L7_bool_binop_done:; + __pyx_v_start = __pyx_t_10; + + /* "View.MemoryView":756 + * else: + * start = index.start or 0 + * stop = index.stop or 0 # <<<<<<<<<<<<<< + * step = index.step or 0 + * + */ + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 756, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 756, __pyx_L1_error) + if (!__pyx_t_1) { + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } else { + __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 756, __pyx_L1_error) + __pyx_t_10 = __pyx_t_12; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L9_bool_binop_done; + } + __pyx_t_10 = 0; + __pyx_L9_bool_binop_done:; + __pyx_v_stop = __pyx_t_10; + + /* "View.MemoryView":757 + * start = index.start or 0 + * stop = index.stop or 0 + * step = index.step or 0 # <<<<<<<<<<<<<< + * + * have_start = index.start is not None + */ + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 757, __pyx_L1_error) + if (!__pyx_t_1) { + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } else { + __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 757, __pyx_L1_error) + __pyx_t_10 = __pyx_t_12; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L11_bool_binop_done; + } + __pyx_t_10 = 0; + __pyx_L11_bool_binop_done:; + __pyx_v_step = __pyx_t_10; + + /* "View.MemoryView":759 + * step = index.step or 0 + * + * have_start = index.start is not None # <<<<<<<<<<<<<< + * have_stop = index.stop is not None + * have_step = index.step is not None + */ + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 759, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_1 = (__pyx_t_9 != Py_None); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_v_have_start = __pyx_t_1; + + /* "View.MemoryView":760 + * + * have_start = index.start is not None + * have_stop = index.stop is not None # <<<<<<<<<<<<<< + * have_step = index.step is not None + * + */ + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 760, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_1 = (__pyx_t_9 != Py_None); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_v_have_stop = __pyx_t_1; + + /* "View.MemoryView":761 + * have_start = index.start is not None + * have_stop = index.stop is not None + * have_step = index.step is not None # <<<<<<<<<<<<<< + * + * slice_memviewslice( + */ + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 761, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_1 = (__pyx_t_9 != Py_None); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_v_have_step = __pyx_t_1; + + /* "View.MemoryView":763 + * have_step = index.step is not None + * + * slice_memviewslice( # <<<<<<<<<<<<<< + * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], + * dim, new_ndim, p_suboffset_dim, + */ + __pyx_t_11 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_v_start, __pyx_v_stop, __pyx_v_step, __pyx_v_have_start, __pyx_v_have_stop, __pyx_v_have_step, 1); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(1, 763, __pyx_L1_error) + + /* "View.MemoryView":769 + * have_start, have_stop, have_step, + * True) + * new_ndim += 1 # <<<<<<<<<<<<<< + * + * if isinstance(memview, _memoryviewslice): + */ + __pyx_v_new_ndim = (__pyx_v_new_ndim + 1); + } + __pyx_L6:; + + /* "View.MemoryView":741 + * cdef bint have_start, have_stop, have_step + * + * for dim, index in enumerate(indices): # <<<<<<<<<<<<<< + * if PyIndex_Check(index): + * slice_memviewslice( + */ + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "View.MemoryView":771 + * new_ndim += 1 + * + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * return memoryview_fromslice(dst, new_ndim, + * memviewsliceobj.to_object_func, + */ + __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":772 + * + * if isinstance(memview, _memoryviewslice): + * return memoryview_fromslice(dst, new_ndim, # <<<<<<<<<<<<<< + * memviewsliceobj.to_object_func, + * memviewsliceobj.to_dtype_func, + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + + /* "View.MemoryView":773 + * if isinstance(memview, _memoryviewslice): + * return memoryview_fromslice(dst, new_ndim, + * memviewsliceobj.to_object_func, # <<<<<<<<<<<<<< + * memviewsliceobj.to_dtype_func, + * memview.dtype_is_object) + */ + if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(1, 773, __pyx_L1_error) } + + /* "View.MemoryView":774 + * return memoryview_fromslice(dst, new_ndim, + * memviewsliceobj.to_object_func, + * memviewsliceobj.to_dtype_func, # <<<<<<<<<<<<<< + * memview.dtype_is_object) + * else: + */ + if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(1, 774, __pyx_L1_error) } + + /* "View.MemoryView":772 + * + * if isinstance(memview, _memoryviewslice): + * return memoryview_fromslice(dst, new_ndim, # <<<<<<<<<<<<<< + * memviewsliceobj.to_object_func, + * memviewsliceobj.to_dtype_func, + */ + __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, __pyx_v_memviewsliceobj->to_object_func, __pyx_v_memviewsliceobj->to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(1, 772, __pyx_L1_error) + __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_3); + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "View.MemoryView":771 + * new_ndim += 1 + * + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * return memoryview_fromslice(dst, new_ndim, + * memviewsliceobj.to_object_func, + */ + } + + /* "View.MemoryView":777 + * memview.dtype_is_object) + * else: + * return memoryview_fromslice(dst, new_ndim, NULL, NULL, # <<<<<<<<<<<<<< + * memview.dtype_is_object) + * + */ + /*else*/ { + __Pyx_XDECREF(((PyObject *)__pyx_r)); + + /* "View.MemoryView":778 + * else: + * return memoryview_fromslice(dst, new_ndim, NULL, NULL, + * memview.dtype_is_object) # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, NULL, NULL, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 777, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "View.MemoryView":777 + * memview.dtype_is_object) + * else: + * return memoryview_fromslice(dst, new_ndim, NULL, NULL, # <<<<<<<<<<<<<< + * memview.dtype_is_object) + * + */ + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(1, 777, __pyx_L1_error) + __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_3); + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "View.MemoryView":705 + * + * @cname('__pyx_memview_slice') + * cdef memoryview memview_slice(memoryview memview, object indices): # <<<<<<<<<<<<<< + * cdef int new_ndim = 0, suboffset_dim = -1, dim + * cdef bint negative_step + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("View.MemoryView.memview_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_memviewsliceobj); + __Pyx_XDECREF(__pyx_v_index); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":802 + * + * @cname('__pyx_memoryview_slice_memviewslice') + * cdef int slice_memviewslice( # <<<<<<<<<<<<<< + * __Pyx_memviewslice *dst, + * Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset, + */ + +static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *__pyx_v_dst, Py_ssize_t __pyx_v_shape, Py_ssize_t __pyx_v_stride, Py_ssize_t __pyx_v_suboffset, int __pyx_v_dim, int __pyx_v_new_ndim, int *__pyx_v_suboffset_dim, Py_ssize_t __pyx_v_start, Py_ssize_t __pyx_v_stop, Py_ssize_t __pyx_v_step, int __pyx_v_have_start, int __pyx_v_have_stop, int __pyx_v_have_step, int __pyx_v_is_slice) { + Py_ssize_t __pyx_v_new_shape; + int __pyx_v_negative_step; + int __pyx_r; + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + + /* "View.MemoryView":822 + * cdef bint negative_step + * + * if not is_slice: # <<<<<<<<<<<<<< + * + * if start < 0: + */ + __pyx_t_1 = ((!(__pyx_v_is_slice != 0)) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":824 + * if not is_slice: + * + * if start < 0: # <<<<<<<<<<<<<< + * start += shape + * if not 0 <= start < shape: + */ + __pyx_t_1 = ((__pyx_v_start < 0) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":825 + * + * if start < 0: + * start += shape # <<<<<<<<<<<<<< + * if not 0 <= start < shape: + * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) + */ + __pyx_v_start = (__pyx_v_start + __pyx_v_shape); + + /* "View.MemoryView":824 + * if not is_slice: + * + * if start < 0: # <<<<<<<<<<<<<< + * start += shape + * if not 0 <= start < shape: + */ + } + + /* "View.MemoryView":826 + * if start < 0: + * start += shape + * if not 0 <= start < shape: # <<<<<<<<<<<<<< + * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) + * else: + */ + __pyx_t_1 = (0 <= __pyx_v_start); + if (__pyx_t_1) { + __pyx_t_1 = (__pyx_v_start < __pyx_v_shape); + } + __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":827 + * start += shape + * if not 0 <= start < shape: + * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) # <<<<<<<<<<<<<< + * else: + * + */ + __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_IndexError, ((char *)"Index out of bounds (axis %d)"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 827, __pyx_L1_error) + + /* "View.MemoryView":826 + * if start < 0: + * start += shape + * if not 0 <= start < shape: # <<<<<<<<<<<<<< + * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) + * else: + */ + } + + /* "View.MemoryView":822 + * cdef bint negative_step + * + * if not is_slice: # <<<<<<<<<<<<<< + * + * if start < 0: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":830 + * else: + * + * negative_step = have_step != 0 and step < 0 # <<<<<<<<<<<<<< + * + * if have_step and step == 0: + */ + /*else*/ { + __pyx_t_1 = ((__pyx_v_have_step != 0) != 0); + if (__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_1 = ((__pyx_v_step < 0) != 0); + __pyx_t_2 = __pyx_t_1; + __pyx_L6_bool_binop_done:; + __pyx_v_negative_step = __pyx_t_2; + + /* "View.MemoryView":832 + * negative_step = have_step != 0 and step < 0 + * + * if have_step and step == 0: # <<<<<<<<<<<<<< + * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) + * + */ + __pyx_t_1 = (__pyx_v_have_step != 0); + if (__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L9_bool_binop_done; + } + __pyx_t_1 = ((__pyx_v_step == 0) != 0); + __pyx_t_2 = __pyx_t_1; + __pyx_L9_bool_binop_done:; + if (__pyx_t_2) { + + /* "View.MemoryView":833 + * + * if have_step and step == 0: + * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_ValueError, ((char *)"Step may not be zero (axis %d)"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 833, __pyx_L1_error) + + /* "View.MemoryView":832 + * negative_step = have_step != 0 and step < 0 + * + * if have_step and step == 0: # <<<<<<<<<<<<<< + * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) + * + */ + } + + /* "View.MemoryView":836 + * + * + * if have_start: # <<<<<<<<<<<<<< + * if start < 0: + * start += shape + */ + __pyx_t_2 = (__pyx_v_have_start != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":837 + * + * if have_start: + * if start < 0: # <<<<<<<<<<<<<< + * start += shape + * if start < 0: + */ + __pyx_t_2 = ((__pyx_v_start < 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":838 + * if have_start: + * if start < 0: + * start += shape # <<<<<<<<<<<<<< + * if start < 0: + * start = 0 + */ + __pyx_v_start = (__pyx_v_start + __pyx_v_shape); + + /* "View.MemoryView":839 + * if start < 0: + * start += shape + * if start < 0: # <<<<<<<<<<<<<< + * start = 0 + * elif start >= shape: + */ + __pyx_t_2 = ((__pyx_v_start < 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":840 + * start += shape + * if start < 0: + * start = 0 # <<<<<<<<<<<<<< + * elif start >= shape: + * if negative_step: + */ + __pyx_v_start = 0; + + /* "View.MemoryView":839 + * if start < 0: + * start += shape + * if start < 0: # <<<<<<<<<<<<<< + * start = 0 + * elif start >= shape: + */ + } + + /* "View.MemoryView":837 + * + * if have_start: + * if start < 0: # <<<<<<<<<<<<<< + * start += shape + * if start < 0: + */ + goto __pyx_L12; + } + + /* "View.MemoryView":841 + * if start < 0: + * start = 0 + * elif start >= shape: # <<<<<<<<<<<<<< + * if negative_step: + * start = shape - 1 + */ + __pyx_t_2 = ((__pyx_v_start >= __pyx_v_shape) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":842 + * start = 0 + * elif start >= shape: + * if negative_step: # <<<<<<<<<<<<<< + * start = shape - 1 + * else: + */ + __pyx_t_2 = (__pyx_v_negative_step != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":843 + * elif start >= shape: + * if negative_step: + * start = shape - 1 # <<<<<<<<<<<<<< + * else: + * start = shape + */ + __pyx_v_start = (__pyx_v_shape - 1); + + /* "View.MemoryView":842 + * start = 0 + * elif start >= shape: + * if negative_step: # <<<<<<<<<<<<<< + * start = shape - 1 + * else: + */ + goto __pyx_L14; + } + + /* "View.MemoryView":845 + * start = shape - 1 + * else: + * start = shape # <<<<<<<<<<<<<< + * else: + * if negative_step: + */ + /*else*/ { + __pyx_v_start = __pyx_v_shape; + } + __pyx_L14:; + + /* "View.MemoryView":841 + * if start < 0: + * start = 0 + * elif start >= shape: # <<<<<<<<<<<<<< + * if negative_step: + * start = shape - 1 + */ + } + __pyx_L12:; + + /* "View.MemoryView":836 + * + * + * if have_start: # <<<<<<<<<<<<<< + * if start < 0: + * start += shape + */ + goto __pyx_L11; + } + + /* "View.MemoryView":847 + * start = shape + * else: + * if negative_step: # <<<<<<<<<<<<<< + * start = shape - 1 + * else: + */ + /*else*/ { + __pyx_t_2 = (__pyx_v_negative_step != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":848 + * else: + * if negative_step: + * start = shape - 1 # <<<<<<<<<<<<<< + * else: + * start = 0 + */ + __pyx_v_start = (__pyx_v_shape - 1); + + /* "View.MemoryView":847 + * start = shape + * else: + * if negative_step: # <<<<<<<<<<<<<< + * start = shape - 1 + * else: + */ + goto __pyx_L15; + } + + /* "View.MemoryView":850 + * start = shape - 1 + * else: + * start = 0 # <<<<<<<<<<<<<< + * + * if have_stop: + */ + /*else*/ { + __pyx_v_start = 0; + } + __pyx_L15:; + } + __pyx_L11:; + + /* "View.MemoryView":852 + * start = 0 + * + * if have_stop: # <<<<<<<<<<<<<< + * if stop < 0: + * stop += shape + */ + __pyx_t_2 = (__pyx_v_have_stop != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":853 + * + * if have_stop: + * if stop < 0: # <<<<<<<<<<<<<< + * stop += shape + * if stop < 0: + */ + __pyx_t_2 = ((__pyx_v_stop < 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":854 + * if have_stop: + * if stop < 0: + * stop += shape # <<<<<<<<<<<<<< + * if stop < 0: + * stop = 0 + */ + __pyx_v_stop = (__pyx_v_stop + __pyx_v_shape); + + /* "View.MemoryView":855 + * if stop < 0: + * stop += shape + * if stop < 0: # <<<<<<<<<<<<<< + * stop = 0 + * elif stop > shape: + */ + __pyx_t_2 = ((__pyx_v_stop < 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":856 + * stop += shape + * if stop < 0: + * stop = 0 # <<<<<<<<<<<<<< + * elif stop > shape: + * stop = shape + */ + __pyx_v_stop = 0; + + /* "View.MemoryView":855 + * if stop < 0: + * stop += shape + * if stop < 0: # <<<<<<<<<<<<<< + * stop = 0 + * elif stop > shape: + */ + } + + /* "View.MemoryView":853 + * + * if have_stop: + * if stop < 0: # <<<<<<<<<<<<<< + * stop += shape + * if stop < 0: + */ + goto __pyx_L17; + } + + /* "View.MemoryView":857 + * if stop < 0: + * stop = 0 + * elif stop > shape: # <<<<<<<<<<<<<< + * stop = shape + * else: + */ + __pyx_t_2 = ((__pyx_v_stop > __pyx_v_shape) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":858 + * stop = 0 + * elif stop > shape: + * stop = shape # <<<<<<<<<<<<<< + * else: + * if negative_step: + */ + __pyx_v_stop = __pyx_v_shape; + + /* "View.MemoryView":857 + * if stop < 0: + * stop = 0 + * elif stop > shape: # <<<<<<<<<<<<<< + * stop = shape + * else: + */ + } + __pyx_L17:; + + /* "View.MemoryView":852 + * start = 0 + * + * if have_stop: # <<<<<<<<<<<<<< + * if stop < 0: + * stop += shape + */ + goto __pyx_L16; + } + + /* "View.MemoryView":860 + * stop = shape + * else: + * if negative_step: # <<<<<<<<<<<<<< + * stop = -1 + * else: + */ + /*else*/ { + __pyx_t_2 = (__pyx_v_negative_step != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":861 + * else: + * if negative_step: + * stop = -1 # <<<<<<<<<<<<<< + * else: + * stop = shape + */ + __pyx_v_stop = -1L; + + /* "View.MemoryView":860 + * stop = shape + * else: + * if negative_step: # <<<<<<<<<<<<<< + * stop = -1 + * else: + */ + goto __pyx_L19; + } + + /* "View.MemoryView":863 + * stop = -1 + * else: + * stop = shape # <<<<<<<<<<<<<< + * + * if not have_step: + */ + /*else*/ { + __pyx_v_stop = __pyx_v_shape; + } + __pyx_L19:; + } + __pyx_L16:; + + /* "View.MemoryView":865 + * stop = shape + * + * if not have_step: # <<<<<<<<<<<<<< + * step = 1 + * + */ + __pyx_t_2 = ((!(__pyx_v_have_step != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":866 + * + * if not have_step: + * step = 1 # <<<<<<<<<<<<<< + * + * + */ + __pyx_v_step = 1; + + /* "View.MemoryView":865 + * stop = shape + * + * if not have_step: # <<<<<<<<<<<<<< + * step = 1 + * + */ + } + + /* "View.MemoryView":870 + * + * with cython.cdivision(True): + * new_shape = (stop - start) // step # <<<<<<<<<<<<<< + * + * if (stop - start) - step * new_shape: + */ + __pyx_v_new_shape = ((__pyx_v_stop - __pyx_v_start) / __pyx_v_step); + + /* "View.MemoryView":872 + * new_shape = (stop - start) // step + * + * if (stop - start) - step * new_shape: # <<<<<<<<<<<<<< + * new_shape += 1 + * + */ + __pyx_t_2 = (((__pyx_v_stop - __pyx_v_start) - (__pyx_v_step * __pyx_v_new_shape)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":873 + * + * if (stop - start) - step * new_shape: + * new_shape += 1 # <<<<<<<<<<<<<< + * + * if new_shape < 0: + */ + __pyx_v_new_shape = (__pyx_v_new_shape + 1); + + /* "View.MemoryView":872 + * new_shape = (stop - start) // step + * + * if (stop - start) - step * new_shape: # <<<<<<<<<<<<<< + * new_shape += 1 + * + */ + } + + /* "View.MemoryView":875 + * new_shape += 1 + * + * if new_shape < 0: # <<<<<<<<<<<<<< + * new_shape = 0 + * + */ + __pyx_t_2 = ((__pyx_v_new_shape < 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":876 + * + * if new_shape < 0: + * new_shape = 0 # <<<<<<<<<<<<<< + * + * + */ + __pyx_v_new_shape = 0; + + /* "View.MemoryView":875 + * new_shape += 1 + * + * if new_shape < 0: # <<<<<<<<<<<<<< + * new_shape = 0 + * + */ + } + + /* "View.MemoryView":879 + * + * + * dst.strides[new_ndim] = stride * step # <<<<<<<<<<<<<< + * dst.shape[new_ndim] = new_shape + * dst.suboffsets[new_ndim] = suboffset + */ + (__pyx_v_dst->strides[__pyx_v_new_ndim]) = (__pyx_v_stride * __pyx_v_step); + + /* "View.MemoryView":880 + * + * dst.strides[new_ndim] = stride * step + * dst.shape[new_ndim] = new_shape # <<<<<<<<<<<<<< + * dst.suboffsets[new_ndim] = suboffset + * + */ + (__pyx_v_dst->shape[__pyx_v_new_ndim]) = __pyx_v_new_shape; + + /* "View.MemoryView":881 + * dst.strides[new_ndim] = stride * step + * dst.shape[new_ndim] = new_shape + * dst.suboffsets[new_ndim] = suboffset # <<<<<<<<<<<<<< + * + * + */ + (__pyx_v_dst->suboffsets[__pyx_v_new_ndim]) = __pyx_v_suboffset; + } + __pyx_L3:; + + /* "View.MemoryView":884 + * + * + * if suboffset_dim[0] < 0: # <<<<<<<<<<<<<< + * dst.data += start * stride + * else: + */ + __pyx_t_2 = (((__pyx_v_suboffset_dim[0]) < 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":885 + * + * if suboffset_dim[0] < 0: + * dst.data += start * stride # <<<<<<<<<<<<<< + * else: + * dst.suboffsets[suboffset_dim[0]] += start * stride + */ + __pyx_v_dst->data = (__pyx_v_dst->data + (__pyx_v_start * __pyx_v_stride)); + + /* "View.MemoryView":884 + * + * + * if suboffset_dim[0] < 0: # <<<<<<<<<<<<<< + * dst.data += start * stride + * else: + */ + goto __pyx_L23; + } + + /* "View.MemoryView":887 + * dst.data += start * stride + * else: + * dst.suboffsets[suboffset_dim[0]] += start * stride # <<<<<<<<<<<<<< + * + * if suboffset >= 0: + */ + /*else*/ { + __pyx_t_3 = (__pyx_v_suboffset_dim[0]); + (__pyx_v_dst->suboffsets[__pyx_t_3]) = ((__pyx_v_dst->suboffsets[__pyx_t_3]) + (__pyx_v_start * __pyx_v_stride)); + } + __pyx_L23:; + + /* "View.MemoryView":889 + * dst.suboffsets[suboffset_dim[0]] += start * stride + * + * if suboffset >= 0: # <<<<<<<<<<<<<< + * if not is_slice: + * if new_ndim == 0: + */ + __pyx_t_2 = ((__pyx_v_suboffset >= 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":890 + * + * if suboffset >= 0: + * if not is_slice: # <<<<<<<<<<<<<< + * if new_ndim == 0: + * dst.data = ( dst.data)[0] + suboffset + */ + __pyx_t_2 = ((!(__pyx_v_is_slice != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":891 + * if suboffset >= 0: + * if not is_slice: + * if new_ndim == 0: # <<<<<<<<<<<<<< + * dst.data = ( dst.data)[0] + suboffset + * else: + */ + __pyx_t_2 = ((__pyx_v_new_ndim == 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":892 + * if not is_slice: + * if new_ndim == 0: + * dst.data = ( dst.data)[0] + suboffset # <<<<<<<<<<<<<< + * else: + * _err_dim(IndexError, "All dimensions preceding dimension %d " + */ + __pyx_v_dst->data = ((((char **)__pyx_v_dst->data)[0]) + __pyx_v_suboffset); + + /* "View.MemoryView":891 + * if suboffset >= 0: + * if not is_slice: + * if new_ndim == 0: # <<<<<<<<<<<<<< + * dst.data = ( dst.data)[0] + suboffset + * else: + */ + goto __pyx_L26; + } + + /* "View.MemoryView":894 + * dst.data = ( dst.data)[0] + suboffset + * else: + * _err_dim(IndexError, "All dimensions preceding dimension %d " # <<<<<<<<<<<<<< + * "must be indexed and not sliced", dim) + * else: + */ + /*else*/ { + + /* "View.MemoryView":895 + * else: + * _err_dim(IndexError, "All dimensions preceding dimension %d " + * "must be indexed and not sliced", dim) # <<<<<<<<<<<<<< + * else: + * suboffset_dim[0] = new_ndim + */ + __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_IndexError, ((char *)"All dimensions preceding dimension %d must be indexed and not sliced"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 894, __pyx_L1_error) + } + __pyx_L26:; + + /* "View.MemoryView":890 + * + * if suboffset >= 0: + * if not is_slice: # <<<<<<<<<<<<<< + * if new_ndim == 0: + * dst.data = ( dst.data)[0] + suboffset + */ + goto __pyx_L25; + } + + /* "View.MemoryView":897 + * "must be indexed and not sliced", dim) + * else: + * suboffset_dim[0] = new_ndim # <<<<<<<<<<<<<< + * + * return 0 + */ + /*else*/ { + (__pyx_v_suboffset_dim[0]) = __pyx_v_new_ndim; + } + __pyx_L25:; + + /* "View.MemoryView":889 + * dst.suboffsets[suboffset_dim[0]] += start * stride + * + * if suboffset >= 0: # <<<<<<<<<<<<<< + * if not is_slice: + * if new_ndim == 0: + */ + } + + /* "View.MemoryView":899 + * suboffset_dim[0] = new_ndim + * + * return 0 # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "View.MemoryView":802 + * + * @cname('__pyx_memoryview_slice_memviewslice') + * cdef int slice_memviewslice( # <<<<<<<<<<<<<< + * __Pyx_memviewslice *dst, + * Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset, + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("View.MemoryView.slice_memviewslice", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = -1; + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":905 + * + * @cname('__pyx_pybuffer_index') + * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, # <<<<<<<<<<<<<< + * Py_ssize_t dim) except NULL: + * cdef Py_ssize_t shape, stride, suboffset = -1 + */ + +static char *__pyx_pybuffer_index(Py_buffer *__pyx_v_view, char *__pyx_v_bufp, Py_ssize_t __pyx_v_index, Py_ssize_t __pyx_v_dim) { + Py_ssize_t __pyx_v_shape; + Py_ssize_t __pyx_v_stride; + Py_ssize_t __pyx_v_suboffset; + Py_ssize_t __pyx_v_itemsize; + char *__pyx_v_resultp; + char *__pyx_r; + __Pyx_RefNannyDeclarations + Py_ssize_t __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + __Pyx_RefNannySetupContext("pybuffer_index", 0); + + /* "View.MemoryView":907 + * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, + * Py_ssize_t dim) except NULL: + * cdef Py_ssize_t shape, stride, suboffset = -1 # <<<<<<<<<<<<<< + * cdef Py_ssize_t itemsize = view.itemsize + * cdef char *resultp + */ + __pyx_v_suboffset = -1L; + + /* "View.MemoryView":908 + * Py_ssize_t dim) except NULL: + * cdef Py_ssize_t shape, stride, suboffset = -1 + * cdef Py_ssize_t itemsize = view.itemsize # <<<<<<<<<<<<<< + * cdef char *resultp + * + */ + __pyx_t_1 = __pyx_v_view->itemsize; + __pyx_v_itemsize = __pyx_t_1; + + /* "View.MemoryView":911 + * cdef char *resultp + * + * if view.ndim == 0: # <<<<<<<<<<<<<< + * shape = view.len / itemsize + * stride = itemsize + */ + __pyx_t_2 = ((__pyx_v_view->ndim == 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":912 + * + * if view.ndim == 0: + * shape = view.len / itemsize # <<<<<<<<<<<<<< + * stride = itemsize + * else: + */ + if (unlikely(__pyx_v_itemsize == 0)) { + PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero"); + __PYX_ERR(1, 912, __pyx_L1_error) + } + else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_v_view->len))) { + PyErr_SetString(PyExc_OverflowError, "value too large to perform division"); + __PYX_ERR(1, 912, __pyx_L1_error) + } + __pyx_v_shape = __Pyx_div_Py_ssize_t(__pyx_v_view->len, __pyx_v_itemsize); + + /* "View.MemoryView":913 + * if view.ndim == 0: + * shape = view.len / itemsize + * stride = itemsize # <<<<<<<<<<<<<< + * else: + * shape = view.shape[dim] + */ + __pyx_v_stride = __pyx_v_itemsize; + + /* "View.MemoryView":911 + * cdef char *resultp + * + * if view.ndim == 0: # <<<<<<<<<<<<<< + * shape = view.len / itemsize + * stride = itemsize + */ + goto __pyx_L3; + } + + /* "View.MemoryView":915 + * stride = itemsize + * else: + * shape = view.shape[dim] # <<<<<<<<<<<<<< + * stride = view.strides[dim] + * if view.suboffsets != NULL: + */ + /*else*/ { + __pyx_v_shape = (__pyx_v_view->shape[__pyx_v_dim]); + + /* "View.MemoryView":916 + * else: + * shape = view.shape[dim] + * stride = view.strides[dim] # <<<<<<<<<<<<<< + * if view.suboffsets != NULL: + * suboffset = view.suboffsets[dim] + */ + __pyx_v_stride = (__pyx_v_view->strides[__pyx_v_dim]); + + /* "View.MemoryView":917 + * shape = view.shape[dim] + * stride = view.strides[dim] + * if view.suboffsets != NULL: # <<<<<<<<<<<<<< + * suboffset = view.suboffsets[dim] + * + */ + __pyx_t_2 = ((__pyx_v_view->suboffsets != NULL) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":918 + * stride = view.strides[dim] + * if view.suboffsets != NULL: + * suboffset = view.suboffsets[dim] # <<<<<<<<<<<<<< + * + * if index < 0: + */ + __pyx_v_suboffset = (__pyx_v_view->suboffsets[__pyx_v_dim]); + + /* "View.MemoryView":917 + * shape = view.shape[dim] + * stride = view.strides[dim] + * if view.suboffsets != NULL: # <<<<<<<<<<<<<< + * suboffset = view.suboffsets[dim] + * + */ + } + } + __pyx_L3:; + + /* "View.MemoryView":920 + * suboffset = view.suboffsets[dim] + * + * if index < 0: # <<<<<<<<<<<<<< + * index += view.shape[dim] + * if index < 0: + */ + __pyx_t_2 = ((__pyx_v_index < 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":921 + * + * if index < 0: + * index += view.shape[dim] # <<<<<<<<<<<<<< + * if index < 0: + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + */ + __pyx_v_index = (__pyx_v_index + (__pyx_v_view->shape[__pyx_v_dim])); + + /* "View.MemoryView":922 + * if index < 0: + * index += view.shape[dim] + * if index < 0: # <<<<<<<<<<<<<< + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + * + */ + __pyx_t_2 = ((__pyx_v_index < 0) != 0); + if (unlikely(__pyx_t_2)) { + + /* "View.MemoryView":923 + * index += view.shape[dim] + * if index < 0: + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) # <<<<<<<<<<<<<< + * + * if index >= shape: + */ + __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 923, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 923, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IndexError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 923, __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, 923, __pyx_L1_error) + + /* "View.MemoryView":922 + * if index < 0: + * index += view.shape[dim] + * if index < 0: # <<<<<<<<<<<<<< + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + * + */ + } + + /* "View.MemoryView":920 + * suboffset = view.suboffsets[dim] + * + * if index < 0: # <<<<<<<<<<<<<< + * index += view.shape[dim] + * if index < 0: + */ + } + + /* "View.MemoryView":925 + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + * + * if index >= shape: # <<<<<<<<<<<<<< + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + * + */ + __pyx_t_2 = ((__pyx_v_index >= __pyx_v_shape) != 0); + if (unlikely(__pyx_t_2)) { + + /* "View.MemoryView":926 + * + * if index >= shape: + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) # <<<<<<<<<<<<<< + * + * resultp = bufp + index * stride + */ + __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IndexError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 926, __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, 926, __pyx_L1_error) + + /* "View.MemoryView":925 + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + * + * if index >= shape: # <<<<<<<<<<<<<< + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + * + */ + } + + /* "View.MemoryView":928 + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + * + * resultp = bufp + index * stride # <<<<<<<<<<<<<< + * if suboffset >= 0: + * resultp = ( resultp)[0] + suboffset + */ + __pyx_v_resultp = (__pyx_v_bufp + (__pyx_v_index * __pyx_v_stride)); + + /* "View.MemoryView":929 + * + * resultp = bufp + index * stride + * if suboffset >= 0: # <<<<<<<<<<<<<< + * resultp = ( resultp)[0] + suboffset + * + */ + __pyx_t_2 = ((__pyx_v_suboffset >= 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":930 + * resultp = bufp + index * stride + * if suboffset >= 0: + * resultp = ( resultp)[0] + suboffset # <<<<<<<<<<<<<< + * + * return resultp + */ + __pyx_v_resultp = ((((char **)__pyx_v_resultp)[0]) + __pyx_v_suboffset); + + /* "View.MemoryView":929 + * + * resultp = bufp + index * stride + * if suboffset >= 0: # <<<<<<<<<<<<<< + * resultp = ( resultp)[0] + suboffset + * + */ + } + + /* "View.MemoryView":932 + * resultp = ( resultp)[0] + suboffset + * + * return resultp # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = __pyx_v_resultp; + goto __pyx_L0; + + /* "View.MemoryView":905 + * + * @cname('__pyx_pybuffer_index') + * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, # <<<<<<<<<<<<<< + * Py_ssize_t dim) except NULL: + * cdef Py_ssize_t shape, stride, suboffset = -1 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("View.MemoryView.pybuffer_index", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":938 + * + * @cname('__pyx_memslice_transpose') + * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: # <<<<<<<<<<<<<< + * cdef int ndim = memslice.memview.view.ndim + * + */ + +static int __pyx_memslice_transpose(__Pyx_memviewslice *__pyx_v_memslice) { + int __pyx_v_ndim; + Py_ssize_t *__pyx_v_shape; + Py_ssize_t *__pyx_v_strides; + int __pyx_v_i; + int __pyx_v_j; + int __pyx_r; + int __pyx_t_1; + Py_ssize_t *__pyx_t_2; + long __pyx_t_3; + long __pyx_t_4; + Py_ssize_t __pyx_t_5; + Py_ssize_t __pyx_t_6; + int __pyx_t_7; + int __pyx_t_8; + int __pyx_t_9; + + /* "View.MemoryView":939 + * @cname('__pyx_memslice_transpose') + * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: + * cdef int ndim = memslice.memview.view.ndim # <<<<<<<<<<<<<< + * + * cdef Py_ssize_t *shape = memslice.shape + */ + __pyx_t_1 = __pyx_v_memslice->memview->view.ndim; + __pyx_v_ndim = __pyx_t_1; + + /* "View.MemoryView":941 + * cdef int ndim = memslice.memview.view.ndim + * + * cdef Py_ssize_t *shape = memslice.shape # <<<<<<<<<<<<<< + * cdef Py_ssize_t *strides = memslice.strides + * + */ + __pyx_t_2 = __pyx_v_memslice->shape; + __pyx_v_shape = __pyx_t_2; + + /* "View.MemoryView":942 + * + * cdef Py_ssize_t *shape = memslice.shape + * cdef Py_ssize_t *strides = memslice.strides # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_2 = __pyx_v_memslice->strides; + __pyx_v_strides = __pyx_t_2; + + /* "View.MemoryView":946 + * + * cdef int i, j + * for i in range(ndim / 2): # <<<<<<<<<<<<<< + * j = ndim - 1 - i + * strides[i], strides[j] = strides[j], strides[i] + */ + __pyx_t_3 = __Pyx_div_long(__pyx_v_ndim, 2); + __pyx_t_4 = __pyx_t_3; + for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_4; __pyx_t_1+=1) { + __pyx_v_i = __pyx_t_1; + + /* "View.MemoryView":947 + * cdef int i, j + * for i in range(ndim / 2): + * j = ndim - 1 - i # <<<<<<<<<<<<<< + * strides[i], strides[j] = strides[j], strides[i] + * shape[i], shape[j] = shape[j], shape[i] + */ + __pyx_v_j = ((__pyx_v_ndim - 1) - __pyx_v_i); + + /* "View.MemoryView":948 + * for i in range(ndim / 2): + * j = ndim - 1 - i + * strides[i], strides[j] = strides[j], strides[i] # <<<<<<<<<<<<<< + * shape[i], shape[j] = shape[j], shape[i] + * + */ + __pyx_t_5 = (__pyx_v_strides[__pyx_v_j]); + __pyx_t_6 = (__pyx_v_strides[__pyx_v_i]); + (__pyx_v_strides[__pyx_v_i]) = __pyx_t_5; + (__pyx_v_strides[__pyx_v_j]) = __pyx_t_6; + + /* "View.MemoryView":949 + * j = ndim - 1 - i + * strides[i], strides[j] = strides[j], strides[i] + * shape[i], shape[j] = shape[j], shape[i] # <<<<<<<<<<<<<< + * + * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: + */ + __pyx_t_6 = (__pyx_v_shape[__pyx_v_j]); + __pyx_t_5 = (__pyx_v_shape[__pyx_v_i]); + (__pyx_v_shape[__pyx_v_i]) = __pyx_t_6; + (__pyx_v_shape[__pyx_v_j]) = __pyx_t_5; + + /* "View.MemoryView":951 + * shape[i], shape[j] = shape[j], shape[i] + * + * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: # <<<<<<<<<<<<<< + * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") + * + */ + __pyx_t_8 = (((__pyx_v_memslice->suboffsets[__pyx_v_i]) >= 0) != 0); + if (!__pyx_t_8) { + } else { + __pyx_t_7 = __pyx_t_8; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_8 = (((__pyx_v_memslice->suboffsets[__pyx_v_j]) >= 0) != 0); + __pyx_t_7 = __pyx_t_8; + __pyx_L6_bool_binop_done:; + if (__pyx_t_7) { + + /* "View.MemoryView":952 + * + * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: + * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") # <<<<<<<<<<<<<< + * + * return 1 + */ + __pyx_t_9 = __pyx_memoryview_err(__pyx_builtin_ValueError, ((char *)"Cannot transpose memoryview with indirect dimensions")); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 952, __pyx_L1_error) + + /* "View.MemoryView":951 + * shape[i], shape[j] = shape[j], shape[i] + * + * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: # <<<<<<<<<<<<<< + * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") + * + */ + } + } + + /* "View.MemoryView":954 + * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") + * + * return 1 # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = 1; + goto __pyx_L0; + + /* "View.MemoryView":938 + * + * @cname('__pyx_memslice_transpose') + * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: # <<<<<<<<<<<<<< + * cdef int ndim = memslice.memview.view.ndim + * + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("View.MemoryView.transpose_memslice", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = 0; + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":971 + * cdef int (*to_dtype_func)(char *, object) except 0 + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) + * + */ + +/* Python wrapper */ +static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "View.MemoryView":972 + * + * def __dealloc__(self): + * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) # <<<<<<<<<<<<<< + * + * cdef convert_item_to_object(self, char *itemp): + */ + __PYX_XDEC_MEMVIEW((&__pyx_v_self->from_slice), 1); + + /* "View.MemoryView":971 + * cdef int (*to_dtype_func)(char *, object) except 0 + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) + * + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "View.MemoryView":974 + * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) + * + * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< + * if self.to_object_func != NULL: + * return self.to_object_func(itemp) + */ + +static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + __Pyx_RefNannySetupContext("convert_item_to_object", 0); + + /* "View.MemoryView":975 + * + * cdef convert_item_to_object(self, char *itemp): + * if self.to_object_func != NULL: # <<<<<<<<<<<<<< + * return self.to_object_func(itemp) + * else: + */ + __pyx_t_1 = ((__pyx_v_self->to_object_func != NULL) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":976 + * cdef convert_item_to_object(self, char *itemp): + * if self.to_object_func != NULL: + * return self.to_object_func(itemp) # <<<<<<<<<<<<<< + * else: + * return memoryview.convert_item_to_object(self, itemp) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_v_self->to_object_func(__pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":975 + * + * cdef convert_item_to_object(self, char *itemp): + * if self.to_object_func != NULL: # <<<<<<<<<<<<<< + * return self.to_object_func(itemp) + * else: + */ + } + + /* "View.MemoryView":978 + * return self.to_object_func(itemp) + * else: + * return memoryview.convert_item_to_object(self, itemp) # <<<<<<<<<<<<<< + * + * cdef assign_item_from_object(self, char *itemp, object value): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_memoryview_convert_item_to_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + } + + /* "View.MemoryView":974 + * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) + * + * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< + * if self.to_object_func != NULL: + * return self.to_object_func(itemp) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView._memoryviewslice.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":980 + * return memoryview.convert_item_to_object(self, itemp) + * + * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< + * if self.to_dtype_func != NULL: + * self.to_dtype_func(itemp, value) + */ + +static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + __Pyx_RefNannySetupContext("assign_item_from_object", 0); + + /* "View.MemoryView":981 + * + * cdef assign_item_from_object(self, char *itemp, object value): + * if self.to_dtype_func != NULL: # <<<<<<<<<<<<<< + * self.to_dtype_func(itemp, value) + * else: + */ + __pyx_t_1 = ((__pyx_v_self->to_dtype_func != NULL) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":982 + * cdef assign_item_from_object(self, char *itemp, object value): + * if self.to_dtype_func != NULL: + * self.to_dtype_func(itemp, value) # <<<<<<<<<<<<<< + * else: + * memoryview.assign_item_from_object(self, itemp, value) + */ + __pyx_t_2 = __pyx_v_self->to_dtype_func(__pyx_v_itemp, __pyx_v_value); if (unlikely(__pyx_t_2 == ((int)0))) __PYX_ERR(1, 982, __pyx_L1_error) + + /* "View.MemoryView":981 + * + * cdef assign_item_from_object(self, char *itemp, object value): + * if self.to_dtype_func != NULL: # <<<<<<<<<<<<<< + * self.to_dtype_func(itemp, value) + * else: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":984 + * self.to_dtype_func(itemp, value) + * else: + * memoryview.assign_item_from_object(self, itemp, value) # <<<<<<<<<<<<<< + * + * @property + */ + /*else*/ { + __pyx_t_3 = __pyx_memoryview_assign_item_from_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __pyx_L3:; + + /* "View.MemoryView":980 + * return memoryview.convert_item_to_object(self, itemp) + * + * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< + * if self.to_dtype_func != NULL: + * self.to_dtype_func(itemp, value) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView._memoryviewslice.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":987 + * + * @property + * def base(self): # <<<<<<<<<<<<<< + * return self.from_object + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(struct __pyx_memoryviewslice_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":988 + * @property + * def base(self): + * return self.from_object # <<<<<<<<<<<<<< + * + * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->from_object); + __pyx_r = __pyx_v_self->from_object; + goto __pyx_L0; + + /* "View.MemoryView":987 + * + * @property + * def base(self): # <<<<<<<<<<<<<< + * return self.from_object + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_memoryviewslice___reduce_cython__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__reduce_cython__", 0); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(1, 2, __pyx_L1_error) + + /* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ +static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_memoryviewslice_2__setstate_cython__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__setstate_cython__", 0); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(1, 4, __pyx_L1_error) + + /* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":994 + * + * @cname('__pyx_memoryview_fromslice') + * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice, # <<<<<<<<<<<<<< + * int ndim, + * object (*to_object_func)(char *), + */ + +static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice __pyx_v_memviewslice, int __pyx_v_ndim, PyObject *(*__pyx_v_to_object_func)(char *), int (*__pyx_v_to_dtype_func)(char *, PyObject *), int __pyx_v_dtype_is_object) { + struct __pyx_memoryviewslice_obj *__pyx_v_result = 0; + Py_ssize_t __pyx_v_suboffset; + PyObject *__pyx_v_length = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + __Pyx_TypeInfo *__pyx_t_4; + Py_buffer __pyx_t_5; + Py_ssize_t *__pyx_t_6; + Py_ssize_t *__pyx_t_7; + Py_ssize_t *__pyx_t_8; + Py_ssize_t __pyx_t_9; + __Pyx_RefNannySetupContext("memoryview_fromslice", 0); + + /* "View.MemoryView":1002 + * cdef _memoryviewslice result + * + * if memviewslice.memview == Py_None: # <<<<<<<<<<<<<< + * return None + * + */ + __pyx_t_1 = ((((PyObject *)__pyx_v_memviewslice.memview) == Py_None) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1003 + * + * if memviewslice.memview == Py_None: + * return None # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + /* "View.MemoryView":1002 + * cdef _memoryviewslice result + * + * if memviewslice.memview == Py_None: # <<<<<<<<<<<<<< + * return None + * + */ + } + + /* "View.MemoryView":1008 + * + * + * result = _memoryviewslice(None, 0, dtype_is_object) # <<<<<<<<<<<<<< + * + * result.from_slice = memviewslice + */ + __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1008, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1008, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_3, 0, Py_None); + __Pyx_INCREF(__pyx_int_0); + __Pyx_GIVEREF(__pyx_int_0); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_0); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryviewslice_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1008, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "View.MemoryView":1010 + * result = _memoryviewslice(None, 0, dtype_is_object) + * + * result.from_slice = memviewslice # <<<<<<<<<<<<<< + * __PYX_INC_MEMVIEW(&memviewslice, 1) + * + */ + __pyx_v_result->from_slice = __pyx_v_memviewslice; + + /* "View.MemoryView":1011 + * + * result.from_slice = memviewslice + * __PYX_INC_MEMVIEW(&memviewslice, 1) # <<<<<<<<<<<<<< + * + * result.from_object = ( memviewslice.memview).base + */ + __PYX_INC_MEMVIEW((&__pyx_v_memviewslice), 1); + + /* "View.MemoryView":1013 + * __PYX_INC_MEMVIEW(&memviewslice, 1) + * + * result.from_object = ( memviewslice.memview).base # <<<<<<<<<<<<<< + * result.typeinfo = memviewslice.memview.typeinfo + * + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_memviewslice.memview), __pyx_n_s_base); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __Pyx_GOTREF(__pyx_v_result->from_object); + __Pyx_DECREF(__pyx_v_result->from_object); + __pyx_v_result->from_object = __pyx_t_2; + __pyx_t_2 = 0; + + /* "View.MemoryView":1014 + * + * result.from_object = ( memviewslice.memview).base + * result.typeinfo = memviewslice.memview.typeinfo # <<<<<<<<<<<<<< + * + * result.view = memviewslice.memview.view + */ + __pyx_t_4 = __pyx_v_memviewslice.memview->typeinfo; + __pyx_v_result->__pyx_base.typeinfo = __pyx_t_4; + + /* "View.MemoryView":1016 + * result.typeinfo = memviewslice.memview.typeinfo + * + * result.view = memviewslice.memview.view # <<<<<<<<<<<<<< + * result.view.buf = memviewslice.data + * result.view.ndim = ndim + */ + __pyx_t_5 = __pyx_v_memviewslice.memview->view; + __pyx_v_result->__pyx_base.view = __pyx_t_5; + + /* "View.MemoryView":1017 + * + * result.view = memviewslice.memview.view + * result.view.buf = memviewslice.data # <<<<<<<<<<<<<< + * result.view.ndim = ndim + * (<__pyx_buffer *> &result.view).obj = Py_None + */ + __pyx_v_result->__pyx_base.view.buf = ((void *)__pyx_v_memviewslice.data); + + /* "View.MemoryView":1018 + * result.view = memviewslice.memview.view + * result.view.buf = memviewslice.data + * result.view.ndim = ndim # <<<<<<<<<<<<<< + * (<__pyx_buffer *> &result.view).obj = Py_None + * Py_INCREF(Py_None) + */ + __pyx_v_result->__pyx_base.view.ndim = __pyx_v_ndim; + + /* "View.MemoryView":1019 + * result.view.buf = memviewslice.data + * result.view.ndim = ndim + * (<__pyx_buffer *> &result.view).obj = Py_None # <<<<<<<<<<<<<< + * Py_INCREF(Py_None) + * + */ + ((Py_buffer *)(&__pyx_v_result->__pyx_base.view))->obj = Py_None; + + /* "View.MemoryView":1020 + * result.view.ndim = ndim + * (<__pyx_buffer *> &result.view).obj = Py_None + * Py_INCREF(Py_None) # <<<<<<<<<<<<<< + * + * if (memviewslice.memview).flags & PyBUF_WRITABLE: + */ + Py_INCREF(Py_None); + + /* "View.MemoryView":1022 + * Py_INCREF(Py_None) + * + * if (memviewslice.memview).flags & PyBUF_WRITABLE: # <<<<<<<<<<<<<< + * result.flags = PyBUF_RECORDS + * else: + */ + __pyx_t_1 = ((((struct __pyx_memoryview_obj *)__pyx_v_memviewslice.memview)->flags & PyBUF_WRITABLE) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1023 + * + * if (memviewslice.memview).flags & PyBUF_WRITABLE: + * result.flags = PyBUF_RECORDS # <<<<<<<<<<<<<< + * else: + * result.flags = PyBUF_RECORDS_RO + */ + __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS; + + /* "View.MemoryView":1022 + * Py_INCREF(Py_None) + * + * if (memviewslice.memview).flags & PyBUF_WRITABLE: # <<<<<<<<<<<<<< + * result.flags = PyBUF_RECORDS + * else: + */ + goto __pyx_L4; + } + + /* "View.MemoryView":1025 + * result.flags = PyBUF_RECORDS + * else: + * result.flags = PyBUF_RECORDS_RO # <<<<<<<<<<<<<< + * + * result.view.shape = result.from_slice.shape + */ + /*else*/ { + __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS_RO; + } + __pyx_L4:; + + /* "View.MemoryView":1027 + * result.flags = PyBUF_RECORDS_RO + * + * result.view.shape = result.from_slice.shape # <<<<<<<<<<<<<< + * result.view.strides = result.from_slice.strides + * + */ + __pyx_v_result->__pyx_base.view.shape = ((Py_ssize_t *)__pyx_v_result->from_slice.shape); + + /* "View.MemoryView":1028 + * + * result.view.shape = result.from_slice.shape + * result.view.strides = result.from_slice.strides # <<<<<<<<<<<<<< + * + * + */ + __pyx_v_result->__pyx_base.view.strides = ((Py_ssize_t *)__pyx_v_result->from_slice.strides); + + /* "View.MemoryView":1031 + * + * + * result.view.suboffsets = NULL # <<<<<<<<<<<<<< + * for suboffset in result.from_slice.suboffsets[:ndim]: + * if suboffset >= 0: + */ + __pyx_v_result->__pyx_base.view.suboffsets = NULL; + + /* "View.MemoryView":1032 + * + * result.view.suboffsets = NULL + * for suboffset in result.from_slice.suboffsets[:ndim]: # <<<<<<<<<<<<<< + * if suboffset >= 0: + * result.view.suboffsets = result.from_slice.suboffsets + */ + __pyx_t_7 = (__pyx_v_result->from_slice.suboffsets + __pyx_v_ndim); + for (__pyx_t_8 = __pyx_v_result->from_slice.suboffsets; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) { + __pyx_t_6 = __pyx_t_8; + __pyx_v_suboffset = (__pyx_t_6[0]); + + /* "View.MemoryView":1033 + * result.view.suboffsets = NULL + * for suboffset in result.from_slice.suboffsets[:ndim]: + * if suboffset >= 0: # <<<<<<<<<<<<<< + * result.view.suboffsets = result.from_slice.suboffsets + * break + */ + __pyx_t_1 = ((__pyx_v_suboffset >= 0) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1034 + * for suboffset in result.from_slice.suboffsets[:ndim]: + * if suboffset >= 0: + * result.view.suboffsets = result.from_slice.suboffsets # <<<<<<<<<<<<<< + * break + * + */ + __pyx_v_result->__pyx_base.view.suboffsets = ((Py_ssize_t *)__pyx_v_result->from_slice.suboffsets); + + /* "View.MemoryView":1035 + * if suboffset >= 0: + * result.view.suboffsets = result.from_slice.suboffsets + * break # <<<<<<<<<<<<<< + * + * result.view.len = result.view.itemsize + */ + goto __pyx_L6_break; + + /* "View.MemoryView":1033 + * result.view.suboffsets = NULL + * for suboffset in result.from_slice.suboffsets[:ndim]: + * if suboffset >= 0: # <<<<<<<<<<<<<< + * result.view.suboffsets = result.from_slice.suboffsets + * break + */ + } + } + __pyx_L6_break:; + + /* "View.MemoryView":1037 + * break + * + * result.view.len = result.view.itemsize # <<<<<<<<<<<<<< + * for length in result.view.shape[:ndim]: + * result.view.len *= length + */ + __pyx_t_9 = __pyx_v_result->__pyx_base.view.itemsize; + __pyx_v_result->__pyx_base.view.len = __pyx_t_9; + + /* "View.MemoryView":1038 + * + * result.view.len = result.view.itemsize + * for length in result.view.shape[:ndim]: # <<<<<<<<<<<<<< + * result.view.len *= length + * + */ + __pyx_t_7 = (__pyx_v_result->__pyx_base.view.shape + __pyx_v_ndim); + for (__pyx_t_8 = __pyx_v_result->__pyx_base.view.shape; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) { + __pyx_t_6 = __pyx_t_8; + __pyx_t_2 = PyInt_FromSsize_t((__pyx_t_6[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1038, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_2); + __pyx_t_2 = 0; + + /* "View.MemoryView":1039 + * result.view.len = result.view.itemsize + * for length in result.view.shape[:ndim]: + * result.view.len *= length # <<<<<<<<<<<<<< + * + * result.to_object_func = to_object_func + */ + __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_result->__pyx_base.view.len); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1039, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyNumber_InPlaceMultiply(__pyx_t_2, __pyx_v_length); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1039, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 1039, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_result->__pyx_base.view.len = __pyx_t_9; + } + + /* "View.MemoryView":1041 + * result.view.len *= length + * + * result.to_object_func = to_object_func # <<<<<<<<<<<<<< + * result.to_dtype_func = to_dtype_func + * + */ + __pyx_v_result->to_object_func = __pyx_v_to_object_func; + + /* "View.MemoryView":1042 + * + * result.to_object_func = to_object_func + * result.to_dtype_func = to_dtype_func # <<<<<<<<<<<<<< + * + * return result + */ + __pyx_v_result->to_dtype_func = __pyx_v_to_dtype_func; + + /* "View.MemoryView":1044 + * result.to_dtype_func = to_dtype_func + * + * return result # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_get_slice_from_memoryview') + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "View.MemoryView":994 + * + * @cname('__pyx_memoryview_fromslice') + * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice, # <<<<<<<<<<<<<< + * int ndim, + * object (*to_object_func)(char *), + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.memoryview_fromslice", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XDECREF(__pyx_v_length); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":1047 + * + * @cname('__pyx_memoryview_get_slice_from_memoryview') + * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview, # <<<<<<<<<<<<<< + * __Pyx_memviewslice *mslice): + * cdef _memoryviewslice obj + */ + +static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_mslice) { + struct __pyx_memoryviewslice_obj *__pyx_v_obj = 0; + __Pyx_memviewslice *__pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + __Pyx_RefNannySetupContext("get_slice_from_memview", 0); + + /* "View.MemoryView":1050 + * __Pyx_memviewslice *mslice): + * cdef _memoryviewslice obj + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * obj = memview + * return &obj.from_slice + */ + __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1051 + * cdef _memoryviewslice obj + * if isinstance(memview, _memoryviewslice): + * obj = memview # <<<<<<<<<<<<<< + * return &obj.from_slice + * else: + */ + if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(1, 1051, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_v_memview); + __Pyx_INCREF(__pyx_t_3); + __pyx_v_obj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "View.MemoryView":1052 + * if isinstance(memview, _memoryviewslice): + * obj = memview + * return &obj.from_slice # <<<<<<<<<<<<<< + * else: + * slice_copy(memview, mslice) + */ + __pyx_r = (&__pyx_v_obj->from_slice); + goto __pyx_L0; + + /* "View.MemoryView":1050 + * __Pyx_memviewslice *mslice): + * cdef _memoryviewslice obj + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * obj = memview + * return &obj.from_slice + */ + } + + /* "View.MemoryView":1054 + * return &obj.from_slice + * else: + * slice_copy(memview, mslice) # <<<<<<<<<<<<<< + * return mslice + * + */ + /*else*/ { + __pyx_memoryview_slice_copy(__pyx_v_memview, __pyx_v_mslice); + + /* "View.MemoryView":1055 + * else: + * slice_copy(memview, mslice) + * return mslice # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_slice_copy') + */ + __pyx_r = __pyx_v_mslice; + goto __pyx_L0; + } + + /* "View.MemoryView":1047 + * + * @cname('__pyx_memoryview_get_slice_from_memoryview') + * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview, # <<<<<<<<<<<<<< + * __Pyx_memviewslice *mslice): + * cdef _memoryviewslice obj + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_WriteUnraisable("View.MemoryView.get_slice_from_memview", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_obj); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":1058 + * + * @cname('__pyx_memoryview_slice_copy') + * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst): # <<<<<<<<<<<<<< + * cdef int dim + * cdef (Py_ssize_t*) shape, strides, suboffsets + */ + +static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_dst) { + int __pyx_v_dim; + Py_ssize_t *__pyx_v_shape; + Py_ssize_t *__pyx_v_strides; + Py_ssize_t *__pyx_v_suboffsets; + __Pyx_RefNannyDeclarations + Py_ssize_t *__pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + Py_ssize_t __pyx_t_5; + __Pyx_RefNannySetupContext("slice_copy", 0); + + /* "View.MemoryView":1062 + * cdef (Py_ssize_t*) shape, strides, suboffsets + * + * shape = memview.view.shape # <<<<<<<<<<<<<< + * strides = memview.view.strides + * suboffsets = memview.view.suboffsets + */ + __pyx_t_1 = __pyx_v_memview->view.shape; + __pyx_v_shape = __pyx_t_1; + + /* "View.MemoryView":1063 + * + * shape = memview.view.shape + * strides = memview.view.strides # <<<<<<<<<<<<<< + * suboffsets = memview.view.suboffsets + * + */ + __pyx_t_1 = __pyx_v_memview->view.strides; + __pyx_v_strides = __pyx_t_1; + + /* "View.MemoryView":1064 + * shape = memview.view.shape + * strides = memview.view.strides + * suboffsets = memview.view.suboffsets # <<<<<<<<<<<<<< + * + * dst.memview = <__pyx_memoryview *> memview + */ + __pyx_t_1 = __pyx_v_memview->view.suboffsets; + __pyx_v_suboffsets = __pyx_t_1; + + /* "View.MemoryView":1066 + * suboffsets = memview.view.suboffsets + * + * dst.memview = <__pyx_memoryview *> memview # <<<<<<<<<<<<<< + * dst.data = memview.view.buf + * + */ + __pyx_v_dst->memview = ((struct __pyx_memoryview_obj *)__pyx_v_memview); + + /* "View.MemoryView":1067 + * + * dst.memview = <__pyx_memoryview *> memview + * dst.data = memview.view.buf # <<<<<<<<<<<<<< + * + * for dim in range(memview.view.ndim): + */ + __pyx_v_dst->data = ((char *)__pyx_v_memview->view.buf); + + /* "View.MemoryView":1069 + * dst.data = memview.view.buf + * + * for dim in range(memview.view.ndim): # <<<<<<<<<<<<<< + * dst.shape[dim] = shape[dim] + * dst.strides[dim] = strides[dim] + */ + __pyx_t_2 = __pyx_v_memview->view.ndim; + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_dim = __pyx_t_4; + + /* "View.MemoryView":1070 + * + * for dim in range(memview.view.ndim): + * dst.shape[dim] = shape[dim] # <<<<<<<<<<<<<< + * dst.strides[dim] = strides[dim] + * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 + */ + (__pyx_v_dst->shape[__pyx_v_dim]) = (__pyx_v_shape[__pyx_v_dim]); + + /* "View.MemoryView":1071 + * for dim in range(memview.view.ndim): + * dst.shape[dim] = shape[dim] + * dst.strides[dim] = strides[dim] # <<<<<<<<<<<<<< + * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 + * + */ + (__pyx_v_dst->strides[__pyx_v_dim]) = (__pyx_v_strides[__pyx_v_dim]); + + /* "View.MemoryView":1072 + * dst.shape[dim] = shape[dim] + * dst.strides[dim] = strides[dim] + * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_copy_object') + */ + if ((__pyx_v_suboffsets != 0)) { + __pyx_t_5 = (__pyx_v_suboffsets[__pyx_v_dim]); + } else { + __pyx_t_5 = -1L; + } + (__pyx_v_dst->suboffsets[__pyx_v_dim]) = __pyx_t_5; + } + + /* "View.MemoryView":1058 + * + * @cname('__pyx_memoryview_slice_copy') + * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst): # <<<<<<<<<<<<<< + * cdef int dim + * cdef (Py_ssize_t*) shape, strides, suboffsets + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "View.MemoryView":1075 + * + * @cname('__pyx_memoryview_copy_object') + * cdef memoryview_copy(memoryview memview): # <<<<<<<<<<<<<< + * "Create a new memoryview object" + * cdef __Pyx_memviewslice memviewslice + */ + +static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *__pyx_v_memview) { + __Pyx_memviewslice __pyx_v_memviewslice; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("memoryview_copy", 0); + + /* "View.MemoryView":1078 + * "Create a new memoryview object" + * cdef __Pyx_memviewslice memviewslice + * slice_copy(memview, &memviewslice) # <<<<<<<<<<<<<< + * return memoryview_copy_from_slice(memview, &memviewslice) + * + */ + __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_memviewslice)); + + /* "View.MemoryView":1079 + * cdef __Pyx_memviewslice memviewslice + * slice_copy(memview, &memviewslice) + * return memoryview_copy_from_slice(memview, &memviewslice) # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_copy_object_from_slice') + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_memoryview_copy_object_from_slice(__pyx_v_memview, (&__pyx_v_memviewslice)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "View.MemoryView":1075 + * + * @cname('__pyx_memoryview_copy_object') + * cdef memoryview_copy(memoryview memview): # <<<<<<<<<<<<<< + * "Create a new memoryview object" + * cdef __Pyx_memviewslice memviewslice + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.memoryview_copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":1082 + * + * @cname('__pyx_memoryview_copy_object_from_slice') + * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice): # <<<<<<<<<<<<<< + * """ + * Create a new memoryview object from a given memoryview object and slice. + */ + +static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_memviewslice) { + PyObject *(*__pyx_v_to_object_func)(char *); + int (*__pyx_v_to_dtype_func)(char *, PyObject *); + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *(*__pyx_t_3)(char *); + int (*__pyx_t_4)(char *, PyObject *); + PyObject *__pyx_t_5 = NULL; + __Pyx_RefNannySetupContext("memoryview_copy_from_slice", 0); + + /* "View.MemoryView":1089 + * cdef int (*to_dtype_func)(char *, object) except 0 + * + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * to_object_func = (<_memoryviewslice> memview).to_object_func + * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func + */ + __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1090 + * + * if isinstance(memview, _memoryviewslice): + * to_object_func = (<_memoryviewslice> memview).to_object_func # <<<<<<<<<<<<<< + * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func + * else: + */ + __pyx_t_3 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_object_func; + __pyx_v_to_object_func = __pyx_t_3; + + /* "View.MemoryView":1091 + * if isinstance(memview, _memoryviewslice): + * to_object_func = (<_memoryviewslice> memview).to_object_func + * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func # <<<<<<<<<<<<<< + * else: + * to_object_func = NULL + */ + __pyx_t_4 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_dtype_func; + __pyx_v_to_dtype_func = __pyx_t_4; + + /* "View.MemoryView":1089 + * cdef int (*to_dtype_func)(char *, object) except 0 + * + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * to_object_func = (<_memoryviewslice> memview).to_object_func + * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func + */ + goto __pyx_L3; + } + + /* "View.MemoryView":1093 + * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func + * else: + * to_object_func = NULL # <<<<<<<<<<<<<< + * to_dtype_func = NULL + * + */ + /*else*/ { + __pyx_v_to_object_func = NULL; + + /* "View.MemoryView":1094 + * else: + * to_object_func = NULL + * to_dtype_func = NULL # <<<<<<<<<<<<<< + * + * return memoryview_fromslice(memviewslice[0], memview.view.ndim, + */ + __pyx_v_to_dtype_func = NULL; + } + __pyx_L3:; + + /* "View.MemoryView":1096 + * to_dtype_func = NULL + * + * return memoryview_fromslice(memviewslice[0], memview.view.ndim, # <<<<<<<<<<<<<< + * to_object_func, to_dtype_func, + * memview.dtype_is_object) + */ + __Pyx_XDECREF(__pyx_r); + + /* "View.MemoryView":1098 + * return memoryview_fromslice(memviewslice[0], memview.view.ndim, + * to_object_func, to_dtype_func, + * memview.dtype_is_object) # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_5 = __pyx_memoryview_fromslice((__pyx_v_memviewslice[0]), __pyx_v_memview->view.ndim, __pyx_v_to_object_func, __pyx_v_to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "View.MemoryView":1082 + * + * @cname('__pyx_memoryview_copy_object_from_slice') + * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice): # <<<<<<<<<<<<<< + * """ + * Create a new memoryview object from a given memoryview object and slice. + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView.memoryview_copy_from_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":1104 + * + * + * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: # <<<<<<<<<<<<<< + * if arg < 0: + * return -arg + */ + +static Py_ssize_t abs_py_ssize_t(Py_ssize_t __pyx_v_arg) { + Py_ssize_t __pyx_r; + int __pyx_t_1; + + /* "View.MemoryView":1105 + * + * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: + * if arg < 0: # <<<<<<<<<<<<<< + * return -arg + * else: + */ + __pyx_t_1 = ((__pyx_v_arg < 0) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1106 + * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: + * if arg < 0: + * return -arg # <<<<<<<<<<<<<< + * else: + * return arg + */ + __pyx_r = (-__pyx_v_arg); + goto __pyx_L0; + + /* "View.MemoryView":1105 + * + * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: + * if arg < 0: # <<<<<<<<<<<<<< + * return -arg + * else: + */ + } + + /* "View.MemoryView":1108 + * return -arg + * else: + * return arg # <<<<<<<<<<<<<< + * + * @cname('__pyx_get_best_slice_order') + */ + /*else*/ { + __pyx_r = __pyx_v_arg; + goto __pyx_L0; + } + + /* "View.MemoryView":1104 + * + * + * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: # <<<<<<<<<<<<<< + * if arg < 0: + * return -arg + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":1111 + * + * @cname('__pyx_get_best_slice_order') + * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) nogil: # <<<<<<<<<<<<<< + * """ + * Figure out the best memory access order for a given slice. + */ + +static char __pyx_get_best_slice_order(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim) { + int __pyx_v_i; + Py_ssize_t __pyx_v_c_stride; + Py_ssize_t __pyx_v_f_stride; + char __pyx_r; + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + + /* "View.MemoryView":1116 + * """ + * cdef int i + * cdef Py_ssize_t c_stride = 0 # <<<<<<<<<<<<<< + * cdef Py_ssize_t f_stride = 0 + * + */ + __pyx_v_c_stride = 0; + + /* "View.MemoryView":1117 + * cdef int i + * cdef Py_ssize_t c_stride = 0 + * cdef Py_ssize_t f_stride = 0 # <<<<<<<<<<<<<< + * + * for i in range(ndim - 1, -1, -1): + */ + __pyx_v_f_stride = 0; + + /* "View.MemoryView":1119 + * cdef Py_ssize_t f_stride = 0 + * + * for i in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< + * if mslice.shape[i] > 1: + * c_stride = mslice.strides[i] + */ + for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) { + __pyx_v_i = __pyx_t_1; + + /* "View.MemoryView":1120 + * + * for i in range(ndim - 1, -1, -1): + * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< + * c_stride = mslice.strides[i] + * break + */ + __pyx_t_2 = (((__pyx_v_mslice->shape[__pyx_v_i]) > 1) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1121 + * for i in range(ndim - 1, -1, -1): + * if mslice.shape[i] > 1: + * c_stride = mslice.strides[i] # <<<<<<<<<<<<<< + * break + * + */ + __pyx_v_c_stride = (__pyx_v_mslice->strides[__pyx_v_i]); + + /* "View.MemoryView":1122 + * if mslice.shape[i] > 1: + * c_stride = mslice.strides[i] + * break # <<<<<<<<<<<<<< + * + * for i in range(ndim): + */ + goto __pyx_L4_break; + + /* "View.MemoryView":1120 + * + * for i in range(ndim - 1, -1, -1): + * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< + * c_stride = mslice.strides[i] + * break + */ + } + } + __pyx_L4_break:; + + /* "View.MemoryView":1124 + * break + * + * for i in range(ndim): # <<<<<<<<<<<<<< + * if mslice.shape[i] > 1: + * f_stride = mslice.strides[i] + */ + __pyx_t_1 = __pyx_v_ndim; + __pyx_t_3 = __pyx_t_1; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + + /* "View.MemoryView":1125 + * + * for i in range(ndim): + * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< + * f_stride = mslice.strides[i] + * break + */ + __pyx_t_2 = (((__pyx_v_mslice->shape[__pyx_v_i]) > 1) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1126 + * for i in range(ndim): + * if mslice.shape[i] > 1: + * f_stride = mslice.strides[i] # <<<<<<<<<<<<<< + * break + * + */ + __pyx_v_f_stride = (__pyx_v_mslice->strides[__pyx_v_i]); + + /* "View.MemoryView":1127 + * if mslice.shape[i] > 1: + * f_stride = mslice.strides[i] + * break # <<<<<<<<<<<<<< + * + * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): + */ + goto __pyx_L7_break; + + /* "View.MemoryView":1125 + * + * for i in range(ndim): + * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< + * f_stride = mslice.strides[i] + * break + */ + } + } + __pyx_L7_break:; + + /* "View.MemoryView":1129 + * break + * + * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): # <<<<<<<<<<<<<< + * return 'C' + * else: + */ + __pyx_t_2 = ((abs_py_ssize_t(__pyx_v_c_stride) <= abs_py_ssize_t(__pyx_v_f_stride)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1130 + * + * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): + * return 'C' # <<<<<<<<<<<<<< + * else: + * return 'F' + */ + __pyx_r = 'C'; + goto __pyx_L0; + + /* "View.MemoryView":1129 + * break + * + * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): # <<<<<<<<<<<<<< + * return 'C' + * else: + */ + } + + /* "View.MemoryView":1132 + * return 'C' + * else: + * return 'F' # <<<<<<<<<<<<<< + * + * @cython.cdivision(True) + */ + /*else*/ { + __pyx_r = 'F'; + goto __pyx_L0; + } + + /* "View.MemoryView":1111 + * + * @cname('__pyx_get_best_slice_order') + * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) nogil: # <<<<<<<<<<<<<< + * """ + * Figure out the best memory access order for a given slice. + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":1135 + * + * @cython.cdivision(True) + * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides, # <<<<<<<<<<<<<< + * char *dst_data, Py_ssize_t *dst_strides, + * Py_ssize_t *src_shape, Py_ssize_t *dst_shape, + */ + +static void _copy_strided_to_strided(char *__pyx_v_src_data, Py_ssize_t *__pyx_v_src_strides, char *__pyx_v_dst_data, Py_ssize_t *__pyx_v_dst_strides, Py_ssize_t *__pyx_v_src_shape, Py_ssize_t *__pyx_v_dst_shape, int __pyx_v_ndim, size_t __pyx_v_itemsize) { + CYTHON_UNUSED Py_ssize_t __pyx_v_i; + CYTHON_UNUSED Py_ssize_t __pyx_v_src_extent; + Py_ssize_t __pyx_v_dst_extent; + Py_ssize_t __pyx_v_src_stride; + Py_ssize_t __pyx_v_dst_stride; + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + Py_ssize_t __pyx_t_4; + Py_ssize_t __pyx_t_5; + Py_ssize_t __pyx_t_6; + + /* "View.MemoryView":1142 + * + * cdef Py_ssize_t i + * cdef Py_ssize_t src_extent = src_shape[0] # <<<<<<<<<<<<<< + * cdef Py_ssize_t dst_extent = dst_shape[0] + * cdef Py_ssize_t src_stride = src_strides[0] + */ + __pyx_v_src_extent = (__pyx_v_src_shape[0]); + + /* "View.MemoryView":1143 + * cdef Py_ssize_t i + * cdef Py_ssize_t src_extent = src_shape[0] + * cdef Py_ssize_t dst_extent = dst_shape[0] # <<<<<<<<<<<<<< + * cdef Py_ssize_t src_stride = src_strides[0] + * cdef Py_ssize_t dst_stride = dst_strides[0] + */ + __pyx_v_dst_extent = (__pyx_v_dst_shape[0]); + + /* "View.MemoryView":1144 + * cdef Py_ssize_t src_extent = src_shape[0] + * cdef Py_ssize_t dst_extent = dst_shape[0] + * cdef Py_ssize_t src_stride = src_strides[0] # <<<<<<<<<<<<<< + * cdef Py_ssize_t dst_stride = dst_strides[0] + * + */ + __pyx_v_src_stride = (__pyx_v_src_strides[0]); + + /* "View.MemoryView":1145 + * cdef Py_ssize_t dst_extent = dst_shape[0] + * cdef Py_ssize_t src_stride = src_strides[0] + * cdef Py_ssize_t dst_stride = dst_strides[0] # <<<<<<<<<<<<<< + * + * if ndim == 1: + */ + __pyx_v_dst_stride = (__pyx_v_dst_strides[0]); + + /* "View.MemoryView":1147 + * cdef Py_ssize_t dst_stride = dst_strides[0] + * + * if ndim == 1: # <<<<<<<<<<<<<< + * if (src_stride > 0 and dst_stride > 0 and + * src_stride == itemsize == dst_stride): + */ + __pyx_t_1 = ((__pyx_v_ndim == 1) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1148 + * + * if ndim == 1: + * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< + * src_stride == itemsize == dst_stride): + * memcpy(dst_data, src_data, itemsize * dst_extent) + */ + __pyx_t_2 = ((__pyx_v_src_stride > 0) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_2 = ((__pyx_v_dst_stride > 0) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L5_bool_binop_done; + } + + /* "View.MemoryView":1149 + * if ndim == 1: + * if (src_stride > 0 and dst_stride > 0 and + * src_stride == itemsize == dst_stride): # <<<<<<<<<<<<<< + * memcpy(dst_data, src_data, itemsize * dst_extent) + * else: + */ + __pyx_t_2 = (((size_t)__pyx_v_src_stride) == __pyx_v_itemsize); + if (__pyx_t_2) { + __pyx_t_2 = (__pyx_v_itemsize == ((size_t)__pyx_v_dst_stride)); + } + __pyx_t_3 = (__pyx_t_2 != 0); + __pyx_t_1 = __pyx_t_3; + __pyx_L5_bool_binop_done:; + + /* "View.MemoryView":1148 + * + * if ndim == 1: + * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< + * src_stride == itemsize == dst_stride): + * memcpy(dst_data, src_data, itemsize * dst_extent) + */ + if (__pyx_t_1) { + + /* "View.MemoryView":1150 + * if (src_stride > 0 and dst_stride > 0 and + * src_stride == itemsize == dst_stride): + * memcpy(dst_data, src_data, itemsize * dst_extent) # <<<<<<<<<<<<<< + * else: + * for i in range(dst_extent): + */ + (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, (__pyx_v_itemsize * __pyx_v_dst_extent))); + + /* "View.MemoryView":1148 + * + * if ndim == 1: + * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< + * src_stride == itemsize == dst_stride): + * memcpy(dst_data, src_data, itemsize * dst_extent) + */ + goto __pyx_L4; + } + + /* "View.MemoryView":1152 + * memcpy(dst_data, src_data, itemsize * dst_extent) + * else: + * for i in range(dst_extent): # <<<<<<<<<<<<<< + * memcpy(dst_data, src_data, itemsize) + * src_data += src_stride + */ + /*else*/ { + __pyx_t_4 = __pyx_v_dst_extent; + __pyx_t_5 = __pyx_t_4; + for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { + __pyx_v_i = __pyx_t_6; + + /* "View.MemoryView":1153 + * else: + * for i in range(dst_extent): + * memcpy(dst_data, src_data, itemsize) # <<<<<<<<<<<<<< + * src_data += src_stride + * dst_data += dst_stride + */ + (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, __pyx_v_itemsize)); + + /* "View.MemoryView":1154 + * for i in range(dst_extent): + * memcpy(dst_data, src_data, itemsize) + * src_data += src_stride # <<<<<<<<<<<<<< + * dst_data += dst_stride + * else: + */ + __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride); + + /* "View.MemoryView":1155 + * memcpy(dst_data, src_data, itemsize) + * src_data += src_stride + * dst_data += dst_stride # <<<<<<<<<<<<<< + * else: + * for i in range(dst_extent): + */ + __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride); + } + } + __pyx_L4:; + + /* "View.MemoryView":1147 + * cdef Py_ssize_t dst_stride = dst_strides[0] + * + * if ndim == 1: # <<<<<<<<<<<<<< + * if (src_stride > 0 and dst_stride > 0 and + * src_stride == itemsize == dst_stride): + */ + goto __pyx_L3; + } + + /* "View.MemoryView":1157 + * dst_data += dst_stride + * else: + * for i in range(dst_extent): # <<<<<<<<<<<<<< + * _copy_strided_to_strided(src_data, src_strides + 1, + * dst_data, dst_strides + 1, + */ + /*else*/ { + __pyx_t_4 = __pyx_v_dst_extent; + __pyx_t_5 = __pyx_t_4; + for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { + __pyx_v_i = __pyx_t_6; + + /* "View.MemoryView":1158 + * else: + * for i in range(dst_extent): + * _copy_strided_to_strided(src_data, src_strides + 1, # <<<<<<<<<<<<<< + * dst_data, dst_strides + 1, + * src_shape + 1, dst_shape + 1, + */ + _copy_strided_to_strided(__pyx_v_src_data, (__pyx_v_src_strides + 1), __pyx_v_dst_data, (__pyx_v_dst_strides + 1), (__pyx_v_src_shape + 1), (__pyx_v_dst_shape + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize); + + /* "View.MemoryView":1162 + * src_shape + 1, dst_shape + 1, + * ndim - 1, itemsize) + * src_data += src_stride # <<<<<<<<<<<<<< + * dst_data += dst_stride + * + */ + __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride); + + /* "View.MemoryView":1163 + * ndim - 1, itemsize) + * src_data += src_stride + * dst_data += dst_stride # <<<<<<<<<<<<<< + * + * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, + */ + __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride); + } + } + __pyx_L3:; + + /* "View.MemoryView":1135 + * + * @cython.cdivision(True) + * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides, # <<<<<<<<<<<<<< + * char *dst_data, Py_ssize_t *dst_strides, + * Py_ssize_t *src_shape, Py_ssize_t *dst_shape, + */ + + /* function exit code */ +} + +/* "View.MemoryView":1165 + * dst_data += dst_stride + * + * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< + * __Pyx_memviewslice *dst, + * int ndim, size_t itemsize) nogil: + */ + +static void copy_strided_to_strided(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize) { + + /* "View.MemoryView":1168 + * __Pyx_memviewslice *dst, + * int ndim, size_t itemsize) nogil: + * _copy_strided_to_strided(src.data, src.strides, dst.data, dst.strides, # <<<<<<<<<<<<<< + * src.shape, dst.shape, ndim, itemsize) + * + */ + _copy_strided_to_strided(__pyx_v_src->data, __pyx_v_src->strides, __pyx_v_dst->data, __pyx_v_dst->strides, __pyx_v_src->shape, __pyx_v_dst->shape, __pyx_v_ndim, __pyx_v_itemsize); + + /* "View.MemoryView":1165 + * dst_data += dst_stride + * + * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< + * __Pyx_memviewslice *dst, + * int ndim, size_t itemsize) nogil: + */ + + /* function exit code */ +} + +/* "View.MemoryView":1172 + * + * @cname('__pyx_memoryview_slice_get_size') + * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) nogil: # <<<<<<<<<<<<<< + * "Return the size of the memory occupied by the slice in number of bytes" + * cdef int i + */ + +static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *__pyx_v_src, int __pyx_v_ndim) { + int __pyx_v_i; + Py_ssize_t __pyx_v_size; + Py_ssize_t __pyx_r; + Py_ssize_t __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + + /* "View.MemoryView":1175 + * "Return the size of the memory occupied by the slice in number of bytes" + * cdef int i + * cdef Py_ssize_t size = src.memview.view.itemsize # <<<<<<<<<<<<<< + * + * for i in range(ndim): + */ + __pyx_t_1 = __pyx_v_src->memview->view.itemsize; + __pyx_v_size = __pyx_t_1; + + /* "View.MemoryView":1177 + * cdef Py_ssize_t size = src.memview.view.itemsize + * + * for i in range(ndim): # <<<<<<<<<<<<<< + * size *= src.shape[i] + * + */ + __pyx_t_2 = __pyx_v_ndim; + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + + /* "View.MemoryView":1178 + * + * for i in range(ndim): + * size *= src.shape[i] # <<<<<<<<<<<<<< + * + * return size + */ + __pyx_v_size = (__pyx_v_size * (__pyx_v_src->shape[__pyx_v_i])); + } + + /* "View.MemoryView":1180 + * size *= src.shape[i] + * + * return size # <<<<<<<<<<<<<< + * + * @cname('__pyx_fill_contig_strides_array') + */ + __pyx_r = __pyx_v_size; + goto __pyx_L0; + + /* "View.MemoryView":1172 + * + * @cname('__pyx_memoryview_slice_get_size') + * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) nogil: # <<<<<<<<<<<<<< + * "Return the size of the memory occupied by the slice in number of bytes" + * cdef int i + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":1183 + * + * @cname('__pyx_fill_contig_strides_array') + * cdef Py_ssize_t fill_contig_strides_array( # <<<<<<<<<<<<<< + * Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride, + * int ndim, char order) nogil: + */ + +static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, Py_ssize_t __pyx_v_stride, int __pyx_v_ndim, char __pyx_v_order) { + int __pyx_v_idx; + Py_ssize_t __pyx_r; + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + + /* "View.MemoryView":1192 + * cdef int idx + * + * if order == 'F': # <<<<<<<<<<<<<< + * for idx in range(ndim): + * strides[idx] = stride + */ + __pyx_t_1 = ((__pyx_v_order == 'F') != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1193 + * + * if order == 'F': + * for idx in range(ndim): # <<<<<<<<<<<<<< + * strides[idx] = stride + * stride = stride * shape[idx] + */ + __pyx_t_2 = __pyx_v_ndim; + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_idx = __pyx_t_4; + + /* "View.MemoryView":1194 + * if order == 'F': + * for idx in range(ndim): + * strides[idx] = stride # <<<<<<<<<<<<<< + * stride = stride * shape[idx] + * else: + */ + (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride; + + /* "View.MemoryView":1195 + * for idx in range(ndim): + * strides[idx] = stride + * stride = stride * shape[idx] # <<<<<<<<<<<<<< + * else: + * for idx in range(ndim - 1, -1, -1): + */ + __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx])); + } + + /* "View.MemoryView":1192 + * cdef int idx + * + * if order == 'F': # <<<<<<<<<<<<<< + * for idx in range(ndim): + * strides[idx] = stride + */ + goto __pyx_L3; + } + + /* "View.MemoryView":1197 + * stride = stride * shape[idx] + * else: + * for idx in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< + * strides[idx] = stride + * stride = stride * shape[idx] + */ + /*else*/ { + for (__pyx_t_2 = (__pyx_v_ndim - 1); __pyx_t_2 > -1; __pyx_t_2-=1) { + __pyx_v_idx = __pyx_t_2; + + /* "View.MemoryView":1198 + * else: + * for idx in range(ndim - 1, -1, -1): + * strides[idx] = stride # <<<<<<<<<<<<<< + * stride = stride * shape[idx] + * + */ + (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride; + + /* "View.MemoryView":1199 + * for idx in range(ndim - 1, -1, -1): + * strides[idx] = stride + * stride = stride * shape[idx] # <<<<<<<<<<<<<< + * + * return stride + */ + __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx])); + } + } + __pyx_L3:; + + /* "View.MemoryView":1201 + * stride = stride * shape[idx] + * + * return stride # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_copy_data_to_temp') + */ + __pyx_r = __pyx_v_stride; + goto __pyx_L0; + + /* "View.MemoryView":1183 + * + * @cname('__pyx_fill_contig_strides_array') + * cdef Py_ssize_t fill_contig_strides_array( # <<<<<<<<<<<<<< + * Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride, + * int ndim, char order) nogil: + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":1204 + * + * @cname('__pyx_memoryview_copy_data_to_temp') + * cdef void *copy_data_to_temp(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< + * __Pyx_memviewslice *tmpslice, + * char order, + */ + +static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_tmpslice, char __pyx_v_order, int __pyx_v_ndim) { + int __pyx_v_i; + void *__pyx_v_result; + size_t __pyx_v_itemsize; + size_t __pyx_v_size; + void *__pyx_r; + Py_ssize_t __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + struct __pyx_memoryview_obj *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + + /* "View.MemoryView":1215 + * cdef void *result + * + * cdef size_t itemsize = src.memview.view.itemsize # <<<<<<<<<<<<<< + * cdef size_t size = slice_get_size(src, ndim) + * + */ + __pyx_t_1 = __pyx_v_src->memview->view.itemsize; + __pyx_v_itemsize = __pyx_t_1; + + /* "View.MemoryView":1216 + * + * cdef size_t itemsize = src.memview.view.itemsize + * cdef size_t size = slice_get_size(src, ndim) # <<<<<<<<<<<<<< + * + * result = malloc(size) + */ + __pyx_v_size = __pyx_memoryview_slice_get_size(__pyx_v_src, __pyx_v_ndim); + + /* "View.MemoryView":1218 + * cdef size_t size = slice_get_size(src, ndim) + * + * result = malloc(size) # <<<<<<<<<<<<<< + * if not result: + * _err(MemoryError, NULL) + */ + __pyx_v_result = malloc(__pyx_v_size); + + /* "View.MemoryView":1219 + * + * result = malloc(size) + * if not result: # <<<<<<<<<<<<<< + * _err(MemoryError, NULL) + * + */ + __pyx_t_2 = ((!(__pyx_v_result != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1220 + * result = malloc(size) + * if not result: + * _err(MemoryError, NULL) # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_3 = __pyx_memoryview_err(__pyx_builtin_MemoryError, NULL); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 1220, __pyx_L1_error) + + /* "View.MemoryView":1219 + * + * result = malloc(size) + * if not result: # <<<<<<<<<<<<<< + * _err(MemoryError, NULL) + * + */ + } + + /* "View.MemoryView":1223 + * + * + * tmpslice.data = result # <<<<<<<<<<<<<< + * tmpslice.memview = src.memview + * for i in range(ndim): + */ + __pyx_v_tmpslice->data = ((char *)__pyx_v_result); + + /* "View.MemoryView":1224 + * + * tmpslice.data = result + * tmpslice.memview = src.memview # <<<<<<<<<<<<<< + * for i in range(ndim): + * tmpslice.shape[i] = src.shape[i] + */ + __pyx_t_4 = __pyx_v_src->memview; + __pyx_v_tmpslice->memview = __pyx_t_4; + + /* "View.MemoryView":1225 + * tmpslice.data = result + * tmpslice.memview = src.memview + * for i in range(ndim): # <<<<<<<<<<<<<< + * tmpslice.shape[i] = src.shape[i] + * tmpslice.suboffsets[i] = -1 + */ + __pyx_t_3 = __pyx_v_ndim; + __pyx_t_5 = __pyx_t_3; + for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { + __pyx_v_i = __pyx_t_6; + + /* "View.MemoryView":1226 + * tmpslice.memview = src.memview + * for i in range(ndim): + * tmpslice.shape[i] = src.shape[i] # <<<<<<<<<<<<<< + * tmpslice.suboffsets[i] = -1 + * + */ + (__pyx_v_tmpslice->shape[__pyx_v_i]) = (__pyx_v_src->shape[__pyx_v_i]); + + /* "View.MemoryView":1227 + * for i in range(ndim): + * tmpslice.shape[i] = src.shape[i] + * tmpslice.suboffsets[i] = -1 # <<<<<<<<<<<<<< + * + * fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, + */ + (__pyx_v_tmpslice->suboffsets[__pyx_v_i]) = -1L; + } + + /* "View.MemoryView":1229 + * tmpslice.suboffsets[i] = -1 + * + * fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, # <<<<<<<<<<<<<< + * ndim, order) + * + */ + (void)(__pyx_fill_contig_strides_array((&(__pyx_v_tmpslice->shape[0])), (&(__pyx_v_tmpslice->strides[0])), __pyx_v_itemsize, __pyx_v_ndim, __pyx_v_order)); + + /* "View.MemoryView":1233 + * + * + * for i in range(ndim): # <<<<<<<<<<<<<< + * if tmpslice.shape[i] == 1: + * tmpslice.strides[i] = 0 + */ + __pyx_t_3 = __pyx_v_ndim; + __pyx_t_5 = __pyx_t_3; + for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { + __pyx_v_i = __pyx_t_6; + + /* "View.MemoryView":1234 + * + * for i in range(ndim): + * if tmpslice.shape[i] == 1: # <<<<<<<<<<<<<< + * tmpslice.strides[i] = 0 + * + */ + __pyx_t_2 = (((__pyx_v_tmpslice->shape[__pyx_v_i]) == 1) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1235 + * for i in range(ndim): + * if tmpslice.shape[i] == 1: + * tmpslice.strides[i] = 0 # <<<<<<<<<<<<<< + * + * if slice_is_contig(src[0], order, ndim): + */ + (__pyx_v_tmpslice->strides[__pyx_v_i]) = 0; + + /* "View.MemoryView":1234 + * + * for i in range(ndim): + * if tmpslice.shape[i] == 1: # <<<<<<<<<<<<<< + * tmpslice.strides[i] = 0 + * + */ + } + } + + /* "View.MemoryView":1237 + * tmpslice.strides[i] = 0 + * + * if slice_is_contig(src[0], order, ndim): # <<<<<<<<<<<<<< + * memcpy(result, src.data, size) + * else: + */ + __pyx_t_2 = (__pyx_memviewslice_is_contig((__pyx_v_src[0]), __pyx_v_order, __pyx_v_ndim) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1238 + * + * if slice_is_contig(src[0], order, ndim): + * memcpy(result, src.data, size) # <<<<<<<<<<<<<< + * else: + * copy_strided_to_strided(src, tmpslice, ndim, itemsize) + */ + (void)(memcpy(__pyx_v_result, __pyx_v_src->data, __pyx_v_size)); + + /* "View.MemoryView":1237 + * tmpslice.strides[i] = 0 + * + * if slice_is_contig(src[0], order, ndim): # <<<<<<<<<<<<<< + * memcpy(result, src.data, size) + * else: + */ + goto __pyx_L9; + } + + /* "View.MemoryView":1240 + * memcpy(result, src.data, size) + * else: + * copy_strided_to_strided(src, tmpslice, ndim, itemsize) # <<<<<<<<<<<<<< + * + * return result + */ + /*else*/ { + copy_strided_to_strided(__pyx_v_src, __pyx_v_tmpslice, __pyx_v_ndim, __pyx_v_itemsize); + } + __pyx_L9:; + + /* "View.MemoryView":1242 + * copy_strided_to_strided(src, tmpslice, ndim, itemsize) + * + * return result # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = __pyx_v_result; + goto __pyx_L0; + + /* "View.MemoryView":1204 + * + * @cname('__pyx_memoryview_copy_data_to_temp') + * cdef void *copy_data_to_temp(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< + * __Pyx_memviewslice *tmpslice, + * char order, + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("View.MemoryView.copy_data_to_temp", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = NULL; + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":1247 + * + * @cname('__pyx_memoryview_err_extents') + * cdef int _err_extents(int i, Py_ssize_t extent1, # <<<<<<<<<<<<<< + * Py_ssize_t extent2) except -1 with gil: + * raise ValueError("got differing extents in dimension %d (got %d and %d)" % + */ + +static int __pyx_memoryview_err_extents(int __pyx_v_i, Py_ssize_t __pyx_v_extent1, Py_ssize_t __pyx_v_extent2) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("_err_extents", 0); + + /* "View.MemoryView":1250 + * Py_ssize_t extent2) except -1 with gil: + * raise ValueError("got differing extents in dimension %d (got %d and %d)" % + * (i, extent1, extent2)) # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_err_dim') + */ + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_extent1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_extent2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + + /* "View.MemoryView":1249 + * cdef int _err_extents(int i, Py_ssize_t extent1, + * Py_ssize_t extent2) except -1 with gil: + * raise ValueError("got differing extents in dimension %d (got %d and %d)" % # <<<<<<<<<<<<<< + * (i, extent1, extent2)) + * + */ + __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_got_differing_extents_in_dimensi, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1249, __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, 1249, __pyx_L1_error) + + /* "View.MemoryView":1247 + * + * @cname('__pyx_memoryview_err_extents') + * cdef int _err_extents(int i, Py_ssize_t extent1, # <<<<<<<<<<<<<< + * Py_ssize_t extent2) except -1 with gil: + * raise ValueError("got differing extents in dimension %d (got %d and %d)" % + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("View.MemoryView._err_extents", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "View.MemoryView":1253 + * + * @cname('__pyx_memoryview_err_dim') + * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: # <<<<<<<<<<<<<< + * raise error(msg.decode('ascii') % dim) + * + */ + +static int __pyx_memoryview_err_dim(PyObject *__pyx_v_error, char *__pyx_v_msg, int __pyx_v_dim) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("_err_dim", 0); + __Pyx_INCREF(__pyx_v_error); + + /* "View.MemoryView":1254 + * @cname('__pyx_memoryview_err_dim') + * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: + * raise error(msg.decode('ascii') % dim) # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_err') + */ + __pyx_t_2 = __Pyx_decode_c_string(__pyx_v_msg, 0, strlen(__pyx_v_msg), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyUnicode_Format(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_INCREF(__pyx_v_error); + __pyx_t_3 = __pyx_v_error; __pyx_t_2 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(1, 1254, __pyx_L1_error) + + /* "View.MemoryView":1253 + * + * @cname('__pyx_memoryview_err_dim') + * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: # <<<<<<<<<<<<<< + * raise error(msg.decode('ascii') % dim) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("View.MemoryView._err_dim", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __Pyx_XDECREF(__pyx_v_error); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "View.MemoryView":1257 + * + * @cname('__pyx_memoryview_err') + * cdef int _err(object error, char *msg) except -1 with gil: # <<<<<<<<<<<<<< + * if msg != NULL: + * raise error(msg.decode('ascii')) + */ + +static int __pyx_memoryview_err(PyObject *__pyx_v_error, char *__pyx_v_msg) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("_err", 0); + __Pyx_INCREF(__pyx_v_error); + + /* "View.MemoryView":1258 + * @cname('__pyx_memoryview_err') + * cdef int _err(object error, char *msg) except -1 with gil: + * if msg != NULL: # <<<<<<<<<<<<<< + * raise error(msg.decode('ascii')) + * else: + */ + __pyx_t_1 = ((__pyx_v_msg != NULL) != 0); + if (unlikely(__pyx_t_1)) { + + /* "View.MemoryView":1259 + * cdef int _err(object error, char *msg) except -1 with gil: + * if msg != NULL: + * raise error(msg.decode('ascii')) # <<<<<<<<<<<<<< + * else: + * raise error + */ + __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_msg, 0, strlen(__pyx_v_msg), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_error); + __pyx_t_4 = __pyx_v_error; __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(1, 1259, __pyx_L1_error) + + /* "View.MemoryView":1258 + * @cname('__pyx_memoryview_err') + * cdef int _err(object error, char *msg) except -1 with gil: + * if msg != NULL: # <<<<<<<<<<<<<< + * raise error(msg.decode('ascii')) + * else: + */ + } + + /* "View.MemoryView":1261 + * raise error(msg.decode('ascii')) + * else: + * raise error # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_copy_contents') + */ + /*else*/ { + __Pyx_Raise(__pyx_v_error, 0, 0, 0); + __PYX_ERR(1, 1261, __pyx_L1_error) + } + + /* "View.MemoryView":1257 + * + * @cname('__pyx_memoryview_err') + * cdef int _err(object error, char *msg) except -1 with gil: # <<<<<<<<<<<<<< + * if msg != NULL: + * raise error(msg.decode('ascii')) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView._err", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __Pyx_XDECREF(__pyx_v_error); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "View.MemoryView":1264 + * + * @cname('__pyx_memoryview_copy_contents') + * cdef int memoryview_copy_contents(__Pyx_memviewslice src, # <<<<<<<<<<<<<< + * __Pyx_memviewslice dst, + * int src_ndim, int dst_ndim, + */ + +static int __pyx_memoryview_copy_contents(__Pyx_memviewslice __pyx_v_src, __Pyx_memviewslice __pyx_v_dst, int __pyx_v_src_ndim, int __pyx_v_dst_ndim, int __pyx_v_dtype_is_object) { + void *__pyx_v_tmpdata; + size_t __pyx_v_itemsize; + int __pyx_v_i; + char __pyx_v_order; + int __pyx_v_broadcasting; + int __pyx_v_direct_copy; + __Pyx_memviewslice __pyx_v_tmp; + int __pyx_v_ndim; + int __pyx_r; + Py_ssize_t __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + void *__pyx_t_7; + int __pyx_t_8; + + /* "View.MemoryView":1272 + * Check for overlapping memory and verify the shapes. + * """ + * cdef void *tmpdata = NULL # <<<<<<<<<<<<<< + * cdef size_t itemsize = src.memview.view.itemsize + * cdef int i + */ + __pyx_v_tmpdata = NULL; + + /* "View.MemoryView":1273 + * """ + * cdef void *tmpdata = NULL + * cdef size_t itemsize = src.memview.view.itemsize # <<<<<<<<<<<<<< + * cdef int i + * cdef char order = get_best_order(&src, src_ndim) + */ + __pyx_t_1 = __pyx_v_src.memview->view.itemsize; + __pyx_v_itemsize = __pyx_t_1; + + /* "View.MemoryView":1275 + * cdef size_t itemsize = src.memview.view.itemsize + * cdef int i + * cdef char order = get_best_order(&src, src_ndim) # <<<<<<<<<<<<<< + * cdef bint broadcasting = False + * cdef bint direct_copy = False + */ + __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_src), __pyx_v_src_ndim); + + /* "View.MemoryView":1276 + * cdef int i + * cdef char order = get_best_order(&src, src_ndim) + * cdef bint broadcasting = False # <<<<<<<<<<<<<< + * cdef bint direct_copy = False + * cdef __Pyx_memviewslice tmp + */ + __pyx_v_broadcasting = 0; + + /* "View.MemoryView":1277 + * cdef char order = get_best_order(&src, src_ndim) + * cdef bint broadcasting = False + * cdef bint direct_copy = False # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice tmp + * + */ + __pyx_v_direct_copy = 0; + + /* "View.MemoryView":1280 + * cdef __Pyx_memviewslice tmp + * + * if src_ndim < dst_ndim: # <<<<<<<<<<<<<< + * broadcast_leading(&src, src_ndim, dst_ndim) + * elif dst_ndim < src_ndim: + */ + __pyx_t_2 = ((__pyx_v_src_ndim < __pyx_v_dst_ndim) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1281 + * + * if src_ndim < dst_ndim: + * broadcast_leading(&src, src_ndim, dst_ndim) # <<<<<<<<<<<<<< + * elif dst_ndim < src_ndim: + * broadcast_leading(&dst, dst_ndim, src_ndim) + */ + __pyx_memoryview_broadcast_leading((&__pyx_v_src), __pyx_v_src_ndim, __pyx_v_dst_ndim); + + /* "View.MemoryView":1280 + * cdef __Pyx_memviewslice tmp + * + * if src_ndim < dst_ndim: # <<<<<<<<<<<<<< + * broadcast_leading(&src, src_ndim, dst_ndim) + * elif dst_ndim < src_ndim: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":1282 + * if src_ndim < dst_ndim: + * broadcast_leading(&src, src_ndim, dst_ndim) + * elif dst_ndim < src_ndim: # <<<<<<<<<<<<<< + * broadcast_leading(&dst, dst_ndim, src_ndim) + * + */ + __pyx_t_2 = ((__pyx_v_dst_ndim < __pyx_v_src_ndim) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1283 + * broadcast_leading(&src, src_ndim, dst_ndim) + * elif dst_ndim < src_ndim: + * broadcast_leading(&dst, dst_ndim, src_ndim) # <<<<<<<<<<<<<< + * + * cdef int ndim = max(src_ndim, dst_ndim) + */ + __pyx_memoryview_broadcast_leading((&__pyx_v_dst), __pyx_v_dst_ndim, __pyx_v_src_ndim); + + /* "View.MemoryView":1282 + * if src_ndim < dst_ndim: + * broadcast_leading(&src, src_ndim, dst_ndim) + * elif dst_ndim < src_ndim: # <<<<<<<<<<<<<< + * broadcast_leading(&dst, dst_ndim, src_ndim) + * + */ + } + __pyx_L3:; + + /* "View.MemoryView":1285 + * broadcast_leading(&dst, dst_ndim, src_ndim) + * + * cdef int ndim = max(src_ndim, dst_ndim) # <<<<<<<<<<<<<< + * + * for i in range(ndim): + */ + __pyx_t_3 = __pyx_v_dst_ndim; + __pyx_t_4 = __pyx_v_src_ndim; + if (((__pyx_t_3 > __pyx_t_4) != 0)) { + __pyx_t_5 = __pyx_t_3; + } else { + __pyx_t_5 = __pyx_t_4; + } + __pyx_v_ndim = __pyx_t_5; + + /* "View.MemoryView":1287 + * cdef int ndim = max(src_ndim, dst_ndim) + * + * for i in range(ndim): # <<<<<<<<<<<<<< + * if src.shape[i] != dst.shape[i]: + * if src.shape[i] == 1: + */ + __pyx_t_5 = __pyx_v_ndim; + __pyx_t_3 = __pyx_t_5; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + + /* "View.MemoryView":1288 + * + * for i in range(ndim): + * if src.shape[i] != dst.shape[i]: # <<<<<<<<<<<<<< + * if src.shape[i] == 1: + * broadcasting = True + */ + __pyx_t_2 = (((__pyx_v_src.shape[__pyx_v_i]) != (__pyx_v_dst.shape[__pyx_v_i])) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1289 + * for i in range(ndim): + * if src.shape[i] != dst.shape[i]: + * if src.shape[i] == 1: # <<<<<<<<<<<<<< + * broadcasting = True + * src.strides[i] = 0 + */ + __pyx_t_2 = (((__pyx_v_src.shape[__pyx_v_i]) == 1) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1290 + * if src.shape[i] != dst.shape[i]: + * if src.shape[i] == 1: + * broadcasting = True # <<<<<<<<<<<<<< + * src.strides[i] = 0 + * else: + */ + __pyx_v_broadcasting = 1; + + /* "View.MemoryView":1291 + * if src.shape[i] == 1: + * broadcasting = True + * src.strides[i] = 0 # <<<<<<<<<<<<<< + * else: + * _err_extents(i, dst.shape[i], src.shape[i]) + */ + (__pyx_v_src.strides[__pyx_v_i]) = 0; + + /* "View.MemoryView":1289 + * for i in range(ndim): + * if src.shape[i] != dst.shape[i]: + * if src.shape[i] == 1: # <<<<<<<<<<<<<< + * broadcasting = True + * src.strides[i] = 0 + */ + goto __pyx_L7; + } + + /* "View.MemoryView":1293 + * src.strides[i] = 0 + * else: + * _err_extents(i, dst.shape[i], src.shape[i]) # <<<<<<<<<<<<<< + * + * if src.suboffsets[i] >= 0: + */ + /*else*/ { + __pyx_t_6 = __pyx_memoryview_err_extents(__pyx_v_i, (__pyx_v_dst.shape[__pyx_v_i]), (__pyx_v_src.shape[__pyx_v_i])); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 1293, __pyx_L1_error) + } + __pyx_L7:; + + /* "View.MemoryView":1288 + * + * for i in range(ndim): + * if src.shape[i] != dst.shape[i]: # <<<<<<<<<<<<<< + * if src.shape[i] == 1: + * broadcasting = True + */ + } + + /* "View.MemoryView":1295 + * _err_extents(i, dst.shape[i], src.shape[i]) + * + * if src.suboffsets[i] >= 0: # <<<<<<<<<<<<<< + * _err_dim(ValueError, "Dimension %d is not direct", i) + * + */ + __pyx_t_2 = (((__pyx_v_src.suboffsets[__pyx_v_i]) >= 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1296 + * + * if src.suboffsets[i] >= 0: + * _err_dim(ValueError, "Dimension %d is not direct", i) # <<<<<<<<<<<<<< + * + * if slices_overlap(&src, &dst, ndim, itemsize): + */ + __pyx_t_6 = __pyx_memoryview_err_dim(__pyx_builtin_ValueError, ((char *)"Dimension %d is not direct"), __pyx_v_i); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 1296, __pyx_L1_error) + + /* "View.MemoryView":1295 + * _err_extents(i, dst.shape[i], src.shape[i]) + * + * if src.suboffsets[i] >= 0: # <<<<<<<<<<<<<< + * _err_dim(ValueError, "Dimension %d is not direct", i) + * + */ + } + } + + /* "View.MemoryView":1298 + * _err_dim(ValueError, "Dimension %d is not direct", i) + * + * if slices_overlap(&src, &dst, ndim, itemsize): # <<<<<<<<<<<<<< + * + * if not slice_is_contig(src, order, ndim): + */ + __pyx_t_2 = (__pyx_slices_overlap((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1300 + * if slices_overlap(&src, &dst, ndim, itemsize): + * + * if not slice_is_contig(src, order, ndim): # <<<<<<<<<<<<<< + * order = get_best_order(&dst, ndim) + * + */ + __pyx_t_2 = ((!(__pyx_memviewslice_is_contig(__pyx_v_src, __pyx_v_order, __pyx_v_ndim) != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1301 + * + * if not slice_is_contig(src, order, ndim): + * order = get_best_order(&dst, ndim) # <<<<<<<<<<<<<< + * + * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) + */ + __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim); + + /* "View.MemoryView":1300 + * if slices_overlap(&src, &dst, ndim, itemsize): + * + * if not slice_is_contig(src, order, ndim): # <<<<<<<<<<<<<< + * order = get_best_order(&dst, ndim) + * + */ + } + + /* "View.MemoryView":1303 + * order = get_best_order(&dst, ndim) + * + * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) # <<<<<<<<<<<<<< + * src = tmp + * + */ + __pyx_t_7 = __pyx_memoryview_copy_data_to_temp((&__pyx_v_src), (&__pyx_v_tmp), __pyx_v_order, __pyx_v_ndim); if (unlikely(__pyx_t_7 == ((void *)NULL))) __PYX_ERR(1, 1303, __pyx_L1_error) + __pyx_v_tmpdata = __pyx_t_7; + + /* "View.MemoryView":1304 + * + * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) + * src = tmp # <<<<<<<<<<<<<< + * + * if not broadcasting: + */ + __pyx_v_src = __pyx_v_tmp; + + /* "View.MemoryView":1298 + * _err_dim(ValueError, "Dimension %d is not direct", i) + * + * if slices_overlap(&src, &dst, ndim, itemsize): # <<<<<<<<<<<<<< + * + * if not slice_is_contig(src, order, ndim): + */ + } + + /* "View.MemoryView":1306 + * src = tmp + * + * if not broadcasting: # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_2 = ((!(__pyx_v_broadcasting != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1309 + * + * + * if slice_is_contig(src, 'C', ndim): # <<<<<<<<<<<<<< + * direct_copy = slice_is_contig(dst, 'C', ndim) + * elif slice_is_contig(src, 'F', ndim): + */ + __pyx_t_2 = (__pyx_memviewslice_is_contig(__pyx_v_src, 'C', __pyx_v_ndim) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1310 + * + * if slice_is_contig(src, 'C', ndim): + * direct_copy = slice_is_contig(dst, 'C', ndim) # <<<<<<<<<<<<<< + * elif slice_is_contig(src, 'F', ndim): + * direct_copy = slice_is_contig(dst, 'F', ndim) + */ + __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'C', __pyx_v_ndim); + + /* "View.MemoryView":1309 + * + * + * if slice_is_contig(src, 'C', ndim): # <<<<<<<<<<<<<< + * direct_copy = slice_is_contig(dst, 'C', ndim) + * elif slice_is_contig(src, 'F', ndim): + */ + goto __pyx_L12; + } + + /* "View.MemoryView":1311 + * if slice_is_contig(src, 'C', ndim): + * direct_copy = slice_is_contig(dst, 'C', ndim) + * elif slice_is_contig(src, 'F', ndim): # <<<<<<<<<<<<<< + * direct_copy = slice_is_contig(dst, 'F', ndim) + * + */ + __pyx_t_2 = (__pyx_memviewslice_is_contig(__pyx_v_src, 'F', __pyx_v_ndim) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1312 + * direct_copy = slice_is_contig(dst, 'C', ndim) + * elif slice_is_contig(src, 'F', ndim): + * direct_copy = slice_is_contig(dst, 'F', ndim) # <<<<<<<<<<<<<< + * + * if direct_copy: + */ + __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'F', __pyx_v_ndim); + + /* "View.MemoryView":1311 + * if slice_is_contig(src, 'C', ndim): + * direct_copy = slice_is_contig(dst, 'C', ndim) + * elif slice_is_contig(src, 'F', ndim): # <<<<<<<<<<<<<< + * direct_copy = slice_is_contig(dst, 'F', ndim) + * + */ + } + __pyx_L12:; + + /* "View.MemoryView":1314 + * direct_copy = slice_is_contig(dst, 'F', ndim) + * + * if direct_copy: # <<<<<<<<<<<<<< + * + * refcount_copying(&dst, dtype_is_object, ndim, False) + */ + __pyx_t_2 = (__pyx_v_direct_copy != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1316 + * if direct_copy: + * + * refcount_copying(&dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< + * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) + * refcount_copying(&dst, dtype_is_object, ndim, True) + */ + __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0); + + /* "View.MemoryView":1317 + * + * refcount_copying(&dst, dtype_is_object, ndim, False) + * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) # <<<<<<<<<<<<<< + * refcount_copying(&dst, dtype_is_object, ndim, True) + * free(tmpdata) + */ + (void)(memcpy(__pyx_v_dst.data, __pyx_v_src.data, __pyx_memoryview_slice_get_size((&__pyx_v_src), __pyx_v_ndim))); + + /* "View.MemoryView":1318 + * refcount_copying(&dst, dtype_is_object, ndim, False) + * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) + * refcount_copying(&dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< + * free(tmpdata) + * return 0 + */ + __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1); + + /* "View.MemoryView":1319 + * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) + * refcount_copying(&dst, dtype_is_object, ndim, True) + * free(tmpdata) # <<<<<<<<<<<<<< + * return 0 + * + */ + free(__pyx_v_tmpdata); + + /* "View.MemoryView":1320 + * refcount_copying(&dst, dtype_is_object, ndim, True) + * free(tmpdata) + * return 0 # <<<<<<<<<<<<<< + * + * if order == 'F' == get_best_order(&dst, ndim): + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "View.MemoryView":1314 + * direct_copy = slice_is_contig(dst, 'F', ndim) + * + * if direct_copy: # <<<<<<<<<<<<<< + * + * refcount_copying(&dst, dtype_is_object, ndim, False) + */ + } + + /* "View.MemoryView":1306 + * src = tmp + * + * if not broadcasting: # <<<<<<<<<<<<<< + * + * + */ + } + + /* "View.MemoryView":1322 + * return 0 + * + * if order == 'F' == get_best_order(&dst, ndim): # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_2 = (__pyx_v_order == 'F'); + if (__pyx_t_2) { + __pyx_t_2 = ('F' == __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim)); + } + __pyx_t_8 = (__pyx_t_2 != 0); + if (__pyx_t_8) { + + /* "View.MemoryView":1325 + * + * + * transpose_memslice(&src) # <<<<<<<<<<<<<< + * transpose_memslice(&dst) + * + */ + __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_src)); if (unlikely(__pyx_t_5 == ((int)0))) __PYX_ERR(1, 1325, __pyx_L1_error) + + /* "View.MemoryView":1326 + * + * transpose_memslice(&src) + * transpose_memslice(&dst) # <<<<<<<<<<<<<< + * + * refcount_copying(&dst, dtype_is_object, ndim, False) + */ + __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_dst)); if (unlikely(__pyx_t_5 == ((int)0))) __PYX_ERR(1, 1326, __pyx_L1_error) + + /* "View.MemoryView":1322 + * return 0 + * + * if order == 'F' == get_best_order(&dst, ndim): # <<<<<<<<<<<<<< + * + * + */ + } + + /* "View.MemoryView":1328 + * transpose_memslice(&dst) + * + * refcount_copying(&dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< + * copy_strided_to_strided(&src, &dst, ndim, itemsize) + * refcount_copying(&dst, dtype_is_object, ndim, True) + */ + __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0); + + /* "View.MemoryView":1329 + * + * refcount_copying(&dst, dtype_is_object, ndim, False) + * copy_strided_to_strided(&src, &dst, ndim, itemsize) # <<<<<<<<<<<<<< + * refcount_copying(&dst, dtype_is_object, ndim, True) + * + */ + copy_strided_to_strided((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize); + + /* "View.MemoryView":1330 + * refcount_copying(&dst, dtype_is_object, ndim, False) + * copy_strided_to_strided(&src, &dst, ndim, itemsize) + * refcount_copying(&dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< + * + * free(tmpdata) + */ + __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1); + + /* "View.MemoryView":1332 + * refcount_copying(&dst, dtype_is_object, ndim, True) + * + * free(tmpdata) # <<<<<<<<<<<<<< + * return 0 + * + */ + free(__pyx_v_tmpdata); + + /* "View.MemoryView":1333 + * + * free(tmpdata) + * return 0 # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_broadcast_leading') + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "View.MemoryView":1264 + * + * @cname('__pyx_memoryview_copy_contents') + * cdef int memoryview_copy_contents(__Pyx_memviewslice src, # <<<<<<<<<<<<<< + * __Pyx_memviewslice dst, + * int src_ndim, int dst_ndim, + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("View.MemoryView.memoryview_copy_contents", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = -1; + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":1336 + * + * @cname('__pyx_memoryview_broadcast_leading') + * cdef void broadcast_leading(__Pyx_memviewslice *mslice, # <<<<<<<<<<<<<< + * int ndim, + * int ndim_other) nogil: + */ + +static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim, int __pyx_v_ndim_other) { + int __pyx_v_i; + int __pyx_v_offset; + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + + /* "View.MemoryView":1340 + * int ndim_other) nogil: + * cdef int i + * cdef int offset = ndim_other - ndim # <<<<<<<<<<<<<< + * + * for i in range(ndim - 1, -1, -1): + */ + __pyx_v_offset = (__pyx_v_ndim_other - __pyx_v_ndim); + + /* "View.MemoryView":1342 + * cdef int offset = ndim_other - ndim + * + * for i in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< + * mslice.shape[i + offset] = mslice.shape[i] + * mslice.strides[i + offset] = mslice.strides[i] + */ + for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) { + __pyx_v_i = __pyx_t_1; + + /* "View.MemoryView":1343 + * + * for i in range(ndim - 1, -1, -1): + * mslice.shape[i + offset] = mslice.shape[i] # <<<<<<<<<<<<<< + * mslice.strides[i + offset] = mslice.strides[i] + * mslice.suboffsets[i + offset] = mslice.suboffsets[i] + */ + (__pyx_v_mslice->shape[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->shape[__pyx_v_i]); + + /* "View.MemoryView":1344 + * for i in range(ndim - 1, -1, -1): + * mslice.shape[i + offset] = mslice.shape[i] + * mslice.strides[i + offset] = mslice.strides[i] # <<<<<<<<<<<<<< + * mslice.suboffsets[i + offset] = mslice.suboffsets[i] + * + */ + (__pyx_v_mslice->strides[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->strides[__pyx_v_i]); + + /* "View.MemoryView":1345 + * mslice.shape[i + offset] = mslice.shape[i] + * mslice.strides[i + offset] = mslice.strides[i] + * mslice.suboffsets[i + offset] = mslice.suboffsets[i] # <<<<<<<<<<<<<< + * + * for i in range(offset): + */ + (__pyx_v_mslice->suboffsets[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->suboffsets[__pyx_v_i]); + } + + /* "View.MemoryView":1347 + * mslice.suboffsets[i + offset] = mslice.suboffsets[i] + * + * for i in range(offset): # <<<<<<<<<<<<<< + * mslice.shape[i] = 1 + * mslice.strides[i] = mslice.strides[0] + */ + __pyx_t_1 = __pyx_v_offset; + __pyx_t_2 = __pyx_t_1; + for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { + __pyx_v_i = __pyx_t_3; + + /* "View.MemoryView":1348 + * + * for i in range(offset): + * mslice.shape[i] = 1 # <<<<<<<<<<<<<< + * mslice.strides[i] = mslice.strides[0] + * mslice.suboffsets[i] = -1 + */ + (__pyx_v_mslice->shape[__pyx_v_i]) = 1; + + /* "View.MemoryView":1349 + * for i in range(offset): + * mslice.shape[i] = 1 + * mslice.strides[i] = mslice.strides[0] # <<<<<<<<<<<<<< + * mslice.suboffsets[i] = -1 + * + */ + (__pyx_v_mslice->strides[__pyx_v_i]) = (__pyx_v_mslice->strides[0]); + + /* "View.MemoryView":1350 + * mslice.shape[i] = 1 + * mslice.strides[i] = mslice.strides[0] + * mslice.suboffsets[i] = -1 # <<<<<<<<<<<<<< + * + * + */ + (__pyx_v_mslice->suboffsets[__pyx_v_i]) = -1L; + } + + /* "View.MemoryView":1336 + * + * @cname('__pyx_memoryview_broadcast_leading') + * cdef void broadcast_leading(__Pyx_memviewslice *mslice, # <<<<<<<<<<<<<< + * int ndim, + * int ndim_other) nogil: + */ + + /* function exit code */ +} + +/* "View.MemoryView":1358 + * + * @cname('__pyx_memoryview_refcount_copying') + * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, # <<<<<<<<<<<<<< + * int ndim, bint inc) nogil: + * + */ + +static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_dtype_is_object, int __pyx_v_ndim, int __pyx_v_inc) { + int __pyx_t_1; + + /* "View.MemoryView":1362 + * + * + * if dtype_is_object: # <<<<<<<<<<<<<< + * refcount_objects_in_slice_with_gil(dst.data, dst.shape, + * dst.strides, ndim, inc) + */ + __pyx_t_1 = (__pyx_v_dtype_is_object != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1363 + * + * if dtype_is_object: + * refcount_objects_in_slice_with_gil(dst.data, dst.shape, # <<<<<<<<<<<<<< + * dst.strides, ndim, inc) + * + */ + __pyx_memoryview_refcount_objects_in_slice_with_gil(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_inc); + + /* "View.MemoryView":1362 + * + * + * if dtype_is_object: # <<<<<<<<<<<<<< + * refcount_objects_in_slice_with_gil(dst.data, dst.shape, + * dst.strides, ndim, inc) + */ + } + + /* "View.MemoryView":1358 + * + * @cname('__pyx_memoryview_refcount_copying') + * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, # <<<<<<<<<<<<<< + * int ndim, bint inc) nogil: + * + */ + + /* function exit code */ +} + +/* "View.MemoryView":1367 + * + * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil') + * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< + * Py_ssize_t *strides, int ndim, + * bint inc) with gil: + */ + +static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) { + __Pyx_RefNannyDeclarations + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("refcount_objects_in_slice_with_gil", 0); + + /* "View.MemoryView":1370 + * Py_ssize_t *strides, int ndim, + * bint inc) with gil: + * refcount_objects_in_slice(data, shape, strides, ndim, inc) # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_refcount_objects_in_slice') + */ + __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, __pyx_v_shape, __pyx_v_strides, __pyx_v_ndim, __pyx_v_inc); + + /* "View.MemoryView":1367 + * + * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil') + * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< + * Py_ssize_t *strides, int ndim, + * bint inc) with gil: + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif +} + +/* "View.MemoryView":1373 + * + * @cname('__pyx_memoryview_refcount_objects_in_slice') + * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< + * Py_ssize_t *strides, int ndim, bint inc): + * cdef Py_ssize_t i + */ + +static void __pyx_memoryview_refcount_objects_in_slice(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) { + CYTHON_UNUSED Py_ssize_t __pyx_v_i; + __Pyx_RefNannyDeclarations + Py_ssize_t __pyx_t_1; + Py_ssize_t __pyx_t_2; + Py_ssize_t __pyx_t_3; + int __pyx_t_4; + __Pyx_RefNannySetupContext("refcount_objects_in_slice", 0); + + /* "View.MemoryView":1377 + * cdef Py_ssize_t i + * + * for i in range(shape[0]): # <<<<<<<<<<<<<< + * if ndim == 1: + * if inc: + */ + __pyx_t_1 = (__pyx_v_shape[0]); + __pyx_t_2 = __pyx_t_1; + for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { + __pyx_v_i = __pyx_t_3; + + /* "View.MemoryView":1378 + * + * for i in range(shape[0]): + * if ndim == 1: # <<<<<<<<<<<<<< + * if inc: + * Py_INCREF(( data)[0]) + */ + __pyx_t_4 = ((__pyx_v_ndim == 1) != 0); + if (__pyx_t_4) { + + /* "View.MemoryView":1379 + * for i in range(shape[0]): + * if ndim == 1: + * if inc: # <<<<<<<<<<<<<< + * Py_INCREF(( data)[0]) + * else: + */ + __pyx_t_4 = (__pyx_v_inc != 0); + if (__pyx_t_4) { + + /* "View.MemoryView":1380 + * if ndim == 1: + * if inc: + * Py_INCREF(( data)[0]) # <<<<<<<<<<<<<< + * else: + * Py_DECREF(( data)[0]) + */ + Py_INCREF((((PyObject **)__pyx_v_data)[0])); + + /* "View.MemoryView":1379 + * for i in range(shape[0]): + * if ndim == 1: + * if inc: # <<<<<<<<<<<<<< + * Py_INCREF(( data)[0]) + * else: + */ + goto __pyx_L6; + } + + /* "View.MemoryView":1382 + * Py_INCREF(( data)[0]) + * else: + * Py_DECREF(( data)[0]) # <<<<<<<<<<<<<< + * else: + * refcount_objects_in_slice(data, shape + 1, strides + 1, + */ + /*else*/ { + Py_DECREF((((PyObject **)__pyx_v_data)[0])); + } + __pyx_L6:; + + /* "View.MemoryView":1378 + * + * for i in range(shape[0]): + * if ndim == 1: # <<<<<<<<<<<<<< + * if inc: + * Py_INCREF(( data)[0]) + */ + goto __pyx_L5; + } + + /* "View.MemoryView":1384 + * Py_DECREF(( data)[0]) + * else: + * refcount_objects_in_slice(data, shape + 1, strides + 1, # <<<<<<<<<<<<<< + * ndim - 1, inc) + * + */ + /*else*/ { + + /* "View.MemoryView":1385 + * else: + * refcount_objects_in_slice(data, shape + 1, strides + 1, + * ndim - 1, inc) # <<<<<<<<<<<<<< + * + * data += strides[0] + */ + __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_inc); + } + __pyx_L5:; + + /* "View.MemoryView":1387 + * ndim - 1, inc) + * + * data += strides[0] # <<<<<<<<<<<<<< + * + * + */ + __pyx_v_data = (__pyx_v_data + (__pyx_v_strides[0])); + } + + /* "View.MemoryView":1373 + * + * @cname('__pyx_memoryview_refcount_objects_in_slice') + * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< + * Py_ssize_t *strides, int ndim, bint inc): + * cdef Py_ssize_t i + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "View.MemoryView":1393 + * + * @cname('__pyx_memoryview_slice_assign_scalar') + * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim, # <<<<<<<<<<<<<< + * size_t itemsize, void *item, + * bint dtype_is_object) nogil: + */ + +static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item, int __pyx_v_dtype_is_object) { + + /* "View.MemoryView":1396 + * size_t itemsize, void *item, + * bint dtype_is_object) nogil: + * refcount_copying(dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< + * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, + * itemsize, item) + */ + __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 0); + + /* "View.MemoryView":1397 + * bint dtype_is_object) nogil: + * refcount_copying(dst, dtype_is_object, ndim, False) + * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, # <<<<<<<<<<<<<< + * itemsize, item) + * refcount_copying(dst, dtype_is_object, ndim, True) + */ + __pyx_memoryview__slice_assign_scalar(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_itemsize, __pyx_v_item); + + /* "View.MemoryView":1399 + * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, + * itemsize, item) + * refcount_copying(dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< + * + * + */ + __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 1); + + /* "View.MemoryView":1393 + * + * @cname('__pyx_memoryview_slice_assign_scalar') + * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim, # <<<<<<<<<<<<<< + * size_t itemsize, void *item, + * bint dtype_is_object) nogil: + */ + + /* function exit code */ +} + +/* "View.MemoryView":1403 + * + * @cname('__pyx_memoryview__slice_assign_scalar') + * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< + * Py_ssize_t *strides, int ndim, + * size_t itemsize, void *item) nogil: + */ + +static void __pyx_memoryview__slice_assign_scalar(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item) { + CYTHON_UNUSED Py_ssize_t __pyx_v_i; + Py_ssize_t __pyx_v_stride; + Py_ssize_t __pyx_v_extent; + int __pyx_t_1; + Py_ssize_t __pyx_t_2; + Py_ssize_t __pyx_t_3; + Py_ssize_t __pyx_t_4; + + /* "View.MemoryView":1407 + * size_t itemsize, void *item) nogil: + * cdef Py_ssize_t i + * cdef Py_ssize_t stride = strides[0] # <<<<<<<<<<<<<< + * cdef Py_ssize_t extent = shape[0] + * + */ + __pyx_v_stride = (__pyx_v_strides[0]); + + /* "View.MemoryView":1408 + * cdef Py_ssize_t i + * cdef Py_ssize_t stride = strides[0] + * cdef Py_ssize_t extent = shape[0] # <<<<<<<<<<<<<< + * + * if ndim == 1: + */ + __pyx_v_extent = (__pyx_v_shape[0]); + + /* "View.MemoryView":1410 + * cdef Py_ssize_t extent = shape[0] + * + * if ndim == 1: # <<<<<<<<<<<<<< + * for i in range(extent): + * memcpy(data, item, itemsize) + */ + __pyx_t_1 = ((__pyx_v_ndim == 1) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1411 + * + * if ndim == 1: + * for i in range(extent): # <<<<<<<<<<<<<< + * memcpy(data, item, itemsize) + * data += stride + */ + __pyx_t_2 = __pyx_v_extent; + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + + /* "View.MemoryView":1412 + * if ndim == 1: + * for i in range(extent): + * memcpy(data, item, itemsize) # <<<<<<<<<<<<<< + * data += stride + * else: + */ + (void)(memcpy(__pyx_v_data, __pyx_v_item, __pyx_v_itemsize)); + + /* "View.MemoryView":1413 + * for i in range(extent): + * memcpy(data, item, itemsize) + * data += stride # <<<<<<<<<<<<<< + * else: + * for i in range(extent): + */ + __pyx_v_data = (__pyx_v_data + __pyx_v_stride); + } + + /* "View.MemoryView":1410 + * cdef Py_ssize_t extent = shape[0] + * + * if ndim == 1: # <<<<<<<<<<<<<< + * for i in range(extent): + * memcpy(data, item, itemsize) + */ + goto __pyx_L3; + } + + /* "View.MemoryView":1415 + * data += stride + * else: + * for i in range(extent): # <<<<<<<<<<<<<< + * _slice_assign_scalar(data, shape + 1, strides + 1, + * ndim - 1, itemsize, item) + */ + /*else*/ { + __pyx_t_2 = __pyx_v_extent; + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + + /* "View.MemoryView":1416 + * else: + * for i in range(extent): + * _slice_assign_scalar(data, shape + 1, strides + 1, # <<<<<<<<<<<<<< + * ndim - 1, itemsize, item) + * data += stride + */ + __pyx_memoryview__slice_assign_scalar(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize, __pyx_v_item); + + /* "View.MemoryView":1418 + * _slice_assign_scalar(data, shape + 1, strides + 1, + * ndim - 1, itemsize, item) + * data += stride # <<<<<<<<<<<<<< + * + * + */ + __pyx_v_data = (__pyx_v_data + __pyx_v_stride); + } + } + __pyx_L3:; + + /* "View.MemoryView":1403 + * + * @cname('__pyx_memoryview__slice_assign_scalar') + * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< + * Py_ssize_t *strides, int ndim, + * size_t itemsize, void *item) nogil: + */ + + /* function exit code */ +} + +/* "(tree fragment)":1 + * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * if __pyx_checksum != 0xb068931: + * from pickle import PickleError as __pyx_PickleError + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum = {"__pyx_unpickle_Enum", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v___pyx_type = 0; + long __pyx_v___pyx_checksum; + PyObject *__pyx_v___pyx_state = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__pyx_unpickle_Enum (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Enum") < 0)) __PYX_ERR(1, 1, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v___pyx_type = values[0]; + __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error) + __pyx_v___pyx_state = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_v___pyx_PickleError = NULL; + PyObject *__pyx_v___pyx_result = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + __Pyx_RefNannySetupContext("__pyx_unpickle_Enum", 0); + + /* "(tree fragment)":2 + * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): + * if __pyx_checksum != 0xb068931: # <<<<<<<<<<<<<< + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) + */ + __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xb068931) != 0); + if (__pyx_t_1) { + + /* "(tree fragment)":3 + * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): + * if __pyx_checksum != 0xb068931: + * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<< + * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) + * __pyx_result = Enum.__new__(__pyx_type) + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_PickleError); + __Pyx_GIVEREF(__pyx_n_s_PickleError); + PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_2); + __pyx_v___pyx_PickleError = __pyx_t_2; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "(tree fragment)":4 + * if __pyx_checksum != 0xb068931: + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) # <<<<<<<<<<<<<< + * __pyx_result = Enum.__new__(__pyx_type) + * if __pyx_state is not None: + */ + __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xb0, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_INCREF(__pyx_v___pyx_PickleError); + __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(1, 4, __pyx_L1_error) + + /* "(tree fragment)":2 + * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): + * if __pyx_checksum != 0xb068931: # <<<<<<<<<<<<<< + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) + */ + } + + /* "(tree fragment)":5 + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) + * __pyx_result = Enum.__new__(__pyx_type) # <<<<<<<<<<<<<< + * if __pyx_state is not None: + * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_MemviewEnum_type), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v___pyx_result = __pyx_t_3; + __pyx_t_3 = 0; + + /* "(tree fragment)":6 + * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) + * __pyx_result = Enum.__new__(__pyx_type) + * if __pyx_state is not None: # <<<<<<<<<<<<<< + * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) + * return __pyx_result + */ + __pyx_t_1 = (__pyx_v___pyx_state != Py_None); + __pyx_t_6 = (__pyx_t_1 != 0); + if (__pyx_t_6) { + + /* "(tree fragment)":7 + * __pyx_result = Enum.__new__(__pyx_type) + * if __pyx_state is not None: + * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) # <<<<<<<<<<<<<< + * return __pyx_result + * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): + */ + if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 7, __pyx_L1_error) + __pyx_t_3 = __pyx_unpickle_Enum__set_state(((struct __pyx_MemviewEnum_obj *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "(tree fragment)":6 + * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) + * __pyx_result = Enum.__new__(__pyx_type) + * if __pyx_state is not None: # <<<<<<<<<<<<<< + * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) + * return __pyx_result + */ + } + + /* "(tree fragment)":8 + * if __pyx_state is not None: + * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) + * return __pyx_result # <<<<<<<<<<<<<< + * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): + * __pyx_result.name = __pyx_state[0] + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v___pyx_result); + __pyx_r = __pyx_v___pyx_result; + goto __pyx_L0; + + /* "(tree fragment)":1 + * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * if __pyx_checksum != 0xb068931: + * from pickle import PickleError as __pyx_PickleError + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v___pyx_PickleError); + __Pyx_XDECREF(__pyx_v___pyx_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":9 + * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.name = __pyx_state[0] + * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): + */ + +static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + Py_ssize_t __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + __Pyx_RefNannySetupContext("__pyx_unpickle_Enum__set_state", 0); + + /* "(tree fragment)":10 + * return __pyx_result + * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): + * __pyx_result.name = __pyx_state[0] # <<<<<<<<<<<<<< + * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): + * __pyx_result.__dict__.update(__pyx_state[1]) + */ + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(1, 10, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 10, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_v___pyx_result->name); + __Pyx_DECREF(__pyx_v___pyx_result->name); + __pyx_v___pyx_result->name = __pyx_t_1; + __pyx_t_1 = 0; + + /* "(tree fragment)":11 + * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): + * __pyx_result.name = __pyx_state[0] + * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< + * __pyx_result.__dict__.update(__pyx_state[1]) + */ + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); + __PYX_ERR(1, 11, __pyx_L1_error) + } + __pyx_t_3 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(1, 11, __pyx_L1_error) + __pyx_t_4 = ((__pyx_t_3 > 1) != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 11, __pyx_L1_error) + __pyx_t_5 = (__pyx_t_4 != 0); + __pyx_t_2 = __pyx_t_5; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + + /* "(tree fragment)":12 + * __pyx_result.name = __pyx_state[0] + * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): + * __pyx_result.__dict__.update(__pyx_state[1]) # <<<<<<<<<<<<<< + */ + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(1, 12, __pyx_L1_error) + } + __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + } + } + __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "(tree fragment)":11 + * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): + * __pyx_result.name = __pyx_state[0] + * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< + * __pyx_result.__dict__.update(__pyx_state[1]) + */ + } + + /* "(tree fragment)":9 + * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.name = __pyx_state[0] + * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +static struct __pyx_vtabstruct_array __pyx_vtable_array; + +static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_array_obj *p; + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + p = ((struct __pyx_array_obj *)o); + p->__pyx_vtab = __pyx_vtabptr_array; + p->mode = ((PyObject*)Py_None); Py_INCREF(Py_None); + p->_format = ((PyObject*)Py_None); Py_INCREF(Py_None); + if (unlikely(__pyx_array___cinit__(o, a, k) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static void __pyx_tp_dealloc_array(PyObject *o) { + struct __pyx_array_obj *p = (struct __pyx_array_obj *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + ++Py_REFCNT(o); + __pyx_array___dealloc__(o); + --Py_REFCNT(o); + PyErr_Restore(etype, eval, etb); + } + Py_CLEAR(p->mode); + Py_CLEAR(p->_format); + (*Py_TYPE(o)->tp_free)(o); +} +static PyObject *__pyx_sq_item_array(PyObject *o, Py_ssize_t i) { + PyObject *r; + PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; + r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); + Py_DECREF(x); + return r; +} + +static int __pyx_mp_ass_subscript_array(PyObject *o, PyObject *i, PyObject *v) { + if (v) { + return __pyx_array___setitem__(o, i, v); + } + else { + PyErr_Format(PyExc_NotImplementedError, + "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name); + return -1; + } +} + +static PyObject *__pyx_tp_getattro_array(PyObject *o, PyObject *n) { + PyObject *v = __Pyx_PyObject_GenericGetAttr(o, n); + if (!v && PyErr_ExceptionMatches(PyExc_AttributeError)) { + PyErr_Clear(); + v = __pyx_array___getattr__(o, n); + } + return v; +} + +static PyObject *__pyx_getprop___pyx_array_memview(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(o); +} + +static PyMethodDef __pyx_methods_array[] = { + {"__getattr__", (PyCFunction)__pyx_array___getattr__, METH_O|METH_COEXIST, 0}, + {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_array_1__reduce_cython__, METH_NOARGS, 0}, + {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_array_3__setstate_cython__, METH_O, 0}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_array[] = { + {(char *)"memview", __pyx_getprop___pyx_array_memview, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PySequenceMethods __pyx_tp_as_sequence_array = { + __pyx_array___len__, /*sq_length*/ + 0, /*sq_concat*/ + 0, /*sq_repeat*/ + __pyx_sq_item_array, /*sq_item*/ + 0, /*sq_slice*/ + 0, /*sq_ass_item*/ + 0, /*sq_ass_slice*/ + 0, /*sq_contains*/ + 0, /*sq_inplace_concat*/ + 0, /*sq_inplace_repeat*/ +}; + +static PyMappingMethods __pyx_tp_as_mapping_array = { + __pyx_array___len__, /*mp_length*/ + __pyx_array___getitem__, /*mp_subscript*/ + __pyx_mp_ass_subscript_array, /*mp_ass_subscript*/ +}; + +static PyBufferProcs __pyx_tp_as_buffer_array = { + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getreadbuffer*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getwritebuffer*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getsegcount*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getcharbuffer*/ + #endif + __pyx_array_getbuffer, /*bf_getbuffer*/ + 0, /*bf_releasebuffer*/ +}; + +static PyTypeObject __pyx_type___pyx_array = { + PyVarObject_HEAD_INIT(0, 0) + "lcn.array", /*tp_name*/ + sizeof(struct __pyx_array_obj), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_array, /*tp_dealloc*/ + 0, /*tp_print*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + &__pyx_tp_as_sequence_array, /*tp_as_sequence*/ + &__pyx_tp_as_mapping_array, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + __pyx_tp_getattro_array, /*tp_getattro*/ + 0, /*tp_setattro*/ + &__pyx_tp_as_buffer_array, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_array, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_array, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_array, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif +}; + +static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + struct __pyx_MemviewEnum_obj *p; + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + p = ((struct __pyx_MemviewEnum_obj *)o); + p->name = Py_None; Py_INCREF(Py_None); + return o; +} + +static void __pyx_tp_dealloc_Enum(PyObject *o) { + struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + PyObject_GC_UnTrack(o); + Py_CLEAR(p->name); + (*Py_TYPE(o)->tp_free)(o); +} + +static int __pyx_tp_traverse_Enum(PyObject *o, visitproc v, void *a) { + int e; + struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; + if (p->name) { + e = (*v)(p->name, a); if (e) return e; + } + return 0; +} + +static int __pyx_tp_clear_Enum(PyObject *o) { + PyObject* tmp; + struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; + tmp = ((PyObject*)p->name); + p->name = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + return 0; +} + +static PyMethodDef __pyx_methods_Enum[] = { + {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_MemviewEnum_1__reduce_cython__, METH_NOARGS, 0}, + {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_MemviewEnum_3__setstate_cython__, METH_O, 0}, + {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type___pyx_MemviewEnum = { + PyVarObject_HEAD_INIT(0, 0) + "lcn.Enum", /*tp_name*/ + sizeof(struct __pyx_MemviewEnum_obj), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_Enum, /*tp_dealloc*/ + 0, /*tp_print*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + __pyx_MemviewEnum___repr__, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_Enum, /*tp_traverse*/ + __pyx_tp_clear_Enum, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_Enum, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + __pyx_MemviewEnum___init__, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_Enum, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif +}; +static struct __pyx_vtabstruct_memoryview __pyx_vtable_memoryview; + +static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_memoryview_obj *p; + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + p = ((struct __pyx_memoryview_obj *)o); + p->__pyx_vtab = __pyx_vtabptr_memoryview; + p->obj = Py_None; Py_INCREF(Py_None); + p->_size = Py_None; Py_INCREF(Py_None); + p->_array_interface = Py_None; Py_INCREF(Py_None); + p->view.obj = NULL; + if (unlikely(__pyx_memoryview___cinit__(o, a, k) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static void __pyx_tp_dealloc_memoryview(PyObject *o) { + struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + PyObject_GC_UnTrack(o); + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + ++Py_REFCNT(o); + __pyx_memoryview___dealloc__(o); + --Py_REFCNT(o); + PyErr_Restore(etype, eval, etb); + } + Py_CLEAR(p->obj); + Py_CLEAR(p->_size); + Py_CLEAR(p->_array_interface); + (*Py_TYPE(o)->tp_free)(o); +} + +static int __pyx_tp_traverse_memoryview(PyObject *o, visitproc v, void *a) { + int e; + struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; + if (p->obj) { + e = (*v)(p->obj, a); if (e) return e; + } + if (p->_size) { + e = (*v)(p->_size, a); if (e) return e; + } + if (p->_array_interface) { + e = (*v)(p->_array_interface, a); if (e) return e; + } + if (p->view.obj) { + e = (*v)(p->view.obj, a); if (e) return e; + } + return 0; +} + +static int __pyx_tp_clear_memoryview(PyObject *o) { + PyObject* tmp; + struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; + tmp = ((PyObject*)p->obj); + p->obj = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->_size); + p->_size = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->_array_interface); + p->_array_interface = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + Py_CLEAR(p->view.obj); + return 0; +} +static PyObject *__pyx_sq_item_memoryview(PyObject *o, Py_ssize_t i) { + PyObject *r; + PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; + r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); + Py_DECREF(x); + return r; +} + +static int __pyx_mp_ass_subscript_memoryview(PyObject *o, PyObject *i, PyObject *v) { + if (v) { + return __pyx_memoryview___setitem__(o, i, v); + } + else { + PyErr_Format(PyExc_NotImplementedError, + "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name); + return -1; + } +} + +static PyObject *__pyx_getprop___pyx_memoryview_T(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_base(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_shape(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_strides(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_suboffsets(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_ndim(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_itemsize(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_nbytes(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_size(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(o); +} + +static PyMethodDef __pyx_methods_memoryview[] = { + {"is_c_contig", (PyCFunction)__pyx_memoryview_is_c_contig, METH_NOARGS, 0}, + {"is_f_contig", (PyCFunction)__pyx_memoryview_is_f_contig, METH_NOARGS, 0}, + {"copy", (PyCFunction)__pyx_memoryview_copy, METH_NOARGS, 0}, + {"copy_fortran", (PyCFunction)__pyx_memoryview_copy_fortran, METH_NOARGS, 0}, + {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_memoryview_1__reduce_cython__, METH_NOARGS, 0}, + {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_memoryview_3__setstate_cython__, METH_O, 0}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_memoryview[] = { + {(char *)"T", __pyx_getprop___pyx_memoryview_T, 0, (char *)0, 0}, + {(char *)"base", __pyx_getprop___pyx_memoryview_base, 0, (char *)0, 0}, + {(char *)"shape", __pyx_getprop___pyx_memoryview_shape, 0, (char *)0, 0}, + {(char *)"strides", __pyx_getprop___pyx_memoryview_strides, 0, (char *)0, 0}, + {(char *)"suboffsets", __pyx_getprop___pyx_memoryview_suboffsets, 0, (char *)0, 0}, + {(char *)"ndim", __pyx_getprop___pyx_memoryview_ndim, 0, (char *)0, 0}, + {(char *)"itemsize", __pyx_getprop___pyx_memoryview_itemsize, 0, (char *)0, 0}, + {(char *)"nbytes", __pyx_getprop___pyx_memoryview_nbytes, 0, (char *)0, 0}, + {(char *)"size", __pyx_getprop___pyx_memoryview_size, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PySequenceMethods __pyx_tp_as_sequence_memoryview = { + __pyx_memoryview___len__, /*sq_length*/ + 0, /*sq_concat*/ + 0, /*sq_repeat*/ + __pyx_sq_item_memoryview, /*sq_item*/ + 0, /*sq_slice*/ + 0, /*sq_ass_item*/ + 0, /*sq_ass_slice*/ + 0, /*sq_contains*/ + 0, /*sq_inplace_concat*/ + 0, /*sq_inplace_repeat*/ +}; + +static PyMappingMethods __pyx_tp_as_mapping_memoryview = { + __pyx_memoryview___len__, /*mp_length*/ + __pyx_memoryview___getitem__, /*mp_subscript*/ + __pyx_mp_ass_subscript_memoryview, /*mp_ass_subscript*/ +}; + +static PyBufferProcs __pyx_tp_as_buffer_memoryview = { + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getreadbuffer*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getwritebuffer*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getsegcount*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getcharbuffer*/ + #endif + __pyx_memoryview_getbuffer, /*bf_getbuffer*/ + 0, /*bf_releasebuffer*/ +}; + +static PyTypeObject __pyx_type___pyx_memoryview = { + PyVarObject_HEAD_INIT(0, 0) + "lcn.memoryview", /*tp_name*/ + sizeof(struct __pyx_memoryview_obj), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_memoryview, /*tp_dealloc*/ + 0, /*tp_print*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + __pyx_memoryview___repr__, /*tp_repr*/ + 0, /*tp_as_number*/ + &__pyx_tp_as_sequence_memoryview, /*tp_as_sequence*/ + &__pyx_tp_as_mapping_memoryview, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + __pyx_memoryview___str__, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + &__pyx_tp_as_buffer_memoryview, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_memoryview, /*tp_traverse*/ + __pyx_tp_clear_memoryview, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_memoryview, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_memoryview, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_memoryview, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif +}; +static struct __pyx_vtabstruct__memoryviewslice __pyx_vtable__memoryviewslice; + +static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_memoryviewslice_obj *p; + PyObject *o = __pyx_tp_new_memoryview(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct __pyx_memoryviewslice_obj *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_memoryview*)__pyx_vtabptr__memoryviewslice; + p->from_object = Py_None; Py_INCREF(Py_None); + p->from_slice.memview = NULL; + return o; +} + +static void __pyx_tp_dealloc__memoryviewslice(PyObject *o) { + struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + PyObject_GC_UnTrack(o); + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + ++Py_REFCNT(o); + __pyx_memoryviewslice___dealloc__(o); + --Py_REFCNT(o); + PyErr_Restore(etype, eval, etb); + } + Py_CLEAR(p->from_object); + PyObject_GC_Track(o); + __pyx_tp_dealloc_memoryview(o); +} + +static int __pyx_tp_traverse__memoryviewslice(PyObject *o, visitproc v, void *a) { + int e; + struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; + e = __pyx_tp_traverse_memoryview(o, v, a); if (e) return e; + if (p->from_object) { + e = (*v)(p->from_object, a); if (e) return e; + } + return 0; +} + +static int __pyx_tp_clear__memoryviewslice(PyObject *o) { + PyObject* tmp; + struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; + __pyx_tp_clear_memoryview(o); + tmp = ((PyObject*)p->from_object); + p->from_object = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + __PYX_XDEC_MEMVIEW(&p->from_slice, 1); + return 0; +} + +static PyObject *__pyx_getprop___pyx_memoryviewslice_base(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(o); +} + +static PyMethodDef __pyx_methods__memoryviewslice[] = { + {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_memoryviewslice_1__reduce_cython__, METH_NOARGS, 0}, + {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_memoryviewslice_3__setstate_cython__, METH_O, 0}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets__memoryviewslice[] = { + {(char *)"base", __pyx_getprop___pyx_memoryviewslice_base, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type___pyx_memoryviewslice = { + PyVarObject_HEAD_INIT(0, 0) + "lcn._memoryviewslice", /*tp_name*/ + sizeof(struct __pyx_memoryviewslice_obj), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc__memoryviewslice, /*tp_dealloc*/ + 0, /*tp_print*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + #if CYTHON_COMPILING_IN_PYPY + __pyx_memoryview___repr__, /*tp_repr*/ + #else + 0, /*tp_repr*/ + #endif + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + #if CYTHON_COMPILING_IN_PYPY + __pyx_memoryview___str__, /*tp_str*/ + #else + 0, /*tp_str*/ + #endif + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + "Internal class for passing memoryview slices to Python", /*tp_doc*/ + __pyx_tp_traverse__memoryviewslice, /*tp_traverse*/ + __pyx_tp_clear__memoryviewslice, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods__memoryviewslice, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets__memoryviewslice, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new__memoryviewslice, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif +}; + +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_lcn(PyObject* module); /*proto*/ +static PyModuleDef_Slot __pyx_moduledef_slots[] = { + {Py_mod_create, (void*)__pyx_pymod_create}, + {Py_mod_exec, (void*)__pyx_pymod_exec_lcn}, + {0, NULL} +}; +#endif + +static struct PyModuleDef __pyx_moduledef = { + PyModuleDef_HEAD_INIT, + "lcn", + 0, /* m_doc */ + #if CYTHON_PEP489_MULTI_PHASE_INIT + 0, /* m_size */ + #else + -1, /* m_size */ + #endif + __pyx_methods /* m_methods */, + #if CYTHON_PEP489_MULTI_PHASE_INIT + __pyx_moduledef_slots, /* m_slots */ + #else + NULL, /* m_reload */ + #endif + NULL, /* m_traverse */ + NULL, /* m_clear */ + NULL /* m_free */ +}; +#endif +#ifndef CYTHON_SMALL_CODE +#if defined(__clang__) + #define CYTHON_SMALL_CODE +#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) + #define CYTHON_SMALL_CODE __attribute__((cold)) +#else + #define CYTHON_SMALL_CODE +#endif +#endif + +static __Pyx_StringTabEntry __pyx_string_tab[] = { + {&__pyx_n_s_ASCII, __pyx_k_ASCII, sizeof(__pyx_k_ASCII), 0, 0, 1, 1}, + {&__pyx_kp_s_Buffer_view_does_not_expose_stri, __pyx_k_Buffer_view_does_not_expose_stri, sizeof(__pyx_k_Buffer_view_does_not_expose_stri), 0, 0, 1, 0}, + {&__pyx_kp_s_Can_only_create_a_buffer_that_is, __pyx_k_Can_only_create_a_buffer_that_is, sizeof(__pyx_k_Can_only_create_a_buffer_that_is), 0, 0, 1, 0}, + {&__pyx_kp_s_Cannot_assign_to_read_only_memor, __pyx_k_Cannot_assign_to_read_only_memor, sizeof(__pyx_k_Cannot_assign_to_read_only_memor), 0, 0, 1, 0}, + {&__pyx_kp_s_Cannot_create_writable_memory_vi, __pyx_k_Cannot_create_writable_memory_vi, sizeof(__pyx_k_Cannot_create_writable_memory_vi), 0, 0, 1, 0}, + {&__pyx_kp_s_Cannot_index_with_type_s, __pyx_k_Cannot_index_with_type_s, sizeof(__pyx_k_Cannot_index_with_type_s), 0, 0, 1, 0}, + {&__pyx_n_s_Ellipsis, __pyx_k_Ellipsis, sizeof(__pyx_k_Ellipsis), 0, 0, 1, 1}, + {&__pyx_kp_s_Empty_shape_tuple_for_cython_arr, __pyx_k_Empty_shape_tuple_for_cython_arr, sizeof(__pyx_k_Empty_shape_tuple_for_cython_arr), 0, 0, 1, 0}, + {&__pyx_kp_s_Incompatible_checksums_s_vs_0xb0, __pyx_k_Incompatible_checksums_s_vs_0xb0, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xb0), 0, 0, 1, 0}, + {&__pyx_n_s_IndexError, __pyx_k_IndexError, sizeof(__pyx_k_IndexError), 0, 0, 1, 1}, + {&__pyx_kp_s_Indirect_dimensions_not_supporte, __pyx_k_Indirect_dimensions_not_supporte, sizeof(__pyx_k_Indirect_dimensions_not_supporte), 0, 0, 1, 0}, + {&__pyx_kp_s_Invalid_mode_expected_c_or_fortr, __pyx_k_Invalid_mode_expected_c_or_fortr, sizeof(__pyx_k_Invalid_mode_expected_c_or_fortr), 0, 0, 1, 0}, + {&__pyx_kp_s_Invalid_shape_in_axis_d_d, __pyx_k_Invalid_shape_in_axis_d_d, sizeof(__pyx_k_Invalid_shape_in_axis_d_d), 0, 0, 1, 0}, + {&__pyx_n_s_M, __pyx_k_M, sizeof(__pyx_k_M), 0, 0, 1, 1}, + {&__pyx_n_s_MemoryError, __pyx_k_MemoryError, sizeof(__pyx_k_MemoryError), 0, 0, 1, 1}, + {&__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_k_MemoryView_of_r_at_0x_x, sizeof(__pyx_k_MemoryView_of_r_at_0x_x), 0, 0, 1, 0}, + {&__pyx_kp_s_MemoryView_of_r_object, __pyx_k_MemoryView_of_r_object, sizeof(__pyx_k_MemoryView_of_r_object), 0, 0, 1, 0}, + {&__pyx_n_s_N, __pyx_k_N, sizeof(__pyx_k_N), 0, 0, 1, 1}, + {&__pyx_n_b_O, __pyx_k_O, sizeof(__pyx_k_O), 0, 0, 0, 1}, + {&__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_k_Out_of_bounds_on_buffer_access_a, sizeof(__pyx_k_Out_of_bounds_on_buffer_access_a), 0, 0, 1, 0}, + {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1}, + {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, + {&__pyx_kp_s_Unable_to_convert_item_to_object, __pyx_k_Unable_to_convert_item_to_object, sizeof(__pyx_k_Unable_to_convert_item_to_object), 0, 0, 1, 0}, + {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, + {&__pyx_n_s_View_MemoryView, __pyx_k_View_MemoryView, sizeof(__pyx_k_View_MemoryView), 0, 0, 1, 1}, + {&__pyx_n_s_allocate_buffer, __pyx_k_allocate_buffer, sizeof(__pyx_k_allocate_buffer), 0, 0, 1, 1}, + {&__pyx_n_s_base, __pyx_k_base, sizeof(__pyx_k_base), 0, 0, 1, 1}, + {&__pyx_n_s_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 0, 1, 1}, + {&__pyx_n_u_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 1, 0, 1}, + {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1}, + {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, + {&__pyx_kp_s_contiguous_and_direct, __pyx_k_contiguous_and_direct, sizeof(__pyx_k_contiguous_and_direct), 0, 0, 1, 0}, + {&__pyx_kp_s_contiguous_and_indirect, __pyx_k_contiguous_and_indirect, sizeof(__pyx_k_contiguous_and_indirect), 0, 0, 1, 0}, + {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1}, + {&__pyx_n_s_dtype, __pyx_k_dtype, sizeof(__pyx_k_dtype), 0, 0, 1, 1}, + {&__pyx_n_s_dtype_is_object, __pyx_k_dtype_is_object, sizeof(__pyx_k_dtype_is_object), 0, 0, 1, 1}, + {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1}, + {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1}, + {&__pyx_n_s_eps, __pyx_k_eps, sizeof(__pyx_k_eps), 0, 0, 1, 1}, + {&__pyx_n_s_epsilon, __pyx_k_epsilon, sizeof(__pyx_k_epsilon), 0, 0, 1, 1}, + {&__pyx_n_s_error, __pyx_k_error, sizeof(__pyx_k_error), 0, 0, 1, 1}, + {&__pyx_n_s_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 0, 1, 1}, + {&__pyx_n_s_float32, __pyx_k_float32, sizeof(__pyx_k_float32), 0, 0, 1, 1}, + {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1}, + {&__pyx_n_s_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 0, 1, 1}, + {&__pyx_n_u_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 1, 0, 1}, + {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, + {&__pyx_kp_s_got_differing_extents_in_dimensi, __pyx_k_got_differing_extents_in_dimensi, sizeof(__pyx_k_got_differing_extents_in_dimensi), 0, 0, 1, 0}, + {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1}, + {&__pyx_n_s_id, __pyx_k_id, sizeof(__pyx_k_id), 0, 0, 1, 1}, + {&__pyx_n_s_img, __pyx_k_img, sizeof(__pyx_k_img), 0, 0, 1, 1}, + {&__pyx_n_s_img_lcn, __pyx_k_img_lcn, sizeof(__pyx_k_img_lcn), 0, 0, 1, 1}, + {&__pyx_n_s_img_lcn_view, __pyx_k_img_lcn_view, sizeof(__pyx_k_img_lcn_view), 0, 0, 1, 1}, + {&__pyx_n_s_img_std, __pyx_k_img_std, sizeof(__pyx_k_img_std), 0, 0, 1, 1}, + {&__pyx_n_s_img_std_view, __pyx_k_img_std_view, sizeof(__pyx_k_img_std_view), 0, 0, 1, 1}, + {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, + {&__pyx_n_s_itemsize, __pyx_k_itemsize, sizeof(__pyx_k_itemsize), 0, 0, 1, 1}, + {&__pyx_kp_s_itemsize_0_for_cython_array, __pyx_k_itemsize_0_for_cython_array, sizeof(__pyx_k_itemsize_0_for_cython_array), 0, 0, 1, 0}, + {&__pyx_n_s_j, __pyx_k_j, sizeof(__pyx_k_j), 0, 0, 1, 1}, + {&__pyx_n_s_kernel_size, __pyx_k_kernel_size, sizeof(__pyx_k_kernel_size), 0, 0, 1, 1}, + {&__pyx_n_s_ks, __pyx_k_ks, sizeof(__pyx_k_ks), 0, 0, 1, 1}, + {&__pyx_n_s_lcn, __pyx_k_lcn, sizeof(__pyx_k_lcn), 0, 0, 1, 1}, + {&__pyx_kp_s_lcn_pyx, __pyx_k_lcn_pyx, sizeof(__pyx_k_lcn_pyx), 0, 0, 1, 0}, + {&__pyx_n_s_m, __pyx_k_m, sizeof(__pyx_k_m), 0, 0, 1, 1}, + {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, + {&__pyx_n_s_mean, __pyx_k_mean, sizeof(__pyx_k_mean), 0, 0, 1, 1}, + {&__pyx_n_s_memview, __pyx_k_memview, sizeof(__pyx_k_memview), 0, 0, 1, 1}, + {&__pyx_n_s_mode, __pyx_k_mode, sizeof(__pyx_k_mode), 0, 0, 1, 1}, + {&__pyx_n_s_n, __pyx_k_n, sizeof(__pyx_k_n), 0, 0, 1, 1}, + {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, + {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1}, + {&__pyx_n_s_ndim, __pyx_k_ndim, sizeof(__pyx_k_ndim), 0, 0, 1, 1}, + {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1}, + {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, + {&__pyx_n_s_normalize, __pyx_k_normalize, sizeof(__pyx_k_normalize), 0, 0, 1, 1}, + {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1}, + {&__pyx_n_s_num, __pyx_k_num, sizeof(__pyx_k_num), 0, 0, 1, 1}, + {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1}, + {&__pyx_n_s_obj, __pyx_k_obj, sizeof(__pyx_k_obj), 0, 0, 1, 1}, + {&__pyx_n_s_pack, __pyx_k_pack, sizeof(__pyx_k_pack), 0, 0, 1, 1}, + {&__pyx_n_s_pickle, __pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_getbuffer, __pyx_k_pyx_getbuffer, sizeof(__pyx_k_pyx_getbuffer), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_result, __pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_state, __pyx_k_pyx_state, sizeof(__pyx_k_pyx_state), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_type, __pyx_k_pyx_type, sizeof(__pyx_k_pyx_type), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_unpickle_Enum, __pyx_k_pyx_unpickle_Enum, sizeof(__pyx_k_pyx_unpickle_Enum), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, + {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, + {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, + {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, + {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, + {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, + {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, + {&__pyx_n_s_shape, __pyx_k_shape, sizeof(__pyx_k_shape), 0, 0, 1, 1}, + {&__pyx_n_s_size, __pyx_k_size, sizeof(__pyx_k_size), 0, 0, 1, 1}, + {&__pyx_n_s_start, __pyx_k_start, sizeof(__pyx_k_start), 0, 0, 1, 1}, + {&__pyx_n_s_stddev, __pyx_k_stddev, sizeof(__pyx_k_stddev), 0, 0, 1, 1}, + {&__pyx_n_s_step, __pyx_k_step, sizeof(__pyx_k_step), 0, 0, 1, 1}, + {&__pyx_n_s_stop, __pyx_k_stop, sizeof(__pyx_k_stop), 0, 0, 1, 1}, + {&__pyx_kp_s_strided_and_direct, __pyx_k_strided_and_direct, sizeof(__pyx_k_strided_and_direct), 0, 0, 1, 0}, + {&__pyx_kp_s_strided_and_direct_or_indirect, __pyx_k_strided_and_direct_or_indirect, sizeof(__pyx_k_strided_and_direct_or_indirect), 0, 0, 1, 0}, + {&__pyx_kp_s_strided_and_indirect, __pyx_k_strided_and_indirect, sizeof(__pyx_k_strided_and_indirect), 0, 0, 1, 0}, + {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0}, + {&__pyx_n_s_struct, __pyx_k_struct, sizeof(__pyx_k_struct), 0, 0, 1, 1}, + {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, + {&__pyx_n_s_tmp, __pyx_k_tmp, sizeof(__pyx_k_tmp), 0, 0, 1, 1}, + {&__pyx_kp_s_unable_to_allocate_array_data, __pyx_k_unable_to_allocate_array_data, sizeof(__pyx_k_unable_to_allocate_array_data), 0, 0, 1, 0}, + {&__pyx_kp_s_unable_to_allocate_shape_and_str, __pyx_k_unable_to_allocate_shape_and_str, sizeof(__pyx_k_unable_to_allocate_shape_and_str), 0, 0, 1, 0}, + {&__pyx_n_s_unpack, __pyx_k_unpack, sizeof(__pyx_k_unpack), 0, 0, 1, 1}, + {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1}, + {&__pyx_n_s_zeros, __pyx_k_zeros, sizeof(__pyx_k_zeros), 0, 0, 1, 1}, + {0, 0, 0, 0, 0, 0, 0} +}; +static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { + __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 36, __pyx_L1_error) + __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 132, __pyx_L1_error) + __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(1, 147, __pyx_L1_error) + __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(1, 150, __pyx_L1_error) + __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(1, 2, __pyx_L1_error) + __pyx_builtin_Ellipsis = __Pyx_GetBuiltinName(__pyx_n_s_Ellipsis); if (!__pyx_builtin_Ellipsis) __PYX_ERR(1, 399, __pyx_L1_error) + __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(1, 608, __pyx_L1_error) + __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(1, 827, __pyx_L1_error) + return 0; + __pyx_L1_error:; + return -1; +} + +static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); + + /* "View.MemoryView":132 + * + * if not self.ndim: + * raise ValueError("Empty shape tuple for cython.array") # <<<<<<<<<<<<<< + * + * if itemsize <= 0: + */ + __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_s_Empty_shape_tuple_for_cython_arr); if (unlikely(!__pyx_tuple_)) __PYX_ERR(1, 132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple_); + __Pyx_GIVEREF(__pyx_tuple_); + + /* "View.MemoryView":135 + * + * if itemsize <= 0: + * raise ValueError("itemsize <= 0 for cython.array") # <<<<<<<<<<<<<< + * + * if not isinstance(format, bytes): + */ + __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_s_itemsize_0_for_cython_array); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(1, 135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__2); + __Pyx_GIVEREF(__pyx_tuple__2); + + /* "View.MemoryView":147 + * + * if not self._shape: + * raise MemoryError("unable to allocate shape and strides.") # <<<<<<<<<<<<<< + * + * + */ + __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_shape_and_str); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(1, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__3); + __Pyx_GIVEREF(__pyx_tuple__3); + + /* "View.MemoryView":175 + * self.data = malloc(self.len) + * if not self.data: + * raise MemoryError("unable to allocate array data.") # <<<<<<<<<<<<<< + * + * if self.dtype_is_object: + */ + __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_array_data); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(1, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__4); + __Pyx_GIVEREF(__pyx_tuple__4); + + /* "View.MemoryView":191 + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * if not (flags & bufmode): + * raise ValueError("Can only create a buffer that is contiguous in memory.") # <<<<<<<<<<<<<< + * info.buf = self.data + * info.len = self.len + */ + __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_Can_only_create_a_buffer_that_is); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(1, 191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__5); + __Pyx_GIVEREF(__pyx_tuple__5); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(1, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__6); + __Pyx_GIVEREF(__pyx_tuple__6); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__7); + __Pyx_GIVEREF(__pyx_tuple__7); + + /* "View.MemoryView":413 + * def __setitem__(memoryview self, object index, object value): + * if self.view.readonly: + * raise TypeError("Cannot assign to read-only memoryview") # <<<<<<<<<<<<<< + * + * have_slices, index = _unellipsify(index, self.view.ndim) + */ + __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_Cannot_assign_to_read_only_memor); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__8); + __Pyx_GIVEREF(__pyx_tuple__8); + + /* "View.MemoryView":490 + * result = struct.unpack(self.view.format, bytesitem) + * except struct.error: + * raise ValueError("Unable to convert item to object") # <<<<<<<<<<<<<< + * else: + * if len(self.view.format) == 1: + */ + __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_Unable_to_convert_item_to_object); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__9); + __Pyx_GIVEREF(__pyx_tuple__9); + + /* "View.MemoryView":515 + * def __getbuffer__(self, Py_buffer *info, int flags): + * if flags & PyBUF_WRITABLE and self.view.readonly: + * raise ValueError("Cannot create writable memory view from read-only memoryview") # <<<<<<<<<<<<<< + * + * if flags & PyBUF_STRIDES: + */ + __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_Cannot_create_writable_memory_vi); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(1, 515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__10); + __Pyx_GIVEREF(__pyx_tuple__10); + + /* "View.MemoryView":565 + * if self.view.strides == NULL: + * + * raise ValueError("Buffer view does not expose strides") # <<<<<<<<<<<<<< + * + * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) + */ + __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_s_Buffer_view_does_not_expose_stri); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(1, 565, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__11); + __Pyx_GIVEREF(__pyx_tuple__11); + + /* "View.MemoryView":572 + * def suboffsets(self): + * if self.view.suboffsets == NULL: + * return (-1,) * self.view.ndim # <<<<<<<<<<<<<< + * + * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) + */ + __pyx_tuple__12 = PyTuple_New(1); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(1, 572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__12); + __Pyx_INCREF(__pyx_int_neg_1); + __Pyx_GIVEREF(__pyx_int_neg_1); + PyTuple_SET_ITEM(__pyx_tuple__12, 0, __pyx_int_neg_1); + __Pyx_GIVEREF(__pyx_tuple__12); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(1, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__13); + __Pyx_GIVEREF(__pyx_tuple__13); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__14); + __Pyx_GIVEREF(__pyx_tuple__14); + + /* "View.MemoryView":677 + * if item is Ellipsis: + * if not seen_ellipsis: + * result.extend([slice(None)] * (ndim - len(tup) + 1)) # <<<<<<<<<<<<<< + * seen_ellipsis = True + * else: + */ + __pyx_slice__15 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__15)) __PYX_ERR(1, 677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_slice__15); + __Pyx_GIVEREF(__pyx_slice__15); + + /* "View.MemoryView":680 + * seen_ellipsis = True + * else: + * result.append(slice(None)) # <<<<<<<<<<<<<< + * have_slices = True + * else: + */ + __pyx_slice__15 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__15)) __PYX_ERR(1, 680, __pyx_L1_error) + __Pyx_GOTREF(__pyx_slice__15); + __Pyx_GIVEREF(__pyx_slice__15); + + /* "View.MemoryView":691 + * nslices = ndim - len(result) + * if nslices: + * result.extend([slice(None)] * nslices) # <<<<<<<<<<<<<< + * + * return have_slices or nslices, tuple(result) + */ + __pyx_slice__15 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__15)) __PYX_ERR(1, 691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_slice__15); + __Pyx_GIVEREF(__pyx_slice__15); + + /* "View.MemoryView":698 + * for suboffset in suboffsets[:ndim]: + * if suboffset >= 0: + * raise ValueError("Indirect dimensions not supported") # <<<<<<<<<<<<<< + * + * + */ + __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s_Indirect_dimensions_not_supporte); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(1, 698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__16); + __Pyx_GIVEREF(__pyx_tuple__16); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(1, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__17); + __Pyx_GIVEREF(__pyx_tuple__17); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__18); + __Pyx_GIVEREF(__pyx_tuple__18); + + /* "lcn.pyx":16 + * # - kernel size (actually this is the radius, kernel is 2*k+1) + * # - small constant epsilon that is used to avoid division by zero + * def normalize(float[:, :] img, int kernel_size = 4, float epsilon = 0.01): # <<<<<<<<<<<<<< + * + * # image dimensions + */ + __pyx_tuple__19 = PyTuple_Pack(19, __pyx_n_s_img, __pyx_n_s_kernel_size, __pyx_n_s_epsilon, __pyx_n_s_M, __pyx_n_s_N, __pyx_n_s_img_lcn, __pyx_n_s_img_std, __pyx_n_s_img_lcn_view, __pyx_n_s_img_std_view, __pyx_n_s_tmp, __pyx_n_s_mean, __pyx_n_s_stddev, __pyx_n_s_m, __pyx_n_s_n, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_ks, __pyx_n_s_eps, __pyx_n_s_num); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__19); + __Pyx_GIVEREF(__pyx_tuple__19); + __pyx_codeobj__20 = (PyObject*)__Pyx_PyCode_New(3, 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_lcn_pyx, __pyx_n_s_normalize, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__20)) __PYX_ERR(0, 16, __pyx_L1_error) + + /* "View.MemoryView":285 + * return self.name + * + * cdef generic = Enum("") # <<<<<<<<<<<<<< + * cdef strided = Enum("") # default + * cdef indirect = Enum("") + */ + __pyx_tuple__21 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct_or_indirect); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(1, 285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__21); + __Pyx_GIVEREF(__pyx_tuple__21); + + /* "View.MemoryView":286 + * + * cdef generic = Enum("") + * cdef strided = Enum("") # default # <<<<<<<<<<<<<< + * cdef indirect = Enum("") + * + */ + __pyx_tuple__22 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(1, 286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__22); + __Pyx_GIVEREF(__pyx_tuple__22); + + /* "View.MemoryView":287 + * cdef generic = Enum("") + * cdef strided = Enum("") # default + * cdef indirect = Enum("") # <<<<<<<<<<<<<< + * + * + */ + __pyx_tuple__23 = PyTuple_Pack(1, __pyx_kp_s_strided_and_indirect); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(1, 287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__23); + __Pyx_GIVEREF(__pyx_tuple__23); + + /* "View.MemoryView":290 + * + * + * cdef contiguous = Enum("") # <<<<<<<<<<<<<< + * cdef indirect_contiguous = Enum("") + * + */ + __pyx_tuple__24 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_direct); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(1, 290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__24); + __Pyx_GIVEREF(__pyx_tuple__24); + + /* "View.MemoryView":291 + * + * cdef contiguous = Enum("") + * cdef indirect_contiguous = Enum("") # <<<<<<<<<<<<<< + * + * + */ + __pyx_tuple__25 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_indirect); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(1, 291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__25); + __Pyx_GIVEREF(__pyx_tuple__25); + + /* "(tree fragment)":1 + * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * if __pyx_checksum != 0xb068931: + * from pickle import PickleError as __pyx_PickleError + */ + __pyx_tuple__26 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__26); + __Pyx_GIVEREF(__pyx_tuple__26); + __pyx_codeobj__27 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__26, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Enum, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__27)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_RefNannyFinishContext(); + return -1; +} + +static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { + 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_184977713 = PyInt_FromLong(184977713L); if (unlikely(!__pyx_int_184977713)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(0, 1, __pyx_L1_error) + return 0; + __pyx_L1_error:; + return -1; +} + +static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ + +static int __Pyx_modinit_global_init_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); + /*--- Global init code ---*/ + generic = Py_None; Py_INCREF(Py_None); + strided = Py_None; Py_INCREF(Py_None); + indirect = Py_None; Py_INCREF(Py_None); + contiguous = Py_None; Py_INCREF(Py_None); + indirect_contiguous = Py_None; Py_INCREF(Py_None); + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_variable_export_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); + /*--- Variable export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_function_export_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); + /*--- Function export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_type_init_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); + /*--- Type init code ---*/ + __pyx_vtabptr_array = &__pyx_vtable_array; + __pyx_vtable_array.get_memview = (PyObject *(*)(struct __pyx_array_obj *))__pyx_array_get_memview; + if (PyType_Ready(&__pyx_type___pyx_array) < 0) __PYX_ERR(1, 104, __pyx_L1_error) + __pyx_type___pyx_array.tp_print = 0; + if (__Pyx_SetVtable(__pyx_type___pyx_array.tp_dict, __pyx_vtabptr_array) < 0) __PYX_ERR(1, 104, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_array) < 0) __PYX_ERR(1, 104, __pyx_L1_error) + __pyx_array_type = &__pyx_type___pyx_array; + if (PyType_Ready(&__pyx_type___pyx_MemviewEnum) < 0) __PYX_ERR(1, 278, __pyx_L1_error) + __pyx_type___pyx_MemviewEnum.tp_print = 0; + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_MemviewEnum.tp_dictoffset && __pyx_type___pyx_MemviewEnum.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type___pyx_MemviewEnum.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_MemviewEnum) < 0) __PYX_ERR(1, 278, __pyx_L1_error) + __pyx_MemviewEnum_type = &__pyx_type___pyx_MemviewEnum; + __pyx_vtabptr_memoryview = &__pyx_vtable_memoryview; + __pyx_vtable_memoryview.get_item_pointer = (char *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_get_item_pointer; + __pyx_vtable_memoryview.is_slice = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_is_slice; + __pyx_vtable_memoryview.setitem_slice_assignment = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_slice_assignment; + __pyx_vtable_memoryview.setitem_slice_assign_scalar = (PyObject *(*)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_setitem_slice_assign_scalar; + __pyx_vtable_memoryview.setitem_indexed = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_indexed; + __pyx_vtable_memoryview.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryview_convert_item_to_object; + __pyx_vtable_memoryview.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryview_assign_item_from_object; + if (PyType_Ready(&__pyx_type___pyx_memoryview) < 0) __PYX_ERR(1, 329, __pyx_L1_error) + __pyx_type___pyx_memoryview.tp_print = 0; + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_memoryview.tp_dictoffset && __pyx_type___pyx_memoryview.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type___pyx_memoryview.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type___pyx_memoryview.tp_dict, __pyx_vtabptr_memoryview) < 0) __PYX_ERR(1, 329, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_memoryview) < 0) __PYX_ERR(1, 329, __pyx_L1_error) + __pyx_memoryview_type = &__pyx_type___pyx_memoryview; + __pyx_vtabptr__memoryviewslice = &__pyx_vtable__memoryviewslice; + __pyx_vtable__memoryviewslice.__pyx_base = *__pyx_vtabptr_memoryview; + __pyx_vtable__memoryviewslice.__pyx_base.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryviewslice_convert_item_to_object; + __pyx_vtable__memoryviewslice.__pyx_base.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryviewslice_assign_item_from_object; + __pyx_type___pyx_memoryviewslice.tp_base = __pyx_memoryview_type; + if (PyType_Ready(&__pyx_type___pyx_memoryviewslice) < 0) __PYX_ERR(1, 960, __pyx_L1_error) + __pyx_type___pyx_memoryviewslice.tp_print = 0; + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_memoryviewslice.tp_dictoffset && __pyx_type___pyx_memoryviewslice.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type___pyx_memoryviewslice.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type___pyx_memoryviewslice.tp_dict, __pyx_vtabptr__memoryviewslice) < 0) __PYX_ERR(1, 960, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_memoryviewslice) < 0) __PYX_ERR(1, 960, __pyx_L1_error) + __pyx_memoryviewslice_type = &__pyx_type___pyx_memoryviewslice; + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_type_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); + /*--- Type import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +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 + + +#if PY_MAJOR_VERSION < 3 +__Pyx_PyMODINIT_FUNC initlcn(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC initlcn(void) +#else +__Pyx_PyMODINIT_FUNC PyInit_lcn(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC PyInit_lcn(void) +#if CYTHON_PEP489_MULTI_PHASE_INIT +{ + return PyModuleDef_Init(&__pyx_moduledef); +} +static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { + #if PY_VERSION_HEX >= 0x030700A1 + static PY_INT64_T main_interpreter_id = -1; + PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); + if (main_interpreter_id == -1) { + main_interpreter_id = current_id; + return (unlikely(current_id == -1)) ? -1 : 0; + } else if (unlikely(main_interpreter_id != current_id)) + #else + static PyInterpreterState *main_interpreter = NULL; + PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; + if (!main_interpreter) { + main_interpreter = current_interpreter; + } else if (unlikely(main_interpreter != current_interpreter)) + #endif + { + PyErr_SetString( + PyExc_ImportError, + "Interpreter change detected - this module can only be loaded into one interpreter per process."); + return -1; + } + return 0; +} +static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name) { + 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 CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) { + PyObject *module = NULL, *moddict, *modname; + if (__Pyx_check_single_interpreter()) + return NULL; + if (__pyx_m) + return __Pyx_NewRef(__pyx_m); + modname = PyObject_GetAttrString(spec, "name"); + if (unlikely(!modname)) goto bad; + module = PyModule_NewObject(modname); + Py_DECREF(modname); + if (unlikely(!module)) goto bad; + moddict = PyModule_GetDict(module); + if (unlikely(!moddict)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__") < 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 CYTHON_SMALL_CODE int __pyx_pymod_exec_lcn(PyObject *__pyx_pyinit_module) +#endif +#endif +{ + PyObject *__pyx_t_1 = NULL; + static PyThread_type_lock __pyx_t_2[8]; + __Pyx_RefNannyDeclarations + #if CYTHON_PEP489_MULTI_PHASE_INIT + if (__pyx_m) { + if (__pyx_m == __pyx_pyinit_module) return 0; + PyErr_SetString(PyExc_RuntimeError, "Module 'lcn' has already been imported. Re-initialisation is not supported."); + return -1; + } + #elif PY_MAJOR_VERSION >= 3 + if (__pyx_m) return __Pyx_NewRef(__pyx_m); + #endif + #if CYTHON_REFNANNY +__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); +if (!__Pyx_RefNanny) { + PyErr_Clear(); + __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); + if (!__Pyx_RefNanny) + Py_FatalError("failed to import 'refnanny' module"); +} +#endif + __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_lcn(void)", 0); + if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) + #ifdef __Pxy_PyFrame_Initialize_Offsets + __Pxy_PyFrame_Initialize_Offsets(); + #endif + __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error) + #ifdef __Pyx_CyFunction_USED + if (__pyx_CyFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_FusedFunction_USED + if (__pyx_FusedFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_Coroutine_USED + if (__pyx_Coroutine_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_Generator_USED + if (__pyx_Generator_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_AsyncGen_USED + if (__pyx_AsyncGen_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_StopAsyncIteration_USED + if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) + #endif + /*--- Library function declarations ---*/ + /*--- Threads initialization code ---*/ + #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS + #ifdef WITH_THREAD /* Python build with threading support? */ + PyEval_InitThreads(); + #endif + #endif + /*--- Module creation code ---*/ + #if CYTHON_PEP489_MULTI_PHASE_INIT + __pyx_m = __pyx_pyinit_module; + Py_INCREF(__pyx_m); + #else + #if PY_MAJOR_VERSION < 3 + __pyx_m = Py_InitModule4("lcn", __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_lcn) { + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error) + } + #if PY_MAJOR_VERSION >= 3 + { + PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error) + if (!PyDict_GetItemString(modules, "lcn")) { + if (unlikely(PyDict_SetItemString(modules, "lcn", __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(); + if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; + (void)__Pyx_modinit_type_import_code(); + (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 + + /* "lcn.pyx":1 + * import 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; + + /* "lcn.pyx":16 + * # - kernel size (actually this is the radius, kernel is 2*k+1) + * # - small constant epsilon that is used to avoid division by zero + * def normalize(float[:, :] img, int kernel_size = 4, float epsilon = 0.01): # <<<<<<<<<<<<<< + * + * # image dimensions + */ + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_3lcn_1normalize, NULL, __pyx_n_s_lcn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_normalize, __pyx_t_1) < 0) __PYX_ERR(0, 16, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "lcn.pyx":1 + * import 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; + + /* "View.MemoryView":208 + * info.obj = self + * + * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< + * + * def __dealloc__(array self): + */ + __pyx_t_1 = __pyx_capsule_create(((void *)(&__pyx_array_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem((PyObject *)__pyx_array_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_1) < 0) __PYX_ERR(1, 208, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_array_type); + + /* "View.MemoryView":285 + * return self.name + * + * cdef generic = Enum("") # <<<<<<<<<<<<<< + * cdef strided = Enum("") # default + * cdef indirect = Enum("") + */ + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XGOTREF(generic); + __Pyx_DECREF_SET(generic, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __pyx_t_1 = 0; + + /* "View.MemoryView":286 + * + * cdef generic = Enum("") + * cdef strided = Enum("") # default # <<<<<<<<<<<<<< + * cdef indirect = Enum("") + * + */ + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__22, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XGOTREF(strided); + __Pyx_DECREF_SET(strided, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __pyx_t_1 = 0; + + /* "View.MemoryView":287 + * cdef generic = Enum("") + * cdef strided = Enum("") # default + * cdef indirect = Enum("") # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XGOTREF(indirect); + __Pyx_DECREF_SET(indirect, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __pyx_t_1 = 0; + + /* "View.MemoryView":290 + * + * + * cdef contiguous = Enum("") # <<<<<<<<<<<<<< + * cdef indirect_contiguous = Enum("") + * + */ + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XGOTREF(contiguous); + __Pyx_DECREF_SET(contiguous, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __pyx_t_1 = 0; + + /* "View.MemoryView":291 + * + * cdef contiguous = Enum("") + * cdef indirect_contiguous = Enum("") # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__25, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XGOTREF(indirect_contiguous); + __Pyx_DECREF_SET(indirect_contiguous, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __pyx_t_1 = 0; + + /* "View.MemoryView":315 + * + * DEF THREAD_LOCKS_PREALLOCATED = 8 + * cdef int __pyx_memoryview_thread_locks_used = 0 # <<<<<<<<<<<<<< + * cdef PyThread_type_lock[THREAD_LOCKS_PREALLOCATED] __pyx_memoryview_thread_locks = [ + * PyThread_allocate_lock(), + */ + __pyx_memoryview_thread_locks_used = 0; + + /* "View.MemoryView":316 + * DEF THREAD_LOCKS_PREALLOCATED = 8 + * cdef int __pyx_memoryview_thread_locks_used = 0 + * cdef PyThread_type_lock[THREAD_LOCKS_PREALLOCATED] __pyx_memoryview_thread_locks = [ # <<<<<<<<<<<<<< + * PyThread_allocate_lock(), + * PyThread_allocate_lock(), + */ + __pyx_t_2[0] = PyThread_allocate_lock(); + __pyx_t_2[1] = PyThread_allocate_lock(); + __pyx_t_2[2] = PyThread_allocate_lock(); + __pyx_t_2[3] = PyThread_allocate_lock(); + __pyx_t_2[4] = PyThread_allocate_lock(); + __pyx_t_2[5] = PyThread_allocate_lock(); + __pyx_t_2[6] = PyThread_allocate_lock(); + __pyx_t_2[7] = PyThread_allocate_lock(); + memcpy(&(__pyx_memoryview_thread_locks[0]), __pyx_t_2, sizeof(__pyx_memoryview_thread_locks[0]) * (8)); + + /* "View.MemoryView":544 + * info.obj = self + * + * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_1 = __pyx_capsule_create(((void *)(&__pyx_memoryview_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem((PyObject *)__pyx_memoryview_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_1) < 0) __PYX_ERR(1, 544, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_memoryview_type); + + /* "View.MemoryView":990 + * return self.from_object + * + * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_1 = __pyx_capsule_create(((void *)(&__pyx_memoryview_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem((PyObject *)__pyx_memoryviewslice_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_1) < 0) __PYX_ERR(1, 990, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_memoryviewslice_type); + + /* "(tree fragment)":1 + * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * if __pyx_checksum != 0xb068931: + * from pickle import PickleError as __pyx_PickleError + */ + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum, NULL, __pyx_n_s_View_MemoryView); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Enum, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "(tree fragment)":9 + * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.name = __pyx_state[0] + * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): + */ + + /*--- Wrapped vars code ---*/ + + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + if (__pyx_m) { + if (__pyx_d) { + __Pyx_AddTraceback("init lcn", __pyx_clineno, __pyx_lineno, __pyx_filename); + } + Py_CLEAR(__pyx_m); + } else if (!PyErr_Occurred()) { + PyErr_SetString(PyExc_ImportError, "init lcn"); + } + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #if CYTHON_PEP489_MULTI_PHASE_INIT + return (__pyx_m != NULL) ? 0 : -1; + #elif PY_MAJOR_VERSION >= 3 + return __pyx_m; + #else + return; + #endif +} + +/* --- Runtime support code --- */ +/* Refnanny */ +#if CYTHON_REFNANNY +static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { + PyObject *m = NULL, *p = NULL; + void *r = NULL; + m = PyImport_ImportModule(modname); + if (!m) goto end; + p = PyObject_GetAttrString(m, "RefNannyAPI"); + if (!p) goto end; + r = PyLong_AsVoidPtr(p); +end: + Py_XDECREF(p); + Py_XDECREF(m); + return (__Pyx_RefNannyAPIStruct *)r; +} +#endif + +/* PyObjectGetAttrStr */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { + PyTypeObject* tp = Py_TYPE(obj); + if (likely(tp->tp_getattro)) + return tp->tp_getattro(obj, attr_name); +#if PY_MAJOR_VERSION < 3 + if (likely(tp->tp_getattr)) + return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); +#endif + return PyObject_GetAttr(obj, attr_name); +} +#endif + +/* GetBuiltinName */ +static PyObject *__Pyx_GetBuiltinName(PyObject *name) { + PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); + if (unlikely(!result)) { + PyErr_Format(PyExc_NameError, +#if PY_MAJOR_VERSION >= 3 + "name '%U' is not defined", name); +#else + "name '%.200s' is not defined", PyString_AS_STRING(name)); +#endif + } + return result; +} + +/* 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; +} + +/* 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); +} + +/* GetModuleGlobalName */ +#if CYTHON_USE_DICT_VERSIONS +static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value) +#else +static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name) +#endif +{ + PyObject *result; +#if !CYTHON_AVOID_BORROWED_REFS +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 + result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash); + __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) + if (likely(result)) { + return __Pyx_NewRef(result); + } else if (unlikely(PyErr_Occurred())) { + return NULL; + } +#else + result = PyDict_GetItem(__pyx_d, name); + __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) + if (likely(result)) { + return __Pyx_NewRef(result); + } +#endif +#else + result = PyObject_GetItem(__pyx_d, name); + __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) + if (likely(result)) { + return __Pyx_NewRef(result); + } + PyErr_Clear(); +#endif + return __Pyx_GetBuiltinName(name); +} + +/* 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 + +/* MemviewSliceInit */ +static int +__Pyx_init_memviewslice(struct __pyx_memoryview_obj *memview, + int ndim, + __Pyx_memviewslice *memviewslice, + int memview_is_new_reference) +{ + __Pyx_RefNannyDeclarations + int i, retval=-1; + Py_buffer *buf = &memview->view; + __Pyx_RefNannySetupContext("init_memviewslice", 0); + if (!buf) { + PyErr_SetString(PyExc_ValueError, + "buf is NULL."); + goto fail; + } else if (memviewslice->memview || memviewslice->data) { + PyErr_SetString(PyExc_ValueError, + "memviewslice is already initialized!"); + goto fail; + } + if (buf->strides) { + for (i = 0; i < ndim; i++) { + memviewslice->strides[i] = buf->strides[i]; + } + } else { + Py_ssize_t stride = buf->itemsize; + for (i = ndim - 1; i >= 0; i--) { + memviewslice->strides[i] = stride; + stride *= buf->shape[i]; + } + } + for (i = 0; i < ndim; i++) { + memviewslice->shape[i] = buf->shape[i]; + if (buf->suboffsets) { + memviewslice->suboffsets[i] = buf->suboffsets[i]; + } else { + memviewslice->suboffsets[i] = -1; + } + } + memviewslice->memview = memview; + memviewslice->data = (char *)buf->buf; + if (__pyx_add_acquisition_count(memview) == 0 && !memview_is_new_reference) { + Py_INCREF(memview); + } + retval = 0; + goto no_fail; +fail: + memviewslice->memview = 0; + memviewslice->data = 0; + retval = -1; +no_fail: + __Pyx_RefNannyFinishContext(); + return retval; +} +#ifndef Py_NO_RETURN +#define Py_NO_RETURN +#endif +static void __pyx_fatalerror(const char *fmt, ...) Py_NO_RETURN { + va_list vargs; + char msg[200]; +#ifdef HAVE_STDARG_PROTOTYPES + va_start(vargs, fmt); +#else + va_start(vargs); +#endif + vsnprintf(msg, 200, fmt, vargs); + va_end(vargs); + Py_FatalError(msg); +} +static CYTHON_INLINE int +__pyx_add_acquisition_count_locked(__pyx_atomic_int *acquisition_count, + PyThread_type_lock lock) +{ + int result; + PyThread_acquire_lock(lock, 1); + result = (*acquisition_count)++; + PyThread_release_lock(lock); + return result; +} +static CYTHON_INLINE int +__pyx_sub_acquisition_count_locked(__pyx_atomic_int *acquisition_count, + PyThread_type_lock lock) +{ + int result; + PyThread_acquire_lock(lock, 1); + result = (*acquisition_count)--; + PyThread_release_lock(lock); + return result; +} +static CYTHON_INLINE void +__Pyx_INC_MEMVIEW(__Pyx_memviewslice *memslice, int have_gil, int lineno) +{ + int first_time; + struct __pyx_memoryview_obj *memview = memslice->memview; + if (!memview || (PyObject *) memview == Py_None) + return; + if (__pyx_get_slice_count(memview) < 0) + __pyx_fatalerror("Acquisition count is %d (line %d)", + __pyx_get_slice_count(memview), lineno); + first_time = __pyx_add_acquisition_count(memview) == 0; + if (first_time) { + if (have_gil) { + Py_INCREF((PyObject *) memview); + } else { + PyGILState_STATE _gilstate = PyGILState_Ensure(); + Py_INCREF((PyObject *) memview); + PyGILState_Release(_gilstate); + } + } +} +static CYTHON_INLINE void __Pyx_XDEC_MEMVIEW(__Pyx_memviewslice *memslice, + int have_gil, int lineno) { + int last_time; + struct __pyx_memoryview_obj *memview = memslice->memview; + if (!memview ) { + return; + } else if ((PyObject *) memview == Py_None) { + memslice->memview = NULL; + return; + } + if (__pyx_get_slice_count(memview) <= 0) + __pyx_fatalerror("Acquisition count is %d (line %d)", + __pyx_get_slice_count(memview), lineno); + last_time = __pyx_sub_acquisition_count(memview) == 1; + memslice->data = NULL; + if (last_time) { + if (have_gil) { + Py_CLEAR(memslice->memview); + } else { + PyGILState_STATE _gilstate = PyGILState_Ensure(); + Py_CLEAR(memslice->memview); + PyGILState_Release(_gilstate); + } + } else { + memslice->memview = NULL; + } +} + +/* 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; +} + +/* PyErrFetchRestore */ +#if CYTHON_FAST_THREAD_STATE +static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { + PyObject *tmp_type, *tmp_value, *tmp_tb; + tmp_type = tstate->curexc_type; + tmp_value = tstate->curexc_value; + tmp_tb = tstate->curexc_traceback; + tstate->curexc_type = type; + tstate->curexc_value = value; + tstate->curexc_traceback = tb; + Py_XDECREF(tmp_type); + Py_XDECREF(tmp_value); + Py_XDECREF(tmp_tb); +} +static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { + *type = tstate->curexc_type; + *value = tstate->curexc_value; + *tb = tstate->curexc_traceback; + tstate->curexc_type = 0; + tstate->curexc_value = 0; + tstate->curexc_traceback = 0; +} +#endif + +/* RaiseException */ +#if PY_MAJOR_VERSION < 3 +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, + CYTHON_UNUSED PyObject *cause) { + __Pyx_PyThreadState_declare + Py_XINCREF(type); + if (!value || value == Py_None) + value = NULL; + else + Py_INCREF(value); + if (!tb || tb == Py_None) + tb = NULL; + else { + Py_INCREF(tb); + if (!PyTraceBack_Check(tb)) { + PyErr_SetString(PyExc_TypeError, + "raise: arg 3 must be a traceback or None"); + goto raise_error; + } + } + if (PyType_Check(type)) { +#if CYTHON_COMPILING_IN_PYPY + if (!value) { + Py_INCREF(Py_None); + value = Py_None; + } +#endif + PyErr_NormalizeException(&type, &value, &tb); + } else { + if (value) { + PyErr_SetString(PyExc_TypeError, + "instance exception may not have a separate value"); + goto raise_error; + } + value = type; + type = (PyObject*) Py_TYPE(type); + Py_INCREF(type); + if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { + PyErr_SetString(PyExc_TypeError, + "raise: exception class must be a subclass of BaseException"); + goto raise_error; + } + } + __Pyx_PyThreadState_assign + __Pyx_ErrRestore(type, value, tb); + return; +raise_error: + Py_XDECREF(value); + Py_XDECREF(type); + Py_XDECREF(tb); + return; +} +#else +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { + PyObject* owned_instance = NULL; + if (tb == Py_None) { + tb = 0; + } else if (tb && !PyTraceBack_Check(tb)) { + PyErr_SetString(PyExc_TypeError, + "raise: arg 3 must be a traceback or None"); + goto bad; + } + if (value == Py_None) + value = 0; + if (PyExceptionInstance_Check(type)) { + if (value) { + PyErr_SetString(PyExc_TypeError, + "instance exception may not have a separate value"); + goto bad; + } + value = type; + type = (PyObject*) Py_TYPE(value); + } else if (PyExceptionClass_Check(type)) { + PyObject *instance_class = NULL; + if (value && PyExceptionInstance_Check(value)) { + instance_class = (PyObject*) Py_TYPE(value); + if (instance_class != type) { + int is_subclass = PyObject_IsSubclass(instance_class, type); + if (!is_subclass) { + instance_class = NULL; + } else if (unlikely(is_subclass == -1)) { + goto bad; + } else { + type = instance_class; + } + } + } + if (!instance_class) { + PyObject *args; + if (!value) + args = PyTuple_New(0); + else if (PyTuple_Check(value)) { + Py_INCREF(value); + args = value; + } else + args = PyTuple_Pack(1, value); + if (!args) + goto bad; + owned_instance = PyObject_Call(type, args, NULL); + Py_DECREF(args); + if (!owned_instance) + goto bad; + value = owned_instance; + if (!PyExceptionInstance_Check(value)) { + PyErr_Format(PyExc_TypeError, + "calling %R should have returned an instance of " + "BaseException, not %R", + type, Py_TYPE(value)); + goto bad; + } + } + } else { + PyErr_SetString(PyExc_TypeError, + "raise: exception class must be a subclass of BaseException"); + goto bad; + } + if (cause) { + PyObject *fixed_cause; + if (cause == Py_None) { + fixed_cause = NULL; + } else if (PyExceptionClass_Check(cause)) { + fixed_cause = PyObject_CallObject(cause, NULL); + if (fixed_cause == NULL) + goto bad; + } else if (PyExceptionInstance_Check(cause)) { + fixed_cause = cause; + Py_INCREF(fixed_cause); + } else { + PyErr_SetString(PyExc_TypeError, + "exception causes must derive from " + "BaseException"); + goto bad; + } + PyException_SetCause(value, fixed_cause); + } + PyErr_SetObject(type, value); + if (tb) { +#if CYTHON_COMPILING_IN_PYPY + PyObject *tmp_type, *tmp_value, *tmp_tb; + PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); + Py_INCREF(tb); + PyErr_Restore(tmp_type, tmp_value, tb); + Py_XDECREF(tmp_tb); +#else + PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject* tmp_tb = tstate->curexc_traceback; + if (tb != tmp_tb) { + Py_INCREF(tb); + tstate->curexc_traceback = tb; + Py_XDECREF(tmp_tb); + } +#endif + } +bad: + Py_XDECREF(owned_instance); + return; +} +#endif + +/* PyCFunctionFastCall */ +#if CYTHON_FAST_PYCCALL +static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { + PyCFunctionObject *func = (PyCFunctionObject*)func_obj; + PyCFunction meth = PyCFunction_GET_FUNCTION(func); + PyObject *self = PyCFunction_GET_SELF(func); + int flags = PyCFunction_GET_FLAGS(func); + assert(PyCFunction_Check(func)); + assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); + assert(nargs >= 0); + assert(nargs == 0 || args != NULL); + /* _PyCFunction_FastCallDict() must not be called with an exception set, + because it may clear it (directly or indirectly) and so the + caller loses its exception */ + assert(!PyErr_Occurred()); + if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { + return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); + } else { + return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); + } +} +#endif + +/* PyFunctionFastCall */ +#if CYTHON_FAST_PYCALL +static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, + PyObject *globals) { + PyFrameObject *f; + PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject **fastlocals; + Py_ssize_t i; + PyObject *result; + assert(globals != NULL); + /* XXX Perhaps we should create a specialized + PyFrame_New() that doesn't take locals, but does + take builtins without sanity checking them. + */ + assert(tstate != NULL); + f = PyFrame_New(tstate, co, globals, NULL); + if (f == NULL) { + return NULL; + } + fastlocals = __Pyx_PyFrame_GetLocalsplus(f); + for (i = 0; i < na; i++) { + Py_INCREF(*args); + fastlocals[i] = *args++; + } + result = PyEval_EvalFrameEx(f,0); + ++tstate->recursion_depth; + Py_DECREF(f); + --tstate->recursion_depth; + return result; +} +#if 1 || PY_VERSION_HEX < 0x030600B1 +static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, 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 + +/* PyObjectCall2Args */ +static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) { + PyObject *args, *result = NULL; + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(function)) { + PyObject *args[2] = {arg1, arg2}; + return __Pyx_PyFunction_FastCall(function, args, 2); + } + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(function)) { + PyObject *args[2] = {arg1, arg2}; + return __Pyx_PyCFunction_FastCall(function, args, 2); + } + #endif + args = PyTuple_New(2); + if (unlikely(!args)) goto done; + Py_INCREF(arg1); + PyTuple_SET_ITEM(args, 0, arg1); + Py_INCREF(arg2); + PyTuple_SET_ITEM(args, 1, arg2); + Py_INCREF(function); + result = __Pyx_PyObject_Call(function, args, NULL); + Py_DECREF(args); + Py_DECREF(function); +done: + return result; +} + +/* PyObjectCallMethO */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { + PyObject *self, *result; + PyCFunction cfunc; + cfunc = PyCFunction_GET_FUNCTION(func); + self = PyCFunction_GET_SELF(func); + if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) + return NULL; + result = cfunc(self, arg); + Py_LeaveRecursiveCall(); + if (unlikely(!result) && unlikely(!PyErr_Occurred())) { + PyErr_SetString( + PyExc_SystemError, + "NULL result without error in PyObject_Call"); + } + return result; +} +#endif + +/* PyObjectCallOneArg */ +#if CYTHON_COMPILING_IN_CPYTHON +static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { + PyObject *result; + PyObject *args = PyTuple_New(1); + if (unlikely(!args)) return NULL; + Py_INCREF(arg); + PyTuple_SET_ITEM(args, 0, arg); + result = __Pyx_PyObject_Call(func, args, NULL); + Py_DECREF(args); + return result; +} +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { +#if CYTHON_FAST_PYCALL + if (PyFunction_Check(func)) { + return __Pyx_PyFunction_FastCall(func, &arg, 1); + } +#endif + if (likely(PyCFunction_Check(func))) { + if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { + return __Pyx_PyObject_CallMethO(func, arg); +#if CYTHON_FAST_PYCCALL + } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { + return __Pyx_PyCFunction_FastCall(func, &arg, 1); +#endif + } + } + return __Pyx__PyObject_CallOneArg(func, arg); +} +#else +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { + PyObject *result; + PyObject *args = PyTuple_Pack(1, arg); + if (unlikely(!args)) return NULL; + result = __Pyx_PyObject_Call(func, args, NULL); + Py_DECREF(args); + return result; +} +#endif + +/* BytesEquals */ +static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) { +#if CYTHON_COMPILING_IN_PYPY + return PyObject_RichCompareBool(s1, s2, equals); +#else + if (s1 == s2) { + return (equals == Py_EQ); + } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) { + const char *ps1, *ps2; + Py_ssize_t length = PyBytes_GET_SIZE(s1); + if (length != PyBytes_GET_SIZE(s2)) + return (equals == Py_NE); + ps1 = PyBytes_AS_STRING(s1); + ps2 = PyBytes_AS_STRING(s2); + if (ps1[0] != ps2[0]) { + return (equals == Py_NE); + } else if (length == 1) { + return (equals == Py_EQ); + } else { + int result; +#if CYTHON_USE_UNICODE_INTERNALS + Py_hash_t hash1, hash2; + hash1 = ((PyBytesObject*)s1)->ob_shash; + hash2 = ((PyBytesObject*)s2)->ob_shash; + if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { + return (equals == Py_NE); + } +#endif + result = memcmp(ps1, ps2, (size_t)length); + return (equals == Py_EQ) ? (result == 0) : (result != 0); + } + } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) { + return (equals == Py_NE); + } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) { + return (equals == Py_NE); + } else { + int result; + PyObject* py_result = PyObject_RichCompare(s1, s2, equals); + if (!py_result) + return -1; + result = __Pyx_PyObject_IsTrue(py_result); + Py_DECREF(py_result); + return result; + } +#endif +} + +/* UnicodeEquals */ +static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) { +#if CYTHON_COMPILING_IN_PYPY + return PyObject_RichCompareBool(s1, s2, equals); +#else +#if PY_MAJOR_VERSION < 3 + PyObject* owned_ref = NULL; +#endif + int s1_is_unicode, s2_is_unicode; + if (s1 == s2) { + goto return_eq; + } + s1_is_unicode = PyUnicode_CheckExact(s1); + s2_is_unicode = PyUnicode_CheckExact(s2); +#if PY_MAJOR_VERSION < 3 + if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) { + owned_ref = PyUnicode_FromObject(s2); + if (unlikely(!owned_ref)) + return -1; + s2 = owned_ref; + s2_is_unicode = 1; + } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) { + owned_ref = PyUnicode_FromObject(s1); + if (unlikely(!owned_ref)) + return -1; + s1 = owned_ref; + s1_is_unicode = 1; + } else if (((!s2_is_unicode) & (!s1_is_unicode))) { + return __Pyx_PyBytes_Equals(s1, s2, equals); + } +#endif + if (s1_is_unicode & s2_is_unicode) { + Py_ssize_t length; + int kind; + void *data1, *data2; + if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0)) + return -1; + length = __Pyx_PyUnicode_GET_LENGTH(s1); + if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) { + goto return_ne; + } +#if CYTHON_USE_UNICODE_INTERNALS + { + Py_hash_t hash1, hash2; + #if CYTHON_PEP393_ENABLED + hash1 = ((PyASCIIObject*)s1)->hash; + hash2 = ((PyASCIIObject*)s2)->hash; + #else + hash1 = ((PyUnicodeObject*)s1)->hash; + hash2 = ((PyUnicodeObject*)s2)->hash; + #endif + if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { + goto return_ne; + } + } +#endif + kind = __Pyx_PyUnicode_KIND(s1); + if (kind != __Pyx_PyUnicode_KIND(s2)) { + goto return_ne; + } + data1 = __Pyx_PyUnicode_DATA(s1); + data2 = __Pyx_PyUnicode_DATA(s2); + if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) { + goto return_ne; + } else if (length == 1) { + goto return_eq; + } else { + int result = memcmp(data1, data2, (size_t)(length * kind)); + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(owned_ref); + #endif + return (equals == Py_EQ) ? (result == 0) : (result != 0); + } + } else if ((s1 == Py_None) & s2_is_unicode) { + goto return_ne; + } else if ((s2 == Py_None) & s1_is_unicode) { + goto return_ne; + } else { + int result; + PyObject* py_result = PyObject_RichCompare(s1, s2, equals); + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(owned_ref); + #endif + if (!py_result) + return -1; + result = __Pyx_PyObject_IsTrue(py_result); + Py_DECREF(py_result); + return result; + } +return_eq: + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(owned_ref); + #endif + return (equals == Py_EQ); +return_ne: + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(owned_ref); + #endif + return (equals == Py_NE); +#endif +} + +/* None */ +static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t a, Py_ssize_t b) { + Py_ssize_t q = a / b; + Py_ssize_t r = a - q*b; + q -= ((r != 0) & ((r ^ b) < 0)); + return q; +} + +/* GetAttr */ +static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) { +#if CYTHON_USE_TYPE_SLOTS +#if PY_MAJOR_VERSION >= 3 + if (likely(PyUnicode_Check(n))) +#else + if (likely(PyString_Check(n))) +#endif + return __Pyx_PyObject_GetAttrStr(o, n); +#endif + return PyObject_GetAttr(o, n); +} + +/* GetItemInt */ +static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { + PyObject *r; + if (!j) return NULL; + r = PyObject_GetItem(o, j); + Py_DECREF(j); + return r; +} +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, + CYTHON_NCP_UNUSED int wraparound, + CYTHON_NCP_UNUSED int boundscheck) { +#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + Py_ssize_t wrapped_i = i; + if (wraparound & unlikely(i < 0)) { + wrapped_i += PyList_GET_SIZE(o); + } + if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) { + PyObject *r = PyList_GET_ITEM(o, wrapped_i); + Py_INCREF(r); + return r; + } + return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); +#else + return PySequence_GetItem(o, i); +#endif +} +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, + CYTHON_NCP_UNUSED int wraparound, + CYTHON_NCP_UNUSED int boundscheck) { +#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + Py_ssize_t wrapped_i = i; + if (wraparound & unlikely(i < 0)) { + wrapped_i += PyTuple_GET_SIZE(o); + } + if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) { + PyObject *r = PyTuple_GET_ITEM(o, wrapped_i); + Py_INCREF(r); + return r; + } + return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); +#else + return PySequence_GetItem(o, i); +#endif +} +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, + CYTHON_NCP_UNUSED int wraparound, + CYTHON_NCP_UNUSED int boundscheck) { +#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS + if (is_list || PyList_CheckExact(o)) { + Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o); + if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) { + PyObject *r = PyList_GET_ITEM(o, n); + Py_INCREF(r); + return r; + } + } + else if (PyTuple_CheckExact(o)) { + Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o); + if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) { + PyObject *r = PyTuple_GET_ITEM(o, n); + Py_INCREF(r); + return r; + } + } else { + PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; + if (likely(m && m->sq_item)) { + if (wraparound && unlikely(i < 0) && likely(m->sq_length)) { + Py_ssize_t l = m->sq_length(o); + if (likely(l >= 0)) { + i += l; + } else { + if (!PyErr_ExceptionMatches(PyExc_OverflowError)) + return NULL; + PyErr_Clear(); + } + } + return m->sq_item(o, i); + } + } +#else + if (is_list || PySequence_Check(o)) { + return PySequence_GetItem(o, i); + } +#endif + return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); +} + +/* ObjectGetItem */ +#if CYTHON_USE_TYPE_SLOTS +static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject* index) { + PyObject *runerr; + Py_ssize_t key_value; + PySequenceMethods *m = Py_TYPE(obj)->tp_as_sequence; + if (unlikely(!(m && m->sq_item))) { + PyErr_Format(PyExc_TypeError, "'%.200s' object is not subscriptable", Py_TYPE(obj)->tp_name); + return NULL; + } + key_value = __Pyx_PyIndex_AsSsize_t(index); + if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) { + return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1); + } + if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) { + PyErr_Clear(); + PyErr_Format(PyExc_IndexError, "cannot fit '%.200s' into an index-sized integer", Py_TYPE(index)->tp_name); + } + return NULL; +} +static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key) { + PyMappingMethods *m = Py_TYPE(obj)->tp_as_mapping; + if (likely(m && m->mp_subscript)) { + return m->mp_subscript(obj, key); + } + return __Pyx_PyObject_GetIndex(obj, key); +} +#endif + +/* decode_c_string */ +static CYTHON_INLINE PyObject* __Pyx_decode_c_string( + const char* cstring, Py_ssize_t start, Py_ssize_t stop, + const char* encoding, const char* errors, + PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) { + Py_ssize_t length; + if (unlikely((start < 0) | (stop < 0))) { + size_t slen = strlen(cstring); + if (unlikely(slen > (size_t) PY_SSIZE_T_MAX)) { + PyErr_SetString(PyExc_OverflowError, + "c-string too long to convert to Python"); + return NULL; + } + length = (Py_ssize_t) slen; + if (start < 0) { + start += length; + if (start < 0) + start = 0; + } + if (stop < 0) + stop += length; + } + length = stop - start; + if (unlikely(length <= 0)) + return PyUnicode_FromUnicode(NULL, 0); + cstring += start; + if (decode_func) { + return decode_func(cstring, length, errors); + } else { + return PyUnicode_Decode(cstring, length, encoding, errors); + } +} + +/* 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 + +/* GetAttr3 */ +static PyObject *__Pyx_GetAttr3Default(PyObject *d) { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) + return NULL; + __Pyx_PyErr_Clear(); + Py_INCREF(d); + return d; +} +static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) { + PyObject *r = __Pyx_GetAttr(o, n); + return (likely(r)) ? r : __Pyx_GetAttr3Default(d); +} + +/* 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; +} + +/* GetTopmostException */ +#if CYTHON_USE_EXC_INFO_STACK +static _PyErr_StackItem * +__Pyx_PyErr_GetTopmostException(PyThreadState *tstate) +{ + _PyErr_StackItem *exc_info = tstate->exc_info; + while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) && + exc_info->previous_item != NULL) + { + exc_info = exc_info->previous_item; + } + return exc_info; +} +#endif + +/* SaveResetException */ +#if CYTHON_FAST_THREAD_STATE +static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { + #if CYTHON_USE_EXC_INFO_STACK + _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate); + *type = exc_info->exc_type; + *value = exc_info->exc_value; + *tb = exc_info->exc_traceback; + #else + *type = tstate->exc_type; + *value = tstate->exc_value; + *tb = tstate->exc_traceback; + #endif + Py_XINCREF(*type); + Py_XINCREF(*value); + Py_XINCREF(*tb); +} +static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { + PyObject *tmp_type, *tmp_value, *tmp_tb; + #if CYTHON_USE_EXC_INFO_STACK + _PyErr_StackItem *exc_info = tstate->exc_info; + tmp_type = exc_info->exc_type; + tmp_value = exc_info->exc_value; + tmp_tb = exc_info->exc_traceback; + exc_info->exc_type = type; + exc_info->exc_value = value; + exc_info->exc_traceback = tb; + #else + tmp_type = tstate->exc_type; + tmp_value = tstate->exc_value; + tmp_tb = tstate->exc_traceback; + tstate->exc_type = type; + tstate->exc_value = value; + tstate->exc_traceback = tb; + #endif + Py_XDECREF(tmp_type); + Py_XDECREF(tmp_value); + Py_XDECREF(tmp_tb); +} +#endif + +/* GetException */ +#if CYTHON_FAST_THREAD_STATE +static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) +#else +static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) +#endif +{ + PyObject *local_type, *local_value, *local_tb; +#if CYTHON_FAST_THREAD_STATE + PyObject *tmp_type, *tmp_value, *tmp_tb; + local_type = tstate->curexc_type; + local_value = tstate->curexc_value; + local_tb = tstate->curexc_traceback; + tstate->curexc_type = 0; + tstate->curexc_value = 0; + tstate->curexc_traceback = 0; +#else + PyErr_Fetch(&local_type, &local_value, &local_tb); +#endif + PyErr_NormalizeException(&local_type, &local_value, &local_tb); +#if CYTHON_FAST_THREAD_STATE + if (unlikely(tstate->curexc_type)) +#else + if (unlikely(PyErr_Occurred())) +#endif + goto bad; + #if PY_MAJOR_VERSION >= 3 + if (local_tb) { + if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0)) + goto bad; + } + #endif + Py_XINCREF(local_tb); + Py_XINCREF(local_type); + Py_XINCREF(local_value); + *type = local_type; + *value = local_value; + *tb = local_tb; +#if CYTHON_FAST_THREAD_STATE + #if CYTHON_USE_EXC_INFO_STACK + { + _PyErr_StackItem *exc_info = tstate->exc_info; + tmp_type = exc_info->exc_type; + tmp_value = exc_info->exc_value; + tmp_tb = exc_info->exc_traceback; + exc_info->exc_type = local_type; + exc_info->exc_value = local_value; + exc_info->exc_traceback = local_tb; + } + #else + tmp_type = tstate->exc_type; + tmp_value = tstate->exc_value; + tmp_tb = tstate->exc_traceback; + tstate->exc_type = local_type; + tstate->exc_value = local_value; + tstate->exc_traceback = local_tb; + #endif + Py_XDECREF(tmp_type); + Py_XDECREF(tmp_value); + Py_XDECREF(tmp_tb); +#else + PyErr_SetExcInfo(local_type, local_value, local_tb); +#endif + return 0; +bad: + *type = 0; + *value = 0; + *tb = 0; + Py_XDECREF(local_type); + Py_XDECREF(local_value); + Py_XDECREF(local_tb); + return -1; +} + +/* SwapException */ +#if CYTHON_FAST_THREAD_STATE +static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { + PyObject *tmp_type, *tmp_value, *tmp_tb; + #if CYTHON_USE_EXC_INFO_STACK + _PyErr_StackItem *exc_info = tstate->exc_info; + tmp_type = exc_info->exc_type; + tmp_value = exc_info->exc_value; + tmp_tb = exc_info->exc_traceback; + exc_info->exc_type = *type; + exc_info->exc_value = *value; + exc_info->exc_traceback = *tb; + #else + tmp_type = tstate->exc_type; + tmp_value = tstate->exc_value; + tmp_tb = tstate->exc_traceback; + tstate->exc_type = *type; + tstate->exc_value = *value; + tstate->exc_traceback = *tb; + #endif + *type = tmp_type; + *value = tmp_value; + *tb = tmp_tb; +} +#else +static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) { + PyObject *tmp_type, *tmp_value, *tmp_tb; + PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb); + PyErr_SetExcInfo(*type, *value, *tb); + *type = tmp_type; + *value = tmp_value; + *tb = tmp_tb; +} +#endif + +/* Import */ +static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { + PyObject *empty_list = 0; + PyObject *module = 0; + PyObject *global_dict = 0; + PyObject *empty_dict = 0; + PyObject *list; + #if PY_MAJOR_VERSION < 3 + PyObject *py_import; + py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import); + if (!py_import) + goto bad; + #endif + if (from_list) + list = from_list; + else { + empty_list = PyList_New(0); + if (!empty_list) + goto bad; + list = empty_list; + } + global_dict = PyModule_GetDict(__pyx_m); + if (!global_dict) + goto bad; + empty_dict = PyDict_New(); + if (!empty_dict) + goto bad; + { + #if PY_MAJOR_VERSION >= 3 + if (level == -1) { + if (strchr(__Pyx_MODULE_NAME, '.')) { + module = PyImport_ImportModuleLevelObject( + name, global_dict, empty_dict, list, 1); + if (!module) { + if (!PyErr_ExceptionMatches(PyExc_ImportError)) + goto bad; + PyErr_Clear(); + } + } + level = 0; + } + #endif + if (!module) { + #if PY_MAJOR_VERSION < 3 + PyObject *py_level = PyInt_FromLong(level); + if (!py_level) + goto bad; + module = PyObject_CallFunctionObjArgs(py_import, + name, global_dict, empty_dict, list, py_level, (PyObject *)NULL); + Py_DECREF(py_level); + #else + module = PyImport_ImportModuleLevelObject( + name, global_dict, empty_dict, list, level); + #endif + } + } +bad: + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(py_import); + #endif + Py_XDECREF(empty_list); + Py_XDECREF(empty_dict); + return module; +} + +/* FastTypeChecks */ +#if CYTHON_COMPILING_IN_CPYTHON +static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { + while (a) { + a = a->tp_base; + if (a == b) + return 1; + } + return b == &PyBaseObject_Type; +} +static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) { + PyObject *mro; + if (a == b) return 1; + mro = a->tp_mro; + if (likely(mro)) { + Py_ssize_t i, n; + n = PyTuple_GET_SIZE(mro); + for (i = 0; i < n; i++) { + if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b) + return 1; + } + return 0; + } + return __Pyx_InBases(a, b); +} +#if PY_MAJOR_VERSION == 2 +static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) { + PyObject *exception, *value, *tb; + int res; + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ErrFetch(&exception, &value, &tb); + res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0; + if (unlikely(res == -1)) { + PyErr_WriteUnraisable(err); + res = 0; + } + if (!res) { + res = PyObject_IsSubclass(err, exc_type2); + if (unlikely(res == -1)) { + PyErr_WriteUnraisable(err); + res = 0; + } + } + __Pyx_ErrRestore(exception, value, tb); + return res; +} +#else +static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { + int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0; + if (!res) { + res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); + } + return res; +} +#endif +static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { + Py_ssize_t i, n; + assert(PyExceptionClass_Check(exc_type)); + n = PyTuple_GET_SIZE(tuple); +#if PY_MAJOR_VERSION >= 3 + for (i=0; i= 0 || (x^b) >= 0)) + return PyInt_FromLong(x); + return PyLong_Type.tp_as_number->nb_add(op1, op2); + } + #endif + #if CYTHON_USE_PYLONG_INTERNALS + if (likely(PyLong_CheckExact(op1))) { + const long b = intval; + long a, x; +#ifdef HAVE_LONG_LONG + const PY_LONG_LONG llb = intval; + PY_LONG_LONG lla, llx; +#endif + const digit* digits = ((PyLongObject*)op1)->ob_digit; + const Py_ssize_t size = Py_SIZE(op1); + if (likely(__Pyx_sst_abs(size) <= 1)) { + a = likely(size) ? digits[0] : 0; + if (size == -1) a = -a; + } else { + switch (size) { + case -2: + if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { + lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +#endif + } + CYTHON_FALLTHROUGH; + case 2: + if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { + lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +#endif + } + CYTHON_FALLTHROUGH; + case -3: + if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { + lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +#endif + } + CYTHON_FALLTHROUGH; + case 3: + if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { + lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +#endif + } + CYTHON_FALLTHROUGH; + case -4: + if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { + lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +#endif + } + CYTHON_FALLTHROUGH; + case 4: + if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { + lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +#endif + } + CYTHON_FALLTHROUGH; + default: return PyLong_Type.tp_as_number->nb_add(op1, op2); + } + } + x = a + b; + return PyLong_FromLong(x); +#ifdef HAVE_LONG_LONG + long_long: + llx = lla + llb; + return PyLong_FromLongLong(llx); +#endif + + + } + #endif + if (PyFloat_CheckExact(op1)) { + const long b = intval; + double a = PyFloat_AS_DOUBLE(op1); + double result; + PyFPE_START_PROTECT("add", return NULL) + result = ((double)a) + (double)b; + PyFPE_END_PROTECT(result) + return PyFloat_FromDouble(result); + } + return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2); +} +#endif + +/* None */ +static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) { + PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname); +} + +/* None */ +static CYTHON_INLINE long __Pyx_div_long(long a, long b) { + long q = a / b; + long r = a - q*b; + q -= ((r != 0) & ((r ^ b) < 0)); + return q; +} + +/* WriteUnraisableException */ +static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno, + CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename, + int full_traceback, CYTHON_UNUSED int nogil) { + PyObject *old_exc, *old_val, *old_tb; + PyObject *ctx; + __Pyx_PyThreadState_declare +#ifdef WITH_THREAD + PyGILState_STATE state; + if (nogil) + state = PyGILState_Ensure(); +#ifdef _MSC_VER + else state = (PyGILState_STATE)-1; +#endif +#endif + __Pyx_PyThreadState_assign + __Pyx_ErrFetch(&old_exc, &old_val, &old_tb); + if (full_traceback) { + Py_XINCREF(old_exc); + Py_XINCREF(old_val); + Py_XINCREF(old_tb); + __Pyx_ErrRestore(old_exc, old_val, old_tb); + PyErr_PrintEx(1); + } + #if PY_MAJOR_VERSION < 3 + ctx = PyString_FromString(name); + #else + ctx = PyUnicode_FromString(name); + #endif + __Pyx_ErrRestore(old_exc, old_val, old_tb); + if (!ctx) { + PyErr_WriteUnraisable(Py_None); + } else { + PyErr_WriteUnraisable(ctx); + Py_DECREF(ctx); + } +#ifdef WITH_THREAD + if (nogil) + PyGILState_Release(state); +#endif +} + +/* ImportFrom */ +static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { + PyObject* value = __Pyx_PyObject_GetAttrStr(module, name); + if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) { + PyErr_Format(PyExc_ImportError, + #if PY_MAJOR_VERSION < 3 + "cannot import name %.230s", PyString_AS_STRING(name)); + #else + "cannot import name %S", name); + #endif + } + return value; +} + +/* HasAttr */ +static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) { + PyObject *r; + if (unlikely(!__Pyx_PyBaseString_Check(n))) { + PyErr_SetString(PyExc_TypeError, + "hasattr(): attribute name must be string"); + return -1; + } + r = __Pyx_GetAttr(o, n); + if (unlikely(!r)) { + PyErr_Clear(); + return 0; + } else { + Py_DECREF(r); + return 1; + } +} + +/* PyObject_GenericGetAttrNoDict */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) { + PyErr_Format(PyExc_AttributeError, +#if PY_MAJOR_VERSION >= 3 + "'%.50s' object has no attribute '%U'", + tp->tp_name, attr_name); +#else + "'%.50s' object has no attribute '%.400s'", + tp->tp_name, PyString_AS_STRING(attr_name)); +#endif + return NULL; +} +static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) { + PyObject *descr; + PyTypeObject *tp = Py_TYPE(obj); + if (unlikely(!PyString_Check(attr_name))) { + return PyObject_GenericGetAttr(obj, attr_name); + } + assert(!tp->tp_dictoffset); + descr = _PyType_Lookup(tp, attr_name); + if (unlikely(!descr)) { + return __Pyx_RaiseGenericGetAttributeError(tp, attr_name); + } + Py_INCREF(descr); + #if PY_MAJOR_VERSION < 3 + if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS))) + #endif + { + descrgetfunc f = Py_TYPE(descr)->tp_descr_get; + if (unlikely(f)) { + PyObject *res = f(descr, obj, (PyObject *)tp); + Py_DECREF(descr); + return res; + } + } + return descr; +} +#endif + +/* PyObject_GenericGetAttr */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) { + if (unlikely(Py_TYPE(obj)->tp_dictoffset)) { + return PyObject_GenericGetAttr(obj, attr_name); + } + return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name); +} +#endif + +/* SetVTable */ +static int __Pyx_SetVtable(PyObject *dict, void *vtable) { +#if PY_VERSION_HEX >= 0x02070000 + PyObject *ob = PyCapsule_New(vtable, 0, 0); +#else + PyObject *ob = PyCObject_FromVoidPtr(vtable, 0); +#endif + if (!ob) + goto bad; + if (PyDict_SetItem(dict, __pyx_n_s_pyx_vtable, ob) < 0) + goto bad; + Py_DECREF(ob); + return 0; +bad: + Py_XDECREF(ob); + return -1; +} + +/* SetupReduce */ +static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { + int ret; + PyObject *name_attr; + name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name_2); + if (likely(name_attr)) { + ret = PyObject_RichCompareBool(name_attr, name, Py_EQ); + } else { + ret = -1; + } + if (unlikely(ret < 0)) { + PyErr_Clear(); + ret = 0; + } + Py_XDECREF(name_attr); + return ret; +} +static int __Pyx_setup_reduce(PyObject* type_obj) { + int ret = 0; + PyObject *object_reduce = NULL; + PyObject *object_reduce_ex = NULL; + PyObject *reduce = NULL; + PyObject *reduce_ex = NULL; + PyObject *reduce_cython = NULL; + PyObject *setstate = NULL; + PyObject *setstate_cython = NULL; +#if CYTHON_USE_PYTYPE_LOOKUP + if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; +#else + if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; +#endif +#if CYTHON_USE_PYTYPE_LOOKUP + object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; +#else + object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; +#endif + reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; + if (reduce_ex == object_reduce_ex) { +#if CYTHON_USE_PYTYPE_LOOKUP + object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; +#else + object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; +#endif + reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; + if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { + reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; + ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; + ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; + setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); + if (!setstate) PyErr_Clear(); + if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { + setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; + ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; + ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; + } + PyType_Modified((PyTypeObject*)type_obj); + } + } + goto GOOD; +BAD: + if (!PyErr_Occurred()) + PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); + ret = -1; +GOOD: +#if !CYTHON_USE_PYTYPE_LOOKUP + Py_XDECREF(object_reduce); + Py_XDECREF(object_reduce_ex); +#endif + Py_XDECREF(reduce); + Py_XDECREF(reduce_ex); + Py_XDECREF(reduce_cython); + Py_XDECREF(setstate); + Py_XDECREF(setstate_cython); + return ret; +} + +/* CLineInTraceback */ +#ifndef CYTHON_CLINE_IN_TRACEBACK +static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { + PyObject *use_cline; + PyObject *ptype, *pvalue, *ptraceback; +#if CYTHON_COMPILING_IN_CPYTHON + PyObject **cython_runtime_dict; +#endif + if (unlikely(!__pyx_cython_runtime)) { + return c_line; + } + __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); +#if CYTHON_COMPILING_IN_CPYTHON + cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime); + if (likely(cython_runtime_dict)) { + __PYX_PY_DICT_LOOKUP_IF_MODIFIED( + use_cline, *cython_runtime_dict, + __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback)) + } else +#endif + { + PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback); + if (use_cline_obj) { + use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True; + Py_DECREF(use_cline_obj); + } else { + PyErr_Clear(); + use_cline = NULL; + } + } + if (!use_cline) { + c_line = 0; + PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); + } + else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { + c_line = 0; + } + __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); + return c_line; +} +#endif + +/* CodeObjectCache */ +static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { + int start = 0, mid = 0, end = count - 1; + if (end >= 0 && code_line > entries[end].code_line) { + return count; + } + while (start < end) { + mid = start + (end - start) / 2; + if (code_line < entries[mid].code_line) { + end = mid; + } else if (code_line > entries[mid].code_line) { + start = mid + 1; + } else { + return mid; + } + } + if (code_line <= entries[mid].code_line) { + return mid; + } else { + return mid + 1; + } +} +static PyCodeObject *__pyx_find_code_object(int code_line) { + PyCodeObject* code_object; + int pos; + if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { + return NULL; + } + pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); + if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { + return NULL; + } + code_object = __pyx_code_cache.entries[pos].code_object; + Py_INCREF(code_object); + return code_object; +} +static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { + int pos, i; + __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; + if (unlikely(!code_line)) { + return; + } + if (unlikely(!entries)) { + entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); + if (likely(entries)) { + __pyx_code_cache.entries = entries; + __pyx_code_cache.max_count = 64; + __pyx_code_cache.count = 1; + entries[0].code_line = code_line; + entries[0].code_object = code_object; + Py_INCREF(code_object); + } + return; + } + pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); + if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { + PyCodeObject* tmp = entries[pos].code_object; + entries[pos].code_object = code_object; + Py_DECREF(tmp); + return; + } + if (__pyx_code_cache.count == __pyx_code_cache.max_count) { + int new_max = __pyx_code_cache.max_count + 64; + entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( + __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); + if (unlikely(!entries)) { + return; + } + __pyx_code_cache.entries = entries; + __pyx_code_cache.max_count = new_max; + } + for (i=__pyx_code_cache.count; i>pos; i--) { + entries[i] = entries[i-1]; + } + entries[pos].code_line = code_line; + entries[pos].code_object = code_object; + __pyx_code_cache.count++; + Py_INCREF(code_object); +} + +/* AddTraceback */ +#include "compile.h" +#include "frameobject.h" +#include "traceback.h" +static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( + const char *funcname, int c_line, + int py_line, const char *filename) { + PyCodeObject *py_code = 0; + PyObject *py_srcfile = 0; + PyObject *py_funcname = 0; + #if PY_MAJOR_VERSION < 3 + py_srcfile = PyString_FromString(filename); + #else + py_srcfile = PyUnicode_FromString(filename); + #endif + if (!py_srcfile) goto bad; + if (c_line) { + #if PY_MAJOR_VERSION < 3 + py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + #else + py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + #endif + } + else { + #if PY_MAJOR_VERSION < 3 + py_funcname = PyString_FromString(funcname); + #else + py_funcname = PyUnicode_FromString(funcname); + #endif + } + if (!py_funcname) goto bad; + py_code = __Pyx_PyCode_New( + 0, + 0, + 0, + 0, + 0, + __pyx_empty_bytes, /*PyObject *code,*/ + __pyx_empty_tuple, /*PyObject *consts,*/ + __pyx_empty_tuple, /*PyObject *names,*/ + __pyx_empty_tuple, /*PyObject *varnames,*/ + __pyx_empty_tuple, /*PyObject *freevars,*/ + __pyx_empty_tuple, /*PyObject *cellvars,*/ + py_srcfile, /*PyObject *filename,*/ + py_funcname, /*PyObject *name,*/ + py_line, + __pyx_empty_bytes /*PyObject *lnotab*/ + ); + Py_DECREF(py_srcfile); + Py_DECREF(py_funcname); + return py_code; +bad: + Py_XDECREF(py_srcfile); + Py_XDECREF(py_funcname); + return NULL; +} +static void __Pyx_AddTraceback(const char *funcname, int c_line, + int py_line, const char *filename) { + PyCodeObject *py_code = 0; + PyFrameObject *py_frame = 0; + PyThreadState *tstate = __Pyx_PyThreadState_Current; + if (c_line) { + c_line = __Pyx_CLineForTraceback(tstate, c_line); + } + py_code = __pyx_find_code_object(c_line ? -c_line : py_line); + if (!py_code) { + py_code = __Pyx_CreateCodeObjectForTraceback( + funcname, c_line, py_line, filename); + if (!py_code) goto bad; + __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); + } + py_frame = PyFrame_New( + tstate, /*PyThreadState *tstate,*/ + py_code, /*PyCodeObject *code,*/ + __pyx_d, /*PyObject *globals,*/ + 0 /*PyObject *locals*/ + ); + if (!py_frame) goto bad; + __Pyx_PyFrame_SetLineNumber(py_frame, py_line); + PyTraceBack_Here(py_frame); +bad: + Py_XDECREF(py_code); + Py_XDECREF(py_frame); +} + +#if PY_MAJOR_VERSION < 3 +static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) { + if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags); + if (__Pyx_TypeCheck(obj, __pyx_array_type)) return __pyx_array_getbuffer(obj, view, flags); + if (__Pyx_TypeCheck(obj, __pyx_memoryview_type)) return __pyx_memoryview_getbuffer(obj, view, flags); + PyErr_Format(PyExc_TypeError, "'%.200s' does not have the buffer interface", Py_TYPE(obj)->tp_name); + return -1; +} +static void __Pyx_ReleaseBuffer(Py_buffer *view) { + PyObject *obj = view->obj; + if (!obj) return; + if (PyObject_CheckBuffer(obj)) { + PyBuffer_Release(view); + return; + } + if ((0)) {} + view->obj = NULL; + Py_DECREF(obj); +} +#endif + + +/* MemviewSliceIsContig */ +static int +__pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim) +{ + int i, index, step, start; + Py_ssize_t itemsize = mvs.memview->view.itemsize; + if (order == 'F') { + step = 1; + start = 0; + } else { + step = -1; + start = ndim - 1; + } + for (i = 0; i < ndim; i++) { + index = start + step * i; + if (mvs.suboffsets[index] >= 0 || mvs.strides[index] != itemsize) + return 0; + itemsize *= mvs.shape[index]; + } + return 1; +} + +/* OverlappingSlices */ +static void +__pyx_get_array_memory_extents(__Pyx_memviewslice *slice, + void **out_start, void **out_end, + int ndim, size_t itemsize) +{ + char *start, *end; + int i; + start = end = slice->data; + for (i = 0; i < ndim; i++) { + Py_ssize_t stride = slice->strides[i]; + Py_ssize_t extent = slice->shape[i]; + if (extent == 0) { + *out_start = *out_end = start; + return; + } else { + if (stride > 0) + end += stride * (extent - 1); + else + start += stride * (extent - 1); + } + } + *out_start = start; + *out_end = end + itemsize; +} +static int +__pyx_slices_overlap(__Pyx_memviewslice *slice1, + __Pyx_memviewslice *slice2, + int ndim, size_t itemsize) +{ + void *start1, *end1, *start2, *end2; + __pyx_get_array_memory_extents(slice1, &start1, &end1, ndim, itemsize); + __pyx_get_array_memory_extents(slice2, &start2, &end2, ndim, itemsize); + return (start1 < end2) && (start2 < end1); +} + +/* Capsule */ +static CYTHON_INLINE PyObject * +__pyx_capsule_create(void *p, CYTHON_UNUSED const char *sig) +{ + PyObject *cobj; +#if PY_VERSION_HEX >= 0x02070000 + cobj = PyCapsule_New(p, sig, NULL); +#else + cobj = PyCObject_FromVoidPtr(p, NULL); +#endif + return cobj; +} + +/* IsLittleEndian */ +static CYTHON_INLINE int __Pyx_Is_Little_Endian(void) +{ + union { + uint32_t u32; + uint8_t u8[4]; + } S; + S.u32 = 0x01020304; + return S.u8[0] == 4; +} + +/* BufferFormatCheck */ +static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, + __Pyx_BufFmt_StackElem* stack, + __Pyx_TypeInfo* type) { + stack[0].field = &ctx->root; + stack[0].parent_offset = 0; + ctx->root.type = type; + ctx->root.name = "buffer dtype"; + ctx->root.offset = 0; + ctx->head = stack; + ctx->head->field = &ctx->root; + ctx->fmt_offset = 0; + ctx->head->parent_offset = 0; + ctx->new_packmode = '@'; + ctx->enc_packmode = '@'; + ctx->new_count = 1; + ctx->enc_count = 0; + ctx->enc_type = 0; + ctx->is_complex = 0; + ctx->is_valid_array = 0; + ctx->struct_alignment = 0; + while (type->typegroup == 'S') { + ++ctx->head; + ctx->head->field = type->fields; + ctx->head->parent_offset = 0; + type = type->fields->type; + } +} +static int __Pyx_BufFmt_ParseNumber(const char** ts) { + int count; + const char* t = *ts; + if (*t < '0' || *t > '9') { + return -1; + } else { + count = *t++ - '0'; + while (*t >= '0' && *t < '9') { + count *= 10; + count += *t++ - '0'; + } + } + *ts = t; + return count; +} +static int __Pyx_BufFmt_ExpectNumber(const char **ts) { + int number = __Pyx_BufFmt_ParseNumber(ts); + if (number == -1) + PyErr_Format(PyExc_ValueError,\ + "Does not understand character buffer dtype format string ('%c')", **ts); + return number; +} +static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) { + PyErr_Format(PyExc_ValueError, + "Unexpected format string character: '%c'", ch); +} +static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) { + switch (ch) { + case 'c': return "'char'"; + case 'b': return "'signed char'"; + case 'B': return "'unsigned char'"; + case 'h': return "'short'"; + case 'H': return "'unsigned short'"; + case 'i': return "'int'"; + case 'I': return "'unsigned int'"; + case 'l': return "'long'"; + case 'L': return "'unsigned long'"; + case 'q': return "'long long'"; + case 'Q': return "'unsigned long long'"; + case 'f': return (is_complex ? "'complex float'" : "'float'"); + case 'd': return (is_complex ? "'complex double'" : "'double'"); + case 'g': return (is_complex ? "'complex long double'" : "'long double'"); + case 'T': return "a struct"; + case 'O': return "Python object"; + case 'P': return "a pointer"; + case 's': case 'p': return "a string"; + case 0: return "end"; + default: return "unparseable format string"; + } +} +static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) { + switch (ch) { + case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; + case 'h': case 'H': return 2; + case 'i': case 'I': case 'l': case 'L': return 4; + case 'q': case 'Q': return 8; + case 'f': return (is_complex ? 8 : 4); + case 'd': return (is_complex ? 16 : 8); + case 'g': { + PyErr_SetString(PyExc_ValueError, "Python does not define a standard format string size for long double ('g').."); + return 0; + } + case 'O': case 'P': return sizeof(void*); + default: + __Pyx_BufFmt_RaiseUnexpectedChar(ch); + return 0; + } +} +static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) { + switch (ch) { + case 'c': case 'b': case 'B': case 's': case 'p': return 1; + case 'h': case 'H': return sizeof(short); + case 'i': case 'I': return sizeof(int); + case 'l': case 'L': return sizeof(long); + #ifdef HAVE_LONG_LONG + case 'q': case 'Q': return sizeof(PY_LONG_LONG); + #endif + case 'f': return sizeof(float) * (is_complex ? 2 : 1); + case 'd': return sizeof(double) * (is_complex ? 2 : 1); + case 'g': return sizeof(long double) * (is_complex ? 2 : 1); + case 'O': case 'P': return sizeof(void*); + default: { + __Pyx_BufFmt_RaiseUnexpectedChar(ch); + return 0; + } + } +} +typedef struct { char c; short x; } __Pyx_st_short; +typedef struct { char c; int x; } __Pyx_st_int; +typedef struct { char c; long x; } __Pyx_st_long; +typedef struct { char c; float x; } __Pyx_st_float; +typedef struct { char c; double x; } __Pyx_st_double; +typedef struct { char c; long double x; } __Pyx_st_longdouble; +typedef struct { char c; void *x; } __Pyx_st_void_p; +#ifdef HAVE_LONG_LONG +typedef struct { char c; PY_LONG_LONG x; } __Pyx_st_longlong; +#endif +static size_t __Pyx_BufFmt_TypeCharToAlignment(char ch, CYTHON_UNUSED int is_complex) { + switch (ch) { + case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; + case 'h': case 'H': return sizeof(__Pyx_st_short) - sizeof(short); + case 'i': case 'I': return sizeof(__Pyx_st_int) - sizeof(int); + case 'l': case 'L': return sizeof(__Pyx_st_long) - sizeof(long); +#ifdef HAVE_LONG_LONG + case 'q': case 'Q': return sizeof(__Pyx_st_longlong) - sizeof(PY_LONG_LONG); +#endif + case 'f': return sizeof(__Pyx_st_float) - sizeof(float); + case 'd': return sizeof(__Pyx_st_double) - sizeof(double); + case 'g': return sizeof(__Pyx_st_longdouble) - sizeof(long double); + case 'P': case 'O': return sizeof(__Pyx_st_void_p) - sizeof(void*); + default: + __Pyx_BufFmt_RaiseUnexpectedChar(ch); + return 0; + } +} +/* These are for computing the padding at the end of the struct to align + on the first member of the struct. This will probably the same as above, + but we don't have any guarantees. + */ +typedef struct { short x; char c; } __Pyx_pad_short; +typedef struct { int x; char c; } __Pyx_pad_int; +typedef struct { long x; char c; } __Pyx_pad_long; +typedef struct { float x; char c; } __Pyx_pad_float; +typedef struct { double x; char c; } __Pyx_pad_double; +typedef struct { long double x; char c; } __Pyx_pad_longdouble; +typedef struct { void *x; char c; } __Pyx_pad_void_p; +#ifdef HAVE_LONG_LONG +typedef struct { PY_LONG_LONG x; char c; } __Pyx_pad_longlong; +#endif +static size_t __Pyx_BufFmt_TypeCharToPadding(char ch, CYTHON_UNUSED int is_complex) { + switch (ch) { + case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; + case 'h': case 'H': return sizeof(__Pyx_pad_short) - sizeof(short); + case 'i': case 'I': return sizeof(__Pyx_pad_int) - sizeof(int); + case 'l': case 'L': return sizeof(__Pyx_pad_long) - sizeof(long); +#ifdef HAVE_LONG_LONG + case 'q': case 'Q': return sizeof(__Pyx_pad_longlong) - sizeof(PY_LONG_LONG); +#endif + case 'f': return sizeof(__Pyx_pad_float) - sizeof(float); + case 'd': return sizeof(__Pyx_pad_double) - sizeof(double); + case 'g': return sizeof(__Pyx_pad_longdouble) - sizeof(long double); + case 'P': case 'O': return sizeof(__Pyx_pad_void_p) - sizeof(void*); + default: + __Pyx_BufFmt_RaiseUnexpectedChar(ch); + return 0; + } +} +static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) { + switch (ch) { + case 'c': + return 'H'; + case 'b': case 'h': case 'i': + case 'l': case 'q': case 's': case 'p': + return 'I'; + case 'B': case 'H': case 'I': case 'L': case 'Q': + return 'U'; + case 'f': case 'd': case 'g': + return (is_complex ? 'C' : 'R'); + case 'O': + return 'O'; + case 'P': + return 'P'; + default: { + __Pyx_BufFmt_RaiseUnexpectedChar(ch); + return 0; + } + } +} +static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) { + if (ctx->head == NULL || ctx->head->field == &ctx->root) { + const char* expected; + const char* quote; + if (ctx->head == NULL) { + expected = "end"; + quote = ""; + } else { + expected = ctx->head->field->type->name; + quote = "'"; + } + PyErr_Format(PyExc_ValueError, + "Buffer dtype mismatch, expected %s%s%s but got %s", + quote, expected, quote, + __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex)); + } else { + __Pyx_StructField* field = ctx->head->field; + __Pyx_StructField* parent = (ctx->head - 1)->field; + PyErr_Format(PyExc_ValueError, + "Buffer dtype mismatch, expected '%s' but got %s in '%s.%s'", + field->type->name, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex), + parent->type->name, field->name); + } +} +static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) { + char group; + size_t size, offset, arraysize = 1; + if (ctx->enc_type == 0) return 0; + if (ctx->head->field->type->arraysize[0]) { + int i, ndim = 0; + if (ctx->enc_type == 's' || ctx->enc_type == 'p') { + ctx->is_valid_array = ctx->head->field->type->ndim == 1; + ndim = 1; + if (ctx->enc_count != ctx->head->field->type->arraysize[0]) { + PyErr_Format(PyExc_ValueError, + "Expected a dimension of size %zu, got %zu", + ctx->head->field->type->arraysize[0], ctx->enc_count); + return -1; + } + } + if (!ctx->is_valid_array) { + PyErr_Format(PyExc_ValueError, "Expected %d dimensions, got %d", + ctx->head->field->type->ndim, ndim); + return -1; + } + for (i = 0; i < ctx->head->field->type->ndim; i++) { + arraysize *= ctx->head->field->type->arraysize[i]; + } + ctx->is_valid_array = 0; + ctx->enc_count = 1; + } + group = __Pyx_BufFmt_TypeCharToGroup(ctx->enc_type, ctx->is_complex); + do { + __Pyx_StructField* field = ctx->head->field; + __Pyx_TypeInfo* type = field->type; + if (ctx->enc_packmode == '@' || ctx->enc_packmode == '^') { + size = __Pyx_BufFmt_TypeCharToNativeSize(ctx->enc_type, ctx->is_complex); + } else { + size = __Pyx_BufFmt_TypeCharToStandardSize(ctx->enc_type, ctx->is_complex); + } + if (ctx->enc_packmode == '@') { + size_t align_at = __Pyx_BufFmt_TypeCharToAlignment(ctx->enc_type, ctx->is_complex); + size_t align_mod_offset; + if (align_at == 0) return -1; + align_mod_offset = ctx->fmt_offset % align_at; + if (align_mod_offset > 0) ctx->fmt_offset += align_at - align_mod_offset; + if (ctx->struct_alignment == 0) + ctx->struct_alignment = __Pyx_BufFmt_TypeCharToPadding(ctx->enc_type, + ctx->is_complex); + } + if (type->size != size || type->typegroup != group) { + if (type->typegroup == 'C' && type->fields != NULL) { + size_t parent_offset = ctx->head->parent_offset + field->offset; + ++ctx->head; + ctx->head->field = type->fields; + ctx->head->parent_offset = parent_offset; + continue; + } + if ((type->typegroup == 'H' || group == 'H') && type->size == size) { + } else { + __Pyx_BufFmt_RaiseExpected(ctx); + return -1; + } + } + offset = ctx->head->parent_offset + field->offset; + if (ctx->fmt_offset != offset) { + PyErr_Format(PyExc_ValueError, + "Buffer dtype mismatch; next field is at offset %" CYTHON_FORMAT_SSIZE_T "d but %" CYTHON_FORMAT_SSIZE_T "d expected", + (Py_ssize_t)ctx->fmt_offset, (Py_ssize_t)offset); + return -1; + } + ctx->fmt_offset += size; + if (arraysize) + ctx->fmt_offset += (arraysize - 1) * size; + --ctx->enc_count; + while (1) { + if (field == &ctx->root) { + ctx->head = NULL; + if (ctx->enc_count != 0) { + __Pyx_BufFmt_RaiseExpected(ctx); + return -1; + } + break; + } + ctx->head->field = ++field; + if (field->type == NULL) { + --ctx->head; + field = ctx->head->field; + continue; + } else if (field->type->typegroup == 'S') { + size_t parent_offset = ctx->head->parent_offset + field->offset; + if (field->type->fields->type == NULL) continue; + field = field->type->fields; + ++ctx->head; + ctx->head->field = field; + ctx->head->parent_offset = parent_offset; + break; + } else { + break; + } + } + } while (ctx->enc_count); + ctx->enc_type = 0; + ctx->is_complex = 0; + return 0; +} +static PyObject * +__pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp) +{ + const char *ts = *tsp; + int i = 0, number; + int ndim = ctx->head->field->type->ndim; +; + ++ts; + if (ctx->new_count != 1) { + PyErr_SetString(PyExc_ValueError, + "Cannot handle repeated arrays in format string"); + return NULL; + } + if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; + while (*ts && *ts != ')') { + switch (*ts) { + case ' ': case '\f': case '\r': case '\n': case '\t': case '\v': continue; + default: break; + } + number = __Pyx_BufFmt_ExpectNumber(&ts); + if (number == -1) return NULL; + if (i < ndim && (size_t) number != ctx->head->field->type->arraysize[i]) + return PyErr_Format(PyExc_ValueError, + "Expected a dimension of size %zu, got %d", + ctx->head->field->type->arraysize[i], number); + if (*ts != ',' && *ts != ')') + return PyErr_Format(PyExc_ValueError, + "Expected a comma in format string, got '%c'", *ts); + if (*ts == ',') ts++; + i++; + } + if (i != ndim) + return PyErr_Format(PyExc_ValueError, "Expected %d dimension(s), got %d", + ctx->head->field->type->ndim, i); + if (!*ts) { + PyErr_SetString(PyExc_ValueError, + "Unexpected end of format string, expected ')'"); + return NULL; + } + ctx->is_valid_array = 1; + ctx->new_count = 1; + *tsp = ++ts; + return Py_None; +} +static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts) { + int got_Z = 0; + while (1) { + switch(*ts) { + case 0: + if (ctx->enc_type != 0 && ctx->head == NULL) { + __Pyx_BufFmt_RaiseExpected(ctx); + return NULL; + } + if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; + if (ctx->head != NULL) { + __Pyx_BufFmt_RaiseExpected(ctx); + return NULL; + } + return ts; + case ' ': + case '\r': + case '\n': + ++ts; + break; + case '<': + if (!__Pyx_Is_Little_Endian()) { + PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler"); + return NULL; + } + ctx->new_packmode = '='; + ++ts; + break; + case '>': + case '!': + if (__Pyx_Is_Little_Endian()) { + PyErr_SetString(PyExc_ValueError, "Big-endian buffer not supported on little-endian compiler"); + return NULL; + } + ctx->new_packmode = '='; + ++ts; + break; + case '=': + case '@': + case '^': + ctx->new_packmode = *ts++; + break; + case 'T': + { + const char* ts_after_sub; + size_t i, struct_count = ctx->new_count; + size_t struct_alignment = ctx->struct_alignment; + ctx->new_count = 1; + ++ts; + if (*ts != '{') { + PyErr_SetString(PyExc_ValueError, "Buffer acquisition: Expected '{' after 'T'"); + return NULL; + } + if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; + ctx->enc_type = 0; + ctx->enc_count = 0; + ctx->struct_alignment = 0; + ++ts; + ts_after_sub = ts; + for (i = 0; i != struct_count; ++i) { + ts_after_sub = __Pyx_BufFmt_CheckString(ctx, ts); + if (!ts_after_sub) return NULL; + } + ts = ts_after_sub; + if (struct_alignment) ctx->struct_alignment = struct_alignment; + } + break; + case '}': + { + size_t alignment = ctx->struct_alignment; + ++ts; + if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; + ctx->enc_type = 0; + if (alignment && ctx->fmt_offset % alignment) { + ctx->fmt_offset += alignment - (ctx->fmt_offset % alignment); + } + } + return ts; + case 'x': + if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; + ctx->fmt_offset += ctx->new_count; + ctx->new_count = 1; + ctx->enc_count = 0; + ctx->enc_type = 0; + ctx->enc_packmode = ctx->new_packmode; + ++ts; + break; + case 'Z': + got_Z = 1; + ++ts; + if (*ts != 'f' && *ts != 'd' && *ts != 'g') { + __Pyx_BufFmt_RaiseUnexpectedChar('Z'); + return NULL; + } + CYTHON_FALLTHROUGH; + case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I': + case 'l': case 'L': case 'q': case 'Q': + case 'f': case 'd': case 'g': + case 'O': case 'p': + if (ctx->enc_type == *ts && got_Z == ctx->is_complex && + ctx->enc_packmode == ctx->new_packmode) { + ctx->enc_count += ctx->new_count; + ctx->new_count = 1; + got_Z = 0; + ++ts; + break; + } + CYTHON_FALLTHROUGH; + case 's': + if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; + ctx->enc_count = ctx->new_count; + ctx->enc_packmode = ctx->new_packmode; + ctx->enc_type = *ts; + ctx->is_complex = got_Z; + ++ts; + ctx->new_count = 1; + got_Z = 0; + break; + case ':': + ++ts; + while(*ts != ':') ++ts; + ++ts; + break; + case '(': + if (!__pyx_buffmt_parse_array(ctx, &ts)) return NULL; + break; + default: + { + int number = __Pyx_BufFmt_ExpectNumber(&ts); + if (number == -1) return NULL; + ctx->new_count = (size_t)number; + } + } + } +} + +/* TypeInfoCompare */ + static int +__pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b) +{ + int i; + if (!a || !b) + return 0; + if (a == b) + return 1; + if (a->size != b->size || a->typegroup != b->typegroup || + a->is_unsigned != b->is_unsigned || a->ndim != b->ndim) { + if (a->typegroup == 'H' || b->typegroup == 'H') { + return a->size == b->size; + } else { + return 0; + } + } + if (a->ndim) { + for (i = 0; i < a->ndim; i++) + if (a->arraysize[i] != b->arraysize[i]) + return 0; + } + if (a->typegroup == 'S') { + if (a->flags != b->flags) + return 0; + if (a->fields || b->fields) { + if (!(a->fields && b->fields)) + return 0; + for (i = 0; a->fields[i].type && b->fields[i].type; i++) { + __Pyx_StructField *field_a = a->fields + i; + __Pyx_StructField *field_b = b->fields + i; + if (field_a->offset != field_b->offset || + !__pyx_typeinfo_cmp(field_a->type, field_b->type)) + return 0; + } + return !a->fields[i].type && !b->fields[i].type; + } + } + return 1; +} + +/* MemviewSliceValidateAndInit */ + static int +__pyx_check_strides(Py_buffer *buf, int dim, int ndim, int spec) +{ + if (buf->shape[dim] <= 1) + return 1; + if (buf->strides) { + if (spec & __Pyx_MEMVIEW_CONTIG) { + if (spec & (__Pyx_MEMVIEW_PTR|__Pyx_MEMVIEW_FULL)) { + if (buf->strides[dim] != sizeof(void *)) { + PyErr_Format(PyExc_ValueError, + "Buffer is not indirectly contiguous " + "in dimension %d.", dim); + goto fail; + } + } else if (buf->strides[dim] != buf->itemsize) { + PyErr_SetString(PyExc_ValueError, + "Buffer and memoryview are not contiguous " + "in the same dimension."); + goto fail; + } + } + if (spec & __Pyx_MEMVIEW_FOLLOW) { + Py_ssize_t stride = buf->strides[dim]; + if (stride < 0) + stride = -stride; + if (stride < buf->itemsize) { + PyErr_SetString(PyExc_ValueError, + "Buffer and memoryview are not contiguous " + "in the same dimension."); + goto fail; + } + } + } else { + if (spec & __Pyx_MEMVIEW_CONTIG && dim != ndim - 1) { + PyErr_Format(PyExc_ValueError, + "C-contiguous buffer is not contiguous in " + "dimension %d", dim); + goto fail; + } else if (spec & (__Pyx_MEMVIEW_PTR)) { + PyErr_Format(PyExc_ValueError, + "C-contiguous buffer is not indirect in " + "dimension %d", dim); + goto fail; + } else if (buf->suboffsets) { + PyErr_SetString(PyExc_ValueError, + "Buffer exposes suboffsets but no strides"); + goto fail; + } + } + return 1; +fail: + return 0; +} +static int +__pyx_check_suboffsets(Py_buffer *buf, int dim, CYTHON_UNUSED int ndim, int spec) +{ + if (spec & __Pyx_MEMVIEW_DIRECT) { + if (buf->suboffsets && buf->suboffsets[dim] >= 0) { + PyErr_Format(PyExc_ValueError, + "Buffer not compatible with direct access " + "in dimension %d.", dim); + goto fail; + } + } + if (spec & __Pyx_MEMVIEW_PTR) { + if (!buf->suboffsets || (buf->suboffsets && buf->suboffsets[dim] < 0)) { + PyErr_Format(PyExc_ValueError, + "Buffer is not indirectly accessible " + "in dimension %d.", dim); + goto fail; + } + } + return 1; +fail: + return 0; +} +static int +__pyx_verify_contig(Py_buffer *buf, int ndim, int c_or_f_flag) +{ + int i; + if (c_or_f_flag & __Pyx_IS_F_CONTIG) { + Py_ssize_t stride = 1; + for (i = 0; i < ndim; i++) { + if (stride * buf->itemsize != buf->strides[i] && + buf->shape[i] > 1) + { + PyErr_SetString(PyExc_ValueError, + "Buffer not fortran contiguous."); + goto fail; + } + stride = stride * buf->shape[i]; + } + } else if (c_or_f_flag & __Pyx_IS_C_CONTIG) { + Py_ssize_t stride = 1; + for (i = ndim - 1; i >- 1; i--) { + if (stride * buf->itemsize != buf->strides[i] && + buf->shape[i] > 1) { + PyErr_SetString(PyExc_ValueError, + "Buffer not C contiguous."); + goto fail; + } + stride = stride * buf->shape[i]; + } + } + return 1; +fail: + return 0; +} +static int __Pyx_ValidateAndInit_memviewslice( + int *axes_specs, + int c_or_f_flag, + int buf_flags, + int ndim, + __Pyx_TypeInfo *dtype, + __Pyx_BufFmt_StackElem stack[], + __Pyx_memviewslice *memviewslice, + PyObject *original_obj) +{ + struct __pyx_memoryview_obj *memview, *new_memview; + __Pyx_RefNannyDeclarations + Py_buffer *buf; + int i, spec = 0, retval = -1; + __Pyx_BufFmt_Context ctx; + int from_memoryview = __pyx_memoryview_check(original_obj); + __Pyx_RefNannySetupContext("ValidateAndInit_memviewslice", 0); + if (from_memoryview && __pyx_typeinfo_cmp(dtype, ((struct __pyx_memoryview_obj *) + original_obj)->typeinfo)) { + memview = (struct __pyx_memoryview_obj *) original_obj; + new_memview = NULL; + } else { + memview = (struct __pyx_memoryview_obj *) __pyx_memoryview_new( + original_obj, buf_flags, 0, dtype); + new_memview = memview; + if (unlikely(!memview)) + goto fail; + } + buf = &memview->view; + if (buf->ndim != ndim) { + PyErr_Format(PyExc_ValueError, + "Buffer has wrong number of dimensions (expected %d, got %d)", + ndim, buf->ndim); + goto fail; + } + if (new_memview) { + __Pyx_BufFmt_Init(&ctx, stack, dtype); + if (!__Pyx_BufFmt_CheckString(&ctx, buf->format)) goto fail; + } + if ((unsigned) buf->itemsize != dtype->size) { + PyErr_Format(PyExc_ValueError, + "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "u byte%s) " + "does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "u byte%s)", + buf->itemsize, + (buf->itemsize > 1) ? "s" : "", + dtype->name, + dtype->size, + (dtype->size > 1) ? "s" : ""); + goto fail; + } + for (i = 0; i < ndim; i++) { + spec = axes_specs[i]; + if (!__pyx_check_strides(buf, i, ndim, spec)) + goto fail; + if (!__pyx_check_suboffsets(buf, i, ndim, spec)) + goto fail; + } + if (buf->strides && !__pyx_verify_contig(buf, ndim, c_or_f_flag)) + goto fail; + if (unlikely(__Pyx_init_memviewslice(memview, ndim, memviewslice, + new_memview != NULL) == -1)) { + goto fail; + } + retval = 0; + goto no_fail; +fail: + Py_XDECREF(new_memview); + retval = -1; +no_fail: + __Pyx_RefNannyFinishContext(); + return retval; +} + +/* ObjectToMemviewSlice */ + static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_float(PyObject *obj, int writable_flag) { + __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; + __Pyx_BufFmt_StackElem stack[1]; + int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) }; + int retcode; + if (obj == Py_None) { + result.memview = (struct __pyx_memoryview_obj *) Py_None; + return result; + } + retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0, + PyBUF_RECORDS_RO | writable_flag, 2, + &__Pyx_TypeInfo_float, stack, + &result, obj); + if (unlikely(retcode == -1)) + goto __pyx_fail; + return result; +__pyx_fail: + result.memview = NULL; + result.data = NULL; + return result; +} + +/* CIntFromPyVerify */ + #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ + __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) +#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ + __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) +#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ + {\ + func_type value = func_value;\ + if (sizeof(target_type) < sizeof(func_type)) {\ + if (unlikely(value != (func_type) (target_type) value)) {\ + func_type zero = 0;\ + if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ + return (target_type) -1;\ + if (is_unsigned && unlikely(value < zero))\ + goto raise_neg_overflow;\ + else\ + goto raise_overflow;\ + }\ + }\ + return (target_type) value;\ + } + +/* None */ + static CYTHON_INLINE Py_ssize_t __Pyx_pow_Py_ssize_t(Py_ssize_t b, Py_ssize_t e) { + Py_ssize_t t = b; + switch (e) { + case 3: + t *= b; + CYTHON_FALLTHROUGH; + case 2: + t *= b; + CYTHON_FALLTHROUGH; + case 1: + return t; + case 0: + return 1; + } + #if 1 + if (unlikely(e<0)) return 0; + #endif + t = 1; + while (likely(e)) { + t *= (b * (e&1)) | ((~e)&1); + b *= b; + e >>= 1; + } + return t; +} + +/* MemviewSliceCopyTemplate */ + static __Pyx_memviewslice +__pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, + const char *mode, int ndim, + size_t sizeof_dtype, int contig_flag, + int dtype_is_object) +{ + __Pyx_RefNannyDeclarations + int i; + __Pyx_memviewslice new_mvs = { 0, 0, { 0 }, { 0 }, { 0 } }; + struct __pyx_memoryview_obj *from_memview = from_mvs->memview; + Py_buffer *buf = &from_memview->view; + PyObject *shape_tuple = NULL; + PyObject *temp_int = NULL; + struct __pyx_array_obj *array_obj = NULL; + struct __pyx_memoryview_obj *memview_obj = NULL; + __Pyx_RefNannySetupContext("__pyx_memoryview_copy_new_contig", 0); + for (i = 0; i < ndim; i++) { + if (from_mvs->suboffsets[i] >= 0) { + PyErr_Format(PyExc_ValueError, "Cannot copy memoryview slice with " + "indirect dimensions (axis %d)", i); + goto fail; + } + } + shape_tuple = PyTuple_New(ndim); + if (unlikely(!shape_tuple)) { + goto fail; + } + __Pyx_GOTREF(shape_tuple); + for(i = 0; i < ndim; i++) { + temp_int = PyInt_FromSsize_t(from_mvs->shape[i]); + if(unlikely(!temp_int)) { + goto fail; + } else { + PyTuple_SET_ITEM(shape_tuple, i, temp_int); + temp_int = NULL; + } + } + array_obj = __pyx_array_new(shape_tuple, sizeof_dtype, buf->format, (char *) mode, NULL); + if (unlikely(!array_obj)) { + goto fail; + } + __Pyx_GOTREF(array_obj); + memview_obj = (struct __pyx_memoryview_obj *) __pyx_memoryview_new( + (PyObject *) array_obj, contig_flag, + dtype_is_object, + from_mvs->memview->typeinfo); + if (unlikely(!memview_obj)) + goto fail; + if (unlikely(__Pyx_init_memviewslice(memview_obj, ndim, &new_mvs, 1) < 0)) + goto fail; + if (unlikely(__pyx_memoryview_copy_contents(*from_mvs, new_mvs, ndim, ndim, + dtype_is_object) < 0)) + goto fail; + goto no_fail; +fail: + __Pyx_XDECREF(new_mvs.memview); + new_mvs.memview = NULL; + new_mvs.data = NULL; +no_fail: + __Pyx_XDECREF(shape_tuple); + __Pyx_XDECREF(temp_int); + __Pyx_XDECREF(array_obj); + __Pyx_RefNannyFinishContext(); + return new_mvs; +} + +/* CIntFromPy */ + static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { + const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(int) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (int) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (int) 0; + case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) + case 2: + if (8 * sizeof(int) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { + return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(int) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { + return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(int) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { + return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (int) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(int) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (int) 0; + case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) + case -2: + if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { + return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(int) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { + return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { + return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(int) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { + return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { + return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(int) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { + return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + } +#endif + if (sizeof(int) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + int val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (int) -1; + } + } else { + int val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (int) -1; + val = __Pyx_PyInt_As_int(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to int"); + return (int) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to int"); + return (int) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { + const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(long) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (long) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (long) 0; + case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) + case 2: + if (8 * sizeof(long) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { + return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(long) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { + return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(long) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { + return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (long) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(long) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (long) 0; + case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) + case -2: + if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(long) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(long) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(long) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + } +#endif + if (sizeof(long) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + long val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (long) -1; + } + } else { + long val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (long) -1; + val = __Pyx_PyInt_As_long(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to long"); + return (long) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to long"); + return (long) -1; +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { + const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(int) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(int) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(int) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(int), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { + const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(long) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(long) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(long) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(long), + little, !is_unsigned); + } +} + +/* CIntFromPy */ + static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *x) { + const char neg_one = (char) ((char) 0 - (char) 1), const_zero = (char) 0; + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(char) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(char, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (char) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (char) 0; + case 1: __PYX_VERIFY_RETURN_INT(char, digit, digits[0]) + case 2: + if (8 * sizeof(char) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) >= 2 * PyLong_SHIFT) { + return (char) (((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(char) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) >= 3 * PyLong_SHIFT) { + return (char) (((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(char) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) >= 4 * PyLong_SHIFT) { + return (char) (((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (char) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(char) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(char, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(char) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(char, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (char) 0; + case -1: __PYX_VERIFY_RETURN_INT(char, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(char, digit, +digits[0]) + case -2: + if (8 * sizeof(char) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { + return (char) (((char)-1)*(((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(char) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { + return (char) ((((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { + return (char) (((char)-1)*(((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(char) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { + return (char) ((((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) - 1 > 4 * PyLong_SHIFT) { + return (char) (((char)-1)*(((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(char) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) - 1 > 4 * PyLong_SHIFT) { + return (char) ((((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); + } + } + break; + } +#endif + if (sizeof(char) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(char, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(char) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(char, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + char val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (char) -1; + } + } else { + char val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (char) -1; + val = __Pyx_PyInt_As_char(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to char"); + return (char) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to char"); + return (char) -1; +} + +/* CheckBinaryVersion */ + static int __Pyx_check_binary_version(void) { + char ctversion[4], rtversion[4]; + PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); + PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); + if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { + char message[200]; + PyOS_snprintf(message, sizeof(message), + "compiletime version %s of module '%.100s' " + "does not match runtime version %s", + ctversion, __Pyx_MODULE_NAME, rtversion); + return PyErr_WarnEx(NULL, message, 1); + } + return 0; +} + +/* InitStrings */ + static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { + while (t->p) { + #if PY_MAJOR_VERSION < 3 + if (t->is_unicode) { + *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); + } else if (t->intern) { + *t->p = PyString_InternFromString(t->s); + } else { + *t->p = PyString_FromStringAndSize(t->s, t->n - 1); + } + #else + if (t->is_unicode | t->is_str) { + if (t->intern) { + *t->p = PyUnicode_InternFromString(t->s); + } else if (t->encoding) { + *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); + } else { + *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); + } + } else { + *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); + } + #endif + if (!*t->p) + return -1; + if (PyObject_Hash(*t->p) == -1) + return -1; + ++t; + } + return 0; +} + +static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { + return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str)); +} +static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) { + Py_ssize_t ignore; + return __Pyx_PyObject_AsStringAndSize(o, &ignore); +} +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT +#if !CYTHON_PEP393_ENABLED +static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { + char* defenc_c; + PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); + if (!defenc) return NULL; + defenc_c = PyBytes_AS_STRING(defenc); +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII + { + char* end = defenc_c + PyBytes_GET_SIZE(defenc); + char* c; + for (c = defenc_c; c < end; c++) { + if ((unsigned char) (*c) >= 128) { + PyUnicode_AsASCIIString(o); + return NULL; + } + } + } +#endif + *length = PyBytes_GET_SIZE(defenc); + return defenc_c; +} +#else +static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { + if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL; +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII + if (likely(PyUnicode_IS_ASCII(o))) { + *length = PyUnicode_GET_LENGTH(o); + return PyUnicode_AsUTF8(o); + } else { + PyUnicode_AsASCIIString(o); + return NULL; + } +#else + return PyUnicode_AsUTF8AndSize(o, length); +#endif +} +#endif +#endif +static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT + if ( +#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII + __Pyx_sys_getdefaultencoding_not_ascii && +#endif + PyUnicode_Check(o)) { + return __Pyx_PyUnicode_AsStringAndSize(o, length); + } else +#endif +#if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) + if (PyByteArray_Check(o)) { + *length = PyByteArray_GET_SIZE(o); + return PyByteArray_AS_STRING(o); + } else +#endif + { + char* result; + int r = PyBytes_AsStringAndSize(o, &result, length); + if (unlikely(r < 0)) { + return NULL; + } else { + return result; + } + } +} +static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { + int is_true = x == Py_True; + if (is_true | (x == Py_False) | (x == Py_None)) return is_true; + else return PyObject_IsTrue(x); +} +static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) { + int retval; + if (unlikely(!x)) return -1; + retval = __Pyx_PyObject_IsTrue(x); + Py_DECREF(x); + return retval; +} +static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) { +#if PY_MAJOR_VERSION >= 3 + if (PyLong_Check(result)) { + if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, + "__int__ returned non-int (type %.200s). " + "The ability to return an instance of a strict subclass of int " + "is deprecated, and may be removed in a future version of Python.", + Py_TYPE(result)->tp_name)) { + Py_DECREF(result); + return NULL; + } + return result; + } +#endif + PyErr_Format(PyExc_TypeError, + "__%.4s__ returned non-%.4s (type %.200s)", + type_name, type_name, Py_TYPE(result)->tp_name); + Py_DECREF(result); + return NULL; +} +static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { +#if CYTHON_USE_TYPE_SLOTS + PyNumberMethods *m; +#endif + const char *name = NULL; + PyObject *res = NULL; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x) || PyLong_Check(x))) +#else + if (likely(PyLong_Check(x))) +#endif + return __Pyx_NewRef(x); +#if CYTHON_USE_TYPE_SLOTS + m = Py_TYPE(x)->tp_as_number; + #if PY_MAJOR_VERSION < 3 + if (m && m->nb_int) { + name = "int"; + res = m->nb_int(x); + } + else if (m && m->nb_long) { + name = "long"; + res = m->nb_long(x); + } + #else + if (likely(m && m->nb_int)) { + name = "int"; + res = m->nb_int(x); + } + #endif +#else + if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { + res = PyNumber_Int(x); + } +#endif + if (likely(res)) { +#if PY_MAJOR_VERSION < 3 + if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) { +#else + if (unlikely(!PyLong_CheckExact(res))) { +#endif + return __Pyx_PyNumber_IntOrLongWrongResultType(res, name); + } + } + else if (!PyErr_Occurred()) { + PyErr_SetString(PyExc_TypeError, + "an integer is required"); + } + return res; +} +static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { + Py_ssize_t ival; + PyObject *x; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_CheckExact(b))) { + if (sizeof(Py_ssize_t) >= sizeof(long)) + return PyInt_AS_LONG(b); + else + return PyInt_AsSsize_t(b); + } +#endif + if (likely(PyLong_CheckExact(b))) { + #if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)b)->ob_digit; + const Py_ssize_t size = Py_SIZE(b); + if (likely(__Pyx_sst_abs(size) <= 1)) { + ival = likely(size) ? digits[0] : 0; + if (size == -1) ival = -ival; + return ival; + } else { + switch (size) { + case 2: + if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { + return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case -2: + if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { + return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case 3: + if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { + return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case -3: + if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { + return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case 4: + if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { + return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case -4: + if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { + return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + } + } + #endif + return PyLong_AsSsize_t(b); + } + x = PyNumber_Index(b); + if (!x) return -1; + ival = PyInt_AsSsize_t(x); + Py_DECREF(x); + return ival; +} +static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { + return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); +} +static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { + return PyInt_FromSize_t(ival); +} + + +#endif /* Py_PYTHON_H */ diff --git a/data/lcn/lcn.html b/data/lcn/lcn.html new file mode 100644 index 0000000..805940b --- /dev/null +++ b/data/lcn/lcn.html @@ -0,0 +1,720 @@ + + + + + + Cython: lcn.pyx + + + +

Generated by Cython 0.29

+

+ Yellow lines hint at Python interaction.
+ Click on a line that starts with a "+" to see the C code that Cython generated for it. +

+
+
+01: import numpy as np
+
  __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;
+/* … */
+  __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;
+
 02: cimport cython
+
 03: 
+
 04: # use c square root function
+
 05: cdef extern from "math.h":
+
 06:     float sqrt(float x)
+
 07: 
+
 08: @cython.boundscheck(False)
+
 09: @cython.wraparound(False)
+
 10: @cython.cdivision(True)
+
 11: 
+
 12: # 3 parameters:
+
 13: # - float image
+
 14: # - kernel size (actually this is the radius, kernel is 2*k+1)
+
 15: # - small constant epsilon that is used to avoid division by zero
+
+16: def normalize(float[:, :] img, int kernel_size = 4, float epsilon = 0.01):
+
/* Python wrapper */
+static PyObject *__pyx_pw_3lcn_1normalize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static PyMethodDef __pyx_mdef_3lcn_1normalize = {"normalize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_3lcn_1normalize, METH_VARARGS|METH_KEYWORDS, 0};
+static PyObject *__pyx_pw_3lcn_1normalize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+  __Pyx_memviewslice __pyx_v_img = { 0, 0, { 0 }, { 0 }, { 0 } };
+  int __pyx_v_kernel_size;
+  float __pyx_v_epsilon;
+  PyObject *__pyx_r = 0;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("normalize (wrapper)", 0);
+  {
+    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_img,&__pyx_n_s_kernel_size,&__pyx_n_s_epsilon,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_img)) != 0)) kw_args--;
+        else goto __pyx_L5_argtuple_error;
+        CYTHON_FALLTHROUGH;
+        case  1:
+        if (kw_args > 0) {
+          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kernel_size);
+          if (value) { values[1] = value; kw_args--; }
+        }
+        CYTHON_FALLTHROUGH;
+        case  2:
+        if (kw_args > 0) {
+          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_epsilon);
+          if (value) { values[2] = value; kw_args--; }
+        }
+      }
+      if (unlikely(kw_args > 0)) {
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "normalize") < 0)) __PYX_ERR(0, 16, __pyx_L3_error)
+      }
+    } else {
+      switch (PyTuple_GET_SIZE(__pyx_args)) {
+        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+        CYTHON_FALLTHROUGH;
+        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+        CYTHON_FALLTHROUGH;
+        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+        break;
+        default: goto __pyx_L5_argtuple_error;
+      }
+    }
+    __pyx_v_img = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_img.memview)) __PYX_ERR(0, 16, __pyx_L3_error)
+    if (values[1]) {
+      __pyx_v_kernel_size = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_kernel_size == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 16, __pyx_L3_error)
+    } else {
+      __pyx_v_kernel_size = ((int)4);
+    }
+    if (values[2]) {
+      __pyx_v_epsilon = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_epsilon == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 16, __pyx_L3_error)
+    } else {
+      __pyx_v_epsilon = ((float)0.01);
+    }
+  }
+  goto __pyx_L4_argument_unpacking_done;
+  __pyx_L5_argtuple_error:;
+  __Pyx_RaiseArgtupleInvalid("normalize", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 16, __pyx_L3_error)
+  __pyx_L3_error:;
+  __Pyx_AddTraceback("lcn.normalize", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __Pyx_RefNannyFinishContext();
+  return NULL;
+  __pyx_L4_argument_unpacking_done:;
+  __pyx_r = __pyx_pf_3lcn_normalize(__pyx_self, __pyx_v_img, __pyx_v_kernel_size, __pyx_v_epsilon);
+
+  /* function exit code */
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+static PyObject *__pyx_pf_3lcn_normalize(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_img, int __pyx_v_kernel_size, float __pyx_v_epsilon) {
+  Py_ssize_t __pyx_v_M;
+  Py_ssize_t __pyx_v_N;
+  PyObject *__pyx_v_img_lcn = NULL;
+  PyObject *__pyx_v_img_std = NULL;
+  __Pyx_memviewslice __pyx_v_img_lcn_view = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_img_std_view = { 0, 0, { 0 }, { 0 }, { 0 } };
+  float __pyx_v_mean;
+  float __pyx_v_stddev;
+  Py_ssize_t __pyx_v_m;
+  Py_ssize_t __pyx_v_n;
+  Py_ssize_t __pyx_v_i;
+  Py_ssize_t __pyx_v_j;
+  Py_ssize_t __pyx_v_ks;
+  float __pyx_v_eps;
+  float __pyx_v_num;
+  PyObject *__pyx_r = NULL;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("normalize", 0);
+/* … */
+  /* function exit code */
+  __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_1);
+  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
+  __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
+  __Pyx_AddTraceback("lcn.normalize", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __pyx_r = NULL;
+  __pyx_L0:;
+  __Pyx_XDECREF(__pyx_v_img_lcn);
+  __Pyx_XDECREF(__pyx_v_img_std);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_img_lcn_view, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_img_std_view, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_img, 1);
+  __Pyx_XGIVEREF(__pyx_r);
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+/* … */
+  __pyx_tuple__19 = PyTuple_Pack(19, __pyx_n_s_img, __pyx_n_s_kernel_size, __pyx_n_s_epsilon, __pyx_n_s_M, __pyx_n_s_N, __pyx_n_s_img_lcn, __pyx_n_s_img_std, __pyx_n_s_img_lcn_view, __pyx_n_s_img_std_view, __pyx_n_s_tmp, __pyx_n_s_mean, __pyx_n_s_stddev, __pyx_n_s_m, __pyx_n_s_n, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_ks, __pyx_n_s_eps, __pyx_n_s_num); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 16, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_tuple__19);
+  __Pyx_GIVEREF(__pyx_tuple__19);
+/* … */
+  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_3lcn_1normalize, NULL, __pyx_n_s_lcn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_normalize, __pyx_t_1) < 0) __PYX_ERR(0, 16, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  __pyx_codeobj__20 = (PyObject*)__Pyx_PyCode_New(3, 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_lcn_pyx, __pyx_n_s_normalize, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__20)) __PYX_ERR(0, 16, __pyx_L1_error)
+
 17: 
+
 18:     # image dimensions
+
+19:     cdef Py_ssize_t M = img.shape[0]
+
  __pyx_v_M = (__pyx_v_img.shape[0]);
+
+20:     cdef Py_ssize_t N = img.shape[1]
+
  __pyx_v_N = (__pyx_v_img.shape[1]);
+
 21: 
+
 22:     # create outputs and output views
+
+23:     img_lcn = np.zeros((M, N), dtype=np.float32)
+
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __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, 23, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_M); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_N); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_GIVEREF(__pyx_t_1);
+  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
+  __Pyx_GIVEREF(__pyx_t_3);
+  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
+  __pyx_t_1 = 0;
+  __pyx_t_3 = 0;
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_GIVEREF(__pyx_t_4);
+  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
+  __pyx_t_4 = 0;
+  __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_float32); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 23, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 23, __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_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 23, __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_4); __pyx_t_4 = 0;
+  __pyx_v_img_lcn = __pyx_t_5;
+  __pyx_t_5 = 0;
+
+24:     img_std = np.zeros((M, N), dtype=np.float32)
+
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 24, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_5);
+  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_M); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 24, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_5);
+  __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_N); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GIVEREF(__pyx_t_5);
+  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5);
+  __Pyx_GIVEREF(__pyx_t_3);
+  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
+  __pyx_t_5 = 0;
+  __pyx_t_3 = 0;
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_GIVEREF(__pyx_t_2);
+  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
+  __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 24, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_5);
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_float32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_1) < 0) __PYX_ERR(0, 24, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __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;
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_v_img_std = __pyx_t_1;
+  __pyx_t_1 = 0;
+
+25:     cdef float[:, :] img_lcn_view = img_lcn
+
  __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(__pyx_v_img_lcn, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 25, __pyx_L1_error)
+  __pyx_v_img_lcn_view = __pyx_t_6;
+  __pyx_t_6.memview = NULL;
+  __pyx_t_6.data = NULL;
+
+26:     cdef float[:, :] img_std_view = img_std
+
  __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(__pyx_v_img_std, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 26, __pyx_L1_error)
+  __pyx_v_img_std_view = __pyx_t_6;
+  __pyx_t_6.memview = NULL;
+  __pyx_t_6.data = NULL;
+
 27: 
+
 28:     # temporary c variables
+
 29:     cdef float tmp, mean, stddev
+
 30:     cdef Py_ssize_t m, n, i, j
+
+31:     cdef Py_ssize_t ks = kernel_size
+
  __pyx_v_ks = __pyx_v_kernel_size;
+
+32:     cdef float eps = epsilon
+
  __pyx_v_eps = __pyx_v_epsilon;
+
+33:     cdef float num = (ks*2+1)**2
+
  __pyx_v_num = __Pyx_pow_Py_ssize_t(((__pyx_v_ks * 2) + 1), 2);
+
 34: 
+
 35:     # for all pixels do
+
+36:     for m in range(ks,M-ks):
+
  __pyx_t_7 = (__pyx_v_M - __pyx_v_ks);
+  __pyx_t_8 = __pyx_t_7;
+  for (__pyx_t_9 = __pyx_v_ks; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
+    __pyx_v_m = __pyx_t_9;
+
+37:         for n in range(ks,N-ks):
+
    __pyx_t_10 = (__pyx_v_N - __pyx_v_ks);
+    __pyx_t_11 = __pyx_t_10;
+    for (__pyx_t_12 = __pyx_v_ks; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
+      __pyx_v_n = __pyx_t_12;
+
 38: 
+
 39:             # calculate mean
+
+40:             mean = 0;
+
      __pyx_v_mean = 0.0;
+
+41:             for i in range(-ks,ks+1):
+
      __pyx_t_13 = (__pyx_v_ks + 1);
+      __pyx_t_14 = __pyx_t_13;
+      for (__pyx_t_15 = (-__pyx_v_ks); __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
+        __pyx_v_i = __pyx_t_15;
+
+42:                 for j in range(-ks,ks+1):
+
        __pyx_t_16 = (__pyx_v_ks + 1);
+        __pyx_t_17 = __pyx_t_16;
+        for (__pyx_t_18 = (-__pyx_v_ks); __pyx_t_18 < __pyx_t_17; __pyx_t_18+=1) {
+          __pyx_v_j = __pyx_t_18;
+
+43:                     mean += img[m+i, n+j]
+
          __pyx_t_19 = (__pyx_v_m + __pyx_v_i);
+          __pyx_t_20 = (__pyx_v_n + __pyx_v_j);
+          __pyx_v_mean = (__pyx_v_mean + (*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_img.data + __pyx_t_19 * __pyx_v_img.strides[0]) ) + __pyx_t_20 * __pyx_v_img.strides[1]) ))));
+        }
+      }
+
+44:             mean = mean/num
+
      __pyx_v_mean = (__pyx_v_mean / __pyx_v_num);
+
 45: 
+
 46:             # calculate std dev
+
+47:             stddev = 0;
+
      __pyx_v_stddev = 0.0;
+
+48:             for i in range(-ks,ks+1):
+
      __pyx_t_13 = (__pyx_v_ks + 1);
+      __pyx_t_14 = __pyx_t_13;
+      for (__pyx_t_15 = (-__pyx_v_ks); __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
+        __pyx_v_i = __pyx_t_15;
+
+49:                 for j in range(-ks,ks+1):
+
        __pyx_t_16 = (__pyx_v_ks + 1);
+        __pyx_t_17 = __pyx_t_16;
+        for (__pyx_t_18 = (-__pyx_v_ks); __pyx_t_18 < __pyx_t_17; __pyx_t_18+=1) {
+          __pyx_v_j = __pyx_t_18;
+
+50:                     stddev = stddev + (img[m+i, n+j]-mean)*(img[m+i, n+j]-mean)
+
          __pyx_t_21 = (__pyx_v_m + __pyx_v_i);
+          __pyx_t_22 = (__pyx_v_n + __pyx_v_j);
+          __pyx_t_23 = (__pyx_v_m + __pyx_v_i);
+          __pyx_t_24 = (__pyx_v_n + __pyx_v_j);
+          __pyx_v_stddev = (__pyx_v_stddev + (((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_img.data + __pyx_t_21 * __pyx_v_img.strides[0]) ) + __pyx_t_22 * __pyx_v_img.strides[1]) ))) - __pyx_v_mean) * ((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_img.data + __pyx_t_23 * __pyx_v_img.strides[0]) ) + __pyx_t_24 * __pyx_v_img.strides[1]) ))) - __pyx_v_mean)));
+        }
+      }
+
+51:             stddev = sqrt(stddev/num)
+
      __pyx_v_stddev = sqrt((__pyx_v_stddev / __pyx_v_num));
+
 52: 
+
 53:             # compute normalized image (add epsilon) and std dev image
+
+54:             img_lcn_view[m, n] = (img[m, n]-mean)/(stddev+eps)
+
      __pyx_t_25 = __pyx_v_m;
+      __pyx_t_26 = __pyx_v_n;
+      __pyx_t_27 = __pyx_v_m;
+      __pyx_t_28 = __pyx_v_n;
+      *((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_img_lcn_view.data + __pyx_t_27 * __pyx_v_img_lcn_view.strides[0]) ) + __pyx_t_28 * __pyx_v_img_lcn_view.strides[1]) )) = (((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_img.data + __pyx_t_25 * __pyx_v_img.strides[0]) ) + __pyx_t_26 * __pyx_v_img.strides[1]) ))) - __pyx_v_mean) / (__pyx_v_stddev + __pyx_v_eps));
+
+55:             img_std_view[m, n] = stddev
+
      __pyx_t_29 = __pyx_v_m;
+      __pyx_t_30 = __pyx_v_n;
+      *((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_img_std_view.data + __pyx_t_29 * __pyx_v_img_std_view.strides[0]) ) + __pyx_t_30 * __pyx_v_img_std_view.strides[1]) )) = __pyx_v_stddev;
+    }
+  }
+
 56: 
+
 57:     # return both
+
+58:     return img_lcn, img_std
+
  __Pyx_XDECREF(__pyx_r);
+  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __Pyx_INCREF(__pyx_v_img_lcn);
+  __Pyx_GIVEREF(__pyx_v_img_lcn);
+  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_img_lcn);
+  __Pyx_INCREF(__pyx_v_img_std);
+  __Pyx_GIVEREF(__pyx_v_img_std);
+  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_img_std);
+  __pyx_r = __pyx_t_1;
+  __pyx_t_1 = 0;
+  goto __pyx_L0;
+
diff --git a/data/lcn/lcn.pyx b/data/lcn/lcn.pyx new file mode 100644 index 0000000..c1a322a --- /dev/null +++ b/data/lcn/lcn.pyx @@ -0,0 +1,58 @@ +import numpy as np +cimport cython + +# use c square root function +cdef extern from "math.h": + float sqrt(float x) + +@cython.boundscheck(False) +@cython.wraparound(False) +@cython.cdivision(True) + +# 3 parameters: +# - float image +# - kernel size (actually this is the radius, kernel is 2*k+1) +# - small constant epsilon that is used to avoid division by zero +def normalize(float[:, :] img, int kernel_size = 4, float epsilon = 0.01): + + # image dimensions + cdef Py_ssize_t M = img.shape[0] + cdef Py_ssize_t N = img.shape[1] + + # create outputs and output views + img_lcn = np.zeros((M, N), dtype=np.float32) + img_std = np.zeros((M, N), dtype=np.float32) + cdef float[:, :] img_lcn_view = img_lcn + cdef float[:, :] img_std_view = img_std + + # temporary c variables + cdef float tmp, mean, stddev + cdef Py_ssize_t m, n, i, j + cdef Py_ssize_t ks = kernel_size + cdef float eps = epsilon + cdef float num = (ks*2+1)**2 + + # for all pixels do + for m in range(ks,M-ks): + for n in range(ks,N-ks): + + # calculate mean + mean = 0; + for i in range(-ks,ks+1): + for j in range(-ks,ks+1): + mean += img[m+i, n+j] + mean = mean/num + + # calculate std dev + stddev = 0; + for i in range(-ks,ks+1): + for j in range(-ks,ks+1): + stddev = stddev + (img[m+i, n+j]-mean)*(img[m+i, n+j]-mean) + stddev = sqrt(stddev/num) + + # compute normalized image (add epsilon) and std dev image + img_lcn_view[m, n] = (img[m, n]-mean)/(stddev+eps) + img_std_view[m, n] = stddev + + # return both + return img_lcn, img_std diff --git a/data/lcn/readme.txt b/data/lcn/readme.txt new file mode 100644 index 0000000..1c6aa51 --- /dev/null +++ b/data/lcn/readme.txt @@ -0,0 +1,5 @@ +compile: +python setup.py build_ext --inplace + +run: +python test_lcn.py diff --git a/data/lcn/setup.py b/data/lcn/setup.py new file mode 100644 index 0000000..e1d4d0e --- /dev/null +++ b/data/lcn/setup.py @@ -0,0 +1,6 @@ +from distutils.core import setup +from Cython.Build import cythonize + +setup( + ext_modules = cythonize("lcn.pyx",annotate=True) +) diff --git a/data/lcn/test_lcn.py b/data/lcn/test_lcn.py new file mode 100644 index 0000000..eff0289 --- /dev/null +++ b/data/lcn/test_lcn.py @@ -0,0 +1,47 @@ +import numpy as np +import matplotlib.pyplot as plt +import lcn +from scipy import misc + +# load and convert to float +img = misc.imread('img.png') +img = img.astype(np.float32)/255.0 + +# normalize +img_lcn, img_std = lcn.normalize(img,5,0.05) + +# normalize to reasonable range between 0 and 1 +#img_lcn = img_lcn/3.0 +#img_lcn = np.maximum(img_lcn,0.0) +#img_lcn = np.minimum(img_lcn,1.0) + +# save to file +#misc.imsave('lcn2.png',img_lcn) + +print ("Orig Image: %d x %d (%s), Min: %f, Max: %f" % \ +(img.shape[0], img.shape[1], img.dtype, img.min(), img.max())) +print ("Norm Image: %d x %d (%s), Min: %f, Max: %f" % \ +(img_lcn.shape[0], img_lcn.shape[1], img_lcn.dtype, img_lcn.min(), img_lcn.max())) + +# plot original image +plt.figure(1) +img_plot = plt.imshow(img) +img_plot.set_cmap('gray') +plt.clim(0, 1) # fix range +plt.tight_layout() + +# plot normalized image +plt.figure(2) +img_lcn_plot = plt.imshow(img_lcn) +img_lcn_plot.set_cmap('gray') +#plt.clim(0, 1) # fix range +plt.tight_layout() + +# plot stddev image +plt.figure(3) +img_std_plot = plt.imshow(img_std) +img_std_plot.set_cmap('gray') +#plt.clim(0, 0.1) # fix range +plt.tight_layout() + +plt.show() diff --git a/hyperdepth/eval.cpp b/hyperdepth/eval.cpp new file mode 100644 index 0000000..2da06f6 --- /dev/null +++ b/hyperdepth/eval.cpp @@ -0,0 +1,46 @@ +#include "hyperdepth.h" + + +int main() { + cv::Mat_ im = read_im(0); + cv::Mat_ disp = read_disp(0); + int im_rows = im.rows; + int im_cols = im.cols; + std::cout << im.rows << "/" << im.cols << std::endl; + std::cout << disp.rows << "/" << disp.cols << std::endl; + + cv::Mat_ ta_disp(im_rows, im_cols); + cv::Mat_ es_disp(im_rows, im_cols); + + int n_disp_bins = 16; + + for(int row = 0; row < im_rows; ++row) { + std::vector data; + extract_row_samples(im, disp, row, data, false, n_disp_bins); + + std::ostringstream forest_path; + forest_path << "cforest_" << row << ".bin"; + BinarySerializationIn fin(forest_path.str()); + HDForest forest; + forest.Load(fin); + + auto res = forest.inferencemt(data, 18); + for(int col = 0; col < im_cols; ++col) { + auto fcn = res[col]; + auto target = std::static_pointer_cast(data[col].target); + + float ta = col - float(target->cl()) / n_disp_bins; + float es = col - float(fcn->argmax()) / n_disp_bins; + es = std::max(0.f, es); + + ta_disp(row, col) = int(ta * 16); + es_disp(row, col) = int(es * 16); + } + } + + cv::imwrite("disp_orig.png", disp); + cv::imwrite("disp_ta.png", ta_disp); + cv::imwrite("disp_es.png", es_disp); +} + + diff --git a/hyperdepth/hyperdepth.h b/hyperdepth/hyperdepth.h new file mode 100644 index 0000000..72bd1c6 --- /dev/null +++ b/hyperdepth/hyperdepth.h @@ -0,0 +1,287 @@ +#include +#include + +#include "rf/forest.h" +#include "rf/spliteval.h" + +class HyperdepthSplitEvaluator : public SplitEvaluator { +public: + HyperdepthSplitEvaluator(bool normalize, int n_classes, int n_disp_bins, int depth_switch) + : SplitEvaluator(normalize), n_classes_(n_classes), n_disp_bins_(n_disp_bins), depth_switch_(depth_switch) {} + virtual ~HyperdepthSplitEvaluator() {} + +protected: + virtual float Purity(const std::vector& targets, int depth) const { + if(targets.size() == 0) return 0; + + int n_classes = n_classes_; + if(depth >= depth_switch_) { + n_classes *= n_disp_bins_; + } + + std::vector ps; + ps.resize(n_classes, 0); + for(auto target : targets) { + auto ctarget = std::static_pointer_cast(target.optimize_target); + int cl = ctarget->cl(); + if(depth < depth_switch_) { + cl /= n_disp_bins_; + } + ps[cl] += 1; + } + + float h = 0; + for(int cl = 0; cl < n_classes; ++cl) { + float fi = float(ps[cl]) / float(targets.size()); + if(fi > 0) { + h = h - fi * std::log(fi); + } + } + + return h; + } + +private: + int n_classes_; + int n_disp_bins_; + int depth_switch_; +}; + + +class HyperdepthLeafFunction { +public: + HyperdepthLeafFunction() : n_classes_(-1) {} + HyperdepthLeafFunction(int n_classes) : n_classes_(n_classes) {} + virtual ~HyperdepthLeafFunction() {} + + virtual std::shared_ptr Copy() const { + auto fcn = std::make_shared(); + fcn->n_classes_ = n_classes_; + fcn->counts_.resize(counts_.size()); + for(size_t idx = 0; idx < counts_.size(); ++idx) { + fcn->counts_[idx] = counts_[idx]; + } + fcn->sum_counts_ = sum_counts_; + + return fcn; + } + + virtual std::shared_ptr Create(const std::vector& samples) { + auto stat = std::make_shared(); + + stat->counts_.resize(n_classes_, 0); + for(auto sample : samples) { + auto ctarget = std::static_pointer_cast(sample.target); + stat->counts_[ctarget->cl()] += 1; + } + stat->sum_counts_ = samples.size(); + + return stat; + } + + virtual std::shared_ptr Reduce(const std::vector>& fcns) const { + auto stat = std::make_shared(); + auto cfcn0 = std::static_pointer_cast(fcns[0]); + stat->counts_.resize(cfcn0->counts_.size(), 0); + stat->sum_counts_ = 0; + + for(auto fcn : fcns) { + auto cfcn = std::static_pointer_cast(fcn); + for(size_t cl = 0; cl < stat->counts_.size(); ++cl) { + stat->counts_[cl] += cfcn->counts_[cl]; + } + stat->sum_counts_ += cfcn->sum_counts_; + } + + return stat; + } + + virtual std::tuple argmax() const { + int max_idx = 0; + int max_count = counts_[0]; + int max2_idx = -1; + int max2_count = -1; + for(size_t idx = 1; idx < counts_.size(); ++idx) { + if(counts_[idx] > max_count) { + max2_count = max_count; + max2_idx = max_idx; + max_count = counts_[idx]; + max_idx = idx; + } + else if(counts_[idx] > max2_count) { + max2_count = counts_[idx]; + max2_idx = idx; + } + } + return std::make_tuple(max_idx, max2_idx); + } + + virtual std::vector prob_vec() const { + std::vector probs(counts_.size(), 0.f); + int sum = 0; + for(int cnt : counts_) { + sum += cnt; + } + for(size_t idx = 0; idx < counts_.size(); ++idx) { + probs[idx] = float(counts_[idx]) / sum; + } + return probs; + } + + virtual void Save(SerializationOut& ar) const { + ar << n_classes_; + int n_counts = counts_.size(); + ar << n_counts; + for(int idx = 0; idx < n_counts; ++idx) { + ar << counts_[idx]; + } + ar << sum_counts_; + } + + virtual void Load(SerializationIn& ar) { + ar >> n_classes_; + int n_counts; + ar >> n_counts; + counts_.resize(n_counts); + for(int idx = 0; idx < n_counts; ++idx) { + ar >> counts_[idx]; + } + ar >> sum_counts_; + } + +public: + int n_classes_; + + std::vector counts_; + int sum_counts_; + +DISABLE_COPY_AND_ASSIGN(HyperdepthLeafFunction); +}; + + +typedef SplitFunctionPixelDifference HDSplitFunctionT; +typedef HyperdepthLeafFunction HDLeafFunctionT; +typedef HyperdepthSplitEvaluator HDSplitEvaluatorT; +typedef Forest HDForest; + + + +template +class Raw { +public: + const T* raw; + const int nsamples; + const int rows; + const int cols; + Raw(const T* raw, int nsamples, int rows, int cols) + : raw(raw), nsamples(nsamples), rows(rows), cols(cols) {} + + T operator()(int n, int r, int c) const { + return raw[(n * rows + r) * cols + c]; + } +}; + + +class RawSample : public Sample { +public: + RawSample(const Raw& raw, int n, int rc, int cc, int patch_height, int patch_width) + : Sample(1, patch_height, patch_width), raw(raw), n(n), rc(rc), cc(cc) {} + + virtual float at(int ch, int r, int c) const { + r += rc - height_ / 2; + c += cc - width_ / 2; + r = std::max(0, std::min(raw.rows-1, r)); + c = std::max(0, std::min(raw.cols-1, c)); + return raw(n, r, c); + } + +protected: + const Raw& raw; + int n; + int rc; + int cc; +}; + +void extract_row_samples(const Raw& im, const Raw& disp, int row, int n_disp_bins, bool only_valid, std::vector& data) { + for(int n = 0; n < im.nsamples; ++n) { + for(int col = 0; col < im.cols; ++col) { + float d = disp(n, row, col); + float pos = col - d; + int cl = pos * n_disp_bins; + if((d < 0 || cl < 0) && only_valid) continue; + + auto sample = std::make_shared(im, n, row, col, 32, 32); + auto target = std::make_shared(cl); + auto datum = TrainDatum(sample, target); + data.push_back(datum); + } + } + std::cout << "extracted " << data.size() << " train samples" << std::endl; + std::cout << "n_classes (" << im.cols << ") * n_disp_bins (" << n_disp_bins << ") = " << (im.cols * n_disp_bins) << std::endl; +} + + +void train(int row_from, int row_to, TrainParameters params, const uint8_t* ims, const float* disps, int n, int h, int w, int n_disp_bins, int depth_switch, int n_threads, std::string forest_prefix) { + Raw raw_ims(ims, n, h, w); + Raw raw_disps(disps, n, h, w); + + int n_classes = w; + + auto gen_split_fcn = std::make_shared(); + auto gen_leaf_fcn = std::make_shared(n_classes * n_disp_bins); + auto split_eval = std::make_shared(true, n_classes, n_disp_bins, depth_switch); + + for(int row = row_from; row < row_to; ++row) { + std::cout << "train row " << row << std::endl; + + std::vector data; + extract_row_samples(raw_ims, raw_disps, row, n_disp_bins, true, data); + + TrainForestQueued train(params, gen_split_fcn, gen_leaf_fcn, split_eval, n_threads, true); + + auto forest = train.Train(data, TrainType::TRAIN, nullptr); + + std::ostringstream forest_path; + forest_path << forest_prefix << row << ".bin"; + std::cout << "save forest of row " << row << " to " << forest_path.str() << std::endl; + BinarySerializationOut fout(forest_path.str()); + forest->Save(fout); + } +} + + +void eval(int row_from, int row_to, const uint8_t* ims, const float* disps, int n, int h, int w, int n_disp_bins, int depth_switch, int n_threads, std::string forest_prefix, float* out) { + Raw raw_ims(ims, n, h, w); + Raw raw_disps(disps, n, h, w); + + for(int row = row_from; row < row_to; ++row) { + std::vector data; + extract_row_samples(raw_ims, raw_disps, row, n_disp_bins, false, data); + + std::ostringstream forest_path; + forest_path << forest_prefix << row << ".bin"; + std::cout << "eval row " << row << " - " << forest_path.str() << std::endl; + + BinarySerializationIn fin(forest_path.str()); + HDForest forest; + forest.Load(fin); + + auto res = forest.inferencemt(data, n_threads); + + for(int nidx = 0; nidx < n; ++nidx) { + for(int col = 0; col < w; ++col) { + auto fcn = res[nidx * w + col]; + int pos, pos2; + std::tie(pos, pos2) = fcn->argmax(); + float disp = col - float(pos) / n_disp_bins; + float disp2 = col - float(pos2) / n_disp_bins; + + float prob = fcn->prob_vec()[pos]; + + out[((nidx * h + row) * w + col) * 3 + 0] = disp; + out[((nidx * h + row) * w + col) * 3 + 1] = prob; + out[((nidx * h + row) * w + col) * 3 + 2] = std::abs(disp - disp2); + } + } + } +} diff --git a/hyperdepth/hyperdepth.pyx b/hyperdepth/hyperdepth.pyx new file mode 100644 index 0000000..abc741a --- /dev/null +++ b/hyperdepth/hyperdepth.pyx @@ -0,0 +1,86 @@ +cimport cython +import numpy as np +cimport numpy as np + +from libc.stdlib cimport free, malloc +from libcpp cimport bool +from libcpp.string cimport string +from cpython cimport PyObject, Py_INCREF + +CREATE_INIT = True # workaround, so cython builds a init function + +np.import_array() + + +ctypedef unsigned char uint8_t + +cdef extern from "rf/train.h": + cdef cppclass TrainParameters: + int n_trees; + int max_tree_depth; + int n_test_split_functions; + int n_test_thresholds; + int n_test_samples; + int min_samples_to_split; + int min_samples_for_leaf; + int print_node_info; + TrainParameters(); + + +cdef extern from "hyperdepth.h": + void train(int row_from, int row_to, TrainParameters params, const uint8_t* ims, const float* disps, int n, int h, int w, int n_disp_bins, int depth_switch, int n_threads, string forest_prefix); + void eval(int row_from, int row_to, const uint8_t* ims, const float* disps, int n, int h, int w, int n_disp_bins, int depth_switch, int n_threads, string forest_prefix, float* out); + + + + +cdef class TrainParams: + cdef TrainParameters params; + + def __cinit__(self, int n_trees=6, int max_tree_depth=8, int n_test_split_functions=50, int n_test_thresholds=10, int n_test_samples=4096, int min_samples_to_split=16, int min_samples_for_leaf=8, int print_node_info=100): + self.params.n_trees = n_trees + self.params.max_tree_depth = max_tree_depth + self.params.n_test_split_functions = n_test_split_functions + self.params.n_test_thresholds = n_test_thresholds + self.params.n_test_samples = n_test_samples + self.params.min_samples_to_split = min_samples_to_split + self.params.min_samples_for_leaf = min_samples_for_leaf + self.params.print_node_info = print_node_info + + def __str__(self): + return f'n_trees={self.params.n_trees}, max_tree_depth={self.params.max_tree_depth}, n_test_split_functions={self.params.n_test_split_functions}, n_test_thresholds={self.params.n_test_thresholds}, n_test_samples={self.params.n_test_samples}, min_samples_to_split={self.params.min_samples_to_split}, min_samples_for_leaf={self.params.min_samples_for_leaf}' + + +def train_forest(TrainParams params, uint8_t[:,:,::1] ims, float[:,:,::1] disps, int n_disp_bins=10, int depth_switch=0, int n_threads=18, str forest_prefix='forest', int row_from=-1, int row_to=-1): + cdef int n = ims.shape[0] + cdef int h = ims.shape[1] + cdef int w = ims.shape[2] + + if row_from < 0: + row_from = 0 + if row_to > h or row_to < 0: + row_to = h + + if n != disps.shape[0] or h != disps.shape[1] or w != disps.shape[2]: + raise Exception('ims.shape != disps.shape') + + train(row_from, row_to, params.params, &ims[0,0,0], &disps[0,0,0], n, h, w, n_disp_bins, depth_switch, n_threads, forest_prefix.encode()) + + +def eval_forest(uint8_t[:,:,::1] ims, float[:,:,::1] disps, int n_disp_bins=10, int depth_switch=0, int n_threads=18, str forest_prefix='forest', int row_from=-1, int row_to=-1): + cdef int n = ims.shape[0] + cdef int h = ims.shape[1] + cdef int w = ims.shape[2] + + if n != disps.shape[0] or h != disps.shape[1] or w != disps.shape[2]: + raise Exception('ims.shape != disps.shape') + + if row_from < 0: + row_from = 0 + if row_to > h or row_to < 0: + row_to = h + + out = np.empty((n, h, w, 3), dtype=np.float32) + cdef float[:,:,:,::1] out_view = out + eval(row_from, row_to, &ims[0,0,0], &disps[0,0,0], n, h, w, n_disp_bins, depth_switch, n_threads, forest_prefix.encode(), &out_view[0,0,0,0]) + return out diff --git a/hyperdepth/hyperparam_search.py b/hyperdepth/hyperparam_search.py new file mode 100644 index 0000000..54e9475 --- /dev/null +++ b/hyperdepth/hyperparam_search.py @@ -0,0 +1,65 @@ +import numpy as np +import matplotlib.pyplot as plt +import cv2 +from pathlib import Path +import sys + +import hyperdepth as hd + +sys.path.append('../') +import dataset + + +def get_data(n, row_from, row_to, train): + imsizes = [(256,384)] + focal_lengths = [160] + dset = dataset.SynDataset(n, imsizes=imsizes, focal_lengths=focal_lengths, train=train) + ims = np.empty((n, row_to-row_from, imsizes[0][1]), dtype=np.uint8) + disps = np.empty((n, row_to-row_from, imsizes[0][1]), dtype=np.float32) + for idx in range(n): + print(f'load sample {idx} train={train}') + sample = dset[idx] + ims[idx] = (sample['im0'][0,row_from:row_to] * 255).astype(np.uint8) + disps[idx] = sample['disp0'][0,row_from:row_to] + return ims, disps + + + +params = hd.TrainParams( + n_trees=4, + max_tree_depth=, + n_test_split_functions=50, + n_test_thresholds=10, + n_test_samples=4096, + min_samples_to_split=16, + min_samples_for_leaf=8) + +n_disp_bins = 20 +depth_switch = 0 + +row_from = 100 +row_to = 108 +n_train_samples = 1024 +n_test_samples = 32 + +train_ims, train_disps = get_data(n_train_samples, row_from, row_to, True) +test_ims, test_disps = get_data(n_test_samples, row_from, row_to, False) + +for tree_depth in [8,10,12,14,16]: + depth_switch = tree_depth - 4 + + prefix = f'td{tree_depth}_ds{depth_switch}' + prefix = Path(f'./forests/{prefix}/') + prefix.mkdir(parents=True, exist_ok=True) + + hd.train_forest(params, train_ims, train_disps, n_disp_bins=n_disp_bins, depth_switch=depth_switch, forest_prefix=str(prefix / 'fr')) + + es = hd.eval_forest(test_ims, test_disps, n_disp_bins=n_disp_bins, depth_switch=depth_switch, forest_prefix=str(prefix / 'fr')) + + np.save(str(prefix / 'ta.npy'), test_disps) + np.save(str(prefix / 'es.npy'), es) + + # plt.figure(); + # plt.subplot(2,1,1); plt.imshow(test_disps[0], vmin=0, vmax=4); + # plt.subplot(2,1,2); plt.imshow(es[0], vmin=0, vmax=4); + # plt.show() diff --git a/hyperdepth/rf/common.h b/hyperdepth/rf/common.h new file mode 100644 index 0000000..e93f1c7 --- /dev/null +++ b/hyperdepth/rf/common.h @@ -0,0 +1,18 @@ +#ifndef COMMON_H +#define COMMON_H + +#include +#include + +#if defined(_OPENMP) +#include +#endif + + +#define DISABLE_COPY_AND_ASSIGN(classname) \ +private:\ + classname(const classname&) = delete;\ + classname& operator=(const classname&) = delete; + + +#endif diff --git a/hyperdepth/rf/data.h b/hyperdepth/rf/data.h new file mode 100644 index 0000000..1c34426 --- /dev/null +++ b/hyperdepth/rf/data.h @@ -0,0 +1,72 @@ +#pragma once + +#include + + +class Sample { +public: + Sample(int channels, int height, int width) + : channels_(channels), height_(height), width_(width) {} + + virtual ~Sample() {} + + virtual float at(int c, int h, int w) const = 0; + + virtual float operator()(int c, int h, int w) const { + return at(c,h,w); + } + + virtual int channels() const { return channels_; } + virtual int height() const { return height_; } + virtual int width() const { return width_; } + +protected: + int channels_; + int height_; + int width_; +}; + +typedef std::shared_ptr SamplePtr; + + + + +class Target { +public: + Target() {} + virtual ~Target() {} +}; + +typedef std::shared_ptr TargetPtr; +typedef std::vector VecTargetPtr; +typedef std::shared_ptr VecPtrTargetPtr; + + +class ClassificationTarget : public Target { +public: + ClassificationTarget(int cl) : cl_(cl) {} + virtual ~ClassificationTarget() {} + int cl() const { return cl_; } + +private: + int cl_; +}; + +typedef std::shared_ptr ClassificationTargetPtr; + + + + +struct TrainDatum { + SamplePtr sample; + TargetPtr target; + TargetPtr optimize_target; + + TrainDatum() : sample(nullptr), target(nullptr), optimize_target(nullptr) {} + + TrainDatum(SamplePtr sample, TargetPtr target) + : sample(sample), target(target), optimize_target(target) {} + + TrainDatum(SamplePtr sample, TargetPtr target, TargetPtr optimize_target) + : sample(sample), target(target), optimize_target(optimize_target) {} +}; diff --git a/hyperdepth/rf/forest.h b/hyperdepth/rf/forest.h new file mode 100644 index 0000000..34bbf89 --- /dev/null +++ b/hyperdepth/rf/forest.h @@ -0,0 +1,92 @@ +#pragma once + +#include "tree.h" + +template +class Forest { +public: + Forest() {} + virtual ~Forest() {} + + std::shared_ptr inferencest(const SamplePtr& sample) const { + int n_trees = trees_.size(); + + std::vector> fcns; + + //inference of individual trees + for(int tree_idx = 0; tree_idx < n_trees; ++tree_idx) { + std::shared_ptr tree_fcn = trees_[tree_idx]->inference(sample); + fcns.push_back(tree_fcn); + } + + //combine tree fcns/results and collect all results + return fcns[0]->Reduce(fcns); + } + + std::vector> inferencemt(const std::vector& samples, int n_threads) const { + std::vector> targets(samples.size()); + + omp_set_num_threads(n_threads); + #pragma omp parallel for + for(size_t sample_idx = 0; sample_idx < samples.size(); ++sample_idx) { + targets[sample_idx] = inferencest(samples[sample_idx]); + } + + return targets; + } + + std::vector> inferencemt(const std::vector& samples, int n_threads) const { + std::vector> targets(samples.size()); + + omp_set_num_threads(n_threads); + #pragma omp parallel for + for(size_t sample_idx = 0; sample_idx < samples.size(); ++sample_idx) { + targets[sample_idx] = inferencest(samples[sample_idx].sample); + } + + return targets; + } + + void AddTree(std::shared_ptr> tree) { + trees_.push_back(tree); + } + + size_t trees_size() const { return trees_.size(); } + // TreePtr trees(int idx) const { return trees_[idx]; } + + virtual void Save(SerializationOut& ar) const { + size_t n_trees = trees_.size(); + std::cout << "[DEBUG] write " << n_trees << " trees" << std::endl; + ar << n_trees; + + if(true) std::cout << "[Forest][write] write number of trees " << n_trees << std::endl; + + for(size_t tree_idx = 0; tree_idx < trees_.size(); ++tree_idx) { + if(true) std::cout << "[Forest][write] write tree nb. " << tree_idx << std::endl; + trees_[tree_idx]->Save(ar); + } + } + + virtual void Load(SerializationIn& ar) { + size_t n_trees; + ar >> n_trees; + + if(true) std::cout << "[Forest][read] nTrees: " << n_trees << std::endl; + + trees_.clear(); + for(size_t i = 0; i < n_trees; ++i) { + if(true) std::cout << "[Forest][read] read tree " << (i+1) << " of " << n_trees << " - " << std::endl; + + auto tree = std::make_shared>(); + tree->Load(ar); + trees_.push_back(tree); + + if(true) std::cout << "[Forest][read] finished read tree " << (i+1) << " of " << n_trees << std::endl; + } + } + + +private: + std::vector>> trees_; +}; + diff --git a/hyperdepth/rf/leaffcn.h b/hyperdepth/rf/leaffcn.h new file mode 100644 index 0000000..db0cac9 --- /dev/null +++ b/hyperdepth/rf/leaffcn.h @@ -0,0 +1,99 @@ +#pragma once + +#include + +#include "common.h" +#include "data.h" + + +class ClassProbabilitiesLeafFunction { +public: + ClassProbabilitiesLeafFunction() : n_classes_(-1) {} + ClassProbabilitiesLeafFunction(int n_classes) : n_classes_(n_classes) {} + virtual ~ClassProbabilitiesLeafFunction() {} + + virtual std::shared_ptr Copy() const { + auto fcn = std::make_shared(); + fcn->n_classes_ = n_classes_; + fcn->counts_.resize(counts_.size()); + for(size_t idx = 0; idx < counts_.size(); ++idx) { + fcn->counts_[idx] = counts_[idx]; + } + fcn->sum_counts_ = sum_counts_; + + return fcn; + } + + virtual std::shared_ptr Create(const std::vector& samples) { + auto stat = std::make_shared(); + + stat->counts_.resize(n_classes_, 0); + for(auto sample : samples) { + auto ctarget = std::static_pointer_cast(sample.target); + stat->counts_[ctarget->cl()] += 1; + } + stat->sum_counts_ = samples.size(); + + return stat; + } + + virtual std::shared_ptr Reduce(const std::vector>& fcns) const { + auto stat = std::make_shared(); + auto cfcn0 = std::static_pointer_cast(fcns[0]); + stat->counts_.resize(cfcn0->counts_.size(), 0); + stat->sum_counts_ = 0; + + for(auto fcn : fcns) { + auto cfcn = std::static_pointer_cast(fcn); + for(size_t cl = 0; cl < stat->counts_.size(); ++cl) { + stat->counts_[cl] += cfcn->counts_[cl]; + } + stat->sum_counts_ += cfcn->sum_counts_; + } + + return stat; + } + + virtual int argmax() const { + int max_idx = 0; + int max_count = counts_[0]; + for(size_t idx = 1; idx < counts_.size(); ++idx) { + if(counts_[idx] > max_count) { + max_count = counts_[idx]; + max_idx = idx; + } + } + return max_idx; + } + + virtual void Save(SerializationOut& ar) const { + ar << n_classes_; + int n_counts = counts_.size(); + ar << n_counts; + for(int idx = 0; idx < n_counts; ++idx) { + ar << counts_[idx]; + } + ar << sum_counts_; + } + + virtual void Load(SerializationIn& ar) { + ar >> n_classes_; + int n_counts; + ar >> n_counts; + counts_.resize(n_counts); + for(int idx = 0; idx < n_counts; ++idx) { + ar >> counts_[idx]; + } + ar >> sum_counts_; + } + +public: + int n_classes_; + + std::vector counts_; + int sum_counts_; + +DISABLE_COPY_AND_ASSIGN(ClassProbabilitiesLeafFunction); +}; + + diff --git a/hyperdepth/rf/node.h b/hyperdepth/rf/node.h new file mode 100644 index 0000000..bef200a --- /dev/null +++ b/hyperdepth/rf/node.h @@ -0,0 +1,158 @@ +#pragma once + +#include + +#include "serialization.h" +#include "leaffcn.h" +#include "splitfcn.h" + +class Node { +public: + Node() {} + virtual ~Node() {} + + virtual std::shared_ptr Copy() const = 0; + + virtual int type() const = 0; + + virtual void Save(SerializationOut& ar) const = 0; + virtual void Load(SerializationIn& ar) = 0; + +}; + +typedef std::shared_ptr NodePtr; + + +template +class LeafNode : public Node { +public: + static const int TYPE = 0; + + LeafNode() {} + LeafNode(std::shared_ptr leaf_node_fcn) : leaf_node_fcn_(leaf_node_fcn) {} + + virtual ~LeafNode() {} + + virtual NodePtr Copy() const { + auto node = std::make_shared(); + node->leaf_node_fcn_ = leaf_node_fcn_->Copy(); + return node; + } + + virtual void Save(SerializationOut& ar) const { + leaf_node_fcn_->Save(ar); + } + + virtual void Load(SerializationIn& ar) { + leaf_node_fcn_ = std::make_shared(); + leaf_node_fcn_->Load(ar); + } + + virtual int type() const { return TYPE; }; + std::shared_ptr leaf_node_fcn() const { return leaf_node_fcn_; } + +private: + std::shared_ptr leaf_node_fcn_; + +DISABLE_COPY_AND_ASSIGN(LeafNode); +}; + + +template +class SplitNode : public Node { +public: + static const int TYPE = 1; + + SplitNode() {} + + SplitNode(NodePtr left, NodePtr right, std::shared_ptr split_fcn) : + left_(left), right_(right), split_fcn_(split_fcn) + {} + + virtual ~SplitNode() {} + + virtual std::shared_ptr Copy() const { + std::shared_ptr node = std::make_shared(); + node->left_ = left_->Copy(); + node->right_ = right_->Copy(); + node->split_fcn_ = split_fcn_->Copy(); + + return node; + } + + bool Split(SamplePtr sample) { + return split_fcn_->Split(sample); + } + + virtual void Save(SerializationOut& ar) const { + split_fcn_->Save(ar); + + //left + int type = left_->type(); + ar << type; + left_->Save(ar); + + //right + type = right_->type(); + ar << type; + right_->Save(ar); + } + + virtual void Load(SerializationIn& ar); + + + virtual int type() const { return TYPE; } + + NodePtr left() const { return left_; } + NodePtr right() const { return right_; } + std::shared_ptr split_fcn() const { return split_fcn_; } + + void set_left(NodePtr left) { left_ = left; } + void set_right(NodePtr right) { right_ = right; } + void set_split_fcn(std::shared_ptr split_fcn) { split_fcn_ = split_fcn; } + +public: + NodePtr left_; + NodePtr right_; + std::shared_ptr split_fcn_; + +DISABLE_COPY_AND_ASSIGN(SplitNode); +}; + + +template +NodePtr MakeNode(int type) { + NodePtr node; + if(type == LeafNode::TYPE) { + node = std::make_shared>(); + } + else if(type == SplitNode::TYPE) { + node = std::make_shared>(); + } + else { + std::cout << "[ERROR] unknown node type" << std::endl; + exit(-1); + } + + return node; +} + + +template +void SplitNode::Load(SerializationIn& ar) { + + split_fcn_ = std::make_shared(); + split_fcn_->Load(ar); + + //left + int left_type; + ar >> left_type; + left_ = MakeNode(left_type); + left_->Load(ar); + + //right + int right_type; + ar >> right_type; + right_ = MakeNode(right_type); + right_->Load(ar); +} diff --git a/hyperdepth/rf/serialization.h b/hyperdepth/rf/serialization.h new file mode 100644 index 0000000..8bd20c4 --- /dev/null +++ b/hyperdepth/rf/serialization.h @@ -0,0 +1,256 @@ +#pragma once + +#include + +class SerializationOut { +public: + SerializationOut(const std::string& path) : path_(path) {} + virtual ~SerializationOut() {} + + virtual SerializationOut& operator<<(const bool& v) = 0; + virtual SerializationOut& operator<<(const char& v) = 0; + virtual SerializationOut& operator<<(const int& v) = 0; + virtual SerializationOut& operator<<(const unsigned int& v) = 0; + virtual SerializationOut& operator<<(const long int& v) = 0; + virtual SerializationOut& operator<<(const unsigned long int& v) = 0; + virtual SerializationOut& operator<<(const long long int& v) = 0; + virtual SerializationOut& operator<<(const unsigned long long int& v) = 0; + virtual SerializationOut& operator<<(const float& v) = 0; + virtual SerializationOut& operator<<(const double& v) = 0; + +protected: + const std::string& path_; +}; + +class SerializationIn { +public: + SerializationIn(const std::string& path) : path_(path) {} + virtual ~SerializationIn() {} + + virtual SerializationIn& operator>>(bool& v) = 0; + virtual SerializationIn& operator>>(char& v) = 0; + virtual SerializationIn& operator>>(int& v) = 0; + virtual SerializationIn& operator>>(unsigned int& v) = 0; + virtual SerializationIn& operator>>(long int& v) = 0; + virtual SerializationIn& operator>>(unsigned long int& v) = 0; + virtual SerializationIn& operator>>(long long int& v) = 0; + virtual SerializationIn& operator>>(unsigned long long int& v) = 0; + virtual SerializationIn& operator>>(float& v) = 0; + virtual SerializationIn& operator>>(double& v) = 0; + +protected: + const std::string& path_; +}; + +class TextSerializationOut : public SerializationOut { +public: + TextSerializationOut(const std::string& path) : SerializationOut(path), + f_(path.c_str()) {} + virtual ~TextSerializationOut() { + f_.close(); + } + + virtual SerializationOut& operator<<(const bool& v) { + f_ << v << std::endl; + return (*this); + } + virtual SerializationOut& operator<<(const char& v) { + f_ << v << std::endl; + return (*this); + } + virtual SerializationOut& operator<<(const int& v) { + f_ << v << std::endl; + return (*this); + } + virtual SerializationOut& operator<<(const unsigned int& v) { + f_ << v << std::endl; + return (*this); + } + virtual SerializationOut& operator<<(const long int& v) { + f_ << v << std::endl; + return (*this); + } + virtual SerializationOut& operator<<(const unsigned long int& v) { + f_ << v << std::endl; + return (*this); + } + virtual SerializationOut& operator<<(const long long int& v) { + f_ << v << std::endl; + return (*this); + } + virtual SerializationOut& operator<<(const unsigned long long int& v) { + f_ << v << std::endl; + return (*this); + } + virtual SerializationOut& operator<<(const float& v) { + f_ << v << std::endl; + return (*this); + } + virtual SerializationOut& operator<<(const double& v) { + f_ << v << std::endl; + return (*this); + } + +protected: + std::ofstream f_; +}; + +class TextSerializationIn : public SerializationIn { +public: + TextSerializationIn(const std::string& path) : SerializationIn(path), + f_(path.c_str()) {} + virtual ~TextSerializationIn() { + f_.close(); + } + + virtual SerializationIn& operator>>(bool& v) { + f_ >> v; + return (*this); + } + virtual SerializationIn& operator>>(char& v) { + f_ >> v; + return (*this); + } + virtual SerializationIn& operator>>(int& v) { + f_ >> v; + return (*this); + } + virtual SerializationIn& operator>>(unsigned int& v) { + f_ >> v; + return (*this); + } + virtual SerializationIn& operator>>(long int& v) { + f_ >> v; + return (*this); + } + virtual SerializationIn& operator>>(unsigned long int& v) { + f_ >> v; + return (*this); + } + virtual SerializationIn& operator>>(long long int& v) { + f_ >> v; + return (*this); + } + virtual SerializationIn& operator>>(unsigned long long int& v) { + f_ >> v; + return (*this); + } + virtual SerializationIn& operator>>(float& v) { + f_ >> v; + return (*this); + } + virtual SerializationIn& operator>>(double& v) { + f_ >> v; + return (*this); + } + +protected: + std::ifstream f_; +}; + +class BinarySerializationOut : public SerializationOut { +public: + BinarySerializationOut(const std::string& path) : SerializationOut(path), + f_(path.c_str(), std::ios::binary) {} + virtual ~BinarySerializationOut() { + f_.close(); + } + + virtual SerializationOut& operator<<(const bool& v) { + f_.write((char*)&v, sizeof(bool)); + return (*this); + } + virtual SerializationOut& operator<<(const char& v) { + f_.write((char*)&v, sizeof(char)); + return (*this); + } + virtual SerializationOut& operator<<(const int& v) { + f_.write((char*)&v, sizeof(int)); + return (*this); + } + virtual SerializationOut& operator<<(const unsigned int& v) { + f_.write((char*)&v, sizeof(unsigned int)); + return (*this); + } + virtual SerializationOut& operator<<(const long int& v) { + f_.write((char*)&v, sizeof(long int)); + return (*this); + } + virtual SerializationOut& operator<<(const unsigned long int& v) { + f_.write((char*)&v, sizeof(unsigned long int)); + return (*this); + } + virtual SerializationOut& operator<<(const long long int& v) { + f_.write((char*)&v, sizeof(long long int)); + return (*this); + } + virtual SerializationOut& operator<<(const unsigned long long int& v) { + f_.write((char*)&v, sizeof(unsigned long long int)); + return (*this); + } + virtual SerializationOut& operator<<(const float& v) { + f_.write((char*)&v, sizeof(float)); + return (*this); + } + virtual SerializationOut& operator<<(const double& v) { + f_.write((char*)&v, sizeof(double)); + return (*this); + } + +protected: + std::ofstream f_; +}; + +class BinarySerializationIn : public SerializationIn { +public: + BinarySerializationIn(const std::string& path) : SerializationIn(path), + f_(path.c_str(), std::ios::binary) {} + virtual ~BinarySerializationIn() { + f_.close(); + } + + virtual SerializationIn& operator>>(bool& v) { + f_.read((char*)&v, sizeof(bool)); + return (*this); + } + virtual SerializationIn& operator>>(char& v) { + f_.read((char*)&v, sizeof(char)); + return (*this); + } + virtual SerializationIn& operator>>(int& v) { + f_.read((char*)&v, sizeof(int)); + return (*this); + } + virtual SerializationIn& operator>>(unsigned int& v) { + f_.read((char*)&v, sizeof(unsigned int)); + return (*this); + } + virtual SerializationIn& operator>>(long int& v) { + f_.read((char*)&v, sizeof(long int)); + return (*this); + } + virtual SerializationIn& operator>>(unsigned long int& v) { + f_.read((char*)&v, sizeof(unsigned long int)); + return (*this); + } + virtual SerializationIn& operator>>(long long int& v) { + f_.read((char*)&v, sizeof(long long int)); + return (*this); + } + virtual SerializationIn& operator>>(unsigned long long int& v) { + f_.read((char*)&v, sizeof(unsigned long long int)); + return (*this); + } + virtual SerializationIn& operator>>(float& v) { + f_.read((char*)&v, sizeof(float)); + return (*this); + } + virtual SerializationIn& operator>>(double& v) { + f_.read((char*)&v, sizeof(double)); + return (*this); + } + +protected: + std::ifstream f_; +}; + diff --git a/hyperdepth/rf/spliteval.h b/hyperdepth/rf/spliteval.h new file mode 100644 index 0000000..dc08d69 --- /dev/null +++ b/hyperdepth/rf/spliteval.h @@ -0,0 +1,71 @@ +#pragma once + +class SplitEvaluator { +public: + SplitEvaluator(bool normalize) + : normalize_(normalize) {} + + virtual ~SplitEvaluator() {} + + virtual float Eval(const std::vector& lefttargets, const std::vector& righttargets, int depth) const { + float purity_left = Purity(lefttargets, depth); + float purity_right = Purity(righttargets, depth); + + float normalize_left = 1.0; + float normalize_right = 1.0; + + if(normalize_) { + unsigned int n_left = lefttargets.size(); + unsigned int n_right = righttargets.size(); + unsigned int n_total = n_left + n_right; + + normalize_left = float(n_left) / float(n_total); + normalize_right = float(n_right) / float(n_total); + } + + float purity = purity_left * normalize_left + purity_right * normalize_right; + + return purity; + } + +protected: + virtual float Purity(const std::vector& targets, int depth) const = 0; + +protected: + bool normalize_; +}; + + + +class ClassificationIGSplitEvaluator : public SplitEvaluator { +public: + ClassificationIGSplitEvaluator(bool normalize, int n_classes) + : SplitEvaluator(normalize), n_classes_(n_classes) {} + virtual ~ClassificationIGSplitEvaluator() {} + +protected: + virtual float Purity(const std::vector& targets, int depth) const { + if(targets.size() == 0) return 0; + + std::vector ps; + ps.resize(n_classes_, 0); + for(auto target : targets) { + auto ctarget = std::static_pointer_cast(target.optimize_target); + ps[ctarget->cl()] += 1; + } + + float h = 0; + for(int cl = 0; cl < n_classes_; ++cl) { + float fi = float(ps[cl]) / float(targets.size()); + if(fi > 0) { + h = h - fi * std::log(fi); + } + } + + return h; + } + +private: + int n_classes_; +}; + diff --git a/hyperdepth/rf/splitfcn.h b/hyperdepth/rf/splitfcn.h new file mode 100644 index 0000000..966b1cd --- /dev/null +++ b/hyperdepth/rf/splitfcn.h @@ -0,0 +1,106 @@ +#pragma once + +#include + +class SplitFunction { +public: + SplitFunction() {} + virtual ~SplitFunction() {} + + virtual float Compute(SamplePtr sample) const = 0; + + virtual bool Split(SamplePtr sample) const { + return Compute(sample) < threshold_; + } + + virtual void Save(SerializationOut& ar) const { + ar << threshold_; + } + + virtual void Load(SerializationIn& ar) { + ar >> threshold_; + } + + virtual float threshold() const { return threshold_; } + virtual void set_threshold(float threshold) { threshold_ = threshold; } + +protected: + float threshold_; +}; + + + +class SplitFunctionPixelDifference : public SplitFunction { +public: + + SplitFunctionPixelDifference() {} + virtual ~SplitFunctionPixelDifference() {} + + virtual std::shared_ptr Copy() const { + std::shared_ptr split_fcn = std::make_shared(); + split_fcn->threshold_ = threshold_; + split_fcn->c0_ = c0_; + split_fcn->c1_ = c1_; + split_fcn->h0_ = h0_; + split_fcn->h1_ = h1_; + split_fcn->w0_ = w0_; + split_fcn->w1_ = w1_; + + return split_fcn; + } + + virtual std::shared_ptr Generate(std::mt19937& rng, const SamplePtr sample) const { + std::shared_ptr split_fcn = std::make_shared(); + + std::uniform_int_distribution cdist(0, sample->channels()-1); + split_fcn->c0_ = cdist(rng); + split_fcn->c1_ = cdist(rng); + + std::uniform_int_distribution hdist(0, sample->height()-1); + split_fcn->h0_ = hdist(rng); + split_fcn->h1_ = hdist(rng); + + std::uniform_int_distribution wdist(0, sample->width()-1); + split_fcn->w0_ = wdist(rng); + split_fcn->w1_ = wdist(rng); + + return split_fcn; + } + + virtual float Compute(SamplePtr sample) const { + return (*sample)(c0_, h0_, w0_) - (*sample)(c1_, h1_, w1_); + } + + virtual void Save(SerializationOut& ar) const { + SplitFunction::Save(ar); + ar << c0_; + ar << c1_; + ar << h0_; + ar << h1_; + ar << w0_; + ar << w1_; + } + + virtual void Load(SerializationIn& ar) { + SplitFunction::Load(ar); + + ar >> c0_; + ar >> c1_; + ar >> h0_; + ar >> h1_; + ar >> w0_; + ar >> w1_; + } + +private: + int c0_; + int c1_; + int h0_; + int h1_; + int w0_; + int w1_; + +DISABLE_COPY_AND_ASSIGN(SplitFunctionPixelDifference); +}; + + diff --git a/hyperdepth/rf/threadpool.h b/hyperdepth/rf/threadpool.h new file mode 100644 index 0000000..b9d9f0f --- /dev/null +++ b/hyperdepth/rf/threadpool.h @@ -0,0 +1,112 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class ThreadPool { +public: + ThreadPool(size_t); + template + auto enqueue(F&& f, Args&&... args) + -> std::future::type>; + ~ThreadPool(); + + bool has_running_tasks() { + std::unique_lock lock(running_tasks_mutex); + return n_running_tasks > 0; + } + +private: + // need to keep track of threads so we can join them + std::vector< std::thread > workers; + // the task queue + std::queue< std::function > tasks; + + int n_running_tasks; + + // synchronization + std::mutex queue_mutex; + std::mutex running_tasks_mutex; + std::condition_variable condition; + bool stop; +}; + +// the constructor just launches some amount of workers +inline ThreadPool::ThreadPool(size_t threads) + : n_running_tasks(0), stop(false) +{ + for(size_t i = 0;i task; + + { + std::unique_lock lock(this->queue_mutex); + this->condition.wait(lock, + [this]{ return this->stop || !this->tasks.empty(); }); + if(this->stop && this->tasks.empty()) + return; + task = std::move(this->tasks.front()); + this->tasks.pop(); + } + + { + std::unique_lock lock(this->running_tasks_mutex); + n_running_tasks++; + } + task(); + { + std::unique_lock lock(this->running_tasks_mutex); + n_running_tasks--; + } + } + } + ); +} + +// add new work item to the pool +template +auto ThreadPool::enqueue(F&& f, Args&&... args) + -> std::future::type> +{ + using return_type = typename std::result_of::type; + + auto task = std::make_shared< std::packaged_task >( + std::bind(std::forward(f), std::forward(args)...) + ); + + std::future res = task->get_future(); + { + std::unique_lock lock(queue_mutex); + + // don't allow enqueueing after stopping the pool + if(stop) + throw std::runtime_error("enqueue on stopped ThreadPool"); + + tasks.emplace([task](){ (*task)(); }); + } + condition.notify_one(); + return res; +} + +// the destructor joins all threads +inline ThreadPool::~ThreadPool() +{ + { + std::unique_lock lock(queue_mutex); + stop = true; + } + condition.notify_all(); + for(std::thread &worker: workers) + worker.join(); +} diff --git a/hyperdepth/rf/train.h b/hyperdepth/rf/train.h new file mode 100644 index 0000000..4f9d610 --- /dev/null +++ b/hyperdepth/rf/train.h @@ -0,0 +1,423 @@ +#pragma once + +#include +#include +#include + +#include "threadpool.h" + +#include "forest.h" +#include "spliteval.h" + + +enum class TrainType : int { + TRAIN = 0, + RETRAIN = 1, + RETRAIN_WITH_REPLACEMENT = 2 +}; + +struct TrainParameters { + TrainType train_type; + int n_trees; + int max_tree_depth; + int n_test_split_functions; + int n_test_thresholds; + int n_test_samples; + int min_samples_to_split; + int min_samples_for_leaf; + int print_node_info; + + TrainParameters() : + train_type(TrainType::TRAIN), + n_trees(5), + max_tree_depth(7), + n_test_split_functions(50), + n_test_thresholds(10), + n_test_samples(100), + min_samples_to_split(14), + min_samples_for_leaf(7), + print_node_info(100) + {} +}; + + +template +class TrainForest { +public: + TrainForest(const TrainParameters& params, const std::shared_ptr gen_split_fcn, const std::shared_ptr gen_leaf_fcn, const std::shared_ptr split_eval, int n_threads, bool verbose) + : params_(params), gen_split_fcn_(gen_split_fcn), gen_leaf_fcn_(gen_leaf_fcn), split_eval_(split_eval), n_threads(n_threads), verbose_(verbose) { + + n_created_nodes_ = 0; + n_max_nodes_ = 1; + unsigned long n_nodes_d = 1; + for(int depth = 0; depth < params.max_tree_depth; ++depth) { + n_nodes_d *= 2; + n_max_nodes_ += n_nodes_d; + } + n_max_nodes_ *= params.n_trees; + } + + virtual ~TrainForest() {} + + virtual std::shared_ptr> Train(const std::vector& samples, TrainType train_type, const std::shared_ptr>& old_forest) = 0; + +protected: + virtual void PrintParams() { + if(verbose_){ + #pragma omp critical (TrainForest_train) + { + std::cout << "[TRAIN] training forest " << std::endl; + std::cout << "[TRAIN] n_trees : " << params_.n_trees << std::endl; + std::cout << "[TRAIN] max_tree_depth : " << params_.max_tree_depth << std::endl; + std::cout << "[TRAIN] n_test_split_functions: " << params_.n_test_split_functions << std::endl; + std::cout << "[TRAIN] n_test_thresholds : " << params_.n_test_thresholds << std::endl; + std::cout << "[TRAIN] n_test_samples : " << params_.n_test_samples << std::endl; + std::cout << "[TRAIN] min_samples_to_split : " << params_.min_samples_to_split << std::endl; + } + } + } + + virtual void UpdateNodeInfo(unsigned int depth, bool leaf) { + if(verbose_) { + n_created_nodes_ += 1; + + if(leaf) { + unsigned long n_nodes_d = 1; + unsigned int n_remove_max_nodes = 0; + for(int d = depth; d < params_.max_tree_depth; ++d) { + n_nodes_d *= 2; + n_remove_max_nodes += n_nodes_d; + } + n_max_nodes_ -= n_remove_max_nodes; + } + + if(n_created_nodes_ % params_.print_node_info == 0 || n_created_nodes_ == n_max_nodes_) { + std::cout << "[Forest]" + << " created node number " << n_created_nodes_ + << " @ depth " << depth + << ", max. " << n_max_nodes_ << " left" + << " => " << (double(n_created_nodes_) / double(n_max_nodes_)) + << " done" << std::endl; + } + } + } + + virtual void SampleData(const std::vector& all, std::vector& sampled, std::mt19937& rng) { + unsigned int n = all.size(); + unsigned int k = params_.n_test_samples; + k = n < k ? n : k; + + std::set indices; + std::uniform_int_distribution udist(0, all.size()-1); + while(indices.size() < k) { + int idx = udist(rng); + indices.insert(idx); + } + + sampled.resize(k); + int sidx = 0; + for(int idx : indices) { + sampled[sidx] = all[idx]; + sidx += 1; + } + } + + virtual void Split(const std::shared_ptr& split_function, const std::vector& samples, std::vector& left, std::vector& right) { + for(auto sample : samples) { + if(split_function->Split(sample.sample)) { + left.push_back(sample); + } + else { + right.push_back(sample); + } + } + } + + + virtual std::shared_ptr OptimizeSplitFunction(const std::vector& samples, int depth, std::mt19937& rng) { + std::vector split_samples; + SampleData(samples, split_samples, rng); + + unsigned int min_samples_for_leaf = params_.min_samples_for_leaf; + + float min_cost = std::numeric_limits::max(); + std::shared_ptr best_split_fcn; + float best_threshold = 0; + + for(int split_fcn_idx = 0; split_fcn_idx < params_.n_test_split_functions; ++split_fcn_idx) { + auto split_fcn = gen_split_fcn_->Generate(rng, samples[0].sample); + + for(int threshold_idx = 0; threshold_idx < params_.n_test_thresholds; ++threshold_idx) { + std::uniform_int_distribution udist(0, split_samples.size()-1); + int rand_split_sample_idx = udist(rng); + float threshold = split_fcn->Compute(split_samples[rand_split_sample_idx].sample); + split_fcn->set_threshold(threshold); + + std::vector left; + std::vector right; + Split(split_fcn, split_samples, left, right); + if(left.size() < min_samples_for_leaf || right.size() < min_samples_for_leaf) { + continue; + } + + // std::cout << "split done " << left.size() << "," << right.size() << std::endl; + float split_cost = split_eval_->Eval(left, right, depth); + // std::cout << ", " << split_cost << ", " << threshold << "; " << std::endl; + + if(split_cost < min_cost) { + min_cost = split_cost; + best_split_fcn = split_fcn; + best_threshold = threshold; //need theshold extra because of pointer + } + } + } + + if(best_split_fcn != nullptr) { + best_split_fcn->set_threshold(best_threshold); + } + + return best_split_fcn; + } + + + virtual NodePtr CreateLeafNode(const std::vector& samples, unsigned int depth) { + auto leaf_fct = gen_leaf_fcn_->Create(samples); + auto node = std::make_shared>(leaf_fct); + + UpdateNodeInfo(depth, true); + + return node; + } + +protected: + const TrainParameters& params_; + const std::shared_ptr gen_split_fcn_; + const std::shared_ptr gen_leaf_fcn_; + const std::shared_ptr split_eval_; + int n_threads; + bool verbose_; + + unsigned long n_created_nodes_; + unsigned long n_max_nodes_; +}; + + +template +class TrainForestRecursive : public TrainForest { +public: + TrainForestRecursive(const TrainParameters& params, const std::shared_ptr gen_split_fcn, const std::shared_ptr gen_leaf_fcn, const std::shared_ptr split_eval, int n_threads, bool verbose) + : TrainForest(params, gen_split_fcn, gen_leaf_fcn, split_eval, n_threads, verbose) {} + + virtual ~TrainForestRecursive() {} + + virtual std::shared_ptr> Train(const std::vector& samples, TrainType train_type, const std::shared_ptr>& old_forest) { + + this->PrintParams(); + + auto tim = std::chrono::system_clock::now(); + auto forest = std::make_shared>(); + + omp_set_num_threads(this->n_threads); + #pragma omp parallel for ordered + for(size_t treeIdx = 0; treeIdx < this->params_.n_trees; ++treeIdx) { + auto treetim = std::chrono::system_clock::now(); + + #pragma omp critical (TrainForest_train) + { + if(this->verbose_){ + std::cout << "[TRAIN][START] training tree " << treeIdx << " of " << this->params_.n_trees << std::endl; + } + } + + std::shared_ptr> old_tree; + if(old_forest != 0 && treeIdx < old_forest->trees_size()) { + old_tree = old_forest->trees(treeIdx); + } + + std::random_device rd; + std::mt19937 rng(rd()); + + auto tree = Train(samples, train_type, old_tree,rng); + + #pragma omp critical (TrainForest_train) + { + forest->AddTree(tree); + if(this->verbose_){ + auto now = std::chrono::system_clock::now(); + auto ms = std::chrono::duration_cast(now - treetim); + std::cout << "[TRAIN][FINISHED] training tree " << treeIdx << " of " << this->params_.n_trees << " - took " << (ms.count() * 1e-3) << "[s]" << std::endl; + std::cout << "[TRAIN][FINISHED] " << (this->params_.n_trees - forest->trees_size()) << " left for training" << std::endl; + } + } + } + + if(this->verbose_){ + auto now = std::chrono::system_clock::now(); + auto ms = std::chrono::duration_cast(now - tim); + std::cout << "[TRAIN][FINISHED] training forest - took " << (ms.count() * 1e-3) << "[s]" << std::endl; + } + + return forest; + } + +private: + virtual std::shared_ptr> Train(const std::vector& samples, TrainType train_type, const std::shared_ptr>& old_tree, std::mt19937& rng) { + NodePtr old_root; + if(old_tree != nullptr) { + old_root = old_tree->root(); + } + + NodePtr root = Train(samples, train_type, old_root, 0, rng); + return std::make_shared>(root); + } + + virtual NodePtr Train(const std::vector& samples, TrainType train_type, const NodePtr& old_node, unsigned int depth, std::mt19937& rng) { + + if(depth < this->params_.max_tree_depth && samples.size() > this->params_.min_samples_to_split) { + std::shared_ptr best_split_fcn; + bool was_split_node = false; + if(old_node == nullptr || old_node->type() == LeafNode::TYPE) { + best_split_fcn = this->OptimizeSplitFunction(samples, depth, rng); + was_split_node = false; + } + else if(old_node->type() == SplitNode::TYPE) { + auto split_node = std::static_pointer_cast>(old_node); + best_split_fcn = split_node->split_fcn()->Copy(); + was_split_node = true; + } + + if(best_split_fcn == nullptr) { + if(old_node == nullptr || train_type == TrainType::TRAIN || train_type == TrainType::RETRAIN_WITH_REPLACEMENT) { + return this->CreateLeafNode(samples, depth); + } + else if(train_type == TrainType::RETRAIN) { + return old_node->Copy(); + } + else { + std::cout << "[ERROR] unknown train type" << std::endl; + exit(-1); + } + } + + // (1) split samples + std::vector leftsamples, rightsamples; + this->Split(best_split_fcn, samples, leftsamples, rightsamples); + + //output node information + this->UpdateNodeInfo(depth, false); + + //create split node - recursively train the siblings + if(was_split_node) { + auto split_node = std::static_pointer_cast>(old_node); + NodePtr left = this->Train(leftsamples, train_type, split_node->left(), depth + 1, rng); + NodePtr right = this->Train(rightsamples, train_type, split_node->right(), depth + 1, rng); + auto new_node = std::make_shared>(left, right, best_split_fcn); + return new_node; + } + else { + NodePtr left = this->Train(leftsamples, train_type, nullptr, depth + 1, rng); + NodePtr right = this->Train(rightsamples, train_type, nullptr, depth + 1, rng); + auto new_node = std::make_shared>(left, right, best_split_fcn); + return new_node; + } + } // if samples < min_samples || depth >= max_depth then make leaf node + else { + if(old_node == 0 || train_type == TrainType::TRAIN || train_type == TrainType::RETRAIN_WITH_REPLACEMENT) { + return this->CreateLeafNode(samples, depth); + } + else if(train_type == TrainType::RETRAIN) { + return old_node->Copy(); + } + else { + std::cout << "[ERROR] unknown train type" << std::endl; + exit(-1); + } + } + } + +}; + + +struct QueueTuple { + int depth; + std::vector train_data; + NodePtr* parent; + + QueueTuple() : depth(-1), train_data(), parent(nullptr) {} + QueueTuple(int depth, std::vector train_data, NodePtr* parent) : + depth(depth), train_data(train_data), parent(parent) {} +}; + +template +class TrainForestQueued : public TrainForest { +public: + TrainForestQueued(const TrainParameters& params, const std::shared_ptr gen_split_fcn, const std::shared_ptr gen_leaf_fcn, const std::shared_ptr split_eval, int n_threads, bool verbose) + : TrainForest(params, gen_split_fcn, gen_leaf_fcn, split_eval, n_threads, verbose) {} + + virtual ~TrainForestQueued() {} + + virtual std::shared_ptr> Train(const std::vector& samples, TrainType train_type, const std::shared_ptr>& old_forest) { + this->PrintParams(); + + auto tim = std::chrono::system_clock::now(); + auto forest = std::make_shared>(); + + std::cout << "[TRAIN] create pool with " << this->n_threads << " threads" << std::endl; + auto pool = std::make_shared(this->n_threads); + for(int treeidx = 0; treeidx < this->params_.n_trees; ++treeidx) { + auto tree = std::make_shared>(); + forest->AddTree(tree); + AddJob(pool, QueueTuple(0, samples, &(tree->root_))); + } + + while(pool->has_running_tasks()) { + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + } + + if(this->verbose_){ + auto now = std::chrono::system_clock::now(); + auto ms = std::chrono::duration_cast(now - tim); + std::cout << "[TRAIN][FINISHED] training forest - took " << (ms.count() * 1e-3) << "[s]" << std::endl; + } + + return forest; + } + +private: + virtual void AddJob(std::shared_ptr pool, QueueTuple data) { + pool->enqueue([this](std::shared_ptr pool, QueueTuple data) { + std::random_device rd; + std::mt19937 rng(rd()); + + std::shared_ptr best_split_fcn = nullptr; + + if(data.depth < this->params_.max_tree_depth && int(data.train_data.size()) > this->params_.min_samples_to_split) { + best_split_fcn = this->OptimizeSplitFunction(data.train_data, data.depth, rng); + } + + if(best_split_fcn == nullptr) { + auto node = this->CreateLeafNode(data.train_data, data.depth); + *(data.parent) = node; + } + else { + this->UpdateNodeInfo(data.depth, false); + auto node = std::make_shared>(); + node->split_fcn_ = best_split_fcn; + *(data.parent) = node; + + QueueTuple left; + QueueTuple right; + this->Split(best_split_fcn, data.train_data, left.train_data, right.train_data); + + left.depth = data.depth + 1; + right.depth = data.depth + 1; + + left.parent = &(node->left_); + right.parent = &(node->right_); + + this->AddJob(pool, left); + this->AddJob(pool, right); + } + }, pool, data); + } +}; diff --git a/hyperdepth/rf/tree.h b/hyperdepth/rf/tree.h new file mode 100644 index 0000000..bced027 --- /dev/null +++ b/hyperdepth/rf/tree.h @@ -0,0 +1,55 @@ +#pragma once + +#include "node.h" + +template +class Tree { +public: + Tree() : root_(nullptr) {} + Tree(NodePtr root) : root_(root) {} + + virtual ~Tree() {} + + std::shared_ptr inference(const SamplePtr sample) const { + if(root_ == nullptr) { + std::cout << "[ERROR] tree inference root node is NULL"; + exit(-1); + } + + NodePtr node = root_; + while(node->type() == SplitNode::TYPE) { + auto splitNode = std::static_pointer_cast>(node); + bool left = splitNode->Split(sample); + if(left) { + node = splitNode->left(); + } + else { + node = splitNode->right(); + } + } + + auto leaf_node = std::static_pointer_cast>(node); + return leaf_node->leaf_node_fcn(); + } + + NodePtr root() const { return root_; } + void set_root(NodePtr root) { root_ = root; } + + virtual void Save(SerializationOut& ar) const { + int type = root_->type(); + ar << type; + root_->Save(ar); + } + + virtual void Load(SerializationIn& ar) { + int type; + ar >> type; + root_ = MakeNode(type); + root_->Load(ar); + } + + +public: + NodePtr root_; +}; + diff --git a/hyperdepth/setup.py b/hyperdepth/setup.py new file mode 100644 index 0000000..00933cc --- /dev/null +++ b/hyperdepth/setup.py @@ -0,0 +1,45 @@ +from distutils.core import setup +from Cython.Build import cythonize +from distutils.extension import Extension +from Cython.Distutils import build_ext +import numpy as np +import platform +import os + +this_dir = os.path.dirname(__file__) + + +extra_compile_args = ['-O3', '-std=c++11'] +extra_link_args = [] + +print('using openmp') +extra_compile_args.append('-fopenmp') +extra_link_args.append('-fopenmp') + +sources = ['hyperdepth.pyx'] +extra_objects = [] +library_dirs = [] +libraries = ['m'] + +setup( + name="hyperdepth", + cmdclass= {'build_ext': build_ext}, + ext_modules=[ + Extension('hyperdepth', + sources, + extra_objects=extra_objects, + language='c++', + library_dirs=library_dirs, + libraries=libraries, + include_dirs=[ + np.get_include(), + ], + extra_compile_args=extra_compile_args, + extra_link_args=extra_link_args + ) + ] +) + + + + diff --git a/hyperdepth/train.cpp b/hyperdepth/train.cpp new file mode 100644 index 0000000..05a82c5 --- /dev/null +++ b/hyperdepth/train.cpp @@ -0,0 +1,52 @@ +#include "hyperdepth.h" +#include "rf/train.h" + +int main() { + cv::Mat_ im = read_im(0); + cv::Mat_ disp = read_disp(0); + int im_rows = im.rows; + int im_cols = im.cols; + std::cout << im.rows << "/" << im.cols << std::endl; + std::cout << disp.rows << "/" << disp.cols << std::endl; + + TrainParameters params; + params.n_trees = 6; + params.n_test_samples = 2048; + params.min_samples_to_split = 16; + params.min_samples_for_leaf = 8; + params.n_test_split_functions = 50; + params.n_test_thresholds = 10; + params.max_tree_depth = 8; + + int n_classes = im_cols; + int n_disp_bins = 16; + int depth_switch = 4; + + auto gen_split_fcn = std::make_shared(); + auto gen_leaf_fcn = std::make_shared(n_classes * n_disp_bins); + auto split_eval = std::make_shared(true, n_classes, n_disp_bins, depth_switch); + + for(int row = 0; row < im_rows; ++row) { + std::vector train_data; + for(int idx = 0; idx < 12; ++idx) { + std::cout << "read sample " << idx << std::endl; + im = read_im(idx); + disp = read_disp(idx); + + extract_row_samples(im, disp, row, train_data, true, n_disp_bins); + } + std::cout << "extracted " << train_data.size() << " train samples" << std::endl; + std::cout << "n_classes (" << n_classes << ") * n_disp_bins (" << n_disp_bins << ") = " << (n_classes * n_disp_bins) << std::endl; + + TrainForestQueued train(params, gen_split_fcn, gen_leaf_fcn, split_eval, true); + + auto forest = train.Train(train_data, TrainType::TRAIN, nullptr); + std::cout << "training done" << std::endl; + + std::ostringstream forest_path; + forest_path << "cforest_" << row << ".bin"; + BinarySerializationOut fout(forest_path.str()); + forest->Save(fout); + } +} + diff --git a/hyperdepth/vis_eval.py b/hyperdepth/vis_eval.py new file mode 100644 index 0000000..d6d9a92 --- /dev/null +++ b/hyperdepth/vis_eval.py @@ -0,0 +1,15 @@ +import numpy as np +import matplotlib.pyplot as plt +import cv2 + +orig = cv2.imread('disp_orig.png', cv2.IMREAD_ANYDEPTH).astype(np.float32) +ta = cv2.imread('disp_ta.png', cv2.IMREAD_ANYDEPTH).astype(np.float32) +es = cv2.imread('disp_es.png', cv2.IMREAD_ANYDEPTH).astype(np.float32) + + +plt.figure() +plt.subplot(2,2,1); plt.imshow(orig / 16, vmin=0, vmax=4, cmap='magma') +plt.subplot(2,2,2); plt.imshow(ta / 16, vmin=0, vmax=4, cmap='magma') +plt.subplot(2,2,3); plt.imshow(es / 16, vmin=0, vmax=4, cmap='magma') +plt.subplot(2,2,4); plt.imshow(np.abs(es - ta) / 16, vmin=0, vmax=1, cmap='magma') +plt.show() diff --git a/img/img.png b/img/img.png new file mode 100644 index 0000000000000000000000000000000000000000..663fce241fba195d204b62674b34aa2d56d08a91 GIT binary patch literal 1081568 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�dOD2ru~)`!M|k~0Z((w|9W_U93TQXnp;2-wEy4LD|BiJAAjhf zs+`plF0ShKb!feFt^TRRHgC9U4{&|Z_DBIF}>S8JfU{wZY3J8-&qzqS)Vbu zofL{C!eZv7U3NbFMc_o8qisghp=y=kBGrChu~!kL++l6yh*-I~ET>=I;3tP~cxG+g zzM4Mw^)sg!4lX?wtPa;4Y*a+K)8%c_+NN|F--b7G1E+OvIu$th!>Rm>JiERv3pI$* zpcL_m`Q2O{hj_BvSYEn%M_~_Vm*JjRNJ`H)8%$h>evXJ=^43Y?Z_l{vh5X9m*pXck zla+g8Nx|Bs!M;PyOXddh3Js!&wjG79=7uLsHs`hG`VKO<+-&PY_S8w0<4|3x-g=i| z{d$BP|h8k^#)Q+in z19CGi%47wOLmC4+iA9Blg@Pdb#$O@J0lNw8d4s%Z4TtW{llM)GDU-_tATUBMr=n2hREalO=0UOW=IDs^PrK%D2fDBkEQ8WgasMeN9C809`0cZu-fCx|vWKbRI zlRyyY2*fFv)d*Ap4%#@#0(C$WkVSc^QJ|K7EM9feLDhD^YfT0&oM_y05DW$OaBlmH#SW5ipqEY0LN{3>K)^ zZQr1Ln_{V`&;TEjXc>@5Kp-Fw4@pi!-Wr`0GI)YAQ8jdi2)k2N9FCa8QoxGUSnw=Xn$O{is(RR=>8sgL#vW3F7aMUcxysWThFb2TxM4JaOg5uf%o$)M7?QKaY$K#G*IkLexWZ7nm=@Mp+A$EPlrK(4zz3CbCB6kBDT_FawupBfR3E5C&g=v#;j+l9jku(vs^p0b|h`(tVLs)X)l>%ygPd{{Y&TwR+`|x z{?oHo^dFt?zM5SONNBWrvLr2bsgW#cD%WIl2)UjtTDuT6*Jh}ylz~2|zu@REP#%GICJuawRX^ZMcjEBle7A0bU4^VbA`t_?@aHR(sdI1U+3LBOD z)jwT#)gT$tuwldIzw_Bd+&mCNd5D|%lEZ8#9+FW|E;5eD%F4Rrl1r|fIFW&%3qjz( zvrx*WFY#i_Nqlfdyp=gfybZloqyY&P0UBzA2o^Qrfm^3O;KTw6y9D%Sp!VgvynAOy zBjT#;O(fa^Lje}B0(a9%1pvvwzy6i!$g}AFarC~wD&_Hb9Ka`^e3B;S?nqoJG-hpm zbEnxUjC_B*Kc&8&*>}=Y|L{YPnOJVxl$*Bi*#33ADhL_CIH0YX5aRN@dmdSgo+~i$ z7~1=shOuA0^4`&`&qkfvVs7-m-E>);dwcG$mrbg?`QEY*w|w$yr_FcVdR_05lZb{6 zZP^kPqX6D|>#bQO?^i?*ytMzNv17-+^2#ge@7I1k<@N8rTWb8y;c&PO27|#sQ&1R+ zi>t4`div#KA1*KV0#T~{qVPN)i3s!NZ3`Z=2DUk*P>L*BqhW@!Eo7dz2tq637ZM2Y z6DLkzx2_g28I2CJ*t(K7jf2fBgC9-S^-B&tOpYdKJJ8 zqyepgT$-Gj=+x9;G#V&6@1%`WHX7kUi5O9uKREz9&egcI001BWNkl0@Lb$Ur68)LGdnD7juk@Xz^j-1Iqe|K`;s zgha@8n$cgGQyH;D01%CPiI-G{9K7KFz|YtM3_Q;=2pB?_p43zBti{+82>yGA&*uw= z!&|p*9XodHj2XIqM~30-W~19)_s#myfs?^K#fR>A%~F)(8QLXL?=z&QsG`UUT;Y9V z%0Ao3M8ZZ}GXLrH=TV3Lxm*gxI0L7uYKLh@2h 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

3*ZEN@1g8dv@Iwo2#3Srut%YY7scS7J$w32 zw?DXIj9Slr@WBTwSFY^ezyFRMI{*wBGNf0pUL8Ajyo*bk_1I%AKmDQSxk^g%I;S8i zS;~}@;DaE7C%G#nB_*y8{n!=Yh_cm-i z|J;dPDKID}>*zrn`*yh#bgO0eir0}y*Xy~# z>kb`veR*)?;q=N-+4&OHX?1#9qD|Yqprj#E<^s_$Mb=k(hKKXv}j)xPB)kb zJTwO-?!GlyaB=l;9y@ppU6 zMF^SVtFJyEK77b)uPxrcf6Labp8~-vs9R7fRWH4C*Nz>9#A%k}6!Gzzr=I%T)%?vA zdcCD>TT9!v-EO>bOm%gMv`{1(`mot5^m=O2r18?kHw7S29j#AvH0Py1JTg$eA3Xth zp>xLA{jrGBzs*F8L&S;(+cl_>Gz1fz0_bbG&XU!g8IDF+u2jO&!AoRnu6!aXXowaWJC3Me>z*Sw-BFDR0%Nt1`NdX4{dd7!-BzWz|S#-3I%G_Olu%J}Pc zkA68Wzf;;Ry*Ceg#n3K2SmVf;n4i?Y)rk+c8C$1n;I>rVbua&+;jlWWU@Au6p)f;C0aazJv~QAb0Wcf)%{iLFe% zZp}Wkvp%)0vETSMKfQN8B~RObeEjWCWZJ7jWhXqz*{Ve^mnUW@rv4?R^rZjz9#2vl zxBhGU+HW1NEz3*GRE0v~2MhFO3pMu%)%|D_JpjAPYSLbDTMxX@%MDv+v_y`vf=m?;o zK#NW9GPya&0rZVHPXAxa5>menwH9LldP)+YXRcDw1ArEA0D38R34mUj3X;Ke1rU@v zixCOs_W^n!64P;%+ml?3E~_kbBa3x|eM!$(!6OzFVdUh@g}E zC!Gh38}=Y;rLIXpv%~A}xRsD4G{9J|t4K zKrsSnUTC`D0XJLwj4}oM;wukU%f|^rK^hMLT6a`@y)Hf>iMhU?d;ji;27X!hhAboF zVAsHJhQkD>8UX^|6QrI{?1>+m7CtRh6cT{8fB{GW;(`s?HwPd)XNe1ruH7EGBk#q0B~Sh1q;SmC?xzI)Zri|I&MK-+r@%qr*>A=n1o z3Pc`-Rx3^RiJ*#r)d*}x=+)`@$}j9k;2Q*e0C)_g&!dGN90k!C$Je~x^V?&aH@$NP zl$H`hgOEH6of)G}n;EzD`2KFopBQ)Jxb-vUFZujCU7yj}yDPK^KWzV|yRoN^)(5wr zzj1K?*_i)C`=?$${?g~>dv`h`LHI`uzG1?f;}&%~_k5501|8~SMs^e`l4?q^dlEHh zzPR+U5Bg6Y*&53O=l*iSvt)Xg32CB;+4t6c`Dud=kM`};_w;W5wt}(i7kHWyDd>*< zjCD0a={cbR8+@v7Z@R5h%a$!ut#com=_j?L7iD4025N^OT8=<5>S>FKNs5o0E>>E! z*U!H7%#OYDo|>l?)O+^qnVdc3i_gAf5m6ddFR!Nj8Ub4h#a>!~pT4M@WoZMus<2b- zfW8SMO;m<%j|Gn(LtZ@Ax__wuInpQ1yFckOzVlgee17s|UcElUnz3R3#>tqWK%^q8 zELi8=8#q`=Ri|g9PyKmj+#}hA2TH$u{Rbpl(Ki`}@9^jVjO?1Dv9@?v-D6PWOMidK zU@*8`7Y!lLojdo`Q%?;VH0Zwj?hBp^a)}(H{~wc>w&C!tc*Bm604m;ZeRF=_8>inG z3)urWbnH;KPTekh;(`TyLBS=btFQN+I#yD3{&-^EKp%kms^~mX$hoTUy$@Q?HB1qB zFb)TiFIp2Bq zfMBD)WcBG|UmiBKj5lOi8qd3~e`jRT>f#O)+m`RGsw;AwUU$LTCgJ>^T5xQ3@1&%* z)(!8R5@~wMyS>)Ef41O*ZhTZcy1xFpTT(ZCQR%1)x9e*T1%yxkQk>dKm)=rCbIcdd zm#4MT&U`uRt9do|yqMlTU$=3obNEEl@%_@KDT4=hqqCSYfzB(PlcC7h!iLhVk6&pB6wneb^zIEgZEwh@^=jT zFa5NQN^lh&Q$+EIcN;KJK3_TfG#1x6gGI zS%+2--$5DmCQy$IbA_9fVZehSdNl;vA`3~fq9pqefGZL+BI$>QK;8tVk42@(vj`v- z1sefJP%^SJIT|^O{FE>hGz6IsK_E3Ei4(iO2r2|6S@Z>=l128(<;f?Fy%PDnME^&| z^hi^I7~~Q!*+kT3qAU%SY6MbIWr9-!KQRy@SbrSs00{PFf{TVlgD?#fkO-s#Rv-yT z1av?gLA?aZ=+y=7adwB<;njI7(<&P+jg6K@pVsF#xP4k*gSEjHZ)-xsEbb_41`I$V zU;>hX6hH?gA4I!u==2BW8S2+6^s5iq@KD5>L8g*HpGx+zet9XTaL1) zb}TPmwzMXxgk%j$6d+Q7Kmj7C3(F4iU`~Cog`~?USW}AxdvT*KD^8bgmNE2B1zl|C z++7Pg$#QzJm^&WH_~OtU2eP?G*^&;*7- zJOwk53@`u(u#!NP{MMpl)#@W$gczgATjbs&QTq}Y06IVcxPTB)1E>KL$&VCt_aL=Z zvjt2-^!=m-3%)BT zxaF@m-V`maG@H$(rKJf82|Aq)KtVx49YRmrc6>f<`mdbm3)DjZ-Li!`E_KYFy)5Xv zpi+aDCxoJ4wjuZnLT@3{@`WP`*4)=frf!nkIv*(AKmE@K(k<`;bpUdd*sW*0C*mA zXZpyircn*}Ef$XU(4!J9`nwxn|0I%zft1+&ylTf_bLV=oyN;dcjoUEwP8~y)0LkZXbxQ>+zBY!2>8=so6hn`Z$gLa{cZr z@p=H4;q?GiDmF3M>~ovujGog}bMbIE__#PmVmi|7k>3l z)5F7qxhe}@1HTfXMp&X(6z3`guSLTrVx|G8W6!HXkcM!Xd+lXMBSqR(52!?lRF&ih z3mVC5x1vDEuUfP@P+_-T-$N8|_W5sH{Oxvc;km@&o$Iz2 zh3Z}IGd1PQ4(MAYTRNpD^~u@)x7FDVZ@MvAlioGnQRz+0)vB$Us5f+a-35QWr?Ea_FY{z~F_r9V2>JP+-!B%TLh;^) zn;vhW(X&UlIv854yucgdBGy!9{H$a?icb9uc|SYPod~S|-ZAQqxKPMXvBAII8@T;m zb5W6ap*WJ1uDEjsw{25&&yHxH0sjtUBL=Srke;5N{`q8VcA~uz4FZhxufr!4DDvIP zSRG2o`{HL0Qg>6JRN!VK|GyZSl@KdF2DpeKg31P~)X|3CJ=J3NYNfB&7jeY2ao>5xM2y(7IS0s;!67(fxbSg|W27W@fU z5gRC?BGQ!JL7LKgNJ0qdZPPZ}>&)+ulN~0Z$o<}Xm3z(S$+OSw?97>&&CF-dc|Y%Y zUxJKL5J_ud-7_mn2DapsNMV2w?WGz6*`1uH)Uu>pPgVxN5S2p7>Q*w#B~ZSkj~{$a z1WBBSNYzK7+=v>2<4GsUAV9t-G7pj{+N{cdfv-30Y=WX_p^RVqy$=^M2Zq=hyhUK5$1x<&l(P)%wN{~qW++Ve%-xH7Tr z>w@!*ko~PZ&I}NwUdk*83fGXwUPADt=|$2S1P!Jo=wC`k(nlnHkZq*AS(9BsgRXMAynHK|XGsZF?49aZZ2PQy%NXSY-v>pe63R+g6K zxurs)x!AjAQJK8DaD%_{BHx7miw*r{7E1_9iV8zEh0C-UKS}G5DlaP zY9Jmk@reB#v5og|WBjM%{W+c?Bi$8MhldRtcJ-$T3F?G|z9Z3h@#4j9ySs1SzRWTP zY8rR3&Q16|^iWHuUt0zy|PybuGj{FVgm zX;=X>S@Rpp`sCAvUv3EjLtiMN`Wb01^x}E`_GuS?`uz9g{FGtc;tt^J(dbrnpv^nT z*|fa)^)}iz6WeTk_!pPg51{05!NFsDT4i*&n;jcK1O-YL!Z;qU9@D(bcUu>JWog+1 z5u4sRu^rq!_m1e*YuMXwzddc?fF`ZOLt^{=@>z(py)owJH=k(QEF~pn`SRtb zj+~k_Wm1?ntgp!w($}btrN4M}@m&-A7uT#CG3B#^(GhG|?;#KM>$k;~yCvL%&`*wJ z_q`aOcYyt){dX{AIGj>4pgC6!kgODK+_HjchBFSy>sVI04r9kaJ$_nPo6Z# zH5FcYXF^R`A9D%J)mXodYu)mCw}I2|+>*EDdXPPU4oCvf_pIU>RR^T%|IfF*Ua!!% ziEr5^9zf>h%oE2fM}JFDtGRdIjR1H+FY9kn_4|1@B51_M#_DvsrAwEN9XnR9zjAsf zPo5kxqVD-RbLQ-pEn7y89GRS)1W+oKE-p?N>~(QL^E518ymX^%4-o@{@HGu3NFXLK=C8#@tW&NJ>Z%gd@bw@0#@i7 zoQV(IHERPD#4uF3p%g$nplJZyOFct^*DK&r!NtRCL`?{4uQibH-{jQ=Xw%gz6&?le zy{?XdkN3;uaY)oTK#oVFfQdyW;){W|pS!TKTHMVH&Q_juUdgS{n{`j&Cv*^2eQRqQyW zY!Y4Y)%KLx6YQ7GtzI9W{ppUP&1YKA9$mQQY-pSKEkhRQQlm{hnx0zltF5Tke7vC9 zn3m})&g_0_y)r5!YeQCCk9bqN2(QhnkJIJs%|E*MxG^=n`N(9N=hQm3D!b012!G)R~zQOXR7JbxmDw*8M@uCq**#Xk*=-whZy*so4rGB|99x3?8!jK zgnITlF+8@|;8uug*1OfGc;%*8S!38SYq6!S>jI@-26d&Qh6Y;xsd~`=Q7BEajg?E- z|671LN``PXaH(bL6EdptFaM4=#=koReW9;)7SF;*1y$w=#!W8x84LUi8293Ck00pRm%Ius7jtQ_%jf)8|A|-M@PH)xMhSYj_ zF9ExVA+4YFlUIloRVPU#Va*;2=Du)7-Ef-btrzr_u5n$FkExI5Q$Y#{EmOr2WIFha ztOW$Q@PVLOJu5p3X;3Xwv3J!M5JS+tHW2jdmdrf7L4)o_$o{|Sr|$}EO#mP!=#L@Q z8>L~DM6Hr&=JE+gWI@u{k$`)789-j`B%hM>At(4FD0nJ>F8ICJ4>n^{&bdwbB;^61 zX^K|ylu|)4G+ER0-li=F#%MH1ZmpC~vUPXO1Ft1s{lom}8)fCiev&9JW%zS1`K1%s zyVXTZ)d;hm0Q4mDa_|wS>;x1L&ottSM&@(_pz5A0$PgS_qG1NTAUJ>{35y`|1hV(D zenPh=B43=3(>OE=k3w(N6X!IGq1L7ofoLERNR=t=H0t3r#-9;i{KM6*qpIJ)KG)k| z*|KG6X=ziZPUScbz#HvfctAIGL(0#}r8`raEPrY70X3UuA z=xAy85r{mq?_|fL;(MR~3SY5Gkp9elSs_xkFlM!vhFGs!7XP-{6Xu!FlEXJg0 zFg~y~$YP+7CubYVz3`rf(A(qv=%bHTf7HLYxGXNwQ~CY}70XKo=)0Lr$^H8ETeohV zPNx;|qIKIWtj4LZ!cW9aA(0zQ)0@nhuTkj{GLzeE$cs~`>*9c0qESLYf;mm z5TQp(1omDEv5OQ%WoKu5Jf7{_x6gZV-o^!=&wlXH@*%_63OzMuG)4|X$aQh{?@-ex zB;}bl&&XFEIda5oHV+y!NUc^&cO$G01cV?0ex`l&7oC zE0qThjAPm6Z@(Qc<6Hf6(W+IeW5O6dk#L= zKi^3pqqXvSO7VXXHwM$mXwUA`&+uFqPEF-dW|F(wK zv4S@Mh*AAo_#GZ&^GHLR=rbSf%3giO*gAUL{-=L^`WH{7-LBxA7EesqSdZ0nVa)}B zW^(rz4*zfn1<`Buoc}p{=v%#$`oso&fwC-1S&n1yqs@-3$=m-`&d{e@mS3_}6*!Nq zFKyL7qU^FW{g7qMI($ch=aJFgkKd<+D@uFB+MfK`gZ)NvnD1)gi-Hs=-v86p` zD50Y%F9M$jZoc`U=qD|oL0Nm40IbHvK}gVCs|5RB8}xtv5R6Q9#~TFH$XlX8p^+hI zjd81BT3%k~R(f?1CC(N>dx%E7#Ahd97tx#{YY2Iipk5MaPB3~RB~R4wrENq|JiHR2 zUIyz%fahU&7NE1jyM+@(*6{ zLB0(#f06Jch&~~q(vz=?KyzeAGLw?9S2_3r1;7AWfB|?w8zg;`?vnxl zD25hUN}y?hCPaIW!V^^5E;0B@sP}wOs!K#2nMRaJ>qrp4TIS?I1a^Ga zn=8b9HS%YFtWK@Le*`Ls4O$3l^{}$=E8rogO{$u~%c05LFM_7( z4CN6tp=E;8TPTPWAQCD)88?!8qd*I+pEcGPwRWwK^LZ2=tKM20Qd=HX?o_*6Y93TP z5CfQkRZW(I_Sydt(nMq2`cdO@dNi6VAWk3<@cDeo^L8j1v@xcor2$Z>>foX0pL`C$ zgAYDvHk&{B%ir++s*95QEGh+n5!>a=edKaN)@c+kcs zA(7op&40{$dD&tw{8K;tf3JAly}^h+ui6(_i&T$IA;OOiYJ8eZO`8KeTsLi~L_O); zqz>v1?bvok%INd^+)La)i$7BoMbq@afkVFk{`+5k`6Y2&;vIczUYq{fp?#-Dr;na8 zWy*8UJ?C^f(>{1+uCNWi+0eBG?4kQ!UXH^TMvor7XV0E??b;a<4VqTHUt0e|yLPP| z4o3qN`|9WmO(eyx{Qk#7hYr2+$}34pNx%R8``EE#%gf7ia&nTAk^oE?JJIcS+hU__ z4%@l)>qn0sEeHaDMT-_qo%*<1jq9q=MjEe)*8}L>uJg0cKA95V;?sxMO?~`dl~yzu z3^(lI;l&qU)Mzx((J`n8U&;;E1c2VXd-u|%pU<1UXpR2#4BX$Cr~cCD0Bi$LifA9W z3TOk2=XA$Yy?ztrWESzJ%RCx5ZXgp+s88M-+TUs5@Pl>!^K&n54m7_KYB&R6ZhRm$ zoV5s%+Lw6r3<4TBNRNwrM0#0&bUxQaZM;Ag5XK1Qpg4gt0MOZVwIQ`cfzV(vI5ZA( zq}i=>*BEO=N(_3>iULhWL@7W#5E7)=EAL0L0o@vJ?#B4v907`=AP7F6Z`G<*lP6EU z-e&&qf8+-A6)P%5zaN!V{J7E1gTF zKI-#|{s5ISscXC0x1amR9!{^$UU|HD-=&zIiB*|qm(|ztv0mqXIJ4oQ4Sr964^cU) zJXxEvC$6~DQQ>mdcybREN2VHR8eJzebvyiqc-_%ec}g{~k-AyL#C7YORg}1&#LFnS9%}ZSC8)uU~5qMzdy=WD2`-14a);0MN>mAEFiLsRIBV z4W|et#XoV~41cclTwF+;QGI0?sFVF(NIy9f{?~kH|4hV9S_sHku}Z-6hkiwk@t5SY znBua?a?u+k(aX^!(rY4J4#F-an3Ck(D)Cn3Zmy(5A_+K45SE0?%X%aN!NSVKswgsV!ZtDq>6Vr8l?JV4VhcEWA{b18+Bf%v{4@r(Qu z6}YL6w+m1Qw`78ofoR$APzbtiDC^HdlBNoI01D6m-bTp&zwGvrfO2V)4rE5#QWldd z;YgUf1gWDQs1T4qd^xf&*UuptEvUtOrG2uE)TX48FMoxMn=hp;sWd8OXQ##c`}*=< z*IUS5q?#IL;p1=fSVB=9gA&55*TPPQ zl(cN%Ef=*9J`Xg4B4X0pU~!%b79?4L_DC~>0B}CeU@;hLj6TliQn_l3HRedOL*pO| zjP7MFq?)Tf+c;pu z>G^G!kHb}kkt2|$1gk-q162p{K~oH%fUv%C#sghw2xa(n=Bxc5eyP2++CM7n5CzeK z!$u4WK{ySUi1AQQ{4nO8{Z-DuqrDejZee-xobQxx0+MIGeGldzM?x6xX_}jxdpQ5s zVVY-|q!i_(DKYu>s-}iOc*tE%yQ$l`Ya;0icr5S(Nb1o;=X6n7xkf0~!U$*p6`;WO z9D1fuyZ)3Nmzc_t001BWNkl2;zHPk@6Y@ouEx%BC| z)22hZj{56ghrtpK71%3j=W>Q*ela28{@BvIyR6*eiwmS zeJ$Vysz~OsLv8yb+gK?)H*~2XvjG3F5i&--W+>qC{qxjIGC})l8GR+(L;&ZXZBPLZ zUw`BvO=*{c;QJmZxQ29o0k8vFzzT!|0U!qe5Jn3%0;2;MGAX+%tO|hAU5Ad9Mwhyk z?#l4WGE*4)Sg#oDmf*!U2V)0)#FS{`s<7PvtRJLf*f-K(vuNTV9RGT*L`Jaf@ z)q=yNcwz?IqqBb164%}%-t>!(9ft&wQp7|m2K4fmS2|B*#D4rDShnK-eH-;+n!0BP zil&^$(tVYdum|qQe&_?A-Qy{$XuEb!<-YUY%32Xr#m>_mmd&zVHVYyZJEmLKr#n4X zFC~g+KiKNEdy~hsE8Tzb!j}hpUNNj$c(aL}%;(C6eSF8|T{#z4o$vSNpzY7^if$iy z;;WOfJ>ms{ifUm@-;|sCYkpa_t?$e>=QiaZT$L-x%JweFd3tT%+H!Yjj8egi z9PO_vbROPd)`TitPLXEm@K{Aju4naoB?In`FeNIB@_Z4|jJe1g8PCTx<<1{>uh<=Z zI>XyR+0g34UE`{{SQXnn4nSyVs6ufQQZ^Is#J2sgahT8(+sS#!9-Up`RuwRgD`1g) z)JEPCTuXwX2w+7B@)BAlN9QGoOfC)qKti7gx-9|pQYAoAhn9D22-#oK&?gW%*^EHv z#CVn<{*sD4LGZ~(PT_a@w-xK`6KH=x~;^--W7DZG&I9mWEHinm;9O~q@E56dA{Q!in){5vf+c_wu~= zKc279Dr`2}<;#~75)zIbJ1GcE_wMas^T3(&;dh(2ZQIthYgesS`@jPaGywgbPN&=L ze)!?XM~xa)QBnNDOEc`Q8Ik{}@@Rx)cf_1C3De=pf@p-lKWHN`9NZo#QxW?-_NYLo z%wN#;WKqqJTjk9<_aAFTGcThg66*WVi~%J=kg|aY>an>m^UJ>8Zad(1iY2yc0Ra{) zWF%P%V&(a=wX4=d36WACjx3m3dub-O?F5Z;K$l*#n5-T7r|v%01Vwi6@rWOZ*=@(f z>^S} zh|8&nY4KEcQE5?*x|LNOI$*#6?VE92Zg^7Dqzg;FFoSm~eXLs9_F7c6h4NBobIUW~zZ(G}nJ2)G}Y|gQ7+_+JvtBgskY1Ow?bnCc|kMt@&cmQBQpT5cJvtkC$+?IXj zgV*6;VKf06+}9f!_N1hw&%aA^s54^KcZQ&A*REaV|C9+6CKPgK=!58MTPlA zc{bHI-+c4tn{UR(##UEXFI%?knP=*$;tU-+G$SJez^X@9`@%hgvIa&*#`rErqxY4H z6P^?M(7F(3QQ&w&)mdTc%_bNNJ zr1e^ZL0`3Qzpi(?q~l_Zo+Eb>@_+6T+PZmBrufZaQmh)<>Hy=Zh2W>6QP> z$-)gMZN*kal+kPV#Sdwj^~15zd!9P<%9h=auTw_oQpdC@KUv)Esh(>mu4;RK2V+yi zZLjps+?+!z6_@tpJFWi8Lf5cq30vl!x^qsKs(ib`plCNDeC11Lj;<|;OjNx$>QJA_ ziDRB>a{J>+3#Xqwxwp1O&rn{+7iPPszL7ZS?lx;aGxr~3Shc9);WuMny+1#>t(xVi zvO?eYS)KuRTq9?48a_0oPT4$GWent26>K=2kTy_od3@D2MQpgdD}Wz1b`+Qs2F^hhXfUL44eW4xPEe}?rA7)R%j{QeQ9@Em$XD?PQU_BN;7zs_1tJo7%o%FIGb8VC_NNO_@!(9UL<-!tI=2ZvLA?ZNU z8lpHaN!AbqT++#rqjh1f7@b^FSsEOAdjc>nwt74=Sf-OvdVf`!H zP_`iFf^7YaDn;8-^S1tHt8ar241<34PH=vY( z@N!pe=6c_7BV>OIh5Or;{{6pE5V>)8Qsw2`qzO2B3IHhDwDd!OLbtYP({LtT?Z$on z3X25O=fC)=*XoM6dq~+2yJ)eYQ(}X}A&2Q3!1{7fUc%Ys6n@G7TG~MVDu>S+q`9l9 z{Qzv$#J~HBP==hyAG}%pB&qqpk=fZK!!{7&mqxm1fctz-i#s9iE|-n^A7wZe*)M1}t-V>0YVxB!WsX#l1cI^~ueCKA-u0&I==kTAKz0;WrdZ zwM+mmv#qqmz3Q8lcVj$c)C^4&DB2>5lqyWM{`o^^e$Ek~Gr?+vTL7(t@$xU8;l^j7 zpw2p6LIo{=5A;!F)Hd^I?tLoy3uyY2VGW&)e;@~+k3Xo+jo>Dsl3jl(<7 z!EAs7rKR8E*mhU;!`13;%A;-e=2ceo16^)XUl3Pj&YA01yK|!nMh4Kj<%XPf(mA~kf!=TjOnB2KN3Z8 z#flZrKmWX1t?t*aUxV9Br_;rnQa^gOxa}i7Tt2gDvT4f5(3&z20I^#1z3gKO8F~-K z?;U?(yM6snqcdyHZhrHli4!M=hlk$)vfs9C`zvohE1%we_uaSOefRBG`a~8hP16k^ z``OolEENjHtXZ@EeNUt`+c5y({ha@|WXX$wvk|htMWO~;KWqS;YLAZ%@IHv3{5J=| zOSV1#mQcb?hJydbt0StWS5E>UKD5`{i-lhgE7@HdiyC05KPU+_s5cND{2PWJC-D8kL;Y_v3nE-)!rFDc6@$_v(j09wru;u>v*F^Ytluv zGnJky|Lv2LL*5-&ooBUIxN{Db2EcSpYvXhI-4^$WRXKg8H{bb5=83hAm}c7aJ>|A) zpCMW`@`+?}b<^H&(f6dSRWC#4aa&XqRl7bRyH-~0`mw_05KbO&^cWt(@tE>VcxpS< zC$E(Y0qpt3y5f_ndmasK-T4ZV&hU&XtWFk83tpWZPP=?H2hK5S1*2f=LG}!TDfeRI z4#Y>}g&8=PjWI!Kdn1oR4=4^U0pHp1a=1Us&nB{-bsoiC4U=vEru_jJl#L1M&kxe| zDgaU%zl&Qc{K)KZ_&~WoQz;|DOBjw9yj-(E5=|vIzQp*HZ$n`B02sN#svHL=>*eeU zX?RFlCNeu@jYI&Iv+pI;9`#idTX>IeLQ2T%Ys6QF2;W&#W)QpAUr z2{0Ceg$NZAD_Vi30xS`ZR@4cxf(Hx$kAGg#@xLT)a)ORfe`D&Z1^!0Eh&t@iAAC#6 z#ES%6;TbnV_P20&51*_^d%g~J`g*enN`Eqk@6cK|ei$8cqxrufqx#F=Mob$;7FvAw zYWa#?iiD`*Wjo2UU3K6B8yZr1IJ?2zB8f^b$MoeDMY2+=G|CnBr3BYN?_LhaLnh`W zH7iXBkkkAj6F8G&{lsotIx(^hnMou$c#x{2ym1O5RreT3ezRQAM1t67Gk^fpP_S}- zn)9>psDUuMmbPo{rO~Bjrn2hLYNy)i<9vSB?@@Rh8i!41b7)+CRs}=@v49@X1U+o| z#`1n+{F(9C*u|X(hCFufM@zq6I(6z)0NXe0YMa~{t?})$Z`+5b>V2tU;Su_9&Jd~4 zh1K1h9TB;6=gzzCy31y>bpZfWB12)*E?v5G!i2G1JMVaBMp0@~?$}3DX*z7$OB;do zxgm4OzVFQ48)XVPc<|$8%a%=;Frl=x^dHc?la=LLx8=ES^%vagS0DBQz54bY8`~$d zwfgPBuYHmL#tXU{==1TsGhf*^wvKtT#hU{M4(#2j%h~A*rH7j20YBJ%u)Znwx+E55 zh^0f*?ycB-)K^v&6uYO+Jos@!+Q8c%{3I33Fs$8)J5ms}9!Ex_J57m^y^?b;IMsIz z>DT|#H{X0)g0dKxN)Zhp9F?1&%1!5vE&TLnb$XjFxLpL*0)uqbO`CS>G{hB_pl-!RG(}1-F5QjRrFu1Pkvzz)Ov78@2ykbB8c|{dF&-?#D|9k+m%P*Q4$82baejS-WV~tXU?L zDYbdCm?^zNr_Z@X05ie9E%)%T~)z`U_EAvt-#oH=uLe)esN+xEb$$HhF+J>E^9qp4RZ zYBLSs^&V53r34t3qA03Ur%u>b0((XJIQ#438*Aw`4Toh^=#A4X+dTO%9W*L~oi@>I zZXXl#a%t(ujhX5%4FwPenCtbpcyE9STwk2#|JsoQ?}XY7Yqq(rB>PNJ>WU~_1lKpYy@R5~}_(~a?W2#(`!AdJI}x!w2MQPJlM7b*aF zx9p%t_(8yCJ=KIv&iqA5^aYv1|1-(0O5*-sQipShaWX^UQ36#2wG z%{MQoT({3Kw0qX{55gx7_Eg!+zT0U^8}6!fBo63w>Eq2zOcbqETQiDtmLKf;#Y2S~ zPu6CcBl@+B?9uf2+^v?(vdEsA121l5G)lM4H+<>cXP2E&8kF&U5>iGqbJu!Kd~>G% z3%!mnJKs62tpNJ>WtnA{Y?Ht2zvhLbiQVii2S)$+%rOBp%~0JZr<~YWvUcu;kZ5(Q zzTv;GFF&%mYSWj+DV+^N?lUcXGAE(A`pxfBe)y>D(YdkfzNqLvNbmRKt9jB8d}~a*Z~*1oPAS540IGh=Z28hyRdUP~9Hp#Wv^yxjkLuA0 z4j1Mv!V^>Leb*WmE(H>mcv%I27HDwb?rK;EjW@)Th1~_a2PF(@yn+9UXvFJpxyVL! z2CTi{l1nH{5D;WS&=LqPY0HrQjAR2V^N=ZWY9w>+xBN<&18;Z*w7NjLULJ+Vt#msyHi6OriXhKb12BLF(BbcH)=0qmKoDBI0Xk1z zqq|)Oo_sm*1*Uq@tz5l2PIsjU*J8KtxCxEW`bOlr@DY+;+ zwTgJ`ZVB3E3_9Kvdc8KI?i~!k(5FuQ({ZVk(I}j`W)T1=cZK!L>>q=3g=i75m)Ql2 zM-JJ`x$}_8#3LvNCKtv*eW5YPn6q-}F_MGi39-SLQ@&RNMKdYalWL??JRqY-GQFsN zn^e$aRzmHiqLvkK17?5?77rsuD$J!6E5oWR28&zi7HEMW^-i^u{Mog3i^1Yj3xHAb zn+<~XEWn0?dt=|eE^XWOfY%fq?JliWLm?%Wp)Mo+ z;8*)m?L?XFQvPbcdrk|}lI-6mM|O6W)&fvP8zMm$L0AiKDb_Yc*kc$#o_%MTH7s20 z{haReNe6nOb0)I(VSgz&3c~Wm3wTAseUFY+dH8ndC-uWRVW`C7m$HWwJ~skNgp!rD z72cesjOY`qu>Ejpt`d()`3De{YT>c>6tCXvt1|l$EEyh$nuo#`mT-i7myZ5v=k z_uwNnu;Q-UVA7pioz)w!AH*AdFy)19UuS7EmF5;BMvRy{ckU;jF50!~VBzb>2ob>V z_s1#XMl~O`+`N31Z1L+{hP((9!5X{Wo{^Dp;>3xWGiTmPPbZa@ z)@sL&cfS1c=NU5|YfM&uU1)(Z2COE^?6hE`g(}kR0-%7GhtKb)PSePSW^;HQXE@s)7b!2L{v!IRfJd9AL=AE-pY;9816dsNzv)@ zZr|(vZnaQY44zj%{}@D3RI96Jy{#QTTzl`GRc|l0?mVm;Jp@4cd*6V9`%;nN?qL+m z7R~uO=B2dUSH6mUVqE0p!TAf;nbL;W9Jy%h-O9Z4bV#R^{2va6_Gy(csZU79WWno? z=$Tq|zRX!#TeK^)^jJ}c=LXvfERLFTSA|1hIRNfzCq+|!mp^MmrnSr&(IVXE@;4ve z^vvpuU8c6}k=AnggZmCG$?P^M<+pDyhQ#Tf{AJ*Vxo4}3T?dz6RvDG&_g0+!wK^;* zM4{!B2Bj%k!>iffHdXz)rqYzC=rJ;^?kuP7e3TLzp-kJvzf; z!|@D^8Bn){g2H2=P*CuRs1499S#gurLKqc|m{Y`jq$g5ehS_oSnng0FMt9ZfF7_>Vgw@yyq71m6}Qq|W2`ye<+w}ba;aP% zg~z3GIW&#{6Yy~!APUd|ToAawGKctYAAbn+i82RTTt(r(K~Mg={r^VD{+9XY>omqM z-k09`bMhTO?+^hosNif_y`562s}`-OShSL4s{j~P`(`0Sx=9>W5p>g+CvnDWkIFPD z(EyauS0Mh_(e<#8;vMN#XN!qMe$|EY^ly$zpt(e)M|~o^9O`O7*q0Kbl!F?u`>zJ* zrQ9cn@1-mzWi)A$k({$HUkEl1s*YmM$s8nHKyi?I&jVT@9EbsoK)hR_tPQbw6dnTB zyOnO6&Q=joVKG>&daK1?v1{!fg-4*-AfcWM`f`vp+)OCq8X^0}_!EQUxOd)p2f)^? zTSG%b@0~KSbKiE-r_m{z`{veZXa75_s}l3!o{`VPKw_ zaL2Q&KYRGM?~O*Id-2*kGWvDu((^#~=MJJY(3xOI$3-vv;1rE8b zcU?YRF$goQUG(LHqWtgYi=a3NA&9(q=|Brvvf8t%vj5%mBV*rFqLmKANvDm5&}~9^ z#p?CDQ;V2Q=-kHe{JIAQv>ttaeNMp-XKXm1f&RIm^5C^Y^nr6=QY5y9$5CfLS^vez z!gHU_G<#!;3xK&n3nC~B4A--_4S=cn z7x+zVLxqbS*;kuv($lz#)RFe^H*`LfBQKj0iuIC{kCd z8kOOd0xb|Ndjv)80a*2Rufkh@fJFW~v5j|gWBi>Xkafwue3j;%mjN(IO}L>0gsN&v zrO^8Txq55Mwc|%+s`kG5D;J{fIK9)Mk59B1 zm154W&Dv9RVRvb#2`QRzRb-03;8fMLr`r~suD;`?woZ$8?^l-w%xvE8fuzqKI=O90 zVQSBCTa|a}ywpc~o$frST}+bF#C_XtkKwiue2TWa=L{h3zWetTB{_H(&hnBKPgqH$m+V$Xxn zFi;G4*PSRU$6Fub{)yPOA1}<1jh|^~XaH~txadZ>mP)(!K+hw1j@2IPW9$Q<)L*Kj zbg7hr{+18x?GwF+PYR$#txo@sw}TKl#XmWTZ`+)WixxayZ%$$Pf)(!kayCB7d#O+W zUAgJ7-!BTFi$+^^3-tMLto+ln z%TBgU>%9HR&2ERk@?woT)?m)6sVT4_NS2qoa7d2W4V*?K0+(FCTFPIflqz@emaFH> z|KwbIxsNtvTzl$Djmup(-b5J@uLrb16c7r80kJ?l5G7J-kpgkvaH(9?q18mlzB;s; z_{|bu4uKJaoO+33uaGS_y45$vpB)!3UW|>69Wi3Wh!G>MF~IW)E8p95`x9LX3JN0g z>R8fEnlwpFOl;Y*C4l+!=W7%iffIW5>a}3Og3UND?aPA_{?KYhp{?Dr|3ala3206r`B zP!N?!@kAbOZP+$F`sG8K(HToV-?%n=_N6_SErSnl%D1RAzjqk0!*NzH#zyU{ZmprB ze5XG3+V2WWz3N? z%pR!^;+HC@zC&wDq%;l8KI4V6*)WCQ>wmS#kzXnqwz5!q-L)EIx~V3HEm&pqnhwa@?iak19wJDpBPgu(Bpqoer2 z{Q{Tsd<7+*-%ir8(QINYR4O*k4RsBpM1|(UZZH4OlwriR!NStmjZUDs#yX= zG5P%&&Wr+YSv4P~Yxee({3Sa~_w>(SzE7PR+v>G(-dcCkLxYMoeaP#Tad)&Y*m$P% z`**MF`N5zS51#wv*V?@5*#0Tu9pak|ZDu}K#wys*l(63y{2tdczQeRmBB<(oTU4v? zv7ZdIlsGc?mY&~|Kl1giEe6KiIj75xe_ZHzM_gPh!>0M^3caEt&sm;hKe4&AMX%5n zeL@vFo}#FkA0%@M`nk_iE}nMKG&U?LZ`(zgo8j8Ms_Kak65fBJ;QV3xhQPK>H<8zv!EjEx2Wj~AD6aquuE zkH#;%FlO*oKO_u#-Ds{-o-?mYNS#PvGrn2l?fR#OEBFJ{7`IAjk;rL!2*{z4?FSP8 zOPo~YY);9QkU-}W;hl!y14lq`g76ST9zg{N$y8Pj$4jWXgw#u{P;yYY#two`MUp;` z9JQAt?9wiz*x-Un0@ukHT7K26QQgJ?x zp!NYK;8A$|3=Jp&6_LLOLII+aqsI07sDI12x;v`A;iorl;YJW*BV>Qeg=n*j)iok$ zp}Mwu>~v{Hj{ur&)r?I}40!yW%f)nLI2Z7;0ha*Uc+ar#v3*3pAc6wNF$P`b-m@h? z>+lJnRZUI$HVLFnMT9=QTXO86=Dfacwu=a;BkTGiG{-1I>oLx{ zJ<|uknD55}sJc|GkJeRWSJxKWq`c;^c(Z>k&iUPJtMUqbK=yF}*>60`kLGW_6 zzO+Wp)0Z-`WT-8lIz+0q(tM%@Zn`uC5%AX0>OC|>76^)P=>RsGq0dTU8cNnw1U#b6=)FOd=jS`cUCI5QZ*V4X+)(`&6+jq*s)^(d_G@IjWtB42>{hL>(y<>#lCOr(gDNweJ_tUWn{|kzlKMT__x|4> z{MKvp2)2Mx6Z$2L2?NCE7d-etzPbFExxA=qC~o7SAO3V~?~aMW$Z};2H>|_ZymdP%zxdSGUCl$5KZrOFSQ-I6dN)C00CY4)N=k)Z zhrodaI0}9aq6cLzz{u5Y2w6*lO|1Cy<+u%z5}#|YYc!FEm|aL zD#w&-EUL3Ze6=}U9)D5*Xw=p#TQj76|qVd zd;$fE;wS)E_C3<>`#(Qo=RgYoIHz4Z&%7 zI@ketz&oIJUTfG-#NxwHC4jyraIc0_0Z%nTuZP-Ge^>$i7s3zL4y|~dL4xql@Cl?w z$O${3(ZS{i>xNPThg4mVUuJNZP#`L(V?!p>7yu=}03jlEjgp&F?Q|>M4ZkKzY`kR~ zqcN@#90!)=dUxY*>+R3D=ue*`m@5KDj@t{1ed$?DLL6daG!Kk-ZTVHO+Vv0IRd(OA z+KHpe9-HGYD5sQ4&&51-hh~ggp-PQ|AS#+SG5@s3e)^K_)FoZ_R&1z_VmUrkTea(y zD%#ljnk>?8Ur5017p&3*&o@ z(!Mt{Z{n=zA3iD@Fvd__?)&Pk;^rMSiOm!m9n+$-hUREaRflh!`8lWXc-e!$Tp$pb1t*$5r~RVk?Pd%xv^A34}};ILfPOIr3_$o5>w zA%J_}QlSXSc{)n~ZP|E0LiYLOgox>*G!g1n?@o!HHlpOmU#s?CFpckXWbAvPgF0wi z#*@v?f3U?Lpt8O`Bx&rBgSp*TJOYb!SLVys``y|t6 zPW%4xWR61!$iBb*?fSku_a`5mIp;ZN&di*-y`Ss8p6lv)A9H%a`LZ}-lfb&7;hqf6OGC&8P z5k3|iU;+|D%z7K33z^XB0CRw+2)X`v?(s%@qfh6P7)hZNO+Z6*?IlK%X<1?rhR%lz z*()Kvok&FD-xNhfMKn!kW?so~iQ(ueb4CoU?6hmwuKL9KE1z)0h!Hh4H2})W%0ByS z`75^!D|R$yUpsQ_*s*KZt_>e)G#YQX;RcT58eNUw{j@{}<2=MnLlGPL<&rj=b>-LY zS#yLF=hYv(TB#VIJc@V`vI2?`y_6IT6HrzH)s6daoNJa0Ly>uFRF8U^d3gQNN(=%H zKeON+Gh=%2>*ue1{8q=w%Imf~Rs4@5$&9bl8z&3kOdiu|`Ym^rttocu1G{jLg3=jX zBruGIz1Hekx8VIGSj&;zV{GEFwdEuoDWJ~d@Hy-|hkdDsx=frqYx?M$E&2{M3+$gv zJHw1f@)d7#c-xKisSlUyk(|iQl4^GJc^0^L!2R<*fK~Vbs zm?7PkIpnu{jA-DL!g&H!eQ?e1-lZ2VTyVSHUAkN}PtMB9@}Kr^U%q|p%&}|NZXG*z zSgWHB95|4ko*oku1E8d~YT>q}`zB1<{m8uA*WA&5_@MUf+aEuEeDB`9_uY3NfQb_) zo;r1E?b@{(jiz_+-s8uQZ$8jm`*Usd=xAGi8vsN_Vf`kI9{KP5d9H!uEhDvmXm%u1 z{UIX?xChu0CgcJD8U!^6DxiFqagimO_*(eAZ3*cxkcg^Gn|yhKcYC4#m-FRCuuZUD zK?mQ}GVl7G5Wo=|iN{Xc(ncGjZayML^n{${7d4u)UmSGt;IYYfM* z=r+_cVsgy;k6$oZ*~yQ@hygjXt8Vw&rqhQ#H{Tmmb}ra$u(@NN0f52A8*DAz#L>_7 zUV6{Q-~UM0Zq|$)L1}m@s{?fZwEFyk+5^2~djrTcTvUz6!g3vYlE?c{nF(7|gaiKn zZ$z8}{(xa`zOU(BCFY$6SPlUK?~s|G3|b36sauGQ41sY}z(H~Ep z0Sl3AC;bUknnHb1GDZYT2?!5(ucvJF}ApjLWFjJQrGbb2gJ6JCFUb^3q(*1@O9iD(!l0~_>Hc(UITROLB#Pn1E z8x~Y5VQZHzoC)Yn+=U{)+8|YF^=ghL7`>{HL-MZx&JQj5w+U7nG6z8quK^w{{CfC# zus{-E1&kq)DZ-1_16BpLAkPpsz0qyd`n57G6Ug4D^U1VK%QR8Nkr)XS9YX545K-Lo5A zTnu2sgb8ccu1!u(ZftCvG-*;&QWD2;fH?E@ncqKlqC=9Q!}$({SgFePk#xjB^4vQM z4UH;Yg488yLL)Vh08VMDMu@6FL#~~_mPu_FEG{RaI(6$0E1+J6$&0$bYtzh$_H;y% z>$G)Flm$uj1{;nYpZC~@fLXVyn=Lifb5M}L_CPNiEHY>rva`z5P*r9_R9Aa?uXn~Y z*9nK$Uf6+eDJbnQAkC~0Q3qoc^?lE`t~=bfQ+AIsUuog4`q7_e%~<<#Gc4su-i{$8 z9gz%4)^Do4LmG-1nE^EWa3OohV>igFekkwlIu~Psvl9Nj*i_m+0ZE;2W%HJA`OwIv z@obV$%Pf)qwz+f{814Lz=eO6jm&)@C3r=(SFzVU{$#TCxd0}Hz0tuLSNcA&)4 zq`Cgi53fg`L2+kx?b`L^lTX@sTW@#f4W}NA=CT@#iU25-63_(t_Uh#|6mG09NoY)X z=ALKHU2}fx`$ubyS|9;%<70Qt1l_lpR3@nN&%O*$KcsFQ7(1nnTVZ@xurz?C$6q!~ zoxt_zx?;tOv17-6^z3UdOn(?xvGO}MHr8&p11KsgI&|oe)oT6m#~%j|9xRHY#bQ~q zWJy_>bL`k*wY9Z8&s(il0CVTgedCQc?wfL7v=mLnQ{B3CQxwG#lX{*6rA_W7e!$adB}+j~=z^t-c{XOAiYGG&SSnua@lJowH+O zPEO9hh}7rf^jpm&w%-)d0ZcGU>f~vM8Gm@~uB+L;)NS z`3*(lzbl%WnhFXE1`QfSo)#4qWo5Pe?^b)u^#GX63;>GL$+k8^X1W#Mk)%5 zX1*PF&kfp?*y@GrEyH>_cNaLf=d+zUoPJ|P`pl8M-I#Pk&tuOnwdAB7d3O1@L$8>! z;_gm5|`QPT3?kw#(xohd(N>hT#7_0y8 zo=twg(pcfU>ziQ#k9clp)%<&RSrYV>C!6!er~2I@07sSI6s1}H;ko=BO%MI8>&_K5 z4V8gitLtkk1-*sazOv!i4(FZEq$mn%E5(gV>+^3^t9^oS^1ceJku3yRC*>Rg%0;lPR#K`j8ZHN|wi#67eE8c} z*|F*cAhdLVtUn+pRHb#uA5kf6)p(FWQ;-1)&;d%wDmEs>k+%^Rg-kO+USdUCK;zc= zbOI+(3Pmt3@_-dtnU+PCRcI=t`OJjQMpU3RfFp80UtQ2w)~1g@_W%38;p8OKwx6LW ziq98Vx>5lRhEV{3Qb094_LAiB%TQ!MBHC24Bq?+&4_E+7Am~3^PST$Q2B3r0jTb&& zcmDJB5*U3(g1LK!>wKLhH(ds8Z)a9Or(c_`O|XT`V<`m`#V`$L8h5<8GepB@*3a1< z&dQI@vbXD>KxA-aP~C4x$-6oAqAW&%qA36xJp(X0GZ&v}>^3rn>>WAdB4Pa#dzvlL zeEx1HK)v^PsmrN|(r-ff>V#J9ZIWf+;kL9qf?D|X@ao{>5j4YTMKceUf+Ym96Tn>$ z=m86mC^4}X%Vk?)H!@!Ut(I~6$YA;S0y#{`t(Zqvi09gEk$}%D&2@`&{vNU$gL=V`UnIx zlcwn`i!0vJ^z>|f$+BLlQeeAOOl49XuIX^^5AAmMPTXNlkG=g4Q-h10=e>3Mkj8KJ zKf^u0^)T*#dF0R1x}bgC4t69|G+}S&kBNzKI2;IK!N&{kc=3+-`1p41+G$NXv)K@H zP`|Ti)eh~+PMtbE@x&AA*{-|pI=|oVcDoA;3xE0Lm$}c{pe>tu_1;v79J-iKwx)cznA=}XyfTkYNZQ}Aa zI2vJZbsz=Bjz&MUZ8G91CW>n@k?E)lra07)T-OM@9gXS)8vwDQ z4QoaC04lV8kr3@OfCPjj$drqhA(B;$0BD(}<(BO+buqQEss@)0=pK3y9l4bw@n02( z4<8;kZk*TaedU!`1`Zsk)9F;mz9q@TMguUs`mArt48`N+`u0@Lp2_|WrvLyT07*na zRF&#$<${xP!O6hdO~&aHgNO3DzIpBiKPXL3#p4yvmr+A{N#&K6(fwRMZ%g^+<;r)z z3syByl;S;k-ns8&)|Y>F9xrhhmJ76|-Hefp)l~ZJ4#uPpy8JN%vLs(1_2!AbQS=Zif$Wlz8hi_V2s?`k@#;5BYYW_$1}lDiE*s62fI9RP}r^o-7w2mPjfpgwcrPt$s}idCAn()pD1}lVD3qd5ib4w^2?`#d0S?dt+7NJ` z61kuMBN2h@|DYlMwAO#qWEnJ-*`ELNEPx^wveEB6P3d&HyC$k5>)-e)P*SOcQb3@x zzH!a&a8)lgR9K&e>?y8x71zq38;+C`2wnyE)qfd-Zt#0I+fxlU{cTM0kPNL&XNWWY z{KV#fM~stEqhh38tGDx+7_$eHPCdoaDLNfeaap>6w3cj<2dklaBB z;JRtCK9Bs+h|{O`HItl3v~fre(+#5s2847rGzb{rF~Y5d-vEylO);o5z@vwkgFyd= z)D!1xGhhc2fh+~70iF}M004zj1Wqt`3<{+Xbe@qIgU8TpX;vxr5+hME6uP-(Rt_Ve z4b3MF6j=ISy$~i6k+_<$#n^0Z*|=9$R(ic&qMWmT|Nimg$A_bwR}-0;nNL0S6nR`w zPym3Us1QaDc3UN=LIlHC{>aRhKo2!veS5HevOBKgpm^-CERc zWoJ3qvILS8NdU4T%9u7Z`oZ)*v4_^yj79MD!h^|>8sP2m%*jzVJ!$eM%HrLs$2FnY zheKd8XhO7CKxvVdg}*x1?|9u(dyT(zep1=trw)^01D3P<_jjFn?@QUQj4wN0R(GH- z`{7YB{W5EN6`DH4CnY7l_~MK6O&B_8(1=YH|LEU2ZtFg8GM7BC-}G-%b}V!IA^z$1 zn*iKQ_2SRkj=PRU=VHT#4JO^l;`}`&MdLZ~m8=d)G07VWn+v@;UR0y_-QuB-$N7f8 z_Q*Zu+oFzgNG<>in1P}ZU<%gmy6yVw38Fc)XKRXmZEbBsLj&|PYbWU$xXe3HW_7~M>d%B({63P=LvrNIL{~ZbhnJ9oK2Sdr|9~1R~VLM zDP5O#vePA;uP}B_Z7eEDymy>&NY9E7e>nHV-{Kz}A2)H3DKE=aP%48C)HK;M6YF=L zjvkQZI$NE2_fXz$SkrfI_m^*OI#J2$SbeO)UEbuaXmXW0ejL9bbyW80pNcy5PBtW1 zDv#D4`|bq&1KVzBDh*i?#g0Sc`%lg4G|E?f#+B6Bs<-ljU$!I|M%*7S2+$bVy(_C4 zYuttVn)}`uS63Mf29)pLE00O!UR=^~-b1ItqyLgML1qmK+BNHl4TA;xcIvQ zibqfaLv(To_N_wa3Mf(q5w&DhLx#-7h;EDq0Rq!&;a31kLAAb@L{m@%a4PEEieFEV zcT(_>Nvq0^S1I{qund~W@{ltSfIi%>QAOKZ(d||Ez7_GG2<5X7z0fxx%8DittPKtc zOaK~kIDzt24_gj`s$R%I2Sfo0Kn9Qp*Z?~q0nq@hP#jA467`cEH9;CR1V{Pn9dGH40347%!^ z*YA^x4>o*$(4ivumUx{gQE?fD-`)=BTON$h&NC{YVv;zDqTYVAEHhU(@Hz{C+<~T( z`<$w*zW}Zome5C}a1ade7~oMM`zSOR;nu?&rl>r5 zr0p2<d+o$OzjD{%wOihM<+(eN<=b)6N0FA8L_v9N z_Djs{K!c|_VR7YPq{|RU79u5)KHfa$mehUw&MIYX{cy{o&9&9%UjIq?`&{PeHd!S{ zs7odhV%)1WnFL0I&f4Y}ZdFZSvKFua%>XJYn9m9o}4orJ% zn%!=nJ$p8QH{N(-(xgf1Q7^o5(V}m!Q`GvI&%5^8!yQ@l%-pTN{;IC=S8vYj?CkB^ zw`XMynmP0Iwr%4ty$|oW_FFJ3%(@??%{c?;?3 z=`M~v;qxlzio0~_QdwEKdiCnblPBBlcA;6Qanu0Vym>Q$>=!)!&h+OVQ@qrm{0aKUYnw>U>O`&w4Zh`Vqn@8&4=O6~JsAfRG_nOOytrG;iO@$l= zk_F8i1Sia`x&ow(al;sFOPt3Hrw4{sZ2%5}1Zd*~mQ~U5v6kD$xK?fuT|P#yF%9gd>ze7>onQO$Qa;9R8P(UZeqZuq6P)``w}0ZM z;?I6boifOEy0Y8*GaB}t@l`Z5<(DR1*L~pE)8htZNxop|+WhF;BzsO$`nayn(xzaO zmpAemBQs7d&rcuSvHi&OpjX^KFTZ40`Mqn#pW9hkytAr!clC*l6$-<3xi%>+FRIV2 zX+OT2Us>epH7?=YzNVuaYvVFaIwRXy70{WuKG)eZdzco#RlaUfZE~h=(2Y?q-g!2? zlTNGW>nZ}9mNwK?38N<4mws50)8D|c3QZ}SzO5c8eY5EOh?ftiWW(OA&L z->#33kN@3+Qkm3LCKbSISU3mMDp2o4U^()W5L+05>?85t7{a-{Mt9GgPRD+tKv69O zbCv=W$NQY2YBh6I6?I6y)?bEwnXs-MX-&Bk6Mtzej4>)i^P|N2xdnK$11bo$Ay)yMW5IS3pC1`-EB3%?O= z9ei5&t!T2Mi7ZhkwzMR7lcYws;Pp{J3eXNP0ZFPp7o{kg0Ig80#~>+`LK2q5NM@(G zGO|wNm-uU%PeJq)ub{_~o2+H(edn^PbJQMcB{{yu^%@Fmlf;a@Sz#Ng$we$ zd9Qr&#TT+Hj~+dG#l{uC&R?0Flr-yshvt6q*JvfN%NOZ=JALGj{3>?d zaC!0hjBZ`qQ3}Pn*@Np2{$?ME%z z*&wLitUY`7y!F;w_wU~?%d*L2nlfcdN(wh~rX4eft7tob_uhN&3b)XajrAHm(>?#I zfn_|?i+Zk8r&a?j7R$VO^8nP=)@Ej!Ij-&GdGO#to9!af+;pTP@9OSjixK08qpSjJ zzDK7l(qA=?=owh{V@lT{r-~{X8d|ELR^6;ahYr;w#Lhmpf5P9FFI%?k#EBC*IXR?p zRr_=8A@`w4lO~NCHLB%$(ubhdb17s$YSgGj*WVd)-F1;f^dAi)kOmZ~&uijp>SF3L ziZiY%g~Cec*ddk_NBvb8QsjgiRA1hxd z6Bd5UPM#24xWssTPvHAin&E?d?|+V{C{5q)njT#c2$-I@xADafIFpvo=_m&Tp}5?! zY=bPpcd)Sis`r|IJxbH?6cm?#vBrJ2s^^+lw)KA|>9!%>vU**Dwf0xfsdv_#`*JfE zW$yLCU4@@-Em?NJ+9@Hnf96lueL8I3U6xdfuiDvISf6!6wyaPGKH1lEX0M@7^*u1} z__nw9oZV3+gFdq4y z_uckfhaD?wkMD2>yo%2)6&>~N{<-n)m(q^xaG7juT&gCkr=eXCPKTJ*QF}JuH)Bqs z!OZje*_0Z*&510ws@N5Pb-B%$FG8HNBfgjP>Le=;dk&qk1X0y+^gyIR}$p;du;t69XXvaIp}11bGDM z7FlMZilYD$5CBAg0W3gJrnD3#NenBp0;Nz+OLGg-s8B?fkP|opf&oxy87*fcD<(z2 z9Fmvh42bY5B9MI~F2?K0uUZAoFJ-~2&BO2zODh}RUlXy?ghoA75M?EH4+wjVsS` z3FTLHM1X?k7Ql;>gP^@duNQsW#1qy-Z>-GmDm-XCl(ArW$VVY}2CJ@fq-q-LM}BaC z|HS37n{aOe3X)JEgKk)~MgpUSdkT`iL&Xu)-+(j#eGtb$x~6N-E=;Mj4W=uteP+cton0a%#;-!KJ0s##I9=QBaf;S26PDfRCI#a&2_RbkI z4y`KRUhJmPJs&53L@BUGsnR~!sc&*OXJ+)EMVc>qAv5XvUMb#FWoT0Cvt2(ms7Y8A zSd>B6)#0<3>$t#(IE#{}q);};J;di2ppJK4GpT|5-PxN+m&d+)uY4*QF} zJN!6fHP33_{QJvW#*gy_uKi)@+J=F7-*^wpA6GA#wSA8G=S=X$2#8>!VZ#PDHn`8w zHQ(;aeCC;)S6^hhja~lpU+S4oZWgm&nVD53SN&A=lh^Ov_06sg*uZHx-`o7rM>pZ) zUVw}Rd-hH@@6CwDzPABQ`b)lktIALJJ2et5Ixw}hl@lgp-+1F4n>TN6XlVGK-Ew_z zjH4(ph{4-$;N!nsVPtG<7tOINS8b2(+g(bxJ^1K5hYkg%Ou^>On>%*w$Z_0lH;tb(XsEVJ*74)VU%2^& zX%uv0Zl-CPF!2E_Sg^p^=qx^5{7T%!Jk7&tJJg8rkC1DtQE zkr>8l7Md;1UcFb~1Wx!JKR_)4I`}WAXs?D9O-+~QPHGUaqRDZwcG(c@vY@#V35U=F zA#zr$19=4PX!O89mWPLLx543oA#gD)&Le0=Q=43S4#K5!I+unCE;1D)k3BHx;bkD% z(MXJfNcJPl3A8jM$n?*K-^6@Gpb}`0u+NQFoU-CpD5JzkP1dIB_-cpkA|Er66$LKb z&$bFk1?)iU#WV&`9U}^ak@!CywY9amxw%J=9`$;?;gEesMn=DW1NQFSO`eXtmR5Rv ztZdjwb??TEzX`nu%2n0;v?-q1bJ&4>b$8#!cFBSu_XJ%Zu?dgQaZ*%;xrS|W?WPI~{#pkQy$MyDHsNd83G5DmW?Z>m9zWMO| zU&M~gNxmsBs(*Iv-gEmOTF~jq>-+s}>ZV)%cKq#M`aC!K{HkNuynnOfYy-v6zUt zfOv9dqJXcSoao?_^Rp01K}BFIGIdoM_XNaODfz0lkJ=j`!agdl6|RSakjE^!c%pTq z_8a`r+R;eH6HYy;xHJe54yz768nPBa1~woLU;sBj0}j9fxB&nTAcmHW63fxDB5*>G z4^}2r*TmJZA{*p`5+muodY{h6NQ^=$w9Lq~2(TfMLkiFXO+W&`FmMlSsrMrB?~Vv$ z|3^pd)d#H}hvWF+2m1>NNZ@mS6CkE}c zMr~|bD?zxzjE7?Uv5Q~0@ue>=oDRr)_DkSIuusDKIyAjO8{d81vvwo3c_$Z28mfN| z<@0v;X)DoKiN||mjJnPdKyMgUp?Vx*{h?aQU^NGte3IAC3o-+V0TfU@kdWTBy=zh) z7iTZuaH{!Ct{DLp$m%nn#altteo&BI4tDK{jT;KJUsasyzVeMl{ z8*4Ay?sEiu%ii7#0PsO7Iey}J&)z*}PQP!-hv%E1-xl1rAC*9!T4o7ekqQwd)LM{& zqDZp4S){@ZERc{q@)VYZ|7*(Q|On2mk>%ujW{<-pkqX7K6#@%iF%~z=`TU%SZ zdGqEeQ>OTQzKIhj9zT9OCnty8x>t_Rm;9X@J9voS-TGG`%QZDMv9Yl&56^oL%F0ih*uD6A|2=1RgeR_U= z{?xmtnyu#Fe?QY+aW=`@NB0>Q$w&X;U_$?q0$Q##)qAGHne5ZqoWP}*q_fiR985!| zp~zQ+T8K~#Q6s$^YELp-Sp6-M=@~g(l}x=9wdWD^z#v?#&qKBcpmD++ZevU6@QzEY zO^9sH<*rZ*KVff$)>*eycWQpq!DmGi1;q$A05VquphF=3}k!n-o0B~VM;EbZ0RpSnq(5_RPH6*R~6d23?D=2HQOujy1( z_1^Qm&2W0@;mlidjZqq%o)TPsu#6 Y&<23`}*^cvCrSl&Js!AOJ~3K~(Z$SPgw( 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�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 z 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

jxum3Ae)VvaFqyS*(YqU-IiBBW)n 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

58fj{lL$L$E(k5`fJ_|ytDPTad|M| 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

C2RdPS7VyRc8oHH}mPgwb~x`d-wO(T)h%J3@iLH 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

mgAhxyq}NBv3{8#72T@2qsN(1HL5p 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

0L!cSf@BJg?%2GeY&%HYUNJ)&@liR1` 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

l!l3TxK2PkH66( zjXdG|Ly!G>g5kh>zwIG(wRK|U^@;nT{G$BoyIkH&W?cZOk(^58^U!k<=h0{9`o~-D z)q%K$c~5$o(C1}KXY*-Z^L`7#cSVeICL1GM>R6(;W!Vib2|d%nT_5@oDq5;9@0zn; z@>h=(FWep$pduQIV%MNpG|q%eurd6IU9+aU*-+i?DMb-Qszs9aOEKv7Bc9b6 z)R)}ujG`l^PLK7E3v_$uAZ@lPj%Lb9ZB-7W2Bw>@1AuQj z-Sx2M@%_fsnNwATmmzMcFd+21#W$8+z4aJB07am9@LLjN`lvPUAS@ku=p_{(PekcU zh)8axZw0l105uB+FH8!ktG!ffksP?=tX;S9G_O@e3%sX`j#WF-BG7Hg7`*ESwFkRJ zCWv}>0sgr(Wyg-1DxRSc^fUB#4^`E_Ll_)Bdl=FM%7LP}TIIw+(1bP`L?O2Dv09h` z#_XY(egjY;l1U~h_j*p4hfV0;(*R+^)xx6q3*!&%Pe?$7EGa=pLj%&LWnEKs_4&(f zJFpl7?@xMR>WC>xWYFm&I2G+l0ZgQS_4Mqkx#SOFg+dO zaCAh4&w-NJwy2{MZ0^JoQ!{UX;*nG=$s~OgY3D$O^0-D|v=}is3dHLaErON%b}>cK z#=vfooBwaJa!WSq;_EYFdE(GbY#q}+?oH4`#@Fk~_k2<#QW@##wPrSI(=I%%Oqov| zp)FPj{yo=CF)Z~xLz$iT`m{(k{;X>z5-MSu=mrTCxZV%;H7%j}6hCp!?Ro6Pz4oRs zideMG%V)4enW+Ll?WS6q+vqqc$_rF*92)gW)l&sMwr?Hb$mn>1;GxGoU0(f{|+a-F7OOp1c7!d{% z;AL(93sEM{??-WGF*WKN@tq*w=rWkW*oWPFqwnDILFdRhS{;2LJ6BD z46`@m-5EpZI#HC-&dP_zt3fUrhn8LsJU-6M`{4ogMpR!rz-V!h1ock1ctz+^41TA{6Z5&`f0os}{!3-yAuQ>tg7& z$r>AIjVpJf2(DkI60J;b?ApFDp|R=A`Se6h)%b-d6c$cB>3CzA0lSr1d?9x#^?1 zmq}h7=j0Msyrv*^+->2_RpbE1)jS@Xdpv@qvB~`w&B)&gg~GA#n4QuM3$SW#0-Tz5 zC8hiOt=)<_hbZ>kW;=bKtd6S(#7h@^wqfvHO?*BJ+#;x#Zt_SXg+?NH?7B4lTrFm7 zR1c;QT&nhg-K>`C+c9U-*9`o zL9g>RZrh^6QXxrWE?dqJY*Sp4S8`5B;RR#pFZ~eMq6dbtUkozRz@brtcGLCe&&*Hi zukG5Rw4J&aCwq$Dz?g24b&Ikc-?4~aH zR{^zZL#{ws2^Wa9?d=$&CNgnx1GGr70O_O$0Mui)qHVJr|6 z1S9N$Sqjb>WQKgf?)ao$)IS6n>6`GRKN6Bb)!M(n=@H5Nzn4$>(Sq*#lW)hVbGgP< zl$>-BU6B-z3oEuU{Y$jmk7`|)?3?JTi>^}H#Y-QlZfA#F}v>+Ky+lLryqitaOQt$AiJlR z7r_EtSycVZiWy6(C{jSu-r})wb^SA8&XF!ZzC=~Rkv#^B1aG$v90&QjLm;P?&>xC`q2fWiph*+d)63WG2K&2Vh0aa^`a&bg-bY*2FT|6*oqg_Lp zi}=>Vf_PMOUhplnHQ6Z5zXK&)ks;~m*Qsw@9so}_rB5P84A(RTif-TR5@e_i7}w18 z#3>Yk*zj~KSP>*bAyb{P$GlL%k>Fp(n7nT0DkwBs%o?!uRJ?{`s0;Zp_>@)OkffHM z^5!S^SIGzd!@!aV=}}gurk!k3nk#TQRB5R6$C5y@sD2y^IHd~OuRnQwNiv|Nc#=B0 z-wPzkCnGkvaSZ>Q)#&m~Q_xTGm`vgHN2X(+ZH3@$B}VNCK~Q()F-ER}vCFq^{UD>4 z`>vVf{_5*G=OU6`T2Wk1%h*9I`Q)Zt%(NFhb~Ek4F`tXvbhFLMxZ9A-e6b||_PtdS z1v%P(<(16UA@vhvLQ<#h3Oh5I|VGYp)F zUulPG4Xssm!9NG>Fr2Y|2j2P*p=O1Q#i0T+yxTu5-{CaZxEg-ViZE2Fc|U~D5K4lC zO)Fx!+Vo?kc@_Kt+3sfDZz9$+RQ@a)G-Q0HL51gNS`|25aimyzd}(VR;|^Ym`DoxE zJH)Y%!N zg_5N;G0C*#go!8{x=CX42EdYN(V47P%EKO3Tqoyp-UVM~Uzz1FcM zh*xZf1%r>-U4cEC(S4pzJFE=t zzSV$MX-ddUhMhC&31+lKPuwavTHh`bd|TNtD|@;9GAipiXkaAU$EY=Oe7C14_d8+f z%Ff8S>IYjGeOr7M-(-&UpXMA9lcpXeBNy6M z2DNQDx6xnpSLsem^)U1Fe>Ods;XD6y%DjI`Hj>SoNKY=NEi>NvO}~{N)AKuyoTB<* zsOQ;~p8@`4DF4>`>44&-*^zD7)O5u&5Z}?9o|{5Q=i%U#Z8ZC$FJrI`w7=PwYUYD&C)1Z*2$(+qe>`3n~6V_n7}#85=c2z!PW}T5QrNLK;A3`!0%& zxe=7RU1}8Ck4mF}QZ7suDMgDtDf^EDOERzvej~tUOcG00p~!Oz`JFg5 z;U7`$E4kGra%?)ZH)K>Csp>c?p@WuEA%7t6($ir#0x~*LHG8bmT1({v=!-%LX*RIL zsSn~i&}XXuXmT?YbR%nIk$uA;QVo%R7yJ2SP!1+N<5RHLoMlQx$3+_9JyzG6hT25K zbz{%dkzDUZ=Xjm$pE3G;Q&l?f6G1#I%iK$kn+?1<*738h%pzvvQ8WMtv| z6EVMw#rvJiH!xuAtN6p6f!#YdIEIZ?RRg75S+8KdF(&f!=mEd$)?GkCNm5E`cX#(M z#q+VPPctaj=CL>Q@Oa!W%6^$`XnQN8{4O5)&r@>SRe@was0Rb0Z2KyrizluGz-vGV z0TYWjh>eZSezW(@V!cP}%F+@kUDJ=xyR#i zgF)I~juFr<=3s3dX^>*fP88h-+)^NRRHxN;3Jc8;miPR4Yn7%}ImgzUwF}1fzizNf zkLzHgupUUT;l`H4|J_883^W)@-a*h*ig7c>mf?`@6k;|FqM=EV3%P}T zf_i2W*tw6D?YvHtWiQc^6AHm1`+ z2J!?A3pcKilYky9hPgzgLo`}sqDk6kQacZn1u@1dt|SvGLZ~#majke-WI`3YJpHaC zbdHYwKtaTz8WGIBCL2xsE=Z$x#r!vzWT7zX#d-r@1cgAbda%AF z^gMbOT6SUjMHbST(sKW4(kjyRKHFO8%b?Vd6DUgsY+AMM?=U%u!ojV4$ z+qBGAfy@3Y?}?@#)X_&RK6}=-sOtzj$w4Q%s$+}+aE!{&zesD z*!@P|KB7MlNdh{QIh&-O2QM`KLY78|V%I&q7?H(mbM;mMkK;$|pFN$ghZ9SRvM7(_ zL``%*UjF6rqUdz-+Q)2 z3fg+~aCqKqg5Tb4sTzPj51TQw~eRbTW zV>vfPx7;6?-MR=Hk4+`*UJ2&1Pq5wo|6m?thaov|kwJ~c0cUea_>bXFD5qA2DM?~o z(M!#@4(4|+<4&r&39d>T{Hpqd!>FWPhO2L6C?9MH-2&E$I7p2nK=_>V_yLWa z_e+Y#aO*|iP=cbGaej<`fVf16A(0@_U_Oc|#FQvvVp$K!(BC9+KcJbi(Nqz_xr5iX z@o^B%AFCIw4?^nC7Dl~bt68^5X3f0PGzsBG^y_fqLJXFQkYabSu?czISUq={d2U@O zZGCtlmL6E#=jEcNJ0SR=aEfv3WymK;d>b+K)r<=fC%VqIDa_sRsbAday_|wnN-C+% zdy}0*OM8buP9K`@^bg6z_sFatVvpyfT1*?*t!V5GtCF(R8ZCWp>1&^_+s{$p`?BoR zRvA|t+M7LpIz5*@3Z2?1>&fnH+bR8ydc8{-atxwqF)~ z9h265eCg^={@VH=2}1*G@JY7bzZ9kW4|>Ikg>(%z%YqNF^VfV)g+0bxdh_mwsbin5 zSuF%Uybab$^Vu4%pyU-Km%kvy!zhk@S?@tTV6MW}m(>WMwT{Ju6Dpl^%?tI`gdQ-+^-q_BhS>3GSysfU$odZMRxOz;U|guA=+4pg+ezwlzE2J0$odJ)W2`+U-HhWGs!KzxJVK;%c8{mfJRovIMV&qu#%z9oB#U_PI5h ziD`HBWx;WHMfVvZdqYW7%Zz&d6Uy@R_7SZMK&NyocinXJComFm^r4OLZQ76gavSAVsTAp&QVfnnRtipGJO-zR| z(Xx&hDI6(RX9w986j>ptKseB_Lj$ZqS*B=61$~(RUwxqMPH|vx#z%MeVGMH4it7afId&) zxC#-n=1K>rZwG6k#bC{_y*58N1$yv+v4e*PAAYz_qeB6pd}+O(;z&+P0(Ss_vMQST zaSqdGucodp0>OiWuA&>S|3L;5a<9!&RC2JhV@en#{3AO(9W;lG3BB^~%~3vp$|{v2 z1+N2@Y(qj*YwKgs_yy`Tfln+!84?ZqcBgSS3)r?FZI=E(>jhVb#>QeLnKU#sfC})5 zbvr=$0{eFG=pZ?rp6*Dx3p{EuqG;QX-rzqWd1%>&z;h|*1$GBm*?{?uvBi3kk{fou z*PhgTQaAy|(+ix^-1vCTluroe5TILgSp91l$Ao!HyrZyY`ojt?g3_+CO9yrp*<-kd zIfpUVMTtva2RN`BLQ6`z)-l^CLgdQTm@*am4B2$%-pas8)+>bM2h zk~^9z7fjKd{;x^!Xrv+QfdUx2!J9mPuGjX(?yL!e07~SaBIE+*me2LxYjri!66$Pp zX9pC~euVS?3w44z=Y%H#g6ONKUC3ZLKT5U4Dclrn+Obl4<3sYGF7kMtTxb(>QJ3lW z6Eb7RGfIh@i(G%ZnJDDO<=&g05tH~|Nr=E4voh7)#J~u(*^7u5F`(W{Mzy$^o?TAa zLioEP&8BV#^E#hTGR=!~TV!{#GlfRqN6=3!ILcaZ{5e;E_>G@=RahVGpL@JRS$C3` zK6{Oy-CmfOKi)F&)`}naY>~WNsoR)xPYY@V#CEoeb1nunFNV~k^!Q!V9I&IS_{lL4 zDps8^3o;nR$wQ^DDl5oi{smGHmkKs~aByE~9MkbJwBCQaoi$gIAA3A?Tg5s$!>;!& z>m{-KAeN}+9WHm*ey8ng5o|Vz5nPf?hkD-^Ww6OB_AD#8GG%u?Tuc5CYBgI0yg3U%F5dyEC3@7OL3LqHHmR=so z^0CmC_x$wAF`AR{*NVQ;pio$T``P` zO(&f}K@bpeq;^^#X+an$#ws0>h2PJX6^)GMFA@7jjCp{+m!}F=mb!Z*<=xFAdNr(? zei!5dQCFPW=&KKF&Q4|Q5nfghSe@AoJl$s>?Y88bbO_)^1eS;<=brFxEZymabvW7$Av{v zLu|%RLK5kuU(NrTtwR=EddXk!N?)&Mx0I&E7s;p&tE6S$wNe$n`WR(vc~Za72K z00>>FElG=3mDY%cceMuz74D(?$m8e8_A9bkd+On(VHVvHilzp8hV3^TV}zVmf=v2h z>=SAuk9W^&;77tfCPso zF86cWO^JDWB2Ljy1v;mDvhB&lUkfb)UY`rw1Qr&(PmOekC_Ib4d;ae%Zf$^5)ql%! zk>5{)M5BPSR3E7+nJK5A#mW8PK9$FRm`eUO0Z*gB6aq6OL%KsWY#_5nFDc8ClsSg3 z*2E@%gdt$~;3*pMmX?l1QenK3gjy6!LRRT`*>Vcw;v+s4<1f)}!^%VbD5@litITDN z%+;6Pr0(5R%BR?91{CnTPoCp_!~!Ga#0D9`?@(q^AQ7{LUs6J1!t?@poUeX_W^8z8 zKSl_tGAF^ONIH^F)*|a-bhNY=?`4tSI;ZFiYXt>+iOO{Itnaxx@Ywk$c|~6ccn?>X zi(5B}bt19x_(0kn%LnMh`9d~SWb|$^McYo?n)-_UGLql}DfnXaysYR1uy3`JvQ_(v&S?R!Sr-#y}|6aAe0o$2F57LO+RLOB+-wV02OiW z3Jh1i2O3EQhY#J|aF`v?d@A&~?ycm%IzVI=Jdp(q;bTQy_>8+XB(DFcj(%SNk;?fI z&Nn)`Z?ofh&$&5At5BJtW6$53;tzd}|7pFPFfY7=fOM~I`}57%)9~2Uqt{~nY3uC@ zIC_Cg?V#xe*sbB4P{DC@?7V270VH3mxr*b}_E%ubW^KCzEm%jBlfW3?H-8WLJPwP7hWZ( z7$7Wvx9*T^tgzBlqmK2J;*!VVzs{pysDBgW0@&qWgx$Mss97*qs3uua6tps@TAghYwI}Uk&C(4v5)x^L2n}{6Ct`GAIkKTf>CF1CoM(bhos0 zcOxJr-JrD6-QC>{(k!(slOx%^d&mPjTjfz4u!8eO&|$SLjbru*A{iA0gdt z)KZSqh6agns7T{@6|DZ!`r!iu0~?;uLqt3V=RSlLgxPi8iLfk96S;n{KJ932>?Dt{ zZ>17VoR!_Kb8wC^SbTlDYTgZ4z#tBCew!{LKHZ?V+KfZ7>OOVNk&zy_NyYxf5u=z{ z8kv|Y0Ny?J%9@X{x7{j#ko;)kloC|nw2L>jH|GV^ADh-jJWk&CZBYs!3#NR%|8};X zA)A=noi*M=<1!v_m{OKGZz;4V!y)~9ol?Cjp6S&)I9-N2GYR3_|JIJ zw^JBooXGM_a>2;tVXS8Z{v?d7gw&U-pO(@*x&F2K_sVLQpkJ*-@8FK;>l)AcgH=cf zUw5#jRPF={ZB9JdCg!F;Mex7bmq$IKQrlo~L?!NR<~pa@0@EK>ibMv??}VkKi|10nS8vR*qRv{-)PEgkBAD^*5Nir@V%15MHGXJ@xe&*jxs1F0>%wN- z__i8OGo2;{h4LqAy$zZF9O??E!xl`RSKKWcPUtPcK0}HKgPGIZRV`cj_1UOEQ#2)} zO7*<%uSvnD%)800=dD|br~L-JAlm*x(Vl8ajZbzzuUUzkF0A83Cx;8%6m2pzW#!Y{ zkA0S00;i^C!@4$L=Ugeb18OwSq>EcuUix3gZG9^J$KGNVamxsJ>}f$rg*SxOg|;jI zVB{cIWbq}ed^PH>a=s?}trL1N`mZ~Ltdvi#0m_otk?3-;BRq$^3D?b@f$-anI0kIhHG&D>A{E`y(1B{LWT^ z=P;5(R1BB!jvME4aF5~F$Zp6LvR`zO+ri?@O_S9)s8B0im6C>lwulGV$__5i8}KaDdt90qVlvXi-u?o$ z?!BglB`yLnk6G_A!8KK%^s7>1p0y`P8Zs8jF~WtP(O};59a5inATjN<=_Eme`N@D? z%OI-?P|Dz#z`!Iz7#TZHaOOiD+ouTy>+AkIFfRuD#^#FU-zdgJ(Y%rp5&#>CRRG`< zZPdu3RiuFEd=H$DV9Fa35>j6N@f_5<(1^axI|w7gNgx?d`O4r28t@Sz(DCfAr^xl! zFl6p^$s;rF8dihKIciX%$qCgCObuTsS?dv(2qb(Yweb4!+2ip>nD2Pmrh_nQfVM!r zQa9jJj|q%!D1~$tu4W>o^jA$y7I`)Rl~ktfVNOg;1brW%&j?8U&k3otuL`9G_d*vV zC8wx()JzmL;KSsPUNZa5*0WO_)gyoe(!63_pbXTLc*yV|8`WIVV=-=8TX6)MQ(zu% zp31?-)^qg)P$P5+CG$sx794mHV7!eyu?Gs-;1Mj0&UZbd0-D*KLv{pap!2NF2&muI z4FmoC5K>^m0*_>05gJy%x3(#Kvme-I!o*fX2b;(3(*9 zZh^&v*B1|Z($!4dz$f|fKK!ui6^!N){EtB*?BQ8J>JT)@GWUeZ5%5gc!-C8ZK2$++ zj9C$#X-GbI1^Ty0tE#RaAP7UHpa}JW$$+`35QMoOH(Ru-D?0DZFwm(-*(TUS1&7~w)#Hed|tAPSNY?pNZJS+ zt{_Il+OxIFP;^&iO|X+2_h07no)?n| z^GD{ncmHxWemY$fdij!2&3N=~4pL(&jp)nJhJN-=t|y!e?nRxOLQp1Ne#k5~!GDY_ zkjs-y&a!r&e)k12$U}l~)So|&f9(&JB6ch1sk6FMA(7Opr`JZ>!&6>BVQ!73S*OL5 z)Q9m;>eC-67;OaWpY7!e#m5#*Yajh&$fsU>ZkEDuwkJ@6WzBJED_odX$wV8-wwbI3 zF@}jGwR#-Az3!l&^P*N;p8gP9M)H(lr4gU--uW!0F@$-!+^-%*EPyfCa#`EmBAQi( zv$6d~N|UP&+5=Jb)9oM!L_A*g&Y2ND)!zT}c2F-OhMcNo{JTF=1mrcLboK zn(=)Q(poEChq$P)CFkzb7V8yb7Y>%x{l5pu4S~ew0rt`+CYg<-;xzo&QDj(3cuk~s zzB(sq2DlWLqconL^1obIMIdw1&k&{FV1nUVwH4d%62BgMQ7q8y?1TsDgr%G_`7e9r z8fRX>4+Z6ij!;BxzDf+UE+tM@M?{u4Fywv5Cw!bM zP2=m2d;F29NWi&2KRPDk^lGG%M=hztl%6hCaK5hYCHZ&xmtgc#Sl07-lF$>e?u!u> z8FH>ggBL&$=$lDjMLe%8BRVH=gH_USy$sy7+xUqfI1gqD0{VB%z z?Fz4+;J-Y6mJhZfDnsMf^U4Z(4iPw1ih^HUepI`eDX%duIQ39Zl^i%#K7Ot| zw|-&}Ve^Y&`gL43vy8ll1msX(H;TA>&+?Jv!APRxFR`T3!SmS?(62 zlA*dq{=e8H>e5f4;T+DP`4T62n2M9M@ zZF1bb`MLrD{p_4;I32Dk`OlsiDZX%XR#Nf!W(EDSYuKIvKCSf8bC_k_0~dvLw7+O| zd`5&`l>s7~KU#(cGhLZINKXN>)xP*~m7W^Yo`; z#P63Ab>B9fhXzeA&8K5M%Ei(W*You*U>DfNj$ZC`Kuxz6R}!-G`zH&P1M!6lG(=}~ zs+UFg>Z(GUuoo&uZA^BPL&&_2UJ1MiSkP=3Y36bbDkqfi|i8SxI{guvXlc$gEL*+L^x6a z!>3EIUTysl))z^{Uvl)|1B;OTECg{`_d)1%e2x>mkL%eu_dy`?j@QZDqo$@daEE5z zk7jvGrVL4#(&469@=(>xpKo*E=`E_-&%abHRVGRP}cFFN!34}Cq3qZmsq&HnW z4Gcg;jPQXhMQ(R6hTMBFCk}R4gW#_xSkNPCD>c2HUbXN zms2hUP=#W~c=~9*n0+RC8(@$OZZ)t7s9)&bpFj36z@SI0yL6qxvEbpUGke2${k3{0 zbn9z?YYq=J0l%c*=~>P2wpop2`pmIareLa~lpg}Kuij+^(}tP3_aV?{5IQ(I;0SIS ze#rRU?+<@VTJoUQU4n?v25)Vt0ixSk&YY?%A7Y!ko*7^PwZI&G3Z+7|uM>;rys@D% zVKc#w68{YB*T8P63d7^Iei5YpKAfd04Y0zBq#@7}=;*)P*McJTc`{xWvz{0EhhBO# zadXBK=e#z2MrCgxUJlP6&GO}E2Fa2A6f|TdsR=lWTUA0{51Ue2SGA8YL%Xas#b=vGGZpDcMHg6rY&9WF)jM*xR>uEc*Dlm{*cJbujG%1sT=(e z&Cq50;pshz@L~RCgIHEBoK1Q=7_m#f_tq>tA?J6^?!vXO#sLoY*0be3<%X?;gL6fU z%YDtyXY97$c~2QZK{|R zFx$RP+qloT1H^zZ(|o0fkYNexbMjqR_C(hmtDNZ`zFllt%|$_`ku|mr+rn-4DAM73Yto!AQgyc<*E&0UX;pI%#5{`W=Evk?H?s4Nv)9HS74> z^p)SOzeoG}G^E*%3fCMoGLfTF&X`K_wB9;Drp+5tEexz(|!7!O?x&PjKLsX!w z5OW!-{beV&B>t0$SXe~AkrAQ;LykPf))t}_Sx#hM{e?eIVsJ!%LJhc3u!V8^R&NFL zM4tRUnY=$XlFaM)(cN-u4p40cYX{S9C(YE0XR}$AMlW+J3F^abRz#BXg^F@@oUy%f zi?9MnmAhy|Ihb$L^NW5cIhVPZ;Eo@cGJSNk!6{SdWwzgMOvieAY%}gY14fQF>nXEm z7=dxYr2%tk1(@7LywR~GHh*%y2d7FsflSwDxmFb(B35GkLlgCypi3^hYPY?SJMyEU zp#hHZRR)4VuD03@+~zt4G&lUdrqrSeL~@m$@_5eA9zWXMg18K{M&ex)daI_fr#Oo8 zTS>c)FLo1zo6&zD@9NAyEw#Hb7ySOkSj-03vco1ac92+RD*CZ`QLbHG6!JXl${#;v zop}0J$`KE!jH{Y)*W~2FQ$9suItb&ll~fC>6a8D1p}*Q~>TTjIILTPa`UH2q6C$ZN zJJuulP%!fJRwWAf%M{ENYt~8y%S9zGo6;9bw3Hducyw>1u{5ArJS28ob2zon*a&(` zV0KbE&oTT|RA|R9xqU7IiL&C!IN5oBt4&FXd;0Sf&v*dmnV8;dssb$~Rsh9iDt1;pSENH= z1u&NN$R^fZP8vSDPCJPl1}TYciH{OCw_}oo(+=cQ$EA0IWA?e-=nL{kV%SG7Q$7}r zv$fZM$9?mU^(D0p>Vn9z&w3AM2>E_$rK*uzhSj+HGy1h~F&Mo&I-L9(QNmGyovKy% zexJe1YFB~*8#V)#^o_M))t9sWINzy(tJXail6yOXB!wcN@-0_`rQj#P6Pp6mu8Z<) zc;8}TjeC+Ym@f#v-@p^??ir90Ids>TMBVh0h7D4w_5=UtUFz9jhQOG=hnm<0BVzDu zz2>W&KJbphO~1>f0RkkQ7RU10Z-~C18Iyo*_*cVvFoJmdXBynV>ekk>BUeDlY|Cty zeR?BL@J_p^sA!`}6n3i*M=w7f9P`^(_c8_cz~>D9fa$ba>8yQ|HVxL?{QO2&jt@py z-_*fBpk5Yw0;etXB&-mw6buwQ(*JbOZMsp)c!36$^FIiv6J+|f?8KEi@ljvQ{XcW0 z0WGDbt}eXDTT8z3jU9X&B8Ki-C!`){rdzH zTv{JJyh)lW-1a9(J2RYGbTkveU;w#iVR6yrZX*cbKPHc^si>&|%xmgfeIz08+}SOt zyXo&tP%XCYxAfi@7t;>df$!ZxhnSeyh8>SNS{ULJ2W9DGjw2mAbMVtSbA0cr&_cJ} zy-9T-hn}bhQjFCU9iihw{DI$ z1tbsvTA?|HkaCex@Nh-ex(x{pbU2>itsi$83UYEb)YgLRHK`9a86_}MTdy?Nmj?Qg zpehTzSv_6#=sdxA1D(kvH$~!~I!g7kDtj2Nf%zE8dr35!^>Y;XUMz`{(}W=h&Fx{+ zK52FhK{+LKd>(7Jq;>{QJODM0tLLqd2HNrWAg5)Jz_m5Bez->e>F;rOXZUN0-4YuN z9l8Q$LT-)X^)cIWNQc`LiJ`dE7m2INEtTY+I(EA%k0a+R`?1rfi*9PF-c@L?xbL?? z?q~FEnjwv7UKPv+x>z=<2of~9Jv5w%L64Gu=&zYyvw9x=CPay&D?{HSBDTKv7WuK+ zJWn?i3Gk@3EGV3vF?v~^v_MFWo~X+%TTM+ptVny$&c)HMWmP(5)>_e~GlBZ@QprB#Er=mGH2b{aoe!z|5KHrWFxkYE!o}be3#OxtxD1b0`ul(| zthDFM5zDQ%+4kGymOvO2Hs$txrV5-PT>M|ce^d(QpX4b^!9PcxKS<4t znpeftL(ItKA-RT2;vY;XCXkXgZkQQxtUc0-;3$ky{WO8p&6UG?rqw=MpK$R8h5VgF zE}ecj7};wg6Quv-e%TkRnPMjs0flDeUVV6@k-uEOSk{HU(c2c6L71H0Xe7>Wd|3AE&|$6Myss?b#!wDL38z zA=O4Z`DJjM7k{`ZAY{XFuu4>E+C7il46m9G>HMUa`o<|Kijxti%&~hKoW&7Gya>&* z&bGYyBVX-haM(XQYVE*M+q4lfYcHMH^bJf~do@*YE$bSP+kf;L+ zX^81uLUl!QDDG~~pEQU1^UL16kuSo*zJ?|!M1tJrq@g8EL&TadJ!kU#o;5dPPDPm- z`>QU-d)GT7PmkK$vrjp?47C%w?aWsgSUFlDnrZ6x>F<;BG+JguSKj-US1{#{WxZZB z7GzF$FHD&v$*->*_g-??9LS(+M_YzJX?0HKAo8}}TEPUh%b-iEgom;+hjtst?&7WB& zDiK#jUudM-|0p{~Pa2`!^TYAyh`y~pgq1kP{8tOvxYY9ZZaZRwLcTZ!?10S|?eE`7 zDDs6TijW=KgwTyiX-#kUG_vk=lli|?Ju0jRg4XsZ6sepjow;w>d8VRoVnM!1>E4?} zVvVl->KZH8cr&99CIr8;O-a6k&I{Op z!Y>{()G{qJ#LIi_{i|<5O`rs(l=C2 zoik83ghb$HNx#>xaq(L{6f%q~+zHwXHfn|x1zrTadBBCUyMx1fcD2ksRn==grWmQZ zuOC0Z`_V*D_JIc-B!EH0S-|7rc(E2d0hyA9n=1f^q| z=pO&}Cr3v|H*6u}Z%yCIP5(`B6^7g8s+d0-s^R10blMvu>|stF-33O5l9IjgEO10Q z5tvz8BKPie=}(;9`jPBkyB1osU(acQ-7r``gSeJjDR?W6n);D6dOSJ`WPw0dCw=AY zH^7oKz}1<58vq04D6|nUqAISWj|G){Y`X!R6F}4e|Dj~U4w~}$elKh7@89&yOf{?> zK-&xufi~y9UGsWPpjW3U2n!1oXjwQeQoUw2mc z-MlNn(%vI^@ayeZPJnI~#N89llZ2dz6o8wIRob45bD?cu4hp5|Xvs}j-U~HZ^ zrlGTPb0ZSs_@j?VdwZjrgLoSxEz3mHJgAeDZ(O!$y3hhRsl40KGDvk6TiT?difK_49 z9gi$VAWDvohZwz6mG%`nqOMK-1Wk*DATDe8>8Yzf=g0S6%ulp<*LXG*MLGkWxYUp3 z`7|#@DdV~q*6vq0V4}UZmh4UDZ@r5xIpR8YinYQan9%w)>)@fLHZNiVXm_J(R==5^hQm87}+=^DCtLgPF`UCN#nyX{AO@FD3?gWwtEc7wmov+{+P zi90WUZz?39jHyPHvksIyDf<1H$%7IPKaJ?%@JTHohmni)kRZ9gTk_n-2){TL6pxYg z^*PGt3+w|&=SGky(`V;Re+W6t$I0MsEY#f(4OZmuJSO0-V8V=ii_Uvd@f((8q~+t; z72iwAAfYg^drSnHi}|&G=K$Obna|F-Na^qW13Q-ef9aHsdwuJg;kV#pX`B?n_7ufNG&|Rv1LeN-+oFi;*xST;%!h(a+TbdK4?$ihc24DK=1W) zbQSM>F*z}|f0xyEaNl~2p&Pg7Ebo@23ND0x%!G$uOL|CMS2u~x-jacoy7!{*ACqVQ zj_uEjl9rzXE6dejF}!wL7$))Kc@|TTOX+E6?J^ZYI-^ume>b=h5e6Zp-waYFv*9@U zs=22cl>l!Dti^0LiDz#4_NVj+9blr1TwuSC+;`X5uA&|m_sd9ni3EMxHI3PF@>}A! zB+f0&q)W*^rsbA%7$O5sjQV0*6`r5G_H9}(CCVleYrPXXSX?X%J6>cix4(I=b?rvH z_|&{tR08)~+qH|gOyRc;;^U`D1EG#ZX~bTtN?O`<2Pk{4rCSmv-27%p)tTv@?nlTi zqK9VlNg^Y%)4uM zfsa3|&DD{6SwX;k6J4ZYLl!CN>mVI6$6=x7OHwlw{6df@PL*}elE}v`H$Tg?t!f`tH2WLbVF$JlN4B>B7gsA)tM`Bn_ zIs=@36Q~*iNq6p=h`#VT!HUr_lwJ7u2mjB3 zM!$Mbw2Q~nGgC9h6Qkl^&h%VNY+5{>51HV$_#TgINlKxCO%KbK1-2j0m+~wWtDX1_ z^siOW7navWe*>ilHAWOZ(h}N16Pmpr5gAG5FO=Z-B-iN;4pCBluaIYe zYul^SmT9u6%}5P_NuHCReuF+SGlR9=e&gB(l3s7RKnH2K25e!Wf)OO|ZMojOC!(TI z$P(ZuK%G8dH_nkE2HP+0`%(Ui6J8^XT`4fv(0i}l-*$5y)Ce0Uq69yV| ztTACBHCHe(GKw@qRn4Fga6$131AoTBwmo+zwojfORv$o)xVF9Q=SAr@+Csxbg9N!* z^Vwr`#HK zt7-1}-@_V0V%}8>J@Jd=1MXKz+g(IbH~n-pgB`Tpw~|O1s4fdF5^NW5C;!gMI*NY` z5{-&!Bq2ik<02SLBzrRWY%soI637giUJH2)lvoDtYssW)_?Qo4K7QKloL`GVth6%z zJib1$MeLSnp1XFC3*JYRUqBbJ@TGCbzb-sw`#&z>5LxbGTLso@VRPxOneitq(6I4* zNMRmtzqszV?6qePrs+qir+ND?iE2%g{N9vA=j21Gl~o=yM6Z~p#>KqQKjlw8&-bhNjB6fARJjL);FU7lc z^RtSaO;2iGJCRQbe-dhco=C!Jt-m>saA+5tz|>R^ z_i(xFAFN6tj9dLysQ%53R75a&33kg}WA*w^I!^{!JdX}_LTrBH&--sHRqlaZ!a^dP z6lzuYp94RP^oi^4zL$r%zq*R zK~WZqbkjdZ(NWN=8CLycKl1={YIa2bFxx@K4u{`G|GkU>%lBD%xBXSh>kch#IeoFY zqlKIU>O$p}9aM7L#l@dCZN$Wi@zg3of5;M$yq?+|N-f|5&FagR?2FoGikX}ahclLx zi+=wtW~%=_oN=gJ)I78L?4`kpeMWqRSYMv4H#u7P$+2<0(Llmhz{%!zL~DEg#c$)@ z&EtXC_{7If;Af>ihD+7WoX3zb7aNA#3Ci8(=y5IcgV2b-c`^VL$pX7$w$Cc+`- z7|vNlzdb{4hFFf}46Hng^Q5RYXCi&sN~UF5;q?u;D)6YC7VBmn+c<3A%Q0(*DJqZb zEA!D9ql+{dOuKKAZ$7{qaD`SGYvs98ZXDR}n`T)1FKR7{(`RnOc+m?8aQ}U|8V;l6 z`ZUxuw=ypsTHP~jx7JwXGHV8x&^#RQ{Glk#p_zzjWo)dR!c09*h5Y1Wa&L{C*XArv z;LvgJAxfgVUd0qWX4LA)>DqD~*q?*X+d?R2({cL!i?3PX#2m=jNzCQ$BOk9c-{R<6lxc(q!d^Wlt zhVK^48(LU$ZzxCaYg0#UMYpy2$4jc(DYMKU|F+Vac;9}^v3lx^^nVn8-EUHHI5M6a zIxe|&>)7M30T9Q^nq-phUu04>`ibmb=s-I`WQ1y#80I?|#E-@zrqcZ`l~*U&&F5E` zjDq}=znH&~<-<@24Vl!gxDPpE#6XO>)FiVQmb6I*yv4#zt?YfTtobEG)UB0l8~i1` z2p>5w4Rv=}`jZEg#`oSt=EqM{hoT1BoATekLWKTkQv>Q#hrjFt5OYNjNlqi9bd%8Fx&nK>cs81dwAw4RcMsK5_2l%5^ zg|@)*7y!E}K!sN_Z;~Z{m3`EbW7)bvSU+M5msJV?Ja8RyVxXW1&SSyD8&CUwV9p3k zmS0iBZ3gTj@9$zMR7+I{?ChKVnzP56d?1Yd>w9V`>Nbh$9DSV0V}r8Ig;n0DKcmOK>u)s!~dSW5>%-F!S^zimU@n zG!w`JHpvehBslqLFyBqS*q9OKm7Hc*!pd?zq@8zA%o1p8YHF&jjTvHf^ z{d)879|)O!R=qx5X~|I7%OifK;bVyeyK?uNV@+XnA_4cotEcX6-z_eXhf-BtyAA3w z;7BtGcW7BzTwDZe(XM@Z|K^?D+f zt$eX_BF%@PzARFkRWv>Qbi0Y4_mrJwT`oRJ-h8abcswgU-Z!d1O?R7cU+N9TN#4mwk{@91O%v-a zjAbz?zK*1~|{zlNQ#G{%k^#V1Y{r<^x z$LUNy({c%O=*8xT0a0x{oV@x@6WZ(chrC~B$B`Ty4{R!nJ5AmC&n#qFdSwz;W<@DU1#w~->j(~ ze_hnZQkvnZ9rvAPjw*-3=?;I7WyI*G$)S*oMDRctVJJX0D$llqkwh1X$6#`Cvi8my z43Q}c^=0_%A5k{dyc)`U_}83;2xsp~cR0dO1W;ua^N{KJsKYLpjai16-bFbRKh2s$$33)tK_(uOZ`^BXW5MUyuXz6 zAmgJLce1J7?SC@zFOpl6m>7}bz4WEVt%5qeRhTM+Z4nPz{OCvj=sXkm#eXIq47iY- zj^t-&3L1~{^PHYx=tLZZv^7=m-=oCfpF6@3v1(&wRIiw4V)!}t&C~5{sx~pbg8j^L zB=e*5^Zj{eOgS}brD^O%&*mj3k=KssawT~t6Yi<=pw&< zmVDOwNDsV$$*k_T3ix&lzdnRumSPqb25Tn=(o*VnljfUZNn;1&BjiQ*$E!F?;O2$r z$BWUb^*R%9BSh-5K_uGTR?M*qtr>RWv(Km<37T2DAx0EQ4zISBYA9yoyT+LUp~$1k ze^@|`VhvSV3SFF`AcT^4*)thF}COBUf~I@!otD4*R=+51-q~63*Oz!JO@Hhoopk7uxzO#9m@- zuO4hgyodJ=wbwAu{)ID>8j0kQ$Q#8zAWG2e-?t8iy*pdRFocBg$rP)x);3}kAGD>-M{G%TP0tg;L;pn-Hd^TD4no8KDXf_JMW$FSXB zeP#_kJxS0tM*U|cv<-WVPinmUn?f2aY+KxJ88t%Sgqh`Qrw_iAs-Am;-@+5Ps;W_# zOi|oh+4-RQ!|VZ0yy#ERYH<|O0HcNd`t;-uzV@&-W&#P}&*?2qe_iky(FA|AwETp= z;^IKbXR)Z!V1W%Oa3RtZ1O)}z-T(%cYLrBta`AREV_C`9a*^0QaFR7?>uPFB$8N8$ zgCrMVqZFd-|Hj<{c811AXE06A&Jfc5E|3KU1l|M@FP# ze_rj%o1=Bw_H1t(cdUW*n9ry2(b1hN7ny^b8xH?2B0|E5fi1A19uzz>Q=OEuM5nSz>z2AqLv6V2=@ zKRGXgFr-$J;J5%O<9)zxfXbkQs0KEnkZgBm3R*7{!W=!wlJM8Rko6gn>~anOH;l+%QU=7tX#;TrfDL;_;k9{Lje z#41#d7c;IvPRodOpiEy?9+tottGIKMiS_ z^+pn6Rs^uoZlX(ws4*r7e@8*}xIPKGq-P>%zmkB@ktA=E8fVDmJt?&bs9cGqbK$wE zCN}g(-$bXrShL5=HIEWO#dsiASaFeQ{N3^XRZ(3KgIS>a@7XDXghuNoF4Nex?gK*i zZl(LdS*;?xl%c;J*?>iN*izv6<|1UsxNc*d{bfBvwRf=L7_n=;GP|#I@@FjOh95}* zK|z@Zy4CjXe5GwJB_z;X=I$>OKhx9wd>;Lz7t7k~*-BJ}$!^|1h3S}A^?#y9WNz4t zxIQU1&Cq!`tm@Nlu0V>CwOCkjHz3e26$!zbgLu#O*X_1sdlM&SlNyc|oIOd&y} zrI>m7M*fCO*mAT)fyW-Y9~rKKx8CTyljDwbm(Vbj3}=yJ>DHKgW5pVWEb1Q}uc9@t z6-zmw@UM-@t&aDbc8P3_H@cxerGhar_s&i(#oJ=axOAC3o4tvtU7G>NoIB_lgA@=jU2SiEA(Y!^nPz{cPvZO?Qt}u$n4L*!^wa| zUD`JuLDPg?trM->i6itXNxEFFwdG%QYcu(0z3y^)8qN~basPfp|Kr*dkCUNY?O6x# zR|IRg#Kz=BCSUB&-gZ2nwndv*z2-!rQ!iJnVYxvU9ks_##>K z@)ULC=OK5%Mo!H>(#l4IH)N*!IxqfszJl-29!ppk<+XRl z2i*38w{qKwm8gCh?)S?`I37b-IP5G8`H;kQ?8$?a`io)YrK`>+m=syk!WW4PV0 z$SoxYLoj)J33kPZjLPPI>TdUzbq~2)6r)oc|Lh17%M`O%a4aax1xNXJf81dPoB=J- zrraWHIZ+YiP?r&U7{qt|=xPCmYD4OyV}82FVv9}bByUB8BdncfS`QugB{Wz=;}J1S zMbe{B8c=(Fyw|~oCvtM*iyO8@G1YEgUTT?_X4y0m{`^K^(!Uw?gWN-;UwF*ag?0#Gg*M6}n|>4@;(%9=Y>g=Zv|p>ddIW z?AL{YI{d~7<^Dutx`k&z;|rLtkx=^SqtH=1&w{4%C$-pou1GML7W>2pH=`&5c{Ake zMrckAnn)T95AA4)1``Hx6u`RYe8D%~Qn7q?EBp>_6wBX@`2>)sjY_!2uL4ATSazGi zkQokv2e^kEopq+!KNuA#AFQvh<0|>G5JgC!N4!1tv=#E>L7q&tRbcM7NNuht1)FG> zJRo-5hs^zu+X?*n+1a{bIU_l_%1SG7M_tzi&iuMf*M^HAwXpc;VPk`Igc2w#^ix3Y znJf44_6!Xk)|USE(c`l{eS%E=SAH%o(1=D?KjIn#t6yzxf(Qv9h4{0fztL8zR;vFc zC=nK!okALz7{8Wd+gb=22BJn(9D!C5Xg2}JV*S^T(y>4cW#43p+drDdIX^!S;$0=P zhyDHiV0#SUUA4{4uFlT;Tw|xFjJ8t^A`YIy*a~552tGin`)M3uR8fm&gNovyJo~R3M*VYCZ2>TEhD$(s_s~`YvwW+?*Sgy0dz2n@ag0=itqWX6#vW!6quxc5s|(Ie2K>!M2IC%)FR*3X&hf_I zzLl(4`<0>jf$AEeVq#+jFDEC0M_yAC_uwNxl^%2qJZW8fJ8H-PNf+!)Cd(XvhPOa{ zCO0Ib0!61m8YE*330viQ?cHt3AC^_TX|xy?bE(v;7~O$3_k)|_iC(fjH)@8p*mv^M z=^puFXOquj$Zwndk4(<+)BfPBKA`E^yY)THTYrz=l>B;6PaJwyk+Zgz`7PH{A(X8* zt+$7R1-+kLPB8zNES1QgO8$WD<$2&v)M}#RPWvEjML9h?`O-i41!6Ez$!Pq$A#dJo zHuyYwud1`$QoGGL(qrs#f>VZx{bgUVKJcRD`;SUFqSLC}FLQnnaSfR&02TAhr4H=c z%0nned9A6wd}_UNN_2E>dMF4}xpGl$d~o$p4t6;xU1h)yXixR}sEgX1^1U*_iO&4|uybhDupX=BSgrSJEj{{MdRpTl*gvPjm;MeE(z!()8 z6J+vG7FpW$gSBS{|Ee!D6tYypu?rY5rMxET48bma4CXnQaPmnkV%=XDE&66z-*kFL z^+Bd(cm}pM`k_eul|#`J<)o)5MZg^Kuy+si7<+GUMeJy?UGnnD!&Uxh$Vf*Mz&>o* z9Xoo6n6pO4DJ2W)$OJ-H%1WpmRHDrU_CX4SUEP0%vnp)IDbbi48Wc}-%qPfvJ(dX0 z?G`b3yl#v5E>E8)Cuj1yKfih)xR2%-=ohh}Z#1!n`;P;Dhy>R|DNWC>(h?^j||?& zxow%-m-bm9K2DP}S&GbhCmnj65{bnVZQ6|2jq?AVp*vha?n-c2FDLwyvaR&}-tu?) zyn5@L>W{NTpD@fU>T=GpiYz$liZY(#F{ONAgo~rn1mZZp6%|Uj%^yZl=MpICzU}WD zdkGX+nGR(Q!QaXo-83wr*|FO*FwK-5deWEG7b6?`JbFQqfk(W4d#Wb4z7islv9vDt0gVEqvtPJKbY7vc6jBz|L5Lh`Z;uvtDBGLWHEUlodNw%71d_E zeQK{XpKP%59HnSzv!`h_^X-=&0X%a5@)94ECia96)~GWz*vO)Z%Kj`&_Ti)on{2~< zzlfP1f`7Q-T6|JT^e2%r_KH~e@KhAF3oGT-i z*ccLsqW&0yI~Yhk?8gXF7&ny!D{GNW$}C33b}~T-sD^`t@Ly+>H5iSl%S6b@cM>Ld znRzo3e#VfF(A3`&6y!>7(L@ZHoAsiXl*c=VL}Ad4?ok!}Fck6H?px}3%Cbp+gWxI1 zl-L1}i{Q`Uyo@Cd{S;=R2~`A7$p{w6C2zlG7Fy_&0V*|w6v&_qQSI@wzjU5k;|2mp z@+@K8DVR?0-%a2{2{TK-liGUoC731@tYE8_)*}(7Q2TKkPavez>|G1GrL#~!1wbz8 z%{yQOl!gk_JAVbk*3T7)qy@@|e~e%VSGJ@WBGa|O9S zT>^lKv9YlMb%t6gbP7V}zwA(7I3fjzh!nbiLPA1H%7^t0?*Yx&e6V-ctwfLy18~es zkne)3i+9NV|11DZYDx;|GKJ)qwam$uN~`>1rHX@l`WO! zd;C9l#8fKOne!N*QBnLA4mPq#PafL}>87SG&@9&jK$49V1MrW*q8yh}I1>JsEpjW{ z>u|L@gqT%dS5I&8-@j(S{)~CLj#+N?NZ7gooo0SMZ8sY_HP8=t*^OljS%WL9c(3sWEVHQTHeRJ=)<+rSUyn-Dgvyw-wx;GGb{A3xKRi;yAf;3e0jd zM=B4)&C3?mZW$qovm55NZ+p24htzr|=UAU2{oK7;-Iqugt@*0!INw5ySqin?j&;0V zwRMk2NnXs`m7gHHqUn|6mi$Oq zrG~q%Q_|k@8nUit-q_}$w`mL8&GBUqatebhy+dH-6Sc23MPn~-=DzLcyEJNz5Xr3k zEF~yeRaCJs&qHxlL-CR=5zpPnt}v{ukf*J^+u8pAKWVh{VoG;@3`xGc+|ME#+1!vY zcS_Cp(f*k6;cA)B@hxiDOEBl_wv(Ukj~9|>3bA+XGC_|^EJ{@A+rC5OfJPMcFo|=Z ztNvO*3Zef7lNkx#aDDi(N86`0cwQQL_9I7l()q2aob-&N)sfNDA|0NzhoUlyERit} z4o=@!@+~x*ebpdH9?MDmq+=ZM4U8H_Z$j=jZ!rduXOdDVd!Y_{xYo+46T>D}(hekm(vOdZJaHl~}Un5$cBUx!Mwe@giYk58FYRhP*v%5LpH-bD)VoU1;a!#i^mAeBU#>Fq zmMhPXouNK2VDevFy6dIV@2~5Z$s$nYWT~O>jwY`cXHXw-y}_(94_uk_iK-WzzFiN4Vhn8*4uqOdMm*!9|_GwyX7 zOp~Jz-4yMm^`Cd>H;SHANl)%4?-bu2gqirMqJtXhkv5jabk@wZR4dV?+Sk`D+Gyej zImgZV9R?A1V9iaWiDc@^9FB- zS6cyDs)U6oDbw*xiQ@KUj1i${_3S0oNNWXO0Mko2-kph-KtvW*EPZlPK~p)XbKr5`G+g1uVa%@F^UVHGs%|rn`jz;Y${)g4 zw5F8|T2J?Ev~bS~O*pTuhld9jX+R!7X%t9@Vdn#aSgjW?`QgzK<;#~+Du2K*d-08X z3BZ2V(XH_U{&jODZiqxT+h~pmW$^0ZVdc@C;qKUmV-Q3(UR?ulOMtL)h2d8X>x&4( z^$!~L%ST?>TfB-u?|5}5IM&Vg$K@sD-ZCA$K45i@*MOTdXfSB54c8Ro3+4}I{s#aB zLJR=O7L#@$?+1S+IM#7CDsXpqM|tQ^gUzYh-q<)Zuxi+P$A99LS^L;2^8BEN5)X=mTMd)ba1e`OnbjhzDfIYcSc| zDI}F@z`b-f0YI-swAi-FJ&;BVg3LGc!>eJk<1Yf!P^ktGdQe?i#%;LXf3b!o42b5_ zc~nhuecgein)yE?S-kSe?G(-XUSv6*A816VMd3avra_5~3Lv0G7z7kl5dzUj2kiE@ z=C#`W4#;9ZK9i-hvxPZEo(CZ7ZRd4jie-gxqM{cWb3L)gqTRX%Qc(pN@*0EsERDRf zO*KHmC=`ok2t_R5@}vG|*HL4sX16Dw_7@8t^S=jVNOI==k>%Vub!JJn5Ppmsfn)iIG~h#m)1{buQ1$ z=IP(koXB6s0t_j1_F&8xcgJ6Y9?wKDt8B8;l#(K^>)TYtqL{>3b#yWcc(btVJMZrZ z8dHjXAGxJiN{Z6n-GtrE^792jkkw}>s{C}9uVoJG-+V5_)8Va9;mEAudnYPdEAFX|kaK&^-tKe8CAbp#f$oV z7j=eC9TbBF*R?fak9SoDym+b`S5l1#m04`Rm!0b z7I#&f`Fq7E+)8!I6bn`CTgtgRX?h9*MMmXW;=1~U`=(1En+P1)lOs*5_L|pf)eyGc zl7A;xSolGI?pA#I;Cosv6N6x&iHO##>$cNQSHA6sn}vSL7s+hK0&_bG>)2RHUI|;S zW@B8)v%LKGeLFEs_~G1o=MPBb)e8m*7J@ILdN`Pjm>53we0N`%!hGG9mtfCmUYzMe zhk+-aotCsVUUNrA@QRqSz1{9D#b%1Piq4KmtEx}yVSS(G=;({*vpBxzL<_seMi$Qn zmcBZj4A!*PKbKz=@(C!|uP-%M3k+j+3y)H1k9;nb?4XZMl$EpO=l=9gSZ%)5@Amjo zdEj}S_sD0*&;y|-JeTn;_+R2_*0ENTp|pheUf^d;C|=^;o_-z1cx*JALKLvY4ybeA z;1_|6GVXE3OobS|%>zMT7!zC83s?_-PFKfrRaX z8CbNFEmIC5V!py-@~x%l-98zGiG5ro!Cdr7Q*`F$JrN*bGO>V2lWzuetIZHF}<&0b$Uaci6i)`>JK)atExe2nDLqt@D_;XY9LgD5B{0L@b@ zsn2pF3)aHVT;ssw=L3b~;s_*Ja9(sVfT0H6rE@z-Uya=J-oGf>rt$|}?8B`K@Hlje zL2N#M4w!}Zs2O?!I)?fO*?5*ARl*I>hDl0;yD@Vxb8h$ycG9x({&h&A8F0=>$iJl} zu;B!5W-w#UV+7S3CQDCG-_Y3D`7g6*=RZmF@?G09ZO}ryPs@abKiVAE`|Y@2RS(A@ zBKI4tejbjFr^m;~g(>>YVDApDqS}wYvVw3oa9FJLr50JvzeV_rgNutnJtlZI3{I;+ zc*)-aCi~18+kO(!80?Pw;U{2I>};JohhRY!d1B8iC=9A%$DB>W$BM#2y4<;6e0==; zyRI$7Z**69ZNbmj(Q(otv#m`i))_Hv^607`?og;22ESfeL4f@O9Y4gw@bS96qpl9D z%g0^(C%B;42${!aoGb%O!^73+E@&1c)o7pMZ zkjS;l!E4wwHcj-}HxSG;TKl#VAzB}{T zQ_b)|eU&I1PuiHno_F%)Q+bEiL#Y_#63KjaN$(9Nc{$1I;P&O$Ys9^m*(wv1TYgLO z>V8Jz3(27=qVK*j-yQj2OQKWDz94+B9lhY%C*Fd$wBu`OT)9W?BfmaYFuCPbZ9j_n0_vO5D(g^p*+-iu zhla_f*^7`)3!fiXNuOEl9aZw#S0$rcXIT{5V7s>ijNTnz0hCY7zyC+}Tti;~Z{>ptS8S7Ag#S5XxPmw2b? z&c~qF;XS^SwSB?hqPko-TGcVlRfc?~DJUI+_9tRA=<1{AhV99@q8Tamde}eXECJR7 zUjo`0HLO{BiVjV_7zn<_$A*@R-|TSqF-Gx{&3g7vv&>rzeIwzs?L1e*H*WgRkvB%Z zVyOy)QFbwR!>$sDc4b}QnnXu>a1yT9W(j;GUDDL-eiy0Uo5*;HPVH>*$5?-oz^~rz z$y$wdJM7ByVu$l^2FcRH`F7Z)nQBuVW|s7ur}=YOPlJuAgqQNjt8^{&5bL=cZ7=h| zx#e2=tC6sbdZ+q{&g$N!ffqU#b2lNg=D3uTyqed?>QAc~1WGEA1p2KiB2~fJ^s&t1 zlONjC66M3&qWa=4FXxX8c6T?bgmitF-w^c)IXT*2Pv68mj?WNNv|c+t+P`D@xVfb7 zw(;F(*SYHL!+q6L%+zT6>kNCjk;Rw7(Gc+~%;L-M2~B+o{H1O~zZoA|^oC!lb_o9!<}HY>dL-azlc#UUr7#fRUCEmA93Pgtg)bnkD)(-G zJnZa@FA;pQpYsOe?2msu^O4GmcowOj0wl0s>ha;9F)NXT4bWC(_67BsutZN$#hqF$ zoT13eElRR5>Wff`by?Fy{g%|;1y&-U&FmB$2qJ(gmJ6!9z-!D#ba=614CqBu@`|F zZ#a@*55>b?BH1G>cb<8-=~G5Y8zKg0%G#%YQGO#EpT`K4?MXyzIG}r6$qO<<_uQ_2 zB38GFtwj-Id=c@VJ`(d8IR8NwU^B)h-!R+@9v|W~AKgDXLK9o@$Sx}bm(IFxx>e6^ z{(Eh3W;_q}qmWUI2ZT^@6e0@b5tyvM1PJNI!;<7o*`QjyAxP$PFO6oxZz@7B%8AL*)F#q+&!M2I(}0|m~Vl}Qa)_I12bEY zassJnpNHFvtgM$m?v)f3+fVw)AWz^VO!VwEA?CEz1-L}+gjQ8n-nRPzKP13a|2pT5 zru5op|8a(Nvdo5^y_J%Z0&c)^{&ySA7toI+RstN-nGdVDe(r8=DeN;l&em<8FmO72!Z2JzoU{PvTD>Hw#DZf^dc?Z-qWo5k^A6--^Uf$&J`ED=xtFnp*c|+l zzq?*NE2CgJ287KZq>_6!oM*$7=(Z@$IJ|pe%Q5SnB zOo6UA*j2wQ0!_8YQT@XZ|BkV(sxT5#@rlO6Qj`6QUPi)sqmhWYTkm2ABOu{$EkdcF zSU7LLH?`%qW>*Jb%!#e?oxu=moXHVTq-)|fpoUb+faE$KPHyewv2Kt9W zI((c-slm4C#ZNbGreI+sTU+THZ|&6dbo}0dTr(X_HUh*SJ@HTR7R?PU_2)Zlvgn; z{n5ObogGQJX`xIz)W04G%isO}q0+lkr!`$f1W*r|SbKeP=$*w$=fC}=)FGPtz>BZk znLZ>$XQv@M#)4HZwV~8~=9X^N7_*j2D15rldhi(GccAaAx>NR{g`-lq_-Jg~cf(_2W3cvW9(=C0qN=hb%`HL^g3~%m^ zyk6_3A2SNLk7MEVC!J}u+5GicUILjDA(mqE?fY51(kA6>8Vv2#1Kb zGBcBq$O^*2?%9L#Z-^vJji)|S99Wphp^E!F;+5l)V`=$i4$)FGyj+BfW)>O z{}{HK&9g6Fi@XX>wR~H@sKo|{T0j12?XJ#^cr~U_KXdo)Lx$MU^LhR8%fMt}uEpFP z{+5O|p&B=7_$G8G@6&+q7%rNaOH-=qTdNjEg&f~f<^vwTGq+|2>}g!}|CYj37siWK zMge;m+MFaw5eyk6))rn(a4S3}#L4e(A#R*P+8geZe6p#H@7j5f+z7)6)i0@>b*yff|bn(~l zrtgoS35ylgC`zGbv4~e)Dlpld9V2Hm4U^QJFgox zr$yBTENJ{}&tN%6x3bZ-(rnDEdt&|i_~V6OH*aL@E7EUNc4k{PbZVzwV-)Q!>N!r5 zv|?SnI=`EIrbxaEJ;e3hz8rcRf4)2*i9_7qWnY(; zRlA|^=60x>r1x-ja_K;zH>paoZQH2u6|vlbkRFxoH(h9bab=s&*`&NrKGng?rN$SK zF0`nPPl8;{pQB^5hW{80`ve+!*BEyk{kJNnQunAYAXMM7$ov~O@dG+`f=xowi;F*O zBweD(K1pQ?x?XCda7a8R^V*M(lOz&c^pQ1OG6i{?JpHgj88CAYTd@Ld1>~q%}RxpA}k$0CeVT!_#?~8kzB^yk=Y418Y zdG=3|w)SQdu}fx#0({*R^cX~OqlGYpqL9*k{vNCKE-Sxt< z+k=H+`tu`-=J25LL{vC0Nl+m5E)gw7P$t-tymI~2RDgm8-%YETaS%+ z4;Q$2GV`=Ha4#Gl9^HY~_f9`%zXmN6MI4>H9+HINQQ`j>3j-ArOjUo(h`(XvErRo+ zu99iZ8!o;Cl{o$I>Tab1wF!d0A_iFp$2-Ef>L-hfdj1AqQpio#K+CoZpp?GgSlj^DHQffh563R I>u)o93BDSC6C<_vXf`ye3I$S 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: + vals.append(val * self.dp_weight) + + # apply edge loss on a subset of training samples + for s,e in zip(itertools.count(), edge): + # inversed ground truth edge where 0 means edge + grad = self.data[f'grad{s}']<0.2 + grad = grad.to(torch.float32) + ids = self.data['id'] + mask = ids>self.train_edge + if mask.sum()>0: + val = self.edge_loss(e[mask], grad[mask]) + else: + val = torch.zeros_like(vals[0]) + if s == 0: + self.edge = e.detach() + self.edge = torch.sigmoid(self.edge) + self.edge_gt = grad.detach() + vals.append(val) + + return vals + + def numpy_in_out(self, output): + output, edge = output + if not(isinstance(output, tuple) or isinstance(output, list)): + output = [output] + es = output[0].detach().to('cpu').numpy() + gt = self.data['disp0'].to('cpu').numpy().astype(np.float32) + im = self.data['im0'][:,0:1,...].detach().to('cpu').numpy() + + ma = gt>0 + return es, gt, im, ma + + def write_img(self, out_path, es, gt, im, ma): + logging.info(f'write img {out_path}') + u_pos, _ = np.meshgrid(range(es.shape[1]), range(es.shape[0])) + + diff = np.abs(es - gt) + + vmin, vmax = np.nanmin(gt), np.nanmax(gt) + vmin = vmin - 0.2*(vmax-vmin) + vmax = vmax + 0.2*(vmax-vmin) + + pattern_proj = self.pattern_proj.to('cpu').numpy()[0,0] + im_orig = self.data['im0'].detach().to('cpu').numpy()[0,0] + pattern_diff = np.abs(im_orig - pattern_proj) + + + fig = plt.figure(figsize=(16,16)) + es_ = co.cmap.color_depth_map(es, scale=vmax) + gt_ = co.cmap.color_depth_map(gt, scale=vmax) + diff_ = co.cmap.color_error_image(diff, BGR=True) + + # plot disparities, ground truth disparity is shown only for reference + ax = plt.subplot(3,3,1); plt.imshow(es_[...,[2,1,0]]); plt.xticks([]); plt.yticks([]); ax.set_title(f'Disparity Est. {es.min():.4f}/{es.max():.4f}') + ax = plt.subplot(3,3,2); plt.imshow(gt_[...,[2,1,0]]); plt.xticks([]); plt.yticks([]); ax.set_title(f'Disparity GT {np.nanmin(gt):.4f}/{np.nanmax(gt):.4f}') + ax = plt.subplot(3,3,3); plt.imshow(diff_[...,[2,1,0]]); plt.xticks([]); plt.yticks([]); ax.set_title(f'Disparity Err. {diff.mean():.5f}') + + # plot edges + edge = self.edge.to('cpu').numpy()[0,0] + edge_gt = self.edge_gt.to('cpu').numpy()[0,0] + edge_err = np.abs(edge - edge_gt) + ax = plt.subplot(3,3,4); plt.imshow(edge, cmap='gray'); plt.xticks([]); plt.yticks([]); ax.set_title(f'Edge Est. {edge.min():.5f}/{edge.max():.5f}') + ax = plt.subplot(3,3,5); plt.imshow(edge_gt, cmap='gray'); plt.xticks([]); plt.yticks([]); ax.set_title(f'Edge GT {edge_gt.min():.5f}/{edge_gt.max():.5f}') + ax = plt.subplot(3,3,6); plt.imshow(edge_err, cmap='gray'); plt.xticks([]); plt.yticks([]); ax.set_title(f'Edge Err. {edge_err.mean():.5f}') + + # plot normalized IR input and warped pattern + ax = plt.subplot(3,3,7); plt.imshow(im, vmin=im.min(), vmax=im.max(), cmap='gray'); plt.xticks([]); plt.yticks([]); ax.set_title(f'IR input {im.mean():.5f}/{im.std():.5f}') + ax = plt.subplot(3,3,8); plt.imshow(pattern_proj, vmin=im.min(), vmax=im.max(), cmap='gray'); plt.xticks([]); plt.yticks([]); ax.set_title(f'Warped Pattern {pattern_proj.mean():.5f}/{pattern_proj.std():.5f}') + im_std = self.data['std0'].to('cpu').numpy()[0,0] + ax = plt.subplot(3,3,9); plt.imshow(im_std, cmap='gray'); plt.xticks([]); plt.yticks([]); ax.set_title(f'IR std {im_std.min():.5f}/{im_std.max():.5f}') + + plt.tight_layout() + plt.savefig(str(out_path)) + plt.close(fig) + + + def callback_train_post_backward(self, net, errs, output, epoch, batch_idx, masks=[]): + if batch_idx % 512 == 0: + out_path = self.exp_out_root / f'train_{epoch:03d}_{batch_idx:04d}.png' + es, gt, im, ma = self.numpy_in_out(output) + self.write_img(out_path, es[0,0], gt[0,0], im[0,0], ma[0,0]) + + + def callback_test_start(self, epoch, set_idx): + self.metric = co.metric.MultipleMetric( + co.metric.DistanceMetric(vec_length=1), + co.metric.OutlierFractionMetric(vec_length=1, thresholds=[0.1, 0.5, 1, 2, 5]) + ) + + def callback_test_add(self, epoch, set_idx, batch_idx, n_batches, output, masks=[]): + es, gt, im, ma = self.numpy_in_out(output) + + if batch_idx % 8 == 0: + out_path = self.exp_out_root / f'test_{epoch:03d}_{batch_idx:04d}.png' + self.write_img(out_path, es[0,0], gt[0,0], im[0,0], ma[0,0]) + + es, gt, im, ma = self.crop_output(es, gt, im, ma) + + es = es.reshape(-1,1) + gt = gt.reshape(-1,1) + ma = ma.ravel() + self.metric.add(es, gt, ma) + + def callback_test_stop(self, epoch, set_idx, loss): + logging.info(f'{self.metric}') + for k, v in self.metric.items(): + self.metric_add_test(epoch, set_idx, k, v) + + def crop_output(self, es, gt, im, ma): + bs = es.shape[0] + es = np.reshape(es[:,:,self.eval_mask], [bs, 1, self.eval_h, self.eval_w]) + gt = np.reshape(gt[:,:,self.eval_mask], [bs, 1, self.eval_h, self.eval_w]) + im = np.reshape(im[:,:,self.eval_mask], [bs, 1, self.eval_h, self.eval_w]) + ma = np.reshape(ma[:,:,self.eval_mask], [bs, 1, self.eval_h, self.eval_w]) + return es, gt, im, ma + + + +if __name__ == '__main__': + pass diff --git a/model/exp_synphge.py b/model/exp_synphge.py new file mode 100644 index 0000000..9794450 --- /dev/null +++ b/model/exp_synphge.py @@ -0,0 +1,298 @@ +import torch +import numpy as np +import time +from pathlib import Path +import logging +import sys +import itertools +import json +import matplotlib.pyplot as plt +import co +import torchext +from model import networks +from data import dataset + +class Worker(torchext.Worker): + def __init__(self, args, num_workers=18, train_batch_size=8, test_batch_size=8, save_frequency=1, **kwargs): + super().__init__(args.output_dir, args.exp_name, epochs=args.epochs, num_workers=num_workers, train_batch_size=train_batch_size, test_batch_size=test_batch_size, save_frequency=save_frequency, **kwargs) + + self.ms = args.ms + self.pattern_path = args.pattern_path + self.lcn_radius = args.lcn_radius + self.dp_weight = args.dp_weight + self.ge_weight = args.ge_weight + self.track_length = args.track_length + self.data_type = args.data_type + assert(self.track_length>1) + + self.imsizes = [(480,640)] + for iter in range(3): + self.imsizes.append((int(self.imsizes[-1][0]/2), int(self.imsizes[-1][1]/2))) + + with open('config.json') as fp: + config = json.load(fp) + data_root = Path(config['DATA_ROOT']) + self.settings_path = data_root / self.data_type / 'settings.pkl' + sample_paths = sorted((data_root / self.data_type).glob('0*/')) + + self.train_paths = sample_paths[2**10:] + self.test_paths = sample_paths[:2**8] + + # supervise the edge encoder with only 2**8 samples + self.train_edge = len(self.train_paths) - 2**8 + + self.lcn_in = networks.LCN(self.lcn_radius, 0.05) + self.disparity_loss = networks.DisparityLoss() + self.edge_loss = torch.nn.BCEWithLogitsLoss(pos_weight=torch.Tensor([0.1]).to(self.train_device)) + + # evaluate in the region where opencv Block Matching has valid values + self.eval_mask = np.zeros(self.imsizes[0]) + self.eval_mask[13:self.imsizes[0][0]-13, 140:self.imsizes[0][1]-13]=1 + self.eval_mask = self.eval_mask.astype(np.bool) + self.eval_h = self.imsizes[0][0]-2*13 + self.eval_w = self.imsizes[0][1]-13-140 + + + def get_train_set(self): + train_set = dataset.TrackSynDataset(self.settings_path, self.train_paths, train=True, data_aug=True, track_length=self.track_length) + return train_set + + def get_test_sets(self): + test_sets = torchext.TestSets() + test_set = dataset.TrackSynDataset(self.settings_path, self.test_paths, train=False, data_aug=True, track_length=1) + test_sets.append('simple', test_set, test_frequency=1) + + self.ph_losses = [] + self.ge_losses = [] + self.d2ds = [] + + self.lcn_in = self.lcn_in.to('cuda') + for sidx in range(len(test_set.imsizes)): + imsize = test_set.imsizes[sidx] + pat = test_set.patterns[sidx] + pat = pat.mean(axis=2) + pat = torch.from_numpy(pat[None][None].astype(np.float32)).to('cuda') + pat,_ = self.lcn_in(pat) + pat = torch.cat([pat for idx in range(3)], dim=1) + ph_loss = networks.RectifiedPatternSimilarityLoss(imsize[0],imsize[1], pattern=pat) + + K = test_set.getK(sidx) + Ki = np.linalg.inv(K) + K = torch.from_numpy(K) + Ki = torch.from_numpy(Ki) + ge_loss = networks.ProjectionDepthSimilarityLoss(K, Ki, imsize[0], imsize[1], clamp=0.1) + + self.ph_losses.append( ph_loss ) + self.ge_losses.append( ge_loss ) + + d2d = networks.DispToDepth(float(test_set.focal_lengths[sidx]), float(test_set.baseline)) + self.d2ds.append( d2d ) + + return test_sets + + def copy_data(self, data, device, requires_grad, train): + self.data = {} + + self.lcn_in = self.lcn_in.to(device) + for key, val in data.items(): + # from + # batch_size x track_length x ... + # to + # track_length x batch_size x ... + if len(val.shape)>2: + if train: + val = val.transpose(0,1) + else: + val = val.unsqueeze(0) + grad = 'im' in key and requires_grad + self.data[key] = val.to(device).requires_grad_(requires_grad=grad) + if 'im' in key and 'blend' not in key: + im = self.data[key] + tl = im.shape[0] + bs = im.shape[1] + im_lcn,im_std = self.lcn_in(im.contiguous().view(-1, *im.shape[2:])) + key_std = key.replace('im','std') + self.data[key_std] = im_std.view(tl, bs, *im.shape[2:]).to(device) + im_cat = torch.cat((im_lcn.view(tl, bs, *im.shape[2:]), im), dim=2) + self.data[key] = im_cat + + def net_forward(self, net, train): + im0 = self.data['im0'] + tl = im0.shape[0] + bs = im0.shape[1] + im0 = im0.view(-1, *im0.shape[2:]) + out, edge = net(im0) + if not(isinstance(out, tuple) or isinstance(out, list)): + out = out.view(tl, bs, *out.shape[1:]) + edge = edge.view(tl, bs, *out.shape[1:]) + else: + out = [o.view(tl, bs, *o.shape[1:]) for o in out] + edge = [e.view(tl, bs, *e.shape[1:]) for e in edge] + return out, edge + + def loss_forward(self, out, train): + out, edge = out + if not(isinstance(out, tuple) or isinstance(out, list)): + out = [out] + vals = [] + diffs = [] + + # apply photometric loss + for s,l,o in zip(itertools.count(), self.ph_losses, out): + im = self.data[f'im{s}'] + im = im.view(-1, *im.shape[2:]) + o = o.view(-1, *o.shape[2:]) + std = self.data[f'std{s}'] + std = std.view(-1, *std.shape[2:]) + val, pattern_proj = l(o, im[:,0:1,...], std) + vals.append(val) + if s == 0: + self.pattern_proj = pattern_proj.detach() + + # apply disparity loss + # 1-edge as ground truth edge if inversed + edge0 = 1-torch.sigmoid(edge[0]) + edge0 = edge0.view(-1, *edge0.shape[2:]) + out0 = out[0].view(-1, *out[0].shape[2:]) + val = self.disparity_loss(out0, edge0) + if self.dp_weight>0: + vals.append(val * self.dp_weight) + + # apply edge loss on a subset of training samples + for s,e in zip(itertools.count(), edge): + # inversed ground truth edge where 0 means edge + grad = self.data[f'grad{s}']<0.2 + grad = grad.to(torch.float32) + ids = self.data['id'] + mask = ids>self.train_edge + if mask.sum()>0: + e = e[:,mask,:] + grad = grad[:,mask,:] + e = e.view(-1, *e.shape[2:]) + grad = grad.view(-1, *grad.shape[2:]) + val = self.edge_loss(e, grad) + else: + val = torch.zeros_like(vals[0]) + vals.append(val) + + if train is False: + return vals + + # apply geometric loss + R = self.data['R'] + t = self.data['t'] + ge_num = self.track_length * (self.track_length-1) / 2 + for sidx in range(len(out)): + d2d = self.d2ds[sidx] + depth = d2d(out[sidx]) + ge_loss = self.ge_losses[sidx] + imsize = self.imsizes[sidx] + for tidx0 in range(depth.shape[0]): + for tidx1 in range(tidx0+1, depth.shape[0]): + depth0 = depth[tidx0] + R0 = R[tidx0] + t0 = t[tidx0] + depth1 = depth[tidx1] + R1 = R[tidx1] + t1 = t[tidx1] + + val = ge_loss(depth0, depth1, R0, t0, R1, t1) + vals.append(val * self.ge_weight / ge_num) + + return vals + + def numpy_in_out(self, output): + output, edge = output + if not(isinstance(output, tuple) or isinstance(output, list)): + output = [output] + es = output[0].detach().to('cpu').numpy() + gt = self.data['disp0'].to('cpu').numpy().astype(np.float32) + im = self.data['im0'][:,:,0:1,...].detach().to('cpu').numpy() + ma = gt>0 + return es, gt, im, ma + + def write_img(self, out_path, es, gt, im, ma): + logging.info(f'write img {out_path}') + u_pos, _ = np.meshgrid(range(es.shape[1]), range(es.shape[0])) + + diff = np.abs(es - gt) + + vmin, vmax = np.nanmin(gt), np.nanmax(gt) + vmin = vmin - 0.2*(vmax-vmin) + vmax = vmax + 0.2*(vmax-vmin) + + pattern_proj = self.pattern_proj.to('cpu').numpy()[0,0] + im_orig = self.data['im0'].detach().to('cpu').numpy()[0,0,0] + pattern_diff = np.abs(im_orig - pattern_proj) + + fig = plt.figure(figsize=(16,16)) + es0 = co.cmap.color_depth_map(es[0], scale=vmax) + gt0 = co.cmap.color_depth_map(gt[0], scale=vmax) + diff0 = co.cmap.color_error_image(diff[0], BGR=True) + + # plot disparities, ground truth disparity is shown only for reference + ax = plt.subplot(3,3,1); plt.imshow(es0[...,[2,1,0]]); plt.xticks([]); plt.yticks([]); ax.set_title(f'F0 Disparity Est. {es0.min():.4f}/{es0.max():.4f}') + ax = plt.subplot(3,3,2); plt.imshow(gt0[...,[2,1,0]]); plt.xticks([]); plt.yticks([]); ax.set_title(f'F0 Disparity GT {np.nanmin(gt0):.4f}/{np.nanmax(gt0):.4f}') + ax = plt.subplot(3,3,3); plt.imshow(diff0[...,[2,1,0]]); plt.xticks([]); plt.yticks([]); ax.set_title(f'F0 Disparity Err. {diff0.mean():.5f}') + + # plot disparities of the second frame in the track if exists + if es.shape[0]>=2: + es1 = co.cmap.color_depth_map(es[1], scale=vmax) + gt1 = co.cmap.color_depth_map(gt[1], scale=vmax) + diff1 = co.cmap.color_error_image(diff[1], BGR=True) + ax = plt.subplot(3,3,4); plt.imshow(es1[...,[2,1,0]]); plt.xticks([]); plt.yticks([]); ax.set_title(f'F1 Disparity Est. {es1.min():.4f}/{es1.max():.4f}') + ax = plt.subplot(3,3,5); plt.imshow(gt1[...,[2,1,0]]); plt.xticks([]); plt.yticks([]); ax.set_title(f'F1 Disparity GT {np.nanmin(gt1):.4f}/{np.nanmax(gt1):.4f}') + ax = plt.subplot(3,3,6); plt.imshow(diff1[...,[2,1,0]]); plt.xticks([]); plt.yticks([]); ax.set_title(f'F1 Disparity Err. {diff1.mean():.5f}') + + # plot normalized IR inputs + ax = plt.subplot(3,3,7); plt.imshow(im[0], vmin=im.min(), vmax=im.max(), cmap='gray'); plt.xticks([]); plt.yticks([]); ax.set_title(f'F0 IR input {im[0].mean():.5f}/{im[0].std():.5f}') + if es.shape[0]>=2: + ax = plt.subplot(3,3,8); plt.imshow(im[1], vmin=im.min(), vmax=im.max(), cmap='gray'); plt.xticks([]); plt.yticks([]); ax.set_title(f'F1 IR input {im[1].mean():.5f}/{im[1].std():.5f}') + + plt.tight_layout() + plt.savefig(str(out_path)) + plt.close(fig) + + def callback_train_post_backward(self, net, errs, output, epoch, batch_idx, masks): + if batch_idx % 512 == 0: + out_path = self.exp_out_root / f'train_{epoch:03d}_{batch_idx:04d}.png' + es, gt, im, ma = self.numpy_in_out(output) + masks = [ m.detach().to('cpu').numpy() for m in masks ] + self.write_img(out_path, es[:,0,0], gt[:,0,0], im[:,0,0], ma[:,0,0]) + + def callback_test_start(self, epoch, set_idx): + self.metric = co.metric.MultipleMetric( + co.metric.DistanceMetric(vec_length=1), + co.metric.OutlierFractionMetric(vec_length=1, thresholds=[0.1, 0.5, 1, 2, 5]) + ) + + def callback_test_add(self, epoch, set_idx, batch_idx, n_batches, output, masks): + es, gt, im, ma = self.numpy_in_out(output) + + if batch_idx % 8 == 0: + out_path = self.exp_out_root / f'test_{epoch:03d}_{batch_idx:04d}.png' + self.write_img(out_path, es[:,0,0], gt[:,0,0], im[:,0,0], ma[:,0,0]) + + es, gt, im, ma = self.crop_output(es, gt, im, ma) + + es = es.reshape(-1,1) + gt = gt.reshape(-1,1) + ma = ma.ravel() + self.metric.add(es, gt, ma) + + def callback_test_stop(self, epoch, set_idx, loss): + logging.info(f'{self.metric}') + for k, v in self.metric.items(): + self.metric_add_test(epoch, set_idx, k, v) + + def crop_output(self, es, gt, im, ma): + tl = es.shape[0] + bs = es.shape[1] + es = np.reshape(es[...,self.eval_mask], [tl*bs, 1, self.eval_h, self.eval_w]) + gt = np.reshape(gt[...,self.eval_mask], [tl*bs, 1, self.eval_h, self.eval_w]) + im = np.reshape(im[...,self.eval_mask], [tl*bs, 1, self.eval_h, self.eval_w]) + ma = np.reshape(ma[...,self.eval_mask], [tl*bs, 1, self.eval_h, self.eval_w]) + return es, gt, im, ma + +if __name__ == '__main__': + pass diff --git a/model/networks.py b/model/networks.py new file mode 100644 index 0000000..4781706 --- /dev/null +++ b/model/networks.py @@ -0,0 +1,566 @@ +import torch +import torch.nn.functional as F +import numpy as np +import matplotlib.pyplot as plt + +import torchext +import co + + +class TimedModule(torch.nn.Module): + def __init__(self, mod_name): + super().__init__() + self.mod_name = mod_name + + def tforward(self, *args, **kwargs): + raise Exception('not implemented') + + def forward(self, *args, **kwargs): + torch.cuda.synchronize() + with co.gtimer.Ctx(self.mod_name): + x = self.tforward(*args, **kwargs) + torch.cuda.synchronize() + return x + + +class PosOutput(TimedModule): + def __init__(self, channels_in, type, im_height, im_width, alpha=1, beta=0, gamma=1, offset=0): + super().__init__(mod_name='PosOutput') + self.im_width = im_width + self.im_width = im_width + + if type == 'pos': + self.layer = torch.nn.Sequential( + torch.nn.Conv2d(channels_in, 1, kernel_size=3, padding=1), + SigmoidAffine(alpha=alpha, beta=beta, gamma=gamma, offset=offset) + ) + elif type == 'pos_row': + self.layer = torch.nn.Sequential( + MultiLinear(im_height, channels_in, 1), + SigmoidAffine(alpha=alpha, beta=beta, gamma=gamma, offset=offset) + ) + + self.u_pos = None + + def tforward(self, x): + if self.u_pos is None: + self.u_pos = torch.arange(x.shape[3], dtype=torch.float32).view(1,1,1,-1) + self.u_pos = self.u_pos.to(x.device) + pos = self.layer(x) + disp = self.u_pos - pos + return disp + + +class OutputLayerFactory(object): + ''' + Define type of output + type options: + linear: apply only conv channel, used for the edge decoder + disp: estimate the disparity + disp_row: independently estimate the disparity per row + pos: estimate the absolute location + pos_row: independently estimate the absolute location per row + ''' + def __init__(self, type='disp', params={}): + self.type = type + self.params = params + + def __call__(self, channels_in, imsize): + + if self.type == 'linear': + return torch.nn.Conv2d(channels_in, 1, kernel_size=3, padding=1) + + elif self.type == 'disp': + return torch.nn.Sequential( + torch.nn.Conv2d(channels_in, 1, kernel_size=3, padding=1), + SigmoidAffine(**self.params) + ) + + elif self.type == 'disp_row': + return torch.nn.Sequential( + MultiLinear(imsize[0], channels_in, 1), + SigmoidAffine(**self.params) + ) + + elif self.type == 'pos' or self.type == 'pos_row': + return PosOutput(channels_in, **self.params) + + else: + raise Exception('unknown output layer type') + + +class SigmoidAffine(TimedModule): + def __init__(self, alpha=1, beta=0, gamma=1, offset=0): + super().__init__(mod_name='SigmoidAffine') + self.alpha = alpha + self.beta = beta + self.gamma = gamma + self.offset = offset + + def tforward(self, x): + return torch.sigmoid(x/self.gamma - self.offset) * self.alpha + self.beta + + +class MultiLinear(TimedModule): + def __init__(self, n, channels_in, channels_out): + super().__init__(mod_name='MultiLinear') + self.channels_out = channels_out + self.mods = torch.nn.ModuleList() + for idx in range(n): + self.mods.append(torch.nn.Linear(channels_in, channels_out)) + + def tforward(self, x): + x = x.permute(2,0,3,1) # BxCxHxW => HxBxWxC + y = x.new_empty(*x.shape[:-1], self.channels_out) + for hidx in range(x.shape[0]): + y[hidx] = self.mods[hidx](x[hidx]) + y = y.permute(1,3,0,2) # HxBxWxC => BxCxHxW + return y + + + +class DispNetS(TimedModule): + ''' + Disparity Decoder based on DispNetS + ''' + def __init__(self, channels_in, imsizes, output_facs, output_ms=True, coordconv=False, weight_init=False, channel_multiplier=1): + super(DispNetS, self).__init__(mod_name='DispNetS') + + self.output_ms = output_ms + self.coordconv = coordconv + + conv_planes = channel_multiplier * np.array( [32, 64, 128, 256, 512, 512, 512] ) + self.conv1 = self.downsample_conv(channels_in, conv_planes[0], kernel_size=7) + self.conv2 = self.downsample_conv(conv_planes[0], conv_planes[1], kernel_size=5) + self.conv3 = self.downsample_conv(conv_planes[1], conv_planes[2]) + self.conv4 = self.downsample_conv(conv_planes[2], conv_planes[3]) + self.conv5 = self.downsample_conv(conv_planes[3], conv_planes[4]) + self.conv6 = self.downsample_conv(conv_planes[4], conv_planes[5]) + self.conv7 = self.downsample_conv(conv_planes[5], conv_planes[6]) + + upconv_planes = channel_multiplier * np.array( [512, 512, 256, 128, 64, 32, 16] ) + self.upconv7 = self.upconv(conv_planes[6], upconv_planes[0]) + self.upconv6 = self.upconv(upconv_planes[0], upconv_planes[1]) + self.upconv5 = self.upconv(upconv_planes[1], upconv_planes[2]) + self.upconv4 = self.upconv(upconv_planes[2], upconv_planes[3]) + self.upconv3 = self.upconv(upconv_planes[3], upconv_planes[4]) + self.upconv2 = self.upconv(upconv_planes[4], upconv_planes[5]) + self.upconv1 = self.upconv(upconv_planes[5], upconv_planes[6]) + + self.iconv7 = self.conv(upconv_planes[0] + conv_planes[5], upconv_planes[0]) + self.iconv6 = self.conv(upconv_planes[1] + conv_planes[4], upconv_planes[1]) + self.iconv5 = self.conv(upconv_planes[2] + conv_planes[3], upconv_planes[2]) + self.iconv4 = self.conv(upconv_planes[3] + conv_planes[2], upconv_planes[3]) + self.iconv3 = self.conv(1 + upconv_planes[4] + conv_planes[1], upconv_planes[4]) + self.iconv2 = self.conv(1 + upconv_planes[5] + conv_planes[0], upconv_planes[5]) + self.iconv1 = self.conv(1 + upconv_planes[6], upconv_planes[6]) + + if isinstance(output_facs, list): + self.predict_disp4 = output_facs[3](upconv_planes[3], imsizes[3]) + self.predict_disp3 = output_facs[2](upconv_planes[4], imsizes[2]) + self.predict_disp2 = output_facs[1](upconv_planes[5], imsizes[1]) + self.predict_disp1 = output_facs[0](upconv_planes[6], imsizes[0]) + else: + self.predict_disp4 = output_facs(upconv_planes[3], imsizes[3]) + self.predict_disp3 = output_facs(upconv_planes[4], imsizes[2]) + self.predict_disp2 = output_facs(upconv_planes[5], imsizes[1]) + self.predict_disp1 = output_facs(upconv_planes[6], imsizes[0]) + + + def init_weights(self): + for m in self.modules(): + if isinstance(m, torch.nn.Conv2d) or isinstance(m, torch.nn.ConvTranspose2d): + torch.nn.init.xavier_uniform_(m.weight, gain=0.1) + if m.bias is not None: + torch.nn.init.zeros_(m.bias) + + def downsample_conv(self, in_planes, out_planes, kernel_size=3): + if self.coordconv: + conv = torchext.CoordConv2d(in_planes, out_planes, kernel_size=kernel_size, stride=2, padding=(kernel_size-1)//2) + else: + conv = torch.nn.Conv2d(in_planes, out_planes, kernel_size=kernel_size, stride=2, padding=(kernel_size-1)//2) + return torch.nn.Sequential( + conv, + torch.nn.ReLU(inplace=True), + torch.nn.Conv2d(out_planes, out_planes, kernel_size=kernel_size, padding=(kernel_size-1)//2), + torch.nn.ReLU(inplace=True) + ) + + def conv(self, in_planes, out_planes): + return torch.nn.Sequential( + torch.nn.Conv2d(in_planes, out_planes, kernel_size=3, padding=1), + torch.nn.ReLU(inplace=True) + ) + + def upconv(self, in_planes, out_planes): + return torch.nn.Sequential( + torch.nn.ConvTranspose2d(in_planes, out_planes, kernel_size=3, stride=2, padding=1, output_padding=1), + torch.nn.ReLU(inplace=True) + ) + + def crop_like(self, input, ref): + assert(input.size(2) >= ref.size(2) and input.size(3) >= ref.size(3)) + return input[:, :, :ref.size(2), :ref.size(3)] + + def tforward(self, x): + out_conv1 = self.conv1(x) + out_conv2 = self.conv2(out_conv1) + out_conv3 = self.conv3(out_conv2) + out_conv4 = self.conv4(out_conv3) + out_conv5 = self.conv5(out_conv4) + out_conv6 = self.conv6(out_conv5) + out_conv7 = self.conv7(out_conv6) + + out_upconv7 = self.crop_like(self.upconv7(out_conv7), out_conv6) + concat7 = torch.cat((out_upconv7, out_conv6), 1) + out_iconv7 = self.iconv7(concat7) + + out_upconv6 = self.crop_like(self.upconv6(out_iconv7), out_conv5) + concat6 = torch.cat((out_upconv6, out_conv5), 1) + out_iconv6 = self.iconv6(concat6) + + out_upconv5 = self.crop_like(self.upconv5(out_iconv6), out_conv4) + concat5 = torch.cat((out_upconv5, out_conv4), 1) + out_iconv5 = self.iconv5(concat5) + + out_upconv4 = self.crop_like(self.upconv4(out_iconv5), out_conv3) + concat4 = torch.cat((out_upconv4, out_conv3), 1) + out_iconv4 = self.iconv4(concat4) + disp4 = self.predict_disp4(out_iconv4) + + out_upconv3 = self.crop_like(self.upconv3(out_iconv4), out_conv2) + disp4_up = self.crop_like(torch.nn.functional.interpolate(disp4, scale_factor=2, mode='bilinear', align_corners=False), out_conv2) + concat3 = torch.cat((out_upconv3, out_conv2, disp4_up), 1) + out_iconv3 = self.iconv3(concat3) + disp3 = self.predict_disp3(out_iconv3) + + out_upconv2 = self.crop_like(self.upconv2(out_iconv3), out_conv1) + disp3_up = self.crop_like(torch.nn.functional.interpolate(disp3, scale_factor=2, mode='bilinear', align_corners=False), out_conv1) + concat2 = torch.cat((out_upconv2, out_conv1, disp3_up), 1) + out_iconv2 = self.iconv2(concat2) + disp2 = self.predict_disp2(out_iconv2) + + out_upconv1 = self.crop_like(self.upconv1(out_iconv2), x) + disp2_up = self.crop_like(torch.nn.functional.interpolate(disp2, scale_factor=2, mode='bilinear', align_corners=False), x) + concat1 = torch.cat((out_upconv1, disp2_up), 1) + out_iconv1 = self.iconv1(concat1) + disp1 = self.predict_disp1(out_iconv1) + + if self.output_ms: + return disp1, disp2, disp3, disp4 + else: + return disp1 + + +class DispNetShallow(DispNetS): + ''' + Edge Decoder based on DispNetS with fewer layers + ''' + def __init__(self, channels_in, imsizes, output_facs, output_ms=True, coordconv=False, weight_init=False): + super(DispNetShallow, self).__init__(channels_in, imsizes, output_facs, output_ms, coordconv, weight_init) + self.mod_name = 'DispNetShallow' + conv_planes = [32, 64, 128, 256, 512, 512, 512] + upconv_planes = [512, 512, 256, 128, 64, 32, 16] + self.iconv3 = self.conv(upconv_planes[4] + conv_planes[1], upconv_planes[4]) + + def tforward(self, x): + out_conv1 = self.conv1(x) + out_conv2 = self.conv2(out_conv1) + out_conv3 = self.conv3(out_conv2) + + out_upconv3 = self.crop_like(self.upconv3(out_conv3), out_conv2) + concat3 = torch.cat((out_upconv3, out_conv2), 1) + out_iconv3 = self.iconv3(concat3) + disp3 = self.predict_disp3(out_iconv3) + + out_upconv2 = self.crop_like(self.upconv2(out_iconv3), out_conv1) + disp3_up = self.crop_like(torch.nn.functional.interpolate(disp3, scale_factor=2, mode='bilinear', align_corners=False), out_conv1) + concat2 = torch.cat((out_upconv2, out_conv1, disp3_up), 1) + out_iconv2 = self.iconv2(concat2) + disp2 = self.predict_disp2(out_iconv2) + + out_upconv1 = self.crop_like(self.upconv1(out_iconv2), x) + disp2_up = self.crop_like(torch.nn.functional.interpolate(disp2, scale_factor=2, mode='bilinear', align_corners=False), x) + concat1 = torch.cat((out_upconv1, disp2_up), 1) + out_iconv1 = self.iconv1(concat1) + disp1 = self.predict_disp1(out_iconv1) + + if self.output_ms: + return disp1, disp2, disp3 + else: + return disp1 + + +class DispEdgeDecoders(TimedModule): + ''' + Disparity Decoder and Edge Decoder + ''' + def __init__(self, *args, max_disp=128, **kwargs): + super(DispEdgeDecoders, self).__init__(mod_name='DispEdgeDecoders') + + output_facs = [OutputLayerFactory( type='disp', params={ 'alpha': max_disp/(2**s), 'beta': 0, 'gamma': 1, 'offset': 3}) for s in range(4)] + self.disp_decoder = DispNetS(*args, output_facs=output_facs, **kwargs) + + output_facs = [OutputLayerFactory( type='linear' ) for s in range(4)] + self.edge_decoder = DispNetShallow(*args, output_facs=output_facs, **kwargs) + + def tforward(self, x): + disp = self.disp_decoder(x) + edge = self.edge_decoder(x) + return disp, edge + + +class DispToDepth(TimedModule): + def __init__(self, focal_length, baseline): + super().__init__(mod_name='DispToDepth') + self.baseline_focal_length = baseline * focal_length + + def tforward(self, disp): + disp = torch.nn.functional.relu(disp) + 1e-12 + depth = self.baseline_focal_length / disp + return depth + + +class PosToDepth(DispToDepth): + def __init__(self, focal_length, baseline, im_height, im_width): + super().__init__(focal_length, baseline) + self.mod_name = 'PosToDepth' + + self.im_height = im_height + self.im_width = im_width + self.u_pos = torch.arange(im_width, dtype=torch.float32).view(1,1,1,-1) + + def tforward(self, pos): + self.u_pos = self.u_pos.to(pos.device) + disp = self.u_pos - pos + return super().forward(disp) + + + +class RectifiedPatternSimilarityLoss(TimedModule): + ''' + Photometric Loss + ''' + def __init__(self, im_height, im_width, pattern, loss_type='census_sad', loss_eps=0.5): + super().__init__(mod_name='RectifiedPatternSimilarityLoss') + self.im_height = im_height + self.im_width = im_width + self.pattern = pattern.mean(dim=1, keepdim=True).contiguous() + + u, v = np.meshgrid(range(im_width), range(im_height)) + uv0 = np.stack((u,v), axis=2).reshape(-1,1) + uv0 = uv0.astype(np.float32).reshape(1,-1,2) + self.uv0 = torch.from_numpy(uv0) + + self.loss_type = loss_type + self.loss_eps = loss_eps + + def tforward(self, disp0, im, std=None): + self.pattern = self.pattern.to(disp0.device) + self.uv0 = self.uv0.to(disp0.device) + + uv0 = self.uv0.expand(disp0.shape[0], *self.uv0.shape[1:]) + uv1 = torch.empty_like(uv0) + uv1[...,0] = uv0[...,0] - disp0.contiguous().view(disp0.shape[0],-1) + uv1[...,1] = uv0[...,1] + + uv1[..., 0] = 2 * (uv1[..., 0] / (self.im_width-1) - 0.5) + uv1[..., 1] = 2 * (uv1[..., 1] / (self.im_height-1) - 0.5) + uv1 = uv1.view(-1, self.im_height, self.im_width, 2).clone() + pattern = self.pattern.expand(disp0.shape[0], *self.pattern.shape[1:]) + pattern_proj = torch.nn.functional.grid_sample(pattern, uv1, padding_mode='border') + mask = torch.ones_like(im) + if std is not None: + mask = mask*std + + diff = torchext.photometric_loss(pattern_proj.contiguous(), im.contiguous(), 9, self.loss_type, self.loss_eps) + val = (mask*diff).sum() / mask.sum() + return val, pattern_proj + +class DisparityLoss(TimedModule): + ''' + Disparity Loss + ''' + def __init__(self): + super().__init__(mod_name='DisparityLoss') + self.sobel = SobelFilter(norm=False) + + #if not edge_gt: + self.b0=0.0503428816795 + self.b1=1.07274045944 + #else: + # self.b0=0.0587115108967 + # self.b1=1.51931190491 + + def tforward(self, disp, edge=None): + self.sobel=self.sobel.to(disp.device) + + if edge is not None: + grad = self.sobel(disp) + grad = torch.sqrt(grad[:,0:1,...]**2 + grad[:,1:2,...]**2 + 1e-8) + pdf = (1-edge)/self.b0 * torch.exp(-torch.abs(grad)/self.b0) + \ + edge/self.b1 * torch.exp(-torch.abs(grad)/self.b1) + val = torch.mean(-torch.log(pdf.clamp(min=1e-4))) + else: + # on qifeng's data we don't have ambient info + # therefore we supress edge everywhere + grad = self.sobel(disp) + grad = torch.sqrt(grad[:,0:1,...]**2 + grad[:,1:2,...]**2 + 1e-8) + grad= torch.clamp(grad, 0, 1.0) + val = torch.mean(grad) + + return val + + + +class ProjectionBaseLoss(TimedModule): + ''' + Base module of the Geometric Loss + ''' + def __init__(self, K, Ki, im_height, im_width): + super().__init__(mod_name='ProjectionBaseLoss') + + self.K = K.view(-1,3,3) + + self.im_height = im_height + self.im_width = im_width + + u, v = np.meshgrid(range(im_width), range(im_height)) + uv = np.stack((u,v,np.ones_like(u)), axis=2).reshape(-1,3) + + ray = uv @ Ki.numpy().T + + ray = ray.reshape(1,-1,3).astype(np.float32) + self.ray = torch.from_numpy(ray) + + def transform(self, xyz, R=None, t=None): + if t is not None: + bs = xyz.shape[0] + xyz = xyz - t.reshape(bs,1,3) + if R is not None: + xyz = torch.bmm(xyz, R) + return xyz + + def unproject(self, depth, R=None, t=None): + self.ray = self.ray.to(depth.device) + bs = depth.shape[0] + + xyz = depth.reshape(bs,-1,1) * self.ray + xyz = self.transform(xyz, R, t) + return xyz + + def project(self, xyz, R, t): + self.K = self.K.to(xyz.device) + bs = xyz.shape[0] + + xyz = torch.bmm(xyz, R.transpose(1,2)) + xyz = xyz + t.reshape(bs,1,3) + + Kt = self.K.transpose(1,2).expand(bs,-1,-1) + uv = torch.bmm(xyz, Kt) + + d = uv[:,:,2:3] + + # avoid division by zero + uv = uv[:,:,:2] / (torch.nn.functional.relu(d) + 1e-12) + return uv, d + + + def tforward(self, depth0, R0, t0, R1, t1): + xyz = self.unproject(depth0, R0, t0) + return self.project(xyz, R1, t1) + + +class ProjectionDepthSimilarityLoss(ProjectionBaseLoss): + ''' + Geometric Loss + ''' + def __init__(self, *args, clamp=-1): + super().__init__(*args) + self.mod_name = 'ProjectionDepthSimilarityLoss' + self.clamp = clamp + + def fwd(self, depth0, depth1, R0, t0, R1, t1): + uv1, d1 = super().tforward(depth0, R0, t0, R1, t1) + + uv1[..., 0] = 2 * (uv1[..., 0] / (self.im_width-1) - 0.5) + uv1[..., 1] = 2 * (uv1[..., 1] / (self.im_height-1) - 0.5) + uv1 = uv1.view(-1, self.im_height, self.im_width, 2).clone() + + depth10 = torch.nn.functional.grid_sample(depth1, uv1, padding_mode='border') + + diff = torch.abs(d1.view(-1) - depth10.view(-1)) + + if self.clamp > 0: + diff = torch.clamp(diff, 0, self.clamp) + + # return diff without clamping for debugging + return diff.mean() + + def tforward(self, depth0, depth1, R0, t0, R1, t1): + l0 = self.fwd(depth0, depth1, R0, t0, R1, t1) + l1 = self.fwd(depth1, depth0, R1, t1, R0, t0) + return l0+l1 + + + +class LCN(TimedModule): + ''' + Local Contract Normalization + ''' + def __init__(self, radius, epsilon): + super().__init__(mod_name='LCN') + self.box_conv = torch.nn.Sequential( + torch.nn.ReflectionPad2d(radius), + torch.nn.Conv2d(1, 1, kernel_size=2*radius+1, bias=False) + ) + self.box_conv[1].weight.requires_grad=False + self.box_conv[1].weight.fill_(1.) + + self.epsilon = epsilon + self.radius = radius + + def tforward(self, data): + boxs = self.box_conv(data) + + avgs = boxs / (2*self.radius+1)**2 + boxs_n2 = boxs**2 + boxs_2n = self.box_conv(data**2) + + stds = torch.sqrt(boxs_2n / (2*self.radius+1)**2 - avgs**2 + 1e-6) + stds = stds + self.epsilon + + return (data - avgs) / stds, stds + + + +class SobelFilter(TimedModule): + ''' + Sobel Filter + ''' + def __init__(self, norm=False): + super(SobelFilter, self).__init__(mod_name='SobelFilter') + kx = np.array([[-5, -4, 0, 4, 5], + [-8, -10, 0, 10, 8], + [-10, -20, 0, 20, 10], + [-8, -10, 0, 10, 8], + [-5, -4, 0, 4, 5]])/240.0 + ky = kx.copy().transpose(1,0) + + self.conv_x=torch.nn.Conv2d(1, 1, kernel_size=5, stride=1, padding=0, bias=False) + self.conv_x.weight=torch.nn.Parameter(torch.from_numpy(kx).float().unsqueeze(0).unsqueeze(0)) + + self.conv_y=torch.nn.Conv2d(1, 1, kernel_size=5, stride=1, padding=0, bias=False) + self.conv_y.weight=torch.nn.Parameter(torch.from_numpy(ky).float().unsqueeze(0).unsqueeze(0)) + + self.norm=norm + + def tforward(self,x): + x = F.pad(x, (2,2,2,2), "replicate") + gx = self.conv_x(x) + gy = self.conv_y(x) + if self.norm: + return torch.sqrt(gx**2 + gy**2 + 1e-8) + else: + return torch.cat((gx, gy), dim=1) + diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..6e2b487 --- /dev/null +++ b/readme.md @@ -0,0 +1,95 @@ +# Connecting the Dots: Learning Representations for Active Monocular Depth Estimation + +![example](img/img.png) + +This repository contains the code for the paper + +**[Connecting the Dots: Learning Representations for Active Monocular Depth Estimation](TODO)** +
+[Gernot Riegler](https://griegler.github.io/), [Yiyi Liao](https://yiyiliao.github.io/), [Simon Donne](https://avg.is.tuebingen.mpg.de/person/sdonne), [Vladlen Koltun](http://vladlen.info/), and [Andreas Geiger](http://www.cvlibs.net/) +
+[CVPR 2019](http://cvpr2019.thecvf.com/) + +> We propose a technique for depth estimation with a monocular structured-light camera, i.e., a calibrated stereo set-up with one camera and one laser projector. Instead of formulating the depth estimation via a correspondence search problem, we show that a simple convolutional architecture is sufficient for high-quality disparity estimates in this setting. As accurate ground-truth is hard to obtain, we train our model in a self-supervised fashion with a combination of photometric and geometric losses. Further, we demonstrate that the projected pattern of the structured light sensor can be reliably separated from the ambient information. This can then be used to improve depth boundaries in a weakly supervised fashion by modeling the joint statistics of image and depth edges. The model trained in this fashion compares favorably to the state-of-the-art on challenging synthetic and real-world datasets. In addition, we contribute a novel simulator, which allows to benchmark active depth prediction algorithms in controlled conditions. + + +If you find this code useful for your research, please cite + +``` +@inproceedings{Riegler2019Connecting, + title={Connecting the Dots: Learning Representations for Active Monocular Depth Estimation}, + author={Riegler, Gernot and Liao, Yiyi and Donne, Simon and Koltun, Vladlen and Geiger, Andreas}, + booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition}, + year={2019} +} +``` + + +## Dependencies + +The network training/evaluation code is based on `Pytorch`. +``` +PyTorch>=1.1 +Cuda>=10.0 +``` + +The other python packages can be installed with `anaconda`: +``` +conda install --file requirements.txt +``` + +### Structured Light Renderer +To train and evaluate our method in a controlled setting, we implemented an structured light renderer. +It can be used to render a virtual scene (arbitrary triangle mesh) with the structured light pattern projected from a customizable projector location. +To build it, first make sure the correct `CUDA_LIBRARY_PATH` is set in `config.json`. +Afterwards, the renderer can be build by running `make` within the `renderer` directory. + +### PyTorch Extensions +The network training/evaluation code is based on `PyTorch`. +We implemented some custom layers that need to be built in the `torchext` directory. +Simply change into this directory and run + +``` +python setup.py build_ext --inplace +``` + +### Baseline HyperDepth +As baseline we partially re-implemented the random forest based method [HyperDepth](http://openaccess.thecvf.com/content_cvpr_2016/papers/Fanello_HyperDepth_Learning_Depth_CVPR_2016_paper.pdf). +The code resided in the `hyperdepth` directory and is implemented in `C++11` with a Python wrapper written in `Cython`. +To build it change into the directory and run + +``` +python setup.py build_ext --inplace +``` + +## Running + + +### Creating synthetic data +To create synthetic data and save it locally, download [ShapeNet V2](https://www.shapenet.org/) and correct `SHAPENET_ROOT` in `config.json`. Then the data can be generated and saved to `DATA_ROOT` in `config.json` by running +``` +./create_syn_data.sh +``` + +### Training Network + +As a first stage, it is recommended to train the disparity decoder and edge decoder without the geometric loss. To train the network on synthetic data for the first stage run +``` +python train_val.py +``` + +After the model is pretrained without the geometric loss, the full model can be trained from the initialized weights by running +``` +python train_val.py --loss phge +``` + + +### Evaluating Network +To evaluate a specific checkpoint, e.g. the 50th epoch, one can run +``` +python train_val.py --cmd retest --epoch 50 +``` + + +## Acknowledgement +This work was supported by the Intel Network on Intelligent Systems. diff --git a/renderer/Makefile b/renderer/Makefile new file mode 100644 index 0000000..aaf82d3 --- /dev/null +++ b/renderer/Makefile @@ -0,0 +1,32 @@ +INCLUDE_DIR = +C = gcc -c +C_FLAGS = -O3 -msse -msse2 -msse3 -msse4.2 -fPIC -Wall +CXX = g++ -c +CXX_FLAGS = -O3 -std=c++11 -msse -msse2 -msse3 -msse4.2 -fPIC -Wall +CUDA = nvcc -c +CUDA_FLAGS = -x cu -Xcompiler -fPIC -arch=sm_30 -std=c++11 --expt-extended-lambda + + +PYRENDER_DEPENDENCIES = setup.py \ + render/render_cpu.cpp.o \ + render/stdlib_cuda_dummy.cpp.o \ + render/render_gpu_dummy.cpp.o + +PYRENDER_DEPENDENCIES += render/render_gpu.cu.o \ + render/stdlib_cuda.cu.o + +all: pyrender + +clean: + rm render/*.o + +pyrender: $(PYRENDER_DEPENDENCIES) + cd pyrender; \ + python setup.py build_ext --inplace + +%.c.o: %.c + $(C) $(C_FLAGS) -o $@ $< $(INCLUDE_DIR) +%.cpp.o: %.cpp + $(CXX) $(CXX_FLAGS) -o $@ $< $(INCLUDE_DIR) +%.cu.o: %.cu + $(CUDA) -o $@ $< $(CUDA_FLAGS) $(INCLUDE_DIR) diff --git a/renderer/__init__.py b/renderer/__init__.py new file mode 100644 index 0000000..ea77263 --- /dev/null +++ b/renderer/__init__.py @@ -0,0 +1,4 @@ +import ctypes +import os + +from .cyrender import * diff --git a/renderer/cyrender.pyx b/renderer/cyrender.pyx new file mode 100644 index 0000000..8aa53b3 --- /dev/null +++ b/renderer/cyrender.pyx @@ -0,0 +1,200 @@ +cimport cython +import numpy as np +cimport numpy as np + +from libc.stdlib cimport free, malloc +from libcpp cimport bool +from cpython cimport PyObject, Py_INCREF + +CREATE_INIT = True # workaround, so cython builds a init function + +np.import_array() + + +ctypedef unsigned char uint8_t + +cdef extern from "render/render.h": + cdef cppclass Camera[T]: + const T fx; + const T fy; + const T px; + const T py; + const T R0, R1, R2, R3, R4, R5, R6, R7, R8; + const T t0, t1, t2; + const T C0, C1, C2; + const int height; + const int width; + Camera(const T fx, const T fy, const T px, const T py, const T* R, const T* t, int width, int height) + + cdef cppclass RenderInput[T]: + T* verts; + T* radii; + T* colors; + T* normals; + int n_verts; + int* faces; + int n_faces; + + T* tex_coords; + T* tex; + int tex_height; + int tex_width; + int tex_channels; + + RenderInput(); + + cdef cppclass Buffer[T]: + T* depth; + T* color; + T* normal; + Buffer(); + + cdef cppclass Shader[T]: + const T ka; + const T kd; + const T ks; + const T alpha; + Shader(T ka, T kd, T ks, T alpha) + + cdef cppclass BaseRenderer[T]: + const Camera[T] cam; + const Shader[T] shader; + Buffer[T] buffer; + BaseRenderer(const Camera[T] cam, const Shader[T] shader, Buffer[T] buffer) + void render_mesh(const RenderInput[T] input); + void render_mesh_proj(const RenderInput[T] input, const Camera[T] proj, const float* pattern, float d_alpha, float d_beta); + + +cdef extern from "render/render_cpu.h": + cdef cppclass RendererCpu[T](BaseRenderer[T]): + RendererCpu(const Camera[T] cam, const Shader[T] shader, Buffer[T] buffer, int n_threads) + void render_mesh(const RenderInput[T] input); + void render_mesh_proj(const RenderInput[T] input, const Camera[T] proj, const float* pattern, float d_alpha, float d_beta); + +cdef extern from "render/render_gpu.h": + cdef cppclass RendererGpu[T](BaseRenderer[T]): + RendererGpu(const Camera[T] cam, const Shader[T] shader, Buffer[T] buffer) + void render_mesh(const RenderInput[T] input); + void render_mesh_proj(const RenderInput[T] input, const Camera[T] proj, const float* pattern, float d_alpha, float d_beta); + + +cdef class PyCamera: + cdef Camera[float]* cam; + + def __cinit__(self, float fx, float fy, float px, float py, float[:,::1] R, float[::1] t, int width, int height): + if R.shape[0] != 3 or R.shape[1] != 3: + raise Exception('invalid R matrix') + if t.shape[0] != 3: + raise Exception('invalid t vector') + + self.cam = new Camera[float](fx,fy, px,py, &R[0,0], &t[0], width, height) + + def __dealloc__(self): + del self.cam + + +cdef class PyRenderInput: + cdef RenderInput[float] input; + cdef verts + cdef colors + cdef normals + cdef faces + + def __cinit__(self, float[:,::1] verts=None, float[:,::1] colors=None, float[:,::1] normals=None, int[:,::1] faces=None): + self.input = RenderInput[float]() + if verts is not None: + self.set_verts(verts) + if normals is not None: + self.set_normals(normals) + if colors is not None: + self.set_colors(colors) + if faces is not None: + self.set_faces(faces) + + def set_verts(self, float[:,::1] verts): + if verts.shape[1] != 3: + raise Exception('verts has to be a Nx3 matrix') + self.verts = verts + cdef float[:,::1] verts_view = self.verts + self.input.verts = &verts_view[0,0] + self.input.n_verts = self.verts.shape[0] + + def set_colors(self, float[:,::1] colors): + if colors.shape[1] != 3: + raise Exception('colors has to be a Nx3 matrix') + self.colors = colors + cdef float[:,::1] colors_view = self.colors + self.input.colors = &colors_view[0,0] + + def set_normals(self, float[:,::1] normals): + if normals.shape[1] != 3: + raise Exception('normals has to be a Nx3 matrix') + self.normals = normals + cdef float[:,::1] normals_view = self.normals + self.input.normals = &normals_view[0,0] + + def set_faces(self, int[:,::1] faces): + if faces.shape[1] != 3: + raise Exception('faces has to be a Nx3 matrix') + self.faces = faces + cdef int[:,::1] faces_view = self.faces + self.input.faces = &faces_view[0,0] + self.input.n_faces = self.faces.shape[0] + +cdef class PyShader: + cdef Shader[float]* shader + + def __cinit__(self, float ka, float kd, float ks, float alpha): + self.shader = new Shader[float](ka, kd, ks, alpha) + + def __dealloc__(self): + del self.shader + + +cdef class PyRenderer: + cdef BaseRenderer[float]* renderer + + cdef Buffer[float] buffer + cdef depth_buffer + cdef color_buffer + cdef normal_buffer + + def depth(self): + return self.depth_buffer + + def color(self): + return self.color_buffer + + def normal(self): + return self.normal_buffer + + def __cinit__(self, PyCamera cam, PyShader shader, engine='cpu', int n_threads=1): + self.depth_buffer = np.empty((cam.cam[0].height, cam.cam[0].width), dtype=np.float32) + self.color_buffer = np.empty((cam.cam[0].height, cam.cam[0].width, 3), dtype=np.float32) + self.normal_buffer = np.empty((cam.cam[0].height, cam.cam[0].width, 3), dtype=np.float32) + + cdef float[:,::1] dbv = self.depth_buffer + cdef float[:,:,::1] cbv = self.color_buffer + cdef float[:,:,::1] nbv = self.normal_buffer + self.buffer.depth = &dbv[0,0] + self.buffer.color = &cbv[0,0,0] + self.buffer.normal = &nbv[0,0,0] + + if engine == 'cpu': + self.renderer = new RendererCpu[float](cam.cam[0], shader.shader[0], self.buffer, n_threads) + elif engine == 'gpu': + self.renderer = new RendererGpu[float](cam.cam[0], shader.shader[0], self.buffer) + else: + raise Exception('invalid engine') + + def __dealloc__(self): + del self.renderer + + def mesh(self, PyRenderInput input): + self.renderer.render_mesh(input.input) + + def mesh_proj(self, PyRenderInput input, PyCamera proj, float[:,:,::1] pattern, float d_alpha=1, float d_beta=0): + if pattern.shape[0] != proj.cam[0].height or pattern.shape[1] != proj.cam[0].width or pattern.shape[2] != 3: + raise Exception(f'pattern has to be a {proj.cam[0].height}x{proj.cam[0].width}x3 tensor') + self.renderer.render_mesh_proj(input.input, proj.cam[0], &pattern[0,0,0], d_alpha, d_beta) + diff --git a/renderer/render/co_types.h b/renderer/render/co_types.h new file mode 100644 index 0000000..6a9b9bb --- /dev/null +++ b/renderer/render/co_types.h @@ -0,0 +1,10 @@ +#ifndef TYPES_H +#define TYPES_H + +#ifdef __CUDA_ARCH__ +#define CPU_GPU_FUNCTION __host__ __device__ +#else +#define CPU_GPU_FUNCTION +#endif + +#endif diff --git a/renderer/render/common.h b/renderer/render/common.h new file mode 100644 index 0000000..d94501f --- /dev/null +++ b/renderer/render/common.h @@ -0,0 +1,135 @@ +#ifndef COMMON_H +#define COMMON_H + +#include "co_types.h" +#include +#include + +#if defined(_OPENMP) +#include +#endif + + +#define DISABLE_COPY_AND_ASSIGN(classname) \ +private:\ + classname(const classname&) = delete;\ + classname& operator=(const classname&) = delete; + + +template +CPU_GPU_FUNCTION +void fill(T* arr, int N, T val) { + for(int idx = 0; idx < N; ++idx) { + arr[idx] = val; + } +} + +template +CPU_GPU_FUNCTION +void fill_zero(T* arr, int N) { + for(int idx = 0; idx < N; ++idx) { + arr[idx] = 0; + } +} + +template +CPU_GPU_FUNCTION +inline T distance_euclidean(const T* q, const T* t, int N) { + T out = 0; + for(int idx = 0; idx < N; idx++) { + T diff = q[idx] - t[idx]; + out += diff * diff; + } + return out; +} + +template +CPU_GPU_FUNCTION +inline T distance_l2(const T* q, const T* t, int N) { + T out = distance_euclidean(q, t, N); + out = std::sqrt(out); + return out; +} + + + + +template +struct FillFunctor { + T* arr; + const T val; + + FillFunctor(T* arr, const T val) : arr(arr), val(val) {} + CPU_GPU_FUNCTION void operator()(const int idx) { + arr[idx] = val; + } +}; + +template +CPU_GPU_FUNCTION +T mmin(const T& a, const T& b) { +#ifdef __CUDA_ARCH__ + return min(a, b); +#else + return std::min(a, b); +#endif +} + +template +CPU_GPU_FUNCTION +T mmax(const T& a, const T& b) { +#ifdef __CUDA_ARCH__ + return max(a, b); +#else + return std::max(a, b); +#endif +} + +template +CPU_GPU_FUNCTION +T mround(const T& a) { +#ifdef __CUDA_ARCH__ + return round(a); +#else + return round(a); +#endif +} + + +#ifdef __CUDA_ARCH__ +#if __CUDA_ARCH__ < 600 +__device__ double atomicAdd(double* address, double val) +{ + unsigned long long int* address_as_ull = + (unsigned long long int*)address; + unsigned long long int old = *address_as_ull, assumed; + + do { + assumed = old; + old = atomicCAS(address_as_ull, assumed, + __double_as_longlong(val + + __longlong_as_double(assumed))); + + // Note: uses integer comparison to avoid hang in case of NaN (since NaN != NaN) + } while (assumed != old); + + return __longlong_as_double(old); +} +#endif +#endif + + +template +CPU_GPU_FUNCTION +void matomic_add(T* addr, T val) { +#ifdef __CUDA_ARCH__ + atomicAdd(addr, val); +#else +#if defined(_OPENMP) +#pragma omp atomic +#endif + *addr += val; +#endif +} + +#endif diff --git a/renderer/render/common_cpu.h b/renderer/render/common_cpu.h new file mode 100644 index 0000000..227a842 --- /dev/null +++ b/renderer/render/common_cpu.h @@ -0,0 +1,26 @@ +#ifndef COMMON_CPU +#define COMMON_CPU + +#if defined(_OPENMP) +#include +#endif + +template +void iterate_cpu(FunctorT functor, int N) { + for(int idx = 0; idx < N; ++idx) { + functor(idx); + } +} + +template +void iterate_omp_cpu(FunctorT functor, int N, int n_threads) { +#if defined(_OPENMP) + omp_set_num_threads(n_threads); + #pragma omp parallel for +#endif + for(int idx = 0; idx < N; ++idx) { + functor(idx); + } +} + +#endif diff --git a/renderer/render/common_cuda.h b/renderer/render/common_cuda.h new file mode 100644 index 0000000..4fe0b8a --- /dev/null +++ b/renderer/render/common_cuda.h @@ -0,0 +1,173 @@ +#ifndef COMMON_CUDA +#define COMMON_CUDA + +#include +#include + +#define DEBUG 0 +#define CUDA_DEBUG_DEVICE_SYNC 0 + +// cuda check for cudaMalloc and so on +#define CUDA_CHECK(condition) \ + /* Code block avoids redefinition of cudaError_t error */ \ + do { \ + if(CUDA_DEBUG_DEVICE_SYNC) { cudaDeviceSynchronize(); } \ + cudaError_t error = condition; \ + if(error != cudaSuccess) { \ + printf("%s in %s at %d\n", cudaGetErrorString(error), __FILE__, __LINE__); \ + exit(-1); \ + } \ + } while (0) + +/// Get error string for error code. +/// @param error +inline const char* cublasGetErrorString(cublasStatus_t error) { + switch (error) { + case CUBLAS_STATUS_SUCCESS: + return "CUBLAS_STATUS_SUCCESS"; + case CUBLAS_STATUS_NOT_INITIALIZED: + return "CUBLAS_STATUS_NOT_INITIALIZED"; + case CUBLAS_STATUS_ALLOC_FAILED: + return "CUBLAS_STATUS_ALLOC_FAILED"; + case CUBLAS_STATUS_INVALID_VALUE: + return "CUBLAS_STATUS_INVALID_VALUE"; + case CUBLAS_STATUS_ARCH_MISMATCH: + return "CUBLAS_STATUS_ARCH_MISMATCH"; + case CUBLAS_STATUS_MAPPING_ERROR: + return "CUBLAS_STATUS_MAPPING_ERROR"; + case CUBLAS_STATUS_EXECUTION_FAILED: + return "CUBLAS_STATUS_EXECUTION_FAILED"; + case CUBLAS_STATUS_INTERNAL_ERROR: + return "CUBLAS_STATUS_INTERNAL_ERROR"; + case CUBLAS_STATUS_NOT_SUPPORTED: + return "CUBLAS_STATUS_NOT_SUPPORTED"; + case CUBLAS_STATUS_LICENSE_ERROR: + return "CUBLAS_STATUS_LICENSE_ERROR"; + } + return "Unknown cublas status"; +} + +#define CUBLAS_CHECK(condition) \ + do { \ + if(CUDA_DEBUG_DEVICE_SYNC) { cudaDeviceSynchronize(); } \ + cublasStatus_t status = condition; \ + if(status != CUBLAS_STATUS_SUCCESS) { \ + printf("%s in %s at %d\n", cublasGetErrorString(status), __FILE__, __LINE__); \ + exit(-1); \ + } \ + } while (0) + +// check if there is a error after kernel execution +#define CUDA_POST_KERNEL_CHECK \ + CUDA_CHECK(cudaPeekAtLastError()); \ + CUDA_CHECK(cudaGetLastError()); + +#define CUDA_KERNEL_LOOP(i, n) \ + for (int i = blockIdx.x * blockDim.x + threadIdx.x; i < (n); i += blockDim.x * gridDim.x) + +const int CUDA_NUM_THREADS = 1024; + +inline int GET_BLOCKS(const int N, const int N_THREADS=CUDA_NUM_THREADS) { + return (N + N_THREADS - 1) / N_THREADS; +} + +template +T* device_malloc(long N) { + T* dptr; + CUDA_CHECK(cudaMalloc(&dptr, N * sizeof(T))); + if(DEBUG) { printf("[DEBUG] device_malloc %p, %ld\n", dptr, N); } + return dptr; +} + +template +void device_free(T* dptr) { + if(DEBUG) { printf("[DEBUG] device_free %p\n", dptr); } + CUDA_CHECK(cudaFree(dptr)); +} + +template +void host_to_device(const T* hptr, T* dptr, long N) { + if(DEBUG) { printf("[DEBUG] host_to_device %p => %p, %ld\n", hptr, dptr, N); } + CUDA_CHECK(cudaMemcpy(dptr, hptr, N * sizeof(T), cudaMemcpyHostToDevice)); +} + +template +T* host_to_device_malloc(const T* hptr, long N) { + T* dptr = device_malloc(N); + host_to_device(hptr, dptr, N); + return dptr; +} + +template +void device_to_host(const T* dptr, T* hptr, long N) { + if(DEBUG) { printf("[DEBUG] device_to_host %p => %p, %ld\n", dptr, hptr, N); } + CUDA_CHECK(cudaMemcpy(hptr, dptr, N * sizeof(T), cudaMemcpyDeviceToHost)); +} + +template +T* device_to_host_malloc(const T* dptr, long N) { + T* hptr = new T[N]; + device_to_host(dptr, hptr, N); + return hptr; +} + +template +void device_to_device(const T* dptr, T* hptr, long N) { + if(DEBUG) { printf("[DEBUG] device_to_device %p => %p, %ld\n", dptr, hptr, N); } + CUDA_CHECK(cudaMemcpy(hptr, dptr, N * sizeof(T), cudaMemcpyDeviceToDevice)); +} + +// https://github.com/parallel-forall/code-samples/blob/master/posts/cuda-aware-mpi-example/src/Device.cu +// https://github.com/treecode/Bonsai/blob/master/runtime/profiling/derived_atomic_functions.h +__device__ __forceinline__ void atomicMaxF(float * const address, const float value) { + if (*address >= value) { + return; + } + + int * const address_as_i = (int *)address; + int old = * address_as_i, assumed; + + do { + assumed = old; + if (__int_as_float(assumed) >= value) { + break; + } + + old = atomicCAS(address_as_i, assumed, __float_as_int(value)); + } while (assumed != old); +} + +__device__ __forceinline__ void atomicMinF(float * const address, const float value) { + if (*address <= value) { + return; + } + + int * const address_as_i = (int *)address; + int old = * address_as_i, assumed; + + do { + assumed = old; + if (__int_as_float(assumed) <= value) { + break; + } + + old = atomicCAS(address_as_i, assumed, __float_as_int(value)); + } while (assumed != old); +} + + +template +__global__ void iterate_kernel(FunctorT functor, int N) { + CUDA_KERNEL_LOOP(idx, N) { + functor(idx); + } +} + +template +void iterate_cuda(FunctorT functor, int N, int N_THREADS=CUDA_NUM_THREADS) { + iterate_kernel<<>>(functor, N); + CUDA_POST_KERNEL_CHECK; +} + + +#endif diff --git a/renderer/render/geometry.h b/renderer/render/geometry.h new file mode 100644 index 0000000..8f97851 --- /dev/null +++ b/renderer/render/geometry.h @@ -0,0 +1,294 @@ +#ifndef GEOMETRY_H +#define GEOMETRY_H + +#include +#include +#include + +#include "co_types.h" + +template +CPU_GPU_FUNCTION +inline void vec_fill(T* v, const T fill) { + for(int idx = 0; idx < N; ++idx) { + v[idx] = fill; + } +} + +template <> +CPU_GPU_FUNCTION +inline void vec_fill(float* v, const float fill) { + v[0] = fill; + v[1] = fill; + v[2] = fill; +} + +template +CPU_GPU_FUNCTION +inline void vec_add(const T* in1, const T* in2, T* out) { + for(int idx = 0; idx < N; ++idx) { + out[idx] = in1[idx] + in2[idx]; + } +} + +template <> +CPU_GPU_FUNCTION +inline void vec_add(const float* in1, const float* in2, float* out) { + out[0] = in1[0] + in2[0]; + out[1] = in1[1] + in2[1]; + out[2] = in1[2] + in2[2]; +} + +template +CPU_GPU_FUNCTION +inline void vec_add(const T lam1, const T* in1, const T lam2, const T* in2, T* out) { + for(int idx = 0; idx < N; ++idx) { + out[idx] = lam1 * in1[idx] + lam2 * in2[idx]; + } +} + +template <> +CPU_GPU_FUNCTION +inline void vec_add(const float lam1, const float* in1, const float lam2, const float* in2, float* out) { + out[0] = lam1 * in1[0] + lam2 * in2[0]; + out[1] = lam1 * in1[1] + lam2 * in2[1]; + out[2] = lam1 * in1[2] + lam2 * in2[2]; +} + +template +CPU_GPU_FUNCTION +inline void vec_sub(const T* in1, const T* in2, T* out) { + for(int idx = 0; idx < N; ++idx) { + out[idx] = in1[idx] - in2[idx]; + } +} + +template <> +CPU_GPU_FUNCTION +inline void vec_sub(const float* in1, const float* in2, float* out) { + out[0] = in1[0] - in2[0]; + out[1] = in1[1] - in2[1]; + out[2] = in1[2] - in2[2]; +} + +template +CPU_GPU_FUNCTION +inline void vec_add_scalar(const T* in, const T lam, T* out) { + for(int idx = 0; idx < N; ++idx) { + out[idx] = in[idx] + lam; + } +} + +template <> +CPU_GPU_FUNCTION +inline void vec_add_scalar(const float* in, const float lam, float* out) { + out[0] = in[0] + lam; + out[1] = in[1] + lam; + out[2] = in[2] + lam; +} + +template +CPU_GPU_FUNCTION +inline void vec_mul_scalar(const T* in, const T lam, T* out) { + for(int idx = 0; idx < N; ++idx) { + out[idx] = in[idx] * lam; + } +} + +template <> +CPU_GPU_FUNCTION +inline void vec_mul_scalar(const float* in, const float lam, float* out) { + out[0] = in[0] * lam; + out[1] = in[1] * lam; + out[2] = in[2] * lam; +} + +template +CPU_GPU_FUNCTION +inline void vec_div_scalar(const T* in, const T lam, T* out) { + for(int idx = 0; idx < N; ++idx) { + out[idx] = in[idx] / lam; + } +} + +template <> +CPU_GPU_FUNCTION +inline void vec_div_scalar(const float* in, const float lam, float* out) { + out[0] = in[0] / lam; + out[1] = in[1] / lam; + out[2] = in[2] / lam; +} + +template +CPU_GPU_FUNCTION +inline void mat_dot_vec3(const T* M, const T* v, T* w) { + w[0] = M[0] * v[0] + M[1] * v[1] + M[2] * v[2]; + w[1] = M[3] * v[0] + M[4] * v[1] + M[5] * v[2]; + w[2] = M[6] * v[0] + M[7] * v[1] + M[8] * v[2]; +} + +template +CPU_GPU_FUNCTION +inline void matT_dot_vec3(const T* M, const T* v, T* w) { + w[0] = M[0] * v[0] + M[3] * v[1] + M[6] * v[2]; + w[1] = M[1] * v[0] + M[4] * v[1] + M[7] * v[2]; + w[2] = M[2] * v[0] + M[5] * v[1] + M[8] * v[2]; +} + +template +CPU_GPU_FUNCTION +inline T vec_dot(const T* in1, const T* in2) { + T out = T(0); + for(int idx = 0; idx < N; ++idx) { + out += in1[idx] * in2[idx]; + } + return out; +} + +template <> +CPU_GPU_FUNCTION +inline float vec_dot(const float* in1, const float* in2) { + return in1[0] * in2[0] + in1[1] * in2[1] + in1[2] * in2[2]; +} + +template +CPU_GPU_FUNCTION +inline void vec_cross3(const T* u, const T* v, T* out) { + out[0] = u[1] * v[2] - u[2] * v[1]; + out[1] = u[2] * v[0] - u[0] * v[2]; + out[2] = u[0] * v[1] - u[1] * v[0]; +} + +template +CPU_GPU_FUNCTION +inline T vec_norm(const T* u) { + T norm = T(0); + for(int idx = 0; idx < N; ++idx) { + norm += u[idx] * u[idx]; + } + return std::sqrt(norm); +} + +template <> +CPU_GPU_FUNCTION +inline float vec_norm(const float* u) { + return std::sqrt(u[0] * u[0] + u[1] * u[1] + u[2] * u[2]); +} + +template +CPU_GPU_FUNCTION +inline void vec_normalize(const T* u, T* v) { + T denom = vec_norm(u); + vec_div_scalar(u, denom, v); +} + +template <> +CPU_GPU_FUNCTION +inline void vec_normalize(const float* u, float* v) { + vec_div_scalar(u, vec_norm(u), v); +} + +template +CPU_GPU_FUNCTION +void vertex_normal_3d(const T* a, const T* b, const T* c, T* no) { + T e1[3]; + T e2[3]; + vec_sub(a, b, e1); + vec_sub(c, b, e2); + vec_cross3(e1, e2, no); +} + +template +CPU_GPU_FUNCTION +bool ray_triangle_intersect_3d(const T* orig, const T* dir, const T* v0, const T* v1, const T* v2, T* t, T* u, T* v, T eps = 1e-6) { + T v0v1[3]; + vec_sub(v1, v0, v0v1); + T v0v2[3]; + vec_sub(v2, v0, v0v2); + T pvec[3]; + vec_cross3(dir, v0v2, pvec); + T det = vec_dot(v0v1, pvec); + + if(fabs(det) < eps) return false; + + T inv_det = 1 / det; + + T tvec[3]; + vec_sub(orig, v0, tvec); + *u = vec_dot(tvec, pvec) * inv_det; + if(*u < 0 || *u > 1) return false; + + T qvec[3]; + vec_cross3(tvec, v0v1, qvec); + *v = vec_dot(dir, qvec) * inv_det; + if(*v < 0 || (*u + *v) > 1) return false; + + *t = vec_dot(v0v2, qvec) * inv_det; + T w = 1 - *u - *v; + *v = *u; + *u = w; + + return true; +} + +template +CPU_GPU_FUNCTION +bool ray_triangle_mesh_intersect_3d(const T* orig, const T* dir, const int* faces, int n_faces, const T* vertices, int* face_idx, T* t, T* u, T* v) { +#ifdef __CUDA_ARCH__ + *t = 1e9; +#else + *t = std::numeric_limits::max(); +#endif + bool valid = false; + for(int fidx = 0; fidx < n_faces; ++fidx) { + const T* v0 = vertices + faces[fidx * 3 + 0] * 3; + const T* v1 = vertices + faces[fidx * 3 + 1] * 3; + const T* v2 = vertices + faces[fidx * 3 + 2] * 3; + + T ft, fu, fv; + bool inter = ray_triangle_intersect_3d(orig, dir, v0,v1,v2, &ft,&fu,&fv); + if(inter && ft < *t) { + *face_idx = fidx; + *t = ft; + *u = fu; + *v = fv; + valid = true; + } + } + + return valid; +} + +template +CPU_GPU_FUNCTION +void reflectance_light_dir(const T* sp, const T* lp, T* l) { + vec_sub(lp, sp, l); + vec_normalize(l, l); +} + +template +CPU_GPU_FUNCTION +T reflectance_lambartian(const T* sp, const T* lp, const T* n) { + T l[3]; + reflectance_light_dir(sp, lp, l); + return vec_dot(l, n); +} + +template +CPU_GPU_FUNCTION +T reflectance_phong(const T* orig, const T* sp, const T* lp, const T* n, const T ka, const T kd, const T ks, const T alpha) { + T l[3]; + reflectance_light_dir(sp, lp, l); + + T r[3]; + vec_add(2 * vec_dot(l, n), n, -1.f, l, r); + vec_normalize(r,r); //needed? + + T v[3]; + vec_sub(orig, sp, v); + vec_normalize(v, v); + + return ka + kd * vec_dot(l, n) + ks * std::pow(vec_dot(r, v), alpha); +} + +#endif diff --git a/renderer/render/render.h b/renderer/render/render.h new file mode 100644 index 0000000..fba2fc6 --- /dev/null +++ b/renderer/render/render.h @@ -0,0 +1,369 @@ +#ifndef RENDER_H +#define RENDER_H + +#include +#include + +#include "co_types.h" +#include "common.h" +#include "geometry.h" + + +template +struct Camera { + const T fx; + const T fy; + const T px; + const T py; + const T R0, R1, R2, R3, R4, R5, R6, R7, R8; + const T t0, t1, t2; + const T C0, C1, C2; + const int height; + const int width; + + Camera(const T fx, const T fy, const T px, const T py, const T* R, const T* t, int width, int height) : + fx(fx), fy(fy), px(px), py(py), + R0(R[0]), R1(R[1]), R2(R[2]), R3(R[3]), R4(R[4]), R5(R[5]), R6(R[6]), R7(R[7]), R8(R[8]), + t0(t[0]), t1(t[1]), t2(t[2]), + C0(-(R[0] * t[0] + R[3] * t[1] + R[6] * t[2])), + C1(-(R[1] * t[0] + R[4] * t[1] + R[7] * t[2])), + C2(-(R[2] * t[0] + R[5] * t[1] + R[8] * t[2])), + height(height), width(width) + { + } + + CPU_GPU_FUNCTION + inline void to_cam(const T* x, T* y) const { + y[0] = R0 * x[0] + R1 * x[1] + R2 * x[2] + t0; + y[1] = R3 * x[0] + R4 * x[1] + R5 * x[2] + t1; + y[2] = R6 * x[0] + R7 * x[1] + R8 * x[2] + t2; + } + + CPU_GPU_FUNCTION + inline void to_world(const T* x, T* y) const { + y[0] = R0 * (x[0] - t0) + R3 * (x[1] - t1) + R6 * (x[2] - t2); + y[1] = R1 * (x[0] - t0) + R4 * (x[1] - t1) + R7 * (x[2] - t2); + y[2] = R2 * (x[0] - t0) + R5 * (x[1] - t1) + R8 * (x[2] - t2); + } + + CPU_GPU_FUNCTION + inline void to_ray(const int h, const int w, T* dir) const { + T uhat[2]; + uhat[0] = (w - px) / fx; + uhat[1] = (h - py) / fy; + dir[0] = R0 * (uhat[0]) + R3 * (uhat[1]) + R6; + dir[1] = R1 * (uhat[0]) + R4 * (uhat[1]) + R7; + dir[2] = R2 * (uhat[0]) + R5 * (uhat[1]) + R8; + } + + CPU_GPU_FUNCTION + inline void to_2d(const T* xyz, T* u, T* v, T* d) const { + T xyz_t[3]; + to_cam(xyz, xyz_t); + *u = fx * xyz_t[0] + px * xyz_t[2]; + *v = fy * xyz_t[1] + py * xyz_t[2]; + *d = xyz_t[2]; + *u /= *d; + *v /= *d; + } + + CPU_GPU_FUNCTION + inline void get_C(T* C) const { + C[0] = C0; + C[1] = C1; + C[2] = C2; + } + + CPU_GPU_FUNCTION + inline int num_pixel() const { + return height * width; + } +}; + + +template +struct RenderInput { + T* verts; + T* colors; + T* normals; + int n_verts; + int* faces; + int n_faces; + + RenderInput() : verts(nullptr), colors(nullptr), normals(nullptr), n_verts(0), faces(nullptr), n_faces(0) {} +}; + +template +struct Buffer { + T* depth; + T* color; + T* normal; + + Buffer() : depth(nullptr), color(nullptr), normal(nullptr) {} +}; + +template +struct Shader { + const T ka; + const T kd; + const T ks; + const T alpha; + + Shader(T ka, T kd, T ks, T alpha) : ka(ka), kd(kd), ks(ks), alpha(alpha) {} + + CPU_GPU_FUNCTION + T operator()(const T* orig, const T* sp, const T* lp, const T* norm) const { + return reflectance_phong(orig, sp, lp, norm, ka, kd, ks, alpha); + } +}; + + + +template +class BaseRenderer { +public: + const Camera cam; + const Shader shader; + Buffer buffer; + + BaseRenderer(const Camera cam, const Shader shader, Buffer buffer) : cam(cam), shader(shader), buffer(buffer) { + } + + virtual ~BaseRenderer() {} + + virtual void render_mesh(const RenderInput input) = 0; + virtual void render_mesh_proj(const RenderInput input, const Camera proj, const float* pattern, float d_alpha, float d_beta) = 0; +}; + + + +template +struct RenderFunctor { + const Camera cam; + const Shader shader; + Buffer buffer; + + RenderFunctor(const Camera cam, const Shader shader, Buffer buffer) : cam(cam), shader(shader), buffer(buffer) {} +}; + + +template +struct RenderMeshFunctor : public RenderFunctor { + const RenderInput input; + + RenderMeshFunctor(const RenderInput input, const Shader shader, const Camera cam, Buffer buffer) : RenderFunctor(cam, shader,buffer), input(input) { + } + + CPU_GPU_FUNCTION void operator()(const int idx) { + int h = idx / this->cam.width; + int w = idx % this->cam.width; + + T orig[3]; + this->cam.get_C(orig); + T dir[3]; + this->cam.to_ray(h, w, dir); + + int face_idx; + T t, tu, tv; + bool valid = ray_triangle_mesh_intersect_3d(orig, dir, this->input.faces, this->input.n_faces, this->input.verts, &face_idx, &t, &tu, &tv); + + if(this->buffer.depth != nullptr) { + this->buffer.depth[idx] = valid ? t : -1; + } + + if(!valid) { + if(this->buffer.color != nullptr) { + this->buffer.color[idx * 3 + 0] = 0; + this->buffer.color[idx * 3 + 1] = 0; + this->buffer.color[idx * 3 + 2] = 0; + } + if(this->buffer.normal != nullptr) { + this->buffer.normal[idx * 3 + 0] = 0; + this->buffer.normal[idx * 3 + 1] = 0; + this->buffer.normal[idx * 3 + 2] = 0; + } + } + else if(this->buffer.normal != nullptr || this->buffer.color != nullptr) { + const int* face = input.faces + face_idx * 3; + T tw = 1 - tu - tv; + + T norm[3]; + vec_fill(norm, 0.f); + vec_add(1.f, norm, tu, this->input.normals + face[0] * 3, norm); + vec_add(1.f, norm, tv, this->input.normals + face[1] * 3, norm); + vec_add(1.f, norm, tw, this->input.normals + face[2] * 3, norm); + if(vec_dot(norm, dir) > 0) { + vec_mul_scalar(norm, -1.f, norm); + } + + if(this->buffer.normal != nullptr) { + this->buffer.normal[idx * 3 + 0] = norm[0]; + this->buffer.normal[idx * 3 + 1] = norm[1]; + this->buffer.normal[idx * 3 + 2] = norm[2]; + } + + if(this->buffer.color != nullptr) { + T color[3]; + vec_fill(color, 0.f); + vec_add(1.f, color, tu, this->input.colors + face[0] * 3, color); + vec_add(1.f, color, tv, this->input.colors + face[1] * 3, color); + vec_add(1.f, color, tw, this->input.colors + face[2] * 3, color); + + T sp[3]; + vec_add(1.f, orig, t, dir, sp); + T reflectance = this->shader(orig, sp, orig, norm); + + this->buffer.color[idx * 3 + 0] = mmin(1.f, mmax(0.f, reflectance * color[0])); + this->buffer.color[idx * 3 + 1] = mmin(1.f, mmax(0.f, reflectance * color[1])); + this->buffer.color[idx * 3 + 2] = mmin(1.f, mmax(0.f, reflectance * color[2])); + } + } + } +}; + +template +CPU_GPU_FUNCTION +inline void interpolate_linear(const T* im, T x, T y, int height, int width, T* out_vec) { + int x1 = int(x); + int y1 = int(y); + int x2 = x1 + 1; + int y2 = y1 + 1; + + T denom = (x2 - x1) * (y2 - y1); + T t11 = (x2 - x) * (y2 - y); + T t21 = (x - x1) * (y2 - y); + T t12 = (x2 - x) * (y - y1); + T t22 = (x - x1) * (y - y1); + + x1 = mmin(mmax(x1, int(0)), width-1); + x2 = mmin(mmax(x2, int(0)), width-1); + y1 = mmin(mmax(y1, int(0)), height-1); + y2 = mmin(mmax(y2, int(0)), height-1); + + for(int idx = 0; idx < n; ++idx) { + out_vec[idx] = (im[(y1 * width + x1) * 3 + idx] * t11 + + im[(y2 * width + x1) * 3 + idx] * t12 + + im[(y1 * width + x2) * 3 + idx] * t21 + + im[(y2 * width + x2) * 3 + idx] * t22) / denom; + } +} + +template +struct RenderProjectorFunctor : public RenderFunctor { + const RenderInput input; + const Camera proj; + const float* pattern; + const float d_alpha; + const float d_beta; + + RenderProjectorFunctor(const RenderInput input, const Shader shader, const Camera cam, const Camera proj, const float* pattern, float d_alpha, float d_beta, Buffer buffer) : RenderFunctor(cam, shader, buffer), input(input), proj(proj), pattern(pattern), d_alpha(d_alpha), d_beta(d_beta) { + } + + CPU_GPU_FUNCTION void operator()(const int idx) { + int h = idx / this->cam.width; + int w = idx % this->cam.width; + + T orig[3]; + this->cam.get_C(orig); + T dir[3]; + this->cam.to_ray(h, w, dir); + + int face_idx; + T t, tu, tv; + bool valid = ray_triangle_mesh_intersect_3d(orig, dir, this->input.faces, this->input.n_faces, this->input.verts, &face_idx, &t, &tu, &tv); + if(this->buffer.depth != nullptr) { + this->buffer.depth[idx] = valid ? t : -1; + } + + this->buffer.color[idx * 3 + 0] = 0; + this->buffer.color[idx * 3 + 1] = 0; + this->buffer.color[idx * 3 + 2] = 0; + + if(valid) { + if(this->buffer.normal != nullptr) { + const int* face = input.faces + face_idx * 3; + T tw = 1 - tu - tv; + + T norm[3]; + vertex_normal_3d( + this->input.verts + face[0] * 3, + this->input.verts + face[1] * 3, + this->input.verts + face[2] * 3, + norm); + vec_normalize(norm, norm); + + if(vec_dot(norm, dir) > 0) { + vec_mul_scalar(norm, -1.f, norm); + } + + T color[3]; + vec_fill(color, 0.f); + vec_add(1.f, color, tu, this->input.colors + face[0] * 3, color); + vec_add(1.f, color, tv, this->input.colors + face[1] * 3, color); + vec_add(1.f, color, tw, this->input.colors + face[2] * 3, color); + + T sp[3]; + vec_add(1.f, orig, t, dir, sp); + T reflectance = this->shader(orig, sp, orig, norm); + + this->buffer.normal[idx * 3 + 0] = mmin(1.f, mmax(0.f, reflectance * color[0])); + this->buffer.normal[idx * 3 + 1] = mmin(1.f, mmax(0.f, reflectance * color[1])); + this->buffer.normal[idx * 3 + 2] = mmin(1.f, mmax(0.f, reflectance * color[2])); + } + + // get 3D point + T pt[3]; + vec_mul_scalar(dir, t, pt); + vec_add(orig, pt, pt); + + // get dir from proj + T proj_orig[3]; + proj.get_C(proj_orig); + T proj_dir[3]; + vec_sub(pt, proj_orig, proj_dir); + vec_div_scalar(proj_dir, proj_dir[2], proj_dir); + + // check if it hit same tria + int p_face_idx; + T p_t, p_tu, p_tv; + valid = ray_triangle_mesh_intersect_3d(proj_orig, proj_dir, this->input.faces, this->input.n_faces, this->input.verts, &p_face_idx, &p_t, &p_tu, &p_tv); + // if(!valid || p_face_idx != face_idx) { + // return; + // } + + T p_pt[3]; + vec_mul_scalar(proj_dir, p_t, p_pt); + vec_add(proj_orig, p_pt, p_pt); + T diff[3]; + vec_sub(p_pt, pt, diff); + if(!valid || vec_norm(diff) > 1e-5) { + return; + } + + // get uv in proj + T u,v,d; + proj.to_2d(p_pt, &u,&v,&d); + + // if valid u,v than use it to inpaint + if(u >= 0 && v >= 0 && u < this->proj.width && v < this->proj.height) { + // int pattern_idx = ((int(v) * this->proj.width) + int(u)) * 3; + // this->buffer.color[idx * 3 + 0] = pattern[pattern_idx + 0]; + // this->buffer.color[idx * 3 + 1] = pattern[pattern_idx + 1]; + // this->buffer.color[idx * 3 + 2] = pattern[pattern_idx + 2]; + interpolate_linear(pattern, u, v, this->proj.height, this->proj.width, this->buffer.color + idx * 3); + + // decay based on distance + T decay = d_alpha + d_beta * d; + decay *= decay; + decay = mmax(decay, T(1)); + vec_div_scalar(this->buffer.color + idx * 3, decay, this->buffer.color + idx * 3); + } + } + + } +}; + + + + +#endif diff --git a/renderer/render/render_cpu.cpp b/renderer/render/render_cpu.cpp new file mode 100644 index 0000000..4dcd1bc --- /dev/null +++ b/renderer/render/render_cpu.cpp @@ -0,0 +1,22 @@ +#include + +#if defined(_OPENMP) +#include +#endif + +#include "render_cpu.h" +#include "common_cpu.h" + +template +void RendererCpu::render_mesh(RenderInput input) { + RenderMeshFunctor functor(input, this->shader, this->cam, this->buffer); + iterate_omp_cpu(functor, this->cam.num_pixel(), n_threads); +} + +template +void RendererCpu::render_mesh_proj(const RenderInput input, const Camera proj, const float* pattern, float d_alpha, float d_beta) { + RenderProjectorFunctor functor(input, this->shader, this->cam, proj, pattern, d_alpha, d_beta, this->buffer); + iterate_omp_cpu(functor, this->cam.num_pixel(), this->n_threads); +} + +template class RendererCpu; diff --git a/renderer/render/render_cpu.h b/renderer/render/render_cpu.h new file mode 100644 index 0000000..c228450 --- /dev/null +++ b/renderer/render/render_cpu.h @@ -0,0 +1,23 @@ +#ifndef RENDER_CPU_H +#define RENDER_CPU_H + +#include "render.h" + + + +template +class RendererCpu : public BaseRenderer { +public: + const int n_threads; + + RendererCpu(const Camera cam, const Shader shader, Buffer buffer, int n_threads) : BaseRenderer(cam, shader, buffer), n_threads(n_threads) { + } + + virtual ~RendererCpu() { + } + + virtual void render_mesh(const RenderInput input); + virtual void render_mesh_proj(const RenderInput input, const Camera proj, const float* pattern, float d_alpha, float d_beta); +}; + +#endif diff --git a/renderer/render/render_gpu.cu b/renderer/render/render_gpu.cu new file mode 100644 index 0000000..03d32c8 --- /dev/null +++ b/renderer/render/render_gpu.cu @@ -0,0 +1,100 @@ +#include "common_cuda.h" +#include "render_gpu.h" + +template +RendererGpu::RendererGpu(const Camera cam, const Shader shader, Buffer buffer) : BaseRenderer(cam, shader, buffer) { + if(buffer.depth != nullptr) { + buffer_gpu.depth = device_malloc(cam.num_pixel()); + } + + if(buffer.color != nullptr) { + buffer_gpu.color = device_malloc(cam.num_pixel() * 3); + } + + if(buffer.normal != nullptr) { + buffer_gpu.normal = device_malloc(cam.num_pixel() * 3); + } +} + +template +RendererGpu::~RendererGpu() { + device_free(buffer_gpu.depth); + device_free(buffer_gpu.color); + device_free(buffer_gpu.normal); +} + +template +void RendererGpu::gpu_to_cpu() { + if(buffer_gpu.depth != nullptr && this->buffer.depth != nullptr) { + device_to_host(buffer_gpu.depth, this->buffer.depth, this->cam.num_pixel()); + } + if(buffer_gpu.color != nullptr && this->buffer.color != nullptr) { + device_to_host(buffer_gpu.color, this->buffer.color, this->cam.num_pixel() * 3); + } + if(buffer_gpu.normal != nullptr && this->buffer.normal != nullptr) { + device_to_host(buffer_gpu.normal, this->buffer.normal, this->cam.num_pixel() * 3); + } +} + +template +RenderInput RendererGpu::input_to_device(const RenderInput input) { + RenderInput input_gpu; + input_gpu.n_verts = input.n_verts; + input_gpu.n_faces = input.n_faces; + + if(input.verts != nullptr) { + input_gpu.verts = host_to_device_malloc(input.verts, input.n_verts * 3); + } + if(input.colors != nullptr) { + input_gpu.colors = host_to_device_malloc(input.colors, input.n_verts * 3); + } + if(input.normals != nullptr) { + input_gpu.normals = host_to_device_malloc(input.normals, input.n_verts * 3); + } + if(input.faces != nullptr) { + input_gpu.faces = host_to_device_malloc(input.faces, input.n_faces * 3); + } + + return input_gpu; +} + +template +void RendererGpu::input_free_device(const RenderInput input) { + if(input.verts != nullptr) { + device_free(input.verts); + } + if(input.colors != nullptr) { + device_free(input.colors); + } + if(input.normals != nullptr) { + device_free(input.normals); + } + if(input.faces != nullptr) { + device_free(input.faces); + } +} + + +template +void RendererGpu::render_mesh(RenderInput input) { + RenderInput input_gpu = this->input_to_device(input); + RenderMeshFunctor functor(input_gpu, this->shader, this->cam, this->buffer_gpu); + iterate_cuda(functor, this->cam.num_pixel()); + gpu_to_cpu(); + this->input_free_device(input_gpu); +} + +template +void RendererGpu::render_mesh_proj(const RenderInput input, const Camera proj, const float* pattern, float d_alpha, float d_beta) { + RenderInput input_gpu = this->input_to_device(input); + float* pattern_gpu = host_to_device_malloc(pattern, proj.num_pixel()*3); + + RenderProjectorFunctor functor(input_gpu, this->shader, this->cam, proj, pattern_gpu, d_alpha, d_beta, this->buffer_gpu); + iterate_cuda(functor, this->cam.num_pixel()); + + gpu_to_cpu(); + this->input_free_device(input_gpu); + device_free(pattern_gpu); +} + +template class RendererGpu; diff --git a/renderer/render/render_gpu.h b/renderer/render/render_gpu.h new file mode 100644 index 0000000..4c9f630 --- /dev/null +++ b/renderer/render/render_gpu.h @@ -0,0 +1,23 @@ +#ifndef RENDER_RENDER_GPU_H +#define RENDER_RENDER_GPU_H + +#include "render.h" + +template +class RendererGpu : public BaseRenderer { +public: + Buffer buffer_gpu; + + RendererGpu(const Camera cam, const Shader shader, Buffer buffer); + + virtual ~RendererGpu(); + + virtual void gpu_to_cpu(); + virtual RenderInput input_to_device(const RenderInput input); + virtual void input_free_device(const RenderInput input); + + virtual void render_mesh(const RenderInput input); + virtual void render_mesh_proj(const RenderInput input, const Camera proj, const float* pattern, float d_alpha, float d_beta); +}; + +#endif diff --git a/renderer/render/render_gpu_dummy.cpp b/renderer/render/render_gpu_dummy.cpp new file mode 100644 index 0000000..66cb55e --- /dev/null +++ b/renderer/render/render_gpu_dummy.cpp @@ -0,0 +1,33 @@ +#include "render_gpu.h" + +template +RendererGpu::RendererGpu(const Camera cam, const Shader shader, Buffer buffer) : BaseRenderer(cam, shader, buffer) { +} + +template +RendererGpu::~RendererGpu() { +} + +template +void RendererGpu::gpu_to_cpu() {} + +template +RenderInput RendererGpu::input_to_device(const RenderInput input) { return RenderInput(); } + +template +void RendererGpu::input_free_device(const RenderInput input) { + throw std::logic_error("Not implemented"); +} + +template +void RendererGpu::render_mesh(const RenderInput input) { + throw std::logic_error("Not implemented"); +} + +template +void RendererGpu::render_mesh_proj(const RenderInput input, const Camera proj, const float* pattern, float d_alpha, float d_beta) { + throw std::logic_error("Not implemented"); +} + + +template class RendererGpu; diff --git a/renderer/render/stdlib_cuda.cu b/renderer/render/stdlib_cuda.cu new file mode 100644 index 0000000..6e56c60 --- /dev/null +++ b/renderer/render/stdlib_cuda.cu @@ -0,0 +1,35 @@ +#include "common_cuda.h" +#include "stdlib_cuda.h" + +void device_synchronize() { + cudaDeviceSynchronize(); +} + +float* device_malloc_f32(long N) { + return device_malloc(N); +} +int* device_malloc_i32(long N) { + return device_malloc(N); +} + +void device_free_f32(float* dptr) { + device_free(dptr); +} +void device_free_i32(int* dptr) { + device_free(dptr); +} + +void device_to_host_f32(const float* dptr, float* hptr, long N) { + device_to_host(dptr, hptr, N); +} +void device_to_host_i32(const int* dptr, int* hptr, long N) { + device_to_host(dptr, hptr, N); +} + +float* host_to_device_malloc_f32(const float* hptr, long N) { + return host_to_device_malloc(hptr, N); +} + +int* host_to_device_malloc_i32(const int* hptr, long N) { + return host_to_device_malloc(hptr, N); +} diff --git a/renderer/render/stdlib_cuda.h b/renderer/render/stdlib_cuda.h new file mode 100644 index 0000000..fca096f --- /dev/null +++ b/renderer/render/stdlib_cuda.h @@ -0,0 +1,18 @@ +#ifndef STDLIB_CUDA +#define STDLIB_CUDA + +void device_synchronize(); + +float* device_malloc_f32(long N); +int* device_malloc_i32(long N); + +void device_free_f32(float* dptr); +void device_free_i32(int* dptr); + +float* host_to_device_malloc_f32(const float* hptr, long N); +int* host_to_device_malloc_i32(const int* hptr, long N); + +void device_to_host_f32(const float* dptr, float* hptr, long N); +void device_to_host_i32(const int* dptr, int* hptr, long N); + +#endif diff --git a/renderer/render/stdlib_cuda_dummy.cpp b/renderer/render/stdlib_cuda_dummy.cpp new file mode 100644 index 0000000..265ab52 --- /dev/null +++ b/renderer/render/stdlib_cuda_dummy.cpp @@ -0,0 +1,10 @@ +#include "stdlib_cuda.h" + +float* device_malloc_f32(long N) { return nullptr; } +int* device_malloc_i32(long N) { return nullptr; } +void device_free_f32(float* dptr) {} +void device_free_i32(int* dptr) {} +float* host_to_device_malloc_f32(const float* hptr, long N) { return nullptr; } +int* host_to_device_malloc_i32(const int* hptr, long N) { return nullptr; } +void device_to_host_f32(const float* dptr, float* hptr, long N) {} +void device_to_host_i32(const int* dptr, int* hptr, long N) {} diff --git a/renderer/setup.py b/renderer/setup.py new file mode 100644 index 0000000..393f160 --- /dev/null +++ b/renderer/setup.py @@ -0,0 +1,49 @@ +from distutils.core import setup +from Cython.Build import cythonize +from distutils.extension import Extension +from Cython.Distutils import build_ext +import numpy as np +import platform +import os +import json + +this_dir = os.path.dirname(__file__) + +with open('../config.json') as fp: + config = json.load(fp) + +extra_compile_args = ['-O3', '-std=c++11'] + +print('using cuda') +cuda_lib_dir = config['CUDA_LIBRARY_DIR'] +cuda_lib = 'cudart' + +sources = ['cyrender.pyx'] +extra_objects = [ + os.path.join(this_dir, 'render/render_cpu.cpp.o'), +] +library_dirs = [] +libraries = ['m'] +extra_objects.append(os.path.join(this_dir, 'render/render_gpu.cu.o')) +extra_objects.append(os.path.join(this_dir, 'render/stdlib_cuda.cu.o')) +library_dirs.append(cuda_lib_dir) +libraries.append(cuda_lib) + +setup( + name="cyrender", + cmdclass= {'build_ext': build_ext}, + ext_modules=[ + Extension('cyrender', + sources, + extra_objects=extra_objects, + language='c++', + library_dirs=library_dirs, + libraries=libraries, + include_dirs=[ + np.get_include(), + ], + extra_compile_args=extra_compile_args, + # extra_link_args=extra_link_args + ) + ] +) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..a9b54f9 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,6 @@ +cython +numpy +matplotlib +pandas +scipy +opencv diff --git a/torchext/__init__.py b/torchext/__init__.py new file mode 100644 index 0000000..7001ba5 --- /dev/null +++ b/torchext/__init__.py @@ -0,0 +1,4 @@ +from .dataset import * +from .worker import * +from .functions import * +from .modules import * diff --git a/torchext/dataset.py b/torchext/dataset.py new file mode 100644 index 0000000..2c606df --- /dev/null +++ b/torchext/dataset.py @@ -0,0 +1,66 @@ +import torch +import torch.utils.data +import numpy as np + +class TestSet(object): + def __init__(self, name, dset, test_frequency=1): + self.name = name + self.dset = dset + self.test_frequency = test_frequency + +class TestSets(list): + def append(self, name, dset, test_frequency=1): + super().append(TestSet(name, dset, test_frequency)) + + + +class MultiDataset(torch.utils.data.Dataset): + def __init__(self, *datasets): + self.current_epoch = 0 + + self.datasets = [] + self.cum_n_samples = [0] + + for dataset in datasets: + self.append(dataset) + + def append(self, dataset): + self.datasets.append(dataset) + self.__update_cum_n_samples(dataset) + + def __update_cum_n_samples(self, dataset): + n_samples = self.cum_n_samples[-1] + len(dataset) + self.cum_n_samples.append(n_samples) + + def dataset_updated(self): + self.cum_n_samples = [0] + for dset in self.datasets: + self.__update_cum_n_samples(dset) + + def __len__(self): + return self.cum_n_samples[-1] + + def __getitem__(self, idx): + didx = np.searchsorted(self.cum_n_samples, idx, side='right') - 1 + sidx = idx - self.cum_n_samples[didx] + return self.datasets[didx][sidx] + + + +class BaseDataset(torch.utils.data.Dataset): + def __init__(self, train=True, fix_seed_per_epoch=False): + self.current_epoch = 0 + self.train = train + self.fix_seed_per_epoch = fix_seed_per_epoch + + def get_rng(self, idx): + rng = np.random.RandomState() + if self.train: + if self.fix_seed_per_epoch: + seed = 1 * len(self) + idx + else: + seed = (self.current_epoch + 1) * len(self) + idx + rng.seed(seed) + else: + rng.seed(idx) + return rng diff --git a/torchext/ext/co_types.h b/torchext/ext/co_types.h new file mode 100644 index 0000000..6a9b9bb --- /dev/null +++ b/torchext/ext/co_types.h @@ -0,0 +1,10 @@ +#ifndef TYPES_H +#define TYPES_H + +#ifdef __CUDA_ARCH__ +#define CPU_GPU_FUNCTION __host__ __device__ +#else +#define CPU_GPU_FUNCTION +#endif + +#endif diff --git a/torchext/ext/common.h b/torchext/ext/common.h new file mode 100644 index 0000000..d94501f --- /dev/null +++ b/torchext/ext/common.h @@ -0,0 +1,135 @@ +#ifndef COMMON_H +#define COMMON_H + +#include "co_types.h" +#include +#include + +#if defined(_OPENMP) +#include +#endif + + +#define DISABLE_COPY_AND_ASSIGN(classname) \ +private:\ + classname(const classname&) = delete;\ + classname& operator=(const classname&) = delete; + + +template +CPU_GPU_FUNCTION +void fill(T* arr, int N, T val) { + for(int idx = 0; idx < N; ++idx) { + arr[idx] = val; + } +} + +template +CPU_GPU_FUNCTION +void fill_zero(T* arr, int N) { + for(int idx = 0; idx < N; ++idx) { + arr[idx] = 0; + } +} + +template +CPU_GPU_FUNCTION +inline T distance_euclidean(const T* q, const T* t, int N) { + T out = 0; + for(int idx = 0; idx < N; idx++) { + T diff = q[idx] - t[idx]; + out += diff * diff; + } + return out; +} + +template +CPU_GPU_FUNCTION +inline T distance_l2(const T* q, const T* t, int N) { + T out = distance_euclidean(q, t, N); + out = std::sqrt(out); + return out; +} + + + + +template +struct FillFunctor { + T* arr; + const T val; + + FillFunctor(T* arr, const T val) : arr(arr), val(val) {} + CPU_GPU_FUNCTION void operator()(const int idx) { + arr[idx] = val; + } +}; + +template +CPU_GPU_FUNCTION +T mmin(const T& a, const T& b) { +#ifdef __CUDA_ARCH__ + return min(a, b); +#else + return std::min(a, b); +#endif +} + +template +CPU_GPU_FUNCTION +T mmax(const T& a, const T& b) { +#ifdef __CUDA_ARCH__ + return max(a, b); +#else + return std::max(a, b); +#endif +} + +template +CPU_GPU_FUNCTION +T mround(const T& a) { +#ifdef __CUDA_ARCH__ + return round(a); +#else + return round(a); +#endif +} + + +#ifdef __CUDA_ARCH__ +#if __CUDA_ARCH__ < 600 +__device__ double atomicAdd(double* address, double val) +{ + unsigned long long int* address_as_ull = + (unsigned long long int*)address; + unsigned long long int old = *address_as_ull, assumed; + + do { + assumed = old; + old = atomicCAS(address_as_ull, assumed, + __double_as_longlong(val + + __longlong_as_double(assumed))); + + // Note: uses integer comparison to avoid hang in case of NaN (since NaN != NaN) + } while (assumed != old); + + return __longlong_as_double(old); +} +#endif +#endif + + +template +CPU_GPU_FUNCTION +void matomic_add(T* addr, T val) { +#ifdef __CUDA_ARCH__ + atomicAdd(addr, val); +#else +#if defined(_OPENMP) +#pragma omp atomic +#endif + *addr += val; +#endif +} + +#endif diff --git a/torchext/ext/common_cuda.h b/torchext/ext/common_cuda.h new file mode 100644 index 0000000..4fe0b8a --- /dev/null +++ b/torchext/ext/common_cuda.h @@ -0,0 +1,173 @@ +#ifndef COMMON_CUDA +#define COMMON_CUDA + +#include +#include + +#define DEBUG 0 +#define CUDA_DEBUG_DEVICE_SYNC 0 + +// cuda check for cudaMalloc and so on +#define CUDA_CHECK(condition) \ + /* Code block avoids redefinition of cudaError_t error */ \ + do { \ + if(CUDA_DEBUG_DEVICE_SYNC) { cudaDeviceSynchronize(); } \ + cudaError_t error = condition; \ + if(error != cudaSuccess) { \ + printf("%s in %s at %d\n", cudaGetErrorString(error), __FILE__, __LINE__); \ + exit(-1); \ + } \ + } while (0) + +/// Get error string for error code. +/// @param error +inline const char* cublasGetErrorString(cublasStatus_t error) { + switch (error) { + case CUBLAS_STATUS_SUCCESS: + return "CUBLAS_STATUS_SUCCESS"; + case CUBLAS_STATUS_NOT_INITIALIZED: + return "CUBLAS_STATUS_NOT_INITIALIZED"; + case CUBLAS_STATUS_ALLOC_FAILED: + return "CUBLAS_STATUS_ALLOC_FAILED"; + case CUBLAS_STATUS_INVALID_VALUE: + return "CUBLAS_STATUS_INVALID_VALUE"; + case CUBLAS_STATUS_ARCH_MISMATCH: + return "CUBLAS_STATUS_ARCH_MISMATCH"; + case CUBLAS_STATUS_MAPPING_ERROR: + return "CUBLAS_STATUS_MAPPING_ERROR"; + case CUBLAS_STATUS_EXECUTION_FAILED: + return "CUBLAS_STATUS_EXECUTION_FAILED"; + case CUBLAS_STATUS_INTERNAL_ERROR: + return "CUBLAS_STATUS_INTERNAL_ERROR"; + case CUBLAS_STATUS_NOT_SUPPORTED: + return "CUBLAS_STATUS_NOT_SUPPORTED"; + case CUBLAS_STATUS_LICENSE_ERROR: + return "CUBLAS_STATUS_LICENSE_ERROR"; + } + return "Unknown cublas status"; +} + +#define CUBLAS_CHECK(condition) \ + do { \ + if(CUDA_DEBUG_DEVICE_SYNC) { cudaDeviceSynchronize(); } \ + cublasStatus_t status = condition; \ + if(status != CUBLAS_STATUS_SUCCESS) { \ + printf("%s in %s at %d\n", cublasGetErrorString(status), __FILE__, __LINE__); \ + exit(-1); \ + } \ + } while (0) + +// check if there is a error after kernel execution +#define CUDA_POST_KERNEL_CHECK \ + CUDA_CHECK(cudaPeekAtLastError()); \ + CUDA_CHECK(cudaGetLastError()); + +#define CUDA_KERNEL_LOOP(i, n) \ + for (int i = blockIdx.x * blockDim.x + threadIdx.x; i < (n); i += blockDim.x * gridDim.x) + +const int CUDA_NUM_THREADS = 1024; + +inline int GET_BLOCKS(const int N, const int N_THREADS=CUDA_NUM_THREADS) { + return (N + N_THREADS - 1) / N_THREADS; +} + +template +T* device_malloc(long N) { + T* dptr; + CUDA_CHECK(cudaMalloc(&dptr, N * sizeof(T))); + if(DEBUG) { printf("[DEBUG] device_malloc %p, %ld\n", dptr, N); } + return dptr; +} + +template +void device_free(T* dptr) { + if(DEBUG) { printf("[DEBUG] device_free %p\n", dptr); } + CUDA_CHECK(cudaFree(dptr)); +} + +template +void host_to_device(const T* hptr, T* dptr, long N) { + if(DEBUG) { printf("[DEBUG] host_to_device %p => %p, %ld\n", hptr, dptr, N); } + CUDA_CHECK(cudaMemcpy(dptr, hptr, N * sizeof(T), cudaMemcpyHostToDevice)); +} + +template +T* host_to_device_malloc(const T* hptr, long N) { + T* dptr = device_malloc(N); + host_to_device(hptr, dptr, N); + return dptr; +} + +template +void device_to_host(const T* dptr, T* hptr, long N) { + if(DEBUG) { printf("[DEBUG] device_to_host %p => %p, %ld\n", dptr, hptr, N); } + CUDA_CHECK(cudaMemcpy(hptr, dptr, N * sizeof(T), cudaMemcpyDeviceToHost)); +} + +template +T* device_to_host_malloc(const T* dptr, long N) { + T* hptr = new T[N]; + device_to_host(dptr, hptr, N); + return hptr; +} + +template +void device_to_device(const T* dptr, T* hptr, long N) { + if(DEBUG) { printf("[DEBUG] device_to_device %p => %p, %ld\n", dptr, hptr, N); } + CUDA_CHECK(cudaMemcpy(hptr, dptr, N * sizeof(T), cudaMemcpyDeviceToDevice)); +} + +// https://github.com/parallel-forall/code-samples/blob/master/posts/cuda-aware-mpi-example/src/Device.cu +// https://github.com/treecode/Bonsai/blob/master/runtime/profiling/derived_atomic_functions.h +__device__ __forceinline__ void atomicMaxF(float * const address, const float value) { + if (*address >= value) { + return; + } + + int * const address_as_i = (int *)address; + int old = * address_as_i, assumed; + + do { + assumed = old; + if (__int_as_float(assumed) >= value) { + break; + } + + old = atomicCAS(address_as_i, assumed, __float_as_int(value)); + } while (assumed != old); +} + +__device__ __forceinline__ void atomicMinF(float * const address, const float value) { + if (*address <= value) { + return; + } + + int * const address_as_i = (int *)address; + int old = * address_as_i, assumed; + + do { + assumed = old; + if (__int_as_float(assumed) <= value) { + break; + } + + old = atomicCAS(address_as_i, assumed, __float_as_int(value)); + } while (assumed != old); +} + + +template +__global__ void iterate_kernel(FunctorT functor, int N) { + CUDA_KERNEL_LOOP(idx, N) { + functor(idx); + } +} + +template +void iterate_cuda(FunctorT functor, int N, int N_THREADS=CUDA_NUM_THREADS) { + iterate_kernel<<>>(functor, N); + CUDA_POST_KERNEL_CHECK; +} + + +#endif diff --git a/torchext/ext/ext.h b/torchext/ext/ext.h new file mode 100644 index 0000000..21285ec --- /dev/null +++ b/torchext/ext/ext.h @@ -0,0 +1,347 @@ +#pragma once + +#include "common.h" + + +#define CHECK_CUDA(x) AT_ASSERTM(x.type().is_cuda(), #x " must be a CUDA tensor") +#define CHECK_CONTIGUOUS(x) AT_ASSERTM(x.is_contiguous(), #x " must be contiguous") + +#define CHECK_INPUT_CPU(x) CHECK_CONTIGUOUS(x) +#define CHECK_INPUT_CUDA(x) CHECK_CUDA(x); CHECK_CONTIGUOUS(x) + + +template +struct NNFunctor { + const T* in0; // nelem0 x dim + const T* in1; // nelem1 x dim + const long nelem0; + const long nelem1; + long* out; // nelem0 + + NNFunctor(const T* in0, const T* in1, long nelem0, long nelem1, long* out) : in0(in0), in1(in1), nelem0(nelem0), nelem1(nelem1), out(out) {} + + CPU_GPU_FUNCTION void operator()(long idx0) { + // idx0 \in [nelem0] + + const T* vec0 = in0 + idx0 * dim; + + T min_dist = 1e9; + long min_arg = -1; + for(long idx1 = 0; idx1 < nelem1; ++idx1) { + const T* vec1 = in1 + idx1 * dim; + T dist = 0; + for(long didx = 0; didx < dim; ++didx) { + T diff = vec0[didx] - vec1[didx]; + dist += diff * diff; + } + + if(dist < min_dist) { + min_dist = dist; + min_arg = idx1; + } + } + + out[idx0] = min_arg; + } +}; + +struct CrossCheckFunctor { + const long* in0; // nelem0 + const long* in1; // nelem1 + const long nelem0; + const long nelem1; + uint8_t* out; // nelem0 + + CrossCheckFunctor(const long* in0, const long* in1, long nelem0, long nelem1, uint8_t* out) : in0(in0), in1(in1), nelem0(nelem0), nelem1(nelem1), out(out) {} + + CPU_GPU_FUNCTION void operator()(long idx0) { + // idx0 \in [nelem0] + int idx1 = in0[idx0]; + out[idx0] = idx1 >=0 && in1[idx1] >= 0 && idx0 == in1[idx1]; + // out[idx0] = idx0 == in1[in0[idx0]]; + } +}; + +template +struct ProjNNFunctor { + // xyz0, xyz1 in coord sys of 1 + const T* xyz0; // bs x height x width x 3 + const T* xyz1; // bs x height x width x 3 + const T* K; // 3 x 3 + const long batch_size; + const long height; + const long width; + const long patch_size; + long* out; // bs x height x width + + ProjNNFunctor(const T* xyz0, const T* xyz1, const T* K, long batch_size, long height, long width, long patch_size, long* out) + : xyz0(xyz0), xyz1(xyz1), K(K), batch_size(batch_size), height(height), width(width), patch_size(patch_size), out(out) {} + + CPU_GPU_FUNCTION void operator()(long idx0) { + // idx0 \in [0, bs x height x width] + + const long bs = idx0 / (height * width); + + const T x = xyz0[idx0 * 3 + 0]; + const T y = xyz0[idx0 * 3 + 1]; + const T z = xyz0[idx0 * 3 + 2]; + const T d = K[6] * x + K[7] * y + K[8] * z; + const T u = (K[0] * x + K[1] * y + K[2] * z) / d; + const T v = (K[3] * x + K[4] * y + K[5] * z) / d; + + int u0 = u + 0.5; + int v0 = v + 0.5; + + long min_idx1 = -1; + T min_dist = 1e9; + for(int pidx = 0; pidx < patch_size*patch_size; ++pidx) { + int pu = pidx % patch_size; + int pv = pidx / patch_size; + + int u1 = u0 + pu - patch_size/2; + int v1 = v0 + pv - patch_size/2; + + if(u1 >= 0 && v1 >= 0 && u1 < width && v1 < height) { + const long idx1 = (bs * height + v1) * width + u1; + const T* xyz1n = xyz1 + idx1 * 3; + const T d = (x-xyz1n[0]) * (x-xyz1n[0]) + (y-xyz1n[1]) * (y-xyz1n[1]) + (z-xyz1n[2]) * (z-xyz1n[2]); + if(d < min_dist) { + min_dist = d; + min_idx1 = idx1; + } + } + } + + out[idx0] = min_idx1; + } +}; + + +template +struct XCorrVolFunctor { + const T* in0; // channels x height x width + const T* in1; // channels x height x width + const long channels; + const long height; + const long width; + const long n_disps; + const long block_size; + T* out; // nelem0 + + XCorrVolFunctor(const T* in0, const T* in1, long channels, long height, long width, long n_disps, long block_size, T* out) : in0(in0), in1(in1), channels(channels), height(height), width(width), n_disps(n_disps), block_size(block_size), out(out) {} + + CPU_GPU_FUNCTION void operator()(long oidx) { + // idx0 \in [n_disps x height x width] + + auto d = oidx / (height * width); + auto h = (oidx / width) % height; + auto w = oidx % width; + + long block_size2 = block_size * block_size; + + T val = 0; + for(int c = 0; c < channels; ++c) { + // compute means + T mu0 = 0; + T mu1 = 0; + for(int bh = 0; bh < block_size; ++bh) { + long h0 = h + bh - block_size / 2; + h0 = mmax(long(0), mmin(height-1, h0)); + for(int bw = 0; bw < block_size; ++bw) { + long w0 = w + bw - block_size / 2; + long w1 = w0 - d; + w0 = mmax(long(0), mmin(width-1, w0)); + w1 = mmax(long(0), mmin(width-1, w1)); + long idx0 = (c * height + h0) * width + w0; + long idx1 = (c * height + h0) * width + w1; + mu0 += in0[idx0] / block_size2; + mu1 += in1[idx1] / block_size2; + } + } + + // compute stds and dot product + T sigma0 = 0; + T sigma1 = 0; + T dot = 0; + for(int bh = 0; bh < block_size; ++bh) { + long h0 = h + bh - block_size / 2; + h0 = mmax(long(0), mmin(height-1, h0)); + for(int bw = 0; bw < block_size; ++bw) { + long w0 = w + bw - block_size / 2; + long w1 = w0 - d; + w0 = mmax(long(0), mmin(width-1, w0)); + w1 = mmax(long(0), mmin(width-1, w1)); + long idx0 = (c * height + h0) * width + w0; + long idx1 = (c * height + h0) * width + w1; + T v0 = in0[idx0] - mu0; + T v1 = in1[idx1] - mu1; + + dot += v0 * v1; + sigma0 += v0 * v0; + sigma1 += v1 * v1; + } + } + + T norm = sqrt(sigma0 * sigma1) + 1e-8; + val += dot / norm; + } + + out[oidx] = val; + } +}; + + + + +const int PHOTOMETRIC_LOSS_MSE = 0; +const int PHOTOMETRIC_LOSS_SAD = 1; +const int PHOTOMETRIC_LOSS_CENSUS_MSE = 2; +const int PHOTOMETRIC_LOSS_CENSUS_SAD = 3; + +template +struct PhotometricLossForward { + const T* es; // batch_size x channels x height x width; + const T* ta; + const int block_size; + const int block_size2; + const T eps; + const int batch_size; + const int channels; + const int height; + const int width; + T* out; // batch_size x channels x height x width; + + PhotometricLossForward(const T* es, const T* ta, int block_size, T eps, int batch_size, int channels, int height, int width, T* out) : + es(es), ta(ta), block_size(block_size), block_size2(block_size*block_size), eps(eps), batch_size(batch_size), channels(channels), height(height), width(width), out(out) {} + + CPU_GPU_FUNCTION void operator()(int outidx) { + // outidx \in [0, batch_size x height x width] + + int w = outidx % width; + int h = (outidx / width) % height; + int n = outidx / (height * width); + + T loss = 0; + for(int bidx = 0; bidx < block_size2; ++bidx) { + int bh = bidx / block_size; + int bw = bidx % block_size; + int h0 = h + bh - block_size / 2; + int w0 = w + bw - block_size / 2; + + h0 = mmin(height-1, mmax(0, h0)); + w0 = mmin(width-1, mmax(0, w0)); + + for(int c = 0; c < channels; ++c) { + int inidx = ((n * channels + c) * height + h0) * width + w0; + if(type == PHOTOMETRIC_LOSS_SAD || type == PHOTOMETRIC_LOSS_MSE) { + T diff = es[inidx] - ta[inidx]; + if(type == PHOTOMETRIC_LOSS_MSE) { + loss += diff * diff / block_size2; + } + else if(type == PHOTOMETRIC_LOSS_SAD) { + loss += fabs(diff) / block_size2; + } + } + else if(type == PHOTOMETRIC_LOSS_CENSUS_SAD || type == PHOTOMETRIC_LOSS_CENSUS_MSE) { + int inidxc = ((n * channels + c) * height + h) * width + w; + T des = es[inidx] - es[inidxc]; + T dta = ta[inidx] - ta[inidxc]; + T h_des = 0.5 * (1 + des / sqrt(des * des + eps)); + T h_dta = 0.5 * (1 + dta / sqrt(dta * dta + eps)); + T diff = h_des - h_dta; + // printf("%d,%d %d,%d: des=%f, dta=%f, h_des=%f, h_dta=%f, diff=%f\n", h,w, h0,w0, des,dta, h_des,h_dta, diff); + // printf("%d,%d %d,%d: h_des=%f = 0.5 * (1 + %f / %f); %f, %f, %f\n", h,w, h0,w0, h_des, des, sqrt(des * des + eps), des*des, des*des+eps, eps); + if(type == PHOTOMETRIC_LOSS_CENSUS_MSE) { + loss += diff * diff / block_size2; + } + else if(type == PHOTOMETRIC_LOSS_CENSUS_SAD) { + loss += fabs(diff) / block_size2; + } + } + } + } + + out[outidx] = loss; + } +}; + +template +struct PhotometricLossBackward { + const T* es; // batch_size x channels x height x width; + const T* ta; + const T* grad_out; + const int block_size; + const int block_size2; + const T eps; + const int batch_size; + const int channels; + const int height; + const int width; + T* grad_in; // batch_size x channels x height x width; + + PhotometricLossBackward(const T* es, const T* ta, const T* grad_out, int block_size, T eps, int batch_size, int channels, int height, int width, T* grad_in) : + es(es), ta(ta), grad_out(grad_out), block_size(block_size), block_size2(block_size*block_size), eps(eps), batch_size(batch_size), channels(channels), height(height), width(width), grad_in(grad_in) {} + + CPU_GPU_FUNCTION void operator()(int outidx) { + // outidx \in [0, batch_size x height x width] + + int w = outidx % width; + int h = (outidx / width) % height; + int n = outidx / (height * width); + + for(int bidx = 0; bidx < block_size2; ++bidx) { + int bh = bidx / block_size; + int bw = bidx % block_size; + int h0 = h + bh - block_size / 2; + int w0 = w + bw - block_size / 2; + + h0 = mmin(height-1, mmax(0, h0)); + w0 = mmin(width-1, mmax(0, w0)); + + const T go = grad_out[outidx]; + + for(int c = 0; c < channels; ++c) { + int inidx = ((n * channels + c) * height + h0) * width + w0; + if(type == PHOTOMETRIC_LOSS_SAD || type == PHOTOMETRIC_LOSS_MSE) { + T diff = es[inidx] - ta[inidx]; + T grad = 0; + if(type == PHOTOMETRIC_LOSS_MSE) { + grad = 2 * diff; + } + else if(type == PHOTOMETRIC_LOSS_SAD) { + grad = diff < 0 ? -1 : (diff > 0 ? 1 : 0); + } + grad = grad / block_size2 * go; + matomic_add(grad_in + inidx, grad); + } + else if(type == PHOTOMETRIC_LOSS_CENSUS_SAD || type == PHOTOMETRIC_LOSS_CENSUS_MSE) { + int inidxc = ((n * channels + c) * height + h) * width + w; + T des = es[inidx] - es[inidxc]; + T dta = ta[inidx] - ta[inidxc]; + T h_des = 0.5 * (1 + des / sqrt(des * des + eps)); + T h_dta = 0.5 * (1 + dta / sqrt(dta * dta + eps)); + T diff = h_des - h_dta; + + T grad_loss = 0; + if(type == PHOTOMETRIC_LOSS_CENSUS_MSE) { + grad_loss = 2 * diff; + } + else if(type == PHOTOMETRIC_LOSS_CENSUS_SAD) { + grad_loss = diff < 0 ? -1 : (diff > 0 ? 1 : 0); + } + grad_loss = grad_loss / block_size2; + + T tmp = des * des + eps; + T grad_heaviside = 0.5 * eps / sqrt(tmp * tmp * tmp); + + T grad = go * grad_loss * grad_heaviside; + matomic_add(grad_in + inidx, grad); + matomic_add(grad_in + inidxc, -grad); + } + } + } + } +}; + + + diff --git a/torchext/ext/ext_cpu.cpp b/torchext/ext/ext_cpu.cpp new file mode 100644 index 0000000..ca4c795 --- /dev/null +++ b/torchext/ext/ext_cpu.cpp @@ -0,0 +1,198 @@ +#include + +#include + +#include "ext.h" + +template +void iterate_cpu(FunctorT functor, int N) { + for(int idx = 0; idx < N; ++idx) { + functor(idx); + } +} + +at::Tensor nn_cpu(at::Tensor in0, at::Tensor in1) { + CHECK_INPUT_CPU(in0) + CHECK_INPUT_CPU(in1) + + auto nelem0 = in0.size(0); + auto nelem1 = in1.size(0); + auto dim = in0.size(1); + + AT_ASSERTM(dim == in1.size(1), "in0 and in1 have to be the same shape") + AT_ASSERTM(dim == 3, "dim hast to be 3") + AT_ASSERTM(in0.dim() == 2, "in0 has to be N0 x 3") + AT_ASSERTM(in1.dim() == 2, "in1 has to be N1 x 3") + + auto out = at::empty({nelem0}, torch::CPU(at::kLong)); + + AT_DISPATCH_FLOATING_TYPES(in0.scalar_type(), "nn", ([&] { + iterate_cpu( + NNFunctor(in0.data(), in1.data(), nelem0, nelem1, out.data()), + nelem0); + })); + + return out; +} + + +at::Tensor crosscheck_cpu(at::Tensor in0, at::Tensor in1) { + CHECK_INPUT_CPU(in0) + CHECK_INPUT_CPU(in1) + + AT_ASSERTM(in0.dim() == 1, "") + AT_ASSERTM(in1.dim() == 1, "") + + auto nelem0 = in0.size(0); + auto nelem1 = in1.size(0); + + auto out = at::empty({nelem0}, torch::CPU(at::kByte)); + + iterate_cpu( + CrossCheckFunctor(in0.data(), in1.data(), nelem0, nelem1, out.data()), + nelem0); + + return out; +} + + +at::Tensor proj_nn_cpu(at::Tensor xyz0, at::Tensor xyz1, at::Tensor K, int patch_size) { + CHECK_INPUT_CPU(xyz0) + CHECK_INPUT_CPU(xyz1) + CHECK_INPUT_CPU(K) + + auto batch_size = xyz0.size(0); + auto height = xyz0.size(1); + auto width = xyz0.size(2); + + AT_ASSERTM(xyz0.size(0) == xyz1.size(0), "") + AT_ASSERTM(xyz0.size(1) == xyz1.size(1), "") + AT_ASSERTM(xyz0.size(2) == xyz1.size(2), "") + AT_ASSERTM(xyz0.size(3) == xyz1.size(3), "") + AT_ASSERTM(xyz0.size(3) == 3, "") + AT_ASSERTM(xyz0.dim() == 4, "") + AT_ASSERTM(xyz1.dim() == 4, "") + + auto out = at::empty({batch_size, height, width}, torch::CPU(at::kLong)); + + AT_DISPATCH_FLOATING_TYPES(xyz0.scalar_type(), "proj_nn", ([&] { + iterate_cpu( + ProjNNFunctor(xyz0.data(), xyz1.data(), K.data(), batch_size, height, width, patch_size, out.data()), + batch_size * height * width); + })); + + return out; +} + + +at::Tensor xcorrvol_cpu(at::Tensor in0, at::Tensor in1, int n_disps, int block_size) { + CHECK_INPUT_CPU(in0) + CHECK_INPUT_CPU(in1) + + auto channels = in0.size(0); + auto height = in0.size(1); + auto width = in0.size(2); + + auto out = at::empty({n_disps, height, width}, in0.options()); + + AT_DISPATCH_FLOATING_TYPES(in0.scalar_type(), "xcorrvol", ([&] { + iterate_cpu( + XCorrVolFunctor(in0.data(), in1.data(), channels, height, width, n_disps, block_size, out.data()), + n_disps * height * width); + })); + + return out; +} + + + + +at::Tensor photometric_loss_forward(at::Tensor es, at::Tensor ta, int block_size, int type, float eps) { + CHECK_INPUT_CPU(es) + CHECK_INPUT_CPU(ta) + + auto batch_size = es.size(0); + auto channels = es.size(1); + auto height = es.size(2); + auto width = es.size(3); + + auto out = at::empty({batch_size, 1, height, width}, es.options()); + + AT_DISPATCH_FLOATING_TYPES(es.scalar_type(), "photometric_loss_forward_cpu", ([&] { + if(type == PHOTOMETRIC_LOSS_MSE) { + iterate_cpu( + PhotometricLossForward(es.data(), ta.data(), block_size, eps, batch_size, channels, height, width, out.data()), + out.numel()); + } + else if(type == PHOTOMETRIC_LOSS_SAD) { + iterate_cpu( + PhotometricLossForward(es.data(), ta.data(), block_size, eps, batch_size, channels, height, width, out.data()), + out.numel()); + } + else if(type == PHOTOMETRIC_LOSS_CENSUS_MSE) { + iterate_cpu( + PhotometricLossForward(es.data(), ta.data(), block_size, eps, batch_size, channels, height, width, out.data()), + out.numel()); + } + else if(type == PHOTOMETRIC_LOSS_CENSUS_SAD) { + iterate_cpu( + PhotometricLossForward(es.data(), ta.data(), block_size, eps, batch_size, channels, height, width, out.data()), + out.numel()); + } + })); + + return out; +} + +at::Tensor photometric_loss_backward(at::Tensor es, at::Tensor ta, at::Tensor grad_out, int block_size, int type, float eps) { + CHECK_INPUT_CPU(es) + CHECK_INPUT_CPU(ta) + CHECK_INPUT_CPU(grad_out) + + auto batch_size = es.size(0); + auto channels = es.size(1); + auto height = es.size(2); + auto width = es.size(3); + + CHECK_INPUT_CPU(ta) + auto grad_in = at::zeros({batch_size, channels, height, width}, grad_out.options()); + + AT_DISPATCH_FLOATING_TYPES(es.scalar_type(), "photometric_loss_backward_cpu", ([&] { + if(type == PHOTOMETRIC_LOSS_MSE) { + iterate_cpu( + PhotometricLossBackward(es.data(), ta.data(), grad_out.data(), block_size, eps, batch_size, channels, height, width, grad_in.data()), + grad_out.numel()); + } + else if(type == PHOTOMETRIC_LOSS_SAD) { + iterate_cpu( + PhotometricLossBackward(es.data(), ta.data(), grad_out.data(), block_size, eps, batch_size, channels, height, width, grad_in.data()), + grad_out.numel()); + } + else if(type == PHOTOMETRIC_LOSS_CENSUS_MSE) { + iterate_cpu( + PhotometricLossBackward(es.data(), ta.data(), grad_out.data(), block_size, eps, batch_size, channels, height, width, grad_in.data()), + grad_out.numel()); + } + else if(type == PHOTOMETRIC_LOSS_CENSUS_SAD) { + iterate_cpu( + PhotometricLossBackward(es.data(), ta.data(), grad_out.data(), block_size, eps, batch_size, channels, height, width, grad_in.data()), + grad_out.numel()); + } + })); + + return grad_in; +} + + + + +PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { + m.def("nn_cpu", &nn_cpu, "nn_cpu"); + m.def("crosscheck_cpu", &crosscheck_cpu, "crosscheck_cpu"); + m.def("proj_nn_cpu", &proj_nn_cpu, "proj_nn_cpu"); + + m.def("xcorrvol_cpu", &xcorrvol_cpu, "xcorrvol_cpu"); + + m.def("photometric_loss_forward", &photometric_loss_forward); + m.def("photometric_loss_backward", &photometric_loss_backward); +} diff --git a/torchext/ext/ext_cuda.cpp b/torchext/ext/ext_cuda.cpp new file mode 100644 index 0000000..d98c9d6 --- /dev/null +++ b/torchext/ext/ext_cuda.cpp @@ -0,0 +1,135 @@ +#include + +#include + +#include "ext.h" + +void nn_kernel(at::Tensor in0, at::Tensor in1, at::Tensor out); + +at::Tensor nn_cuda(at::Tensor in0, at::Tensor in1) { + CHECK_INPUT_CUDA(in0) + CHECK_INPUT_CUDA(in1) + + auto nelem0 = in0.size(0); + auto dim = in0.size(1); + + AT_ASSERTM(dim == in1.size(1), "in0 and in1 have to be the same shape") + AT_ASSERTM(dim == 3, "dim hast to be 3") + AT_ASSERTM(in0.dim() == 2, "in0 has to be N0 x 3") + AT_ASSERTM(in1.dim() == 2, "in1 has to be N1 x 3") + + auto out = at::empty({nelem0}, torch::CUDA(at::kLong)); + + nn_kernel(in0, in1, out); + + return out; +} + + +void crosscheck_kernel(at::Tensor in0, at::Tensor in1, at::Tensor out); + +at::Tensor crosscheck_cuda(at::Tensor in0, at::Tensor in1) { + CHECK_INPUT_CUDA(in0) + CHECK_INPUT_CUDA(in1) + + AT_ASSERTM(in0.dim() == 1, "") + AT_ASSERTM(in1.dim() == 1, "") + + auto nelem0 = in0.size(0); + auto out = at::empty({nelem0}, torch::CUDA(at::kByte)); + crosscheck_kernel(in0, in1, out); + + return out; +} + +void proj_nn_kernel(at::Tensor xyz0, at::Tensor xyz1, at::Tensor K, int patch_size, at::Tensor out); + +at::Tensor proj_nn_cuda(at::Tensor xyz0, at::Tensor xyz1, at::Tensor K, int patch_size) { + CHECK_INPUT_CUDA(xyz0) + CHECK_INPUT_CUDA(xyz1) + CHECK_INPUT_CUDA(K) + + auto batch_size = xyz0.size(0); + auto height = xyz0.size(1); + auto width = xyz0.size(2); + + AT_ASSERTM(xyz0.size(0) == xyz1.size(0), "") + AT_ASSERTM(xyz0.size(1) == xyz1.size(1), "") + AT_ASSERTM(xyz0.size(2) == xyz1.size(2), "") + AT_ASSERTM(xyz0.size(3) == xyz1.size(3), "") + AT_ASSERTM(xyz0.size(3) == 3, "") + AT_ASSERTM(xyz0.dim() == 4, "") + AT_ASSERTM(xyz1.dim() == 4, "") + + auto out = at::empty({batch_size, height, width}, torch::CUDA(at::kLong)); + + proj_nn_kernel(xyz0, xyz1, K, patch_size, out); + + return out; +} + +void xcorrvol_kernel(at::Tensor in0, at::Tensor in1, int n_disps, int block_size, at::Tensor out); + +at::Tensor xcorrvol_cuda(at::Tensor in0, at::Tensor in1, int n_disps, int block_size) { + CHECK_INPUT_CUDA(in0) + CHECK_INPUT_CUDA(in1) + + // auto channels = in0.size(0); + auto height = in0.size(1); + auto width = in0.size(2); + + auto out = at::empty({n_disps, height, width}, in0.options()); + + xcorrvol_kernel(in0, in1, n_disps, block_size, out); + + return out; +} + + + +void photometric_loss_forward_kernel(at::Tensor es, at::Tensor ta, int block_size, int type, float eps, at::Tensor out); + +at::Tensor photometric_loss_forward(at::Tensor es, at::Tensor ta, int block_size, int type, float eps) { + CHECK_INPUT_CUDA(es) + CHECK_INPUT_CUDA(ta) + + auto batch_size = es.size(0); + auto height = es.size(2); + auto width = es.size(3); + + auto out = at::empty({batch_size, 1, height, width}, es.options()); + photometric_loss_forward_kernel(es, ta, block_size, type, eps, out); + + return out; +} + + +void photometric_loss_backward_kernel(at::Tensor es, at::Tensor ta, at::Tensor grad_out, int block_size, int type, float eps, at::Tensor grad_in); + +at::Tensor photometric_loss_backward(at::Tensor es, at::Tensor ta, at::Tensor grad_out, int block_size, int type, float eps) { + CHECK_INPUT_CUDA(es) + CHECK_INPUT_CUDA(ta) + CHECK_INPUT_CUDA(grad_out) + + auto batch_size = es.size(0); + auto channels = es.size(1); + auto height = es.size(2); + auto width = es.size(3); + + auto grad_in = at::zeros({batch_size, channels, height, width}, grad_out.options()); + photometric_loss_backward_kernel(es, ta, grad_out, block_size, type, eps, grad_in); + + return grad_in; +} + + +PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { + m.def("nn_cuda", &nn_cuda, "nn_cuda"); + m.def("crosscheck_cuda", &crosscheck_cuda, "crosscheck_cuda"); + m.def("proj_nn_cuda", &proj_nn_cuda, "proj_nn_cuda"); + + m.def("xcorrvol_cuda", &xcorrvol_cuda, "xcorrvol_cuda"); + + m.def("photometric_loss_forward", &photometric_loss_forward); + m.def("photometric_loss_backward", &photometric_loss_backward); +} diff --git a/torchext/ext/ext_kernel.cu b/torchext/ext/ext_kernel.cu new file mode 100644 index 0000000..46df268 --- /dev/null +++ b/torchext/ext/ext_kernel.cu @@ -0,0 +1,112 @@ +#include + +#include "ext.h" +#include "common_cuda.h" + +void nn_kernel(at::Tensor in0, at::Tensor in1, at::Tensor out) { + auto nelem0 = in0.size(0); + auto nelem1 = in1.size(0); + auto dim = in0.size(1); + + AT_DISPATCH_FLOATING_TYPES(in0.scalar_type(), "nn", ([&] { + iterate_cuda( + NNFunctor(in0.data(), in1.data(), nelem0, nelem1, out.data()), + nelem0); + })); +} + + +void crosscheck_kernel(at::Tensor in0, at::Tensor in1, at::Tensor out) { + auto nelem0 = in0.size(0); + auto nelem1 = in1.size(0); + + iterate_cuda( + CrossCheckFunctor(in0.data(), in1.data(), nelem0, nelem1, out.data()), + nelem0); +} + +void proj_nn_kernel(at::Tensor xyz0, at::Tensor xyz1, at::Tensor K, int patch_size, at::Tensor out) { + auto batch_size = xyz0.size(0); + auto height = xyz0.size(1); + auto width = xyz0.size(2); + + AT_DISPATCH_FLOATING_TYPES(xyz0.scalar_type(), "proj_nn", ([&] { + iterate_cuda( + ProjNNFunctor(xyz0.data(), xyz1.data(), K.data(), batch_size, height, width, patch_size, out.data()), + batch_size * height * width); + })); +} + +void xcorrvol_kernel(at::Tensor in0, at::Tensor in1, int n_disps, int block_size, at::Tensor out) { + auto channels = in0.size(0); + auto height = in0.size(1); + auto width = in0.size(2); + + AT_DISPATCH_FLOATING_TYPES(in0.scalar_type(), "xcorrvol", ([&] { + iterate_cuda( + XCorrVolFunctor(in0.data(), in1.data(), channels, height, width, n_disps, block_size, out.data()), + n_disps * height * width, 512); + })); +} + + + +void photometric_loss_forward_kernel(at::Tensor es, at::Tensor ta, int block_size, int type, float eps, at::Tensor out) { + auto batch_size = es.size(0); + auto channels = es.size(1); + auto height = es.size(2); + auto width = es.size(3); + + AT_DISPATCH_FLOATING_TYPES(es.scalar_type(), "photometric_loss_forward_cuda", ([&] { + if(type == PHOTOMETRIC_LOSS_MSE) { + iterate_cuda( + PhotometricLossForward(es.data(), ta.data(), block_size, eps, batch_size, channels, height, width, out.data()), + out.numel()); + } + else if(type == PHOTOMETRIC_LOSS_SAD) { + iterate_cuda( + PhotometricLossForward(es.data(), ta.data(), block_size, eps, batch_size, channels, height, width, out.data()), + out.numel()); + } + else if(type == PHOTOMETRIC_LOSS_CENSUS_MSE) { + iterate_cuda( + PhotometricLossForward(es.data(), ta.data(), block_size, eps, batch_size, channels, height, width, out.data()), + out.numel()); + } + else if(type == PHOTOMETRIC_LOSS_CENSUS_SAD) { + iterate_cuda( + PhotometricLossForward(es.data(), ta.data(), block_size, eps, batch_size, channels, height, width, out.data()), + out.numel()); + } + })); +} + +void photometric_loss_backward_kernel(at::Tensor es, at::Tensor ta, at::Tensor grad_out, int block_size, int type, float eps, at::Tensor grad_in) { + auto batch_size = es.size(0); + auto channels = es.size(1); + auto height = es.size(2); + auto width = es.size(3); + + AT_DISPATCH_FLOATING_TYPES(es.scalar_type(), "photometric_loss_backward_cuda", ([&] { + if(type == PHOTOMETRIC_LOSS_MSE) { + iterate_cuda( + PhotometricLossBackward(es.data(), ta.data(), grad_out.data(), block_size, eps, batch_size, channels, height, width, grad_in.data()), + grad_out.numel()); + } + else if(type == PHOTOMETRIC_LOSS_SAD) { + iterate_cuda( + PhotometricLossBackward(es.data(), ta.data(), grad_out.data(), block_size, eps, batch_size, channels, height, width, grad_in.data()), + grad_out.numel()); + } + else if(type == PHOTOMETRIC_LOSS_CENSUS_MSE) { + iterate_cuda( + PhotometricLossBackward(es.data(), ta.data(), grad_out.data(), block_size, eps, batch_size, channels, height, width, grad_in.data()), + grad_out.numel()); + } + else if(type == PHOTOMETRIC_LOSS_CENSUS_SAD) { + iterate_cuda( + PhotometricLossBackward(es.data(), ta.data(), grad_out.data(), block_size, eps, batch_size, channels, height, width, grad_in.data()), + grad_out.numel()); + } + })); +} diff --git a/torchext/functions.py b/torchext/functions.py new file mode 100644 index 0000000..73dc7ae --- /dev/null +++ b/torchext/functions.py @@ -0,0 +1,147 @@ +import torch +from . import ext_cpu +from . import ext_cuda + +class NNFunction(torch.autograd.Function): + @staticmethod + def forward(ctx, in0, in1): + args = (in0, in1) + if in0.is_cuda: + out = ext_cuda.nn_cuda(*args) + else: + out = ext_cpu.nn_cpu(*args) + return out + + @staticmethod + def backward(ctx, grad_out): + return None, None + +def nn(in0, in1): + return NNFunction.apply(in0, in1) + + +class CrossCheckFunction(torch.autograd.Function): + @staticmethod + def forward(ctx, in0, in1): + args = (in0, in1) + if in0.is_cuda: + out = ext_cuda.crosscheck_cuda(*args) + else: + out = ext_cpu.crosscheck_cpu(*args) + return out + + @staticmethod + def backward(ctx, grad_out): + return None, None + +def crosscheck(in0, in1): + return CrossCheckFunction.apply(in0, in1) + +class ProjNNFunction(torch.autograd.Function): + @staticmethod + def forward(ctx, xyz0, xyz1, K, patch_size): + args = (xyz0, xyz1, K, patch_size) + if xyz0.is_cuda: + out = ext_cuda.proj_nn_cuda(*args) + else: + out = ext_cpu.proj_nn_cpu(*args) + return out + + @staticmethod + def backward(ctx, grad_out): + return None, None, None, None + +def proj_nn(xyz0, xyz1, K, patch_size): + return ProjNNFunction.apply(xyz0, xyz1, K, patch_size) + + + +class XCorrVolFunction(torch.autograd.Function): + @staticmethod + def forward(ctx, in0, in1, n_disps, block_size): + args = (in0, in1, n_disps, block_size) + if in0.is_cuda: + out = ext_cuda.xcorrvol_cuda(*args) + else: + out = ext_cpu.xcorrvol_cpu(*args) + return out + + @staticmethod + def backward(ctx, grad_out): + return None, None, None, None + +def xcorrvol(in0, in1, n_disps, block_size): + return XCorrVolFunction.apply(in0, in1, n_disps, block_size) + + + + +class PhotometricLossFunction(torch.autograd.Function): + @staticmethod + def forward(ctx, es, ta, block_size, type, eps): + args = (es, ta, block_size, type, eps) + ctx.save_for_backward(es, ta) + ctx.block_size = block_size + ctx.type = type + ctx.eps = eps + if es.is_cuda: + out = ext_cuda.photometric_loss_forward(*args) + else: + out = ext_cpu.photometric_loss_forward(*args) + return out + + @staticmethod + def backward(ctx, grad_out): + es, ta = ctx.saved_tensors + block_size = ctx.block_size + type = ctx.type + eps = ctx.eps + args = (es, ta, grad_out.contiguous(), block_size, type, eps) + if grad_out.is_cuda: + grad_es = ext_cuda.photometric_loss_backward(*args) + else: + grad_es = ext_cpu.photometric_loss_backward(*args) + return grad_es, None, None, None, None + +def photometric_loss(es, ta, block_size, type='mse', eps=0.1): + type = type.lower() + if type == 'mse': + type = 0 + elif type == 'sad': + type = 1 + elif type == 'census_mse': + type = 2 + elif type == 'census_sad': + type = 3 + else: + raise Exception('invalid loss type') + return PhotometricLossFunction.apply(es, ta, block_size, type, eps) + +def photometric_loss_pytorch(es, ta, block_size, type='mse', eps=0.1): + type = type.lower() + p = block_size // 2 + es_pad = torch.nn.functional.pad(es, (p,p,p,p), mode='replicate') + ta_pad = torch.nn.functional.pad(ta, (p,p,p,p), mode='replicate') + es_uf = torch.nn.functional.unfold(es_pad, kernel_size=block_size) + ta_uf = torch.nn.functional.unfold(ta_pad, kernel_size=block_size) + es_uf = es_uf.view(es.shape[0], es.shape[1], -1, es.shape[2], es.shape[3]) + ta_uf = ta_uf.view(ta.shape[0], ta.shape[1], -1, ta.shape[2], ta.shape[3]) + if type == 'mse': + ref = (es_uf - ta_uf)**2 + elif type == 'sad': + ref = torch.abs(es_uf - ta_uf) + elif type == 'census_mse' or type == 'census_sad': + des = es_uf - es.unsqueeze(2) + dta = ta_uf - ta.unsqueeze(2) + h_des = 0.5 * (1 + des / torch.sqrt(des * des + eps)) + h_dta = 0.5 * (1 + dta / torch.sqrt(dta * dta + eps)) + diff = h_des - h_dta + if type == 'census_mse': + ref = diff * diff + elif type == 'census_sad': + ref = torch.abs(diff) + else: + raise Exception('invalid loss type') + ref = ref.view(es.shape[0], -1, es.shape[2], es.shape[3]) + ref = torch.sum(ref, dim=1, keepdim=True) / block_size**2 + return ref diff --git a/torchext/modules.py b/torchext/modules.py new file mode 100644 index 0000000..c7c1bfd --- /dev/null +++ b/torchext/modules.py @@ -0,0 +1,27 @@ +import torch +import math +import numpy as np + +from .functions import * + +class CoordConv2d(torch.nn.Module): + def __init__(self, channels_in, channels_out, kernel_size, stride, padding): + super().__init__() + + self.conv = torch.nn.Conv2d(channels_in+2, channels_out, kernel_size=kernel_size, padding=padding, stride=stride) + + self.uv = None + + def forward(self, x): + if self.uv is None: + height, width = x.shape[2], x.shape[3] + u, v = np.meshgrid(range(width), range(height)) + u = 2 * u / (width - 1) - 1 + v = 2 * v / (height - 1) - 1 + uv = np.stack((u, v)).reshape(1, 2, height, width) + self.uv = torch.from_numpy( uv.astype(np.float32) ) + self.uv = self.uv.to(x.device) + uv = self.uv.expand(x.shape[0], *self.uv.shape[1:]) + xuv = torch.cat((x, uv), dim=1) + y = self.conv(xuv) + return y diff --git a/torchext/setup.py b/torchext/setup.py new file mode 100644 index 0000000..bde6e37 --- /dev/null +++ b/torchext/setup.py @@ -0,0 +1,24 @@ +from setuptools import setup +from torch.utils.cpp_extension import CppExtension, CUDAExtension, BuildExtension +import os + +this_dir = os.path.dirname(os.path.realpath(__file__)) + +include_dirs = [ +] + +nvcc_args = [ + '-arch=sm_30', + '-gencode=arch=compute_30,code=sm_30', + '-gencode=arch=compute_35,code=sm_35', +] + +setup( + name='ext', + ext_modules=[ + CppExtension('ext_cpu', ['ext/ext_cpu.cpp']), + CUDAExtension('ext_cuda', ['ext/ext_cuda.cpp', 'ext/ext_kernel.cu'], extra_compile_args={'cxx': [], 'nvcc': nvcc_args}), + ], + cmdclass={'build_ext': BuildExtension}, + include_dirs=include_dirs +) diff --git a/torchext/worker.py b/torchext/worker.py new file mode 100644 index 0000000..a668f93 --- /dev/null +++ b/torchext/worker.py @@ -0,0 +1,528 @@ +import numpy as np +import torch +import random +import logging +import datetime +from pathlib import Path +import argparse +import subprocess +import socket +import sys +import os +import gc +import json +import matplotlib.pyplot as plt +import time +from collections import OrderedDict + + +class StopWatch(object): + def __init__(self): + self.timings = OrderedDict() + self.starts = {} + + def start(self, name): + self.starts[name] = time.time() + + def stop(self, name): + if name not in self.timings: + self.timings[name] = [] + self.timings[name].append(time.time() - self.starts[name]) + + def get(self, name=None, reduce=np.sum): + if name is not None: + return reduce(self.timings[name]) + else: + ret = {} + for k in self.timings: + ret[k] = reduce(self.timings[k]) + return ret + + def __repr__(self): + return ', '.join(['%s: %f[s]' % (k,v) for k,v in self.get().items()]) + def __str__(self): + return ', '.join(['%s: %f[s]' % (k,v) for k,v in self.get().items()]) + + +class ETA(object): + def __init__(self, length): + self.length = length + self.start_time = time.time() + self.current_idx = 0 + self.current_time = time.time() + + def update(self, idx): + self.current_idx = idx + self.current_time = time.time() + + def get_elapsed_time(self): + return self.current_time - self.start_time + + def get_item_time(self): + return self.get_elapsed_time() / (self.current_idx + 1) + + def get_remaining_time(self): + return self.get_item_time() * (self.length - self.current_idx + 1) + + def format_time(self, seconds): + minutes, seconds = divmod(seconds, 60) + hours, minutes = divmod(minutes, 60) + hours = int(hours) + minutes = int(minutes) + return f'{hours:02d}:{minutes:02d}:{seconds:05.2f}' + + def get_elapsed_time_str(self): + return self.format_time(self.get_elapsed_time()) + + def get_remaining_time_str(self): + return self.format_time(self.get_remaining_time()) + +class Worker(object): + def __init__(self, out_root, experiment_name, epochs=10, seed=42, train_batch_size=8, test_batch_size=16, num_workers=16, save_frequency=1, train_device='cuda:0', test_device='cuda:0', max_train_iter=-1): + self.out_root = Path(out_root) + self.experiment_name = experiment_name + self.epochs = epochs + self.seed = seed + self.train_batch_size = train_batch_size + self.test_batch_size = test_batch_size + self.num_workers = num_workers + self.save_frequency = save_frequency + self.train_device = train_device + self.test_device = test_device + self.max_train_iter = max_train_iter + + self.errs_list=[] + + self.setup_experiment() + + def setup_experiment(self): + self.exp_out_root = self.out_root / self.experiment_name + self.exp_out_root.mkdir(parents=True, exist_ok=True) + + if logging.root: del logging.root.handlers[:] + logging.basicConfig( + level=logging.INFO, + handlers=[ + logging.FileHandler( str(self.exp_out_root / 'train.log') ), + logging.StreamHandler() + ], + format='%(relativeCreated)d:%(levelname)s:%(process)d-%(processName)s: %(message)s' + ) + + logging.info('='*80) + logging.info(f'Start of experiment: {self.experiment_name}') + logging.info(socket.gethostname()) + self.log_datetime() + logging.info('='*80) + + self.metric_path = self.exp_out_root / 'metrics.json' + if self.metric_path.exists(): + with open(str(self.metric_path), 'r') as fp: + self.metric_data = json.load(fp) + else: + self.metric_data = {} + + self.init_seed() + + def metric_add_train(self, epoch, key, val): + epoch = str(epoch) + key = str(key) + if epoch not in self.metric_data: + self.metric_data[epoch] = {} + if 'train' not in self.metric_data[epoch]: + self.metric_data[epoch]['train'] = {} + self.metric_data[epoch]['train'][key] = val + + def metric_add_test(self, epoch, set_idx, key, val): + epoch = str(epoch) + set_idx = str(set_idx) + key = str(key) + if epoch not in self.metric_data: + self.metric_data[epoch] = {} + if 'test' not in self.metric_data[epoch]: + self.metric_data[epoch]['test'] = {} + if set_idx not in self.metric_data[epoch]['test']: + self.metric_data[epoch]['test'][set_idx] = {} + self.metric_data[epoch]['test'][set_idx][key] = val + + def metric_save(self): + with open(str(self.metric_path), 'w') as fp: + json.dump(self.metric_data, fp, indent=2) + + def init_seed(self, seed=None): + if seed is not None: + self.seed = seed + logging.info(f'Set seed to {self.seed}') + np.random.seed(self.seed) + random.seed(self.seed) + torch.manual_seed(self.seed) + torch.cuda.manual_seed(self.seed) + + def log_datetime(self): + logging.info(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + + def mem_report(self): + for obj in gc.get_objects(): + if torch.is_tensor(obj): + print(type(obj), obj.shape) + + def get_net_path(self, epoch, root=None): + if root is None: + root = self.exp_out_root + return root / f'net_{epoch:04d}.params' + + def get_do_parser_cmds(self): + return ['retrain', 'resume', 'retest', 'test_init'] + + def get_do_parser(self): + parser = argparse.ArgumentParser() + parser.add_argument('--cmd', type=str, default='resume', choices=self.get_do_parser_cmds()) + parser.add_argument('--epoch', type=int, default=-1) + return parser + + def do_cmd(self, args, net, optimizer, scheduler=None): + if args.cmd == 'retrain': + self.train(net, optimizer, resume=False, scheduler=scheduler) + elif args.cmd == 'resume': + self.train(net, optimizer, resume=True, scheduler=scheduler) + elif args.cmd == 'retest': + self.retest(net, epoch=args.epoch) + elif args.cmd == 'test_init': + test_sets = self.get_test_sets() + self.test(-1, net, test_sets) + else: + raise Exception('invalid cmd') + + def do(self, net, optimizer, load_net_optimizer=None, scheduler=None): + parser = self.get_do_parser() + args, _ = parser.parse_known_args() + + if load_net_optimizer is not None and args.cmd not in ['schedule']: + net, optimizer = load_net_optimizer() + + self.do_cmd(args, net, optimizer, scheduler=scheduler) + + def retest(self, net, epoch=-1): + if epoch < 0: + epochs = range(self.epochs) + else: + epochs = [epoch] + + test_sets = self.get_test_sets() + + for epoch in epochs: + net_path = self.get_net_path(epoch) + if net_path.exists(): + state_dict = torch.load(str(net_path)) + net.load_state_dict(state_dict) + self.test(epoch, net, test_sets) + + def format_err_str(self, errs, div=1): + err = sum(errs) + if len(errs) > 1: + err_str = f'{err/div:0.4f}=' + '+'.join([f'{e/div:0.4f}' for e in errs]) + else: + err_str = f'{err/div:0.4f}' + return err_str + + def write_err_img(self): + err_img_path = self.exp_out_root / 'errs.png' + fig = plt.figure(figsize=(16,16)) + lines=[] + for idx,errs in enumerate(self.errs_list): + line,=plt.plot(range(len(errs)), errs, label=f'error{idx}') + lines.append(line) + plt.tight_layout() + plt.legend(handles=lines) + plt.savefig(str(err_img_path)) + plt.close(fig) + + + def callback_train_new_epoch(self, epoch, net, optimizer): + pass + + def train(self, net, optimizer, resume=False, scheduler=None): + logging.info('='*80) + logging.info('Start training') + self.log_datetime() + logging.info('='*80) + + train_set = self.get_train_set() + test_sets = self.get_test_sets() + + net = net.to(self.train_device) + + epoch = 0 + min_err = {ts.name: 1e9 for ts in test_sets} + + state_path = self.exp_out_root / 'state.dict' + if resume and state_path.exists(): + logging.info('='*80) + logging.info(f'Loading state from {state_path}') + logging.info('='*80) + state = torch.load(str(state_path)) + epoch = state['epoch'] + 1 + if 'min_err' in state: + min_err = state['min_err'] + + curr_state = net.state_dict() + curr_state.update(state['state_dict']) + net.load_state_dict(curr_state) + + + try: + optimizer.load_state_dict(state['optimizer']) + except: + logging.info('Warning: cannot load optimizer from state_dict') + pass + if 'cpu_rng_state' in state: + torch.set_rng_state(state['cpu_rng_state']) + if 'gpu_rng_state' in state: + torch.cuda.set_rng_state(state['gpu_rng_state']) + + for epoch in range(epoch, self.epochs): + self.callback_train_new_epoch(epoch, net, optimizer) + + # train epoch + self.train_epoch(epoch, net, optimizer, train_set) + + # test epoch + errs = self.test(epoch, net, test_sets) + + if (epoch + 1) % self.save_frequency == 0: + net = net.to(self.train_device) + + # store state + state_dict = { + 'epoch': epoch, + 'min_err': min_err, + 'state_dict': net.state_dict(), + 'optimizer': optimizer.state_dict(), + 'cpu_rng_state': torch.get_rng_state(), + 'gpu_rng_state': torch.cuda.get_rng_state(), + } + logging.info(f'save state to {state_path}') + state_path = self.exp_out_root / 'state.dict' + torch.save(state_dict, str(state_path)) + + for test_set_name in errs: + err = sum(errs[test_set_name]) + if err < min_err[test_set_name]: + min_err[test_set_name] = err + state_path = self.exp_out_root / f'state_set{test_set_name}_best.dict' + logging.info(f'save state to {state_path}') + torch.save(state_dict, str(state_path)) + + # store network + net_path = self.get_net_path(epoch) + logging.info(f'save network to {net_path}') + torch.save(net.state_dict(), str(net_path)) + + if scheduler is not None: + scheduler.step() + + logging.info('='*80) + logging.info('Finished training') + self.log_datetime() + logging.info('='*80) + + def get_train_set(self): + # returns train_set + raise NotImplementedError() + + def get_test_sets(self): + # returns test_sets + raise NotImplementedError() + + def copy_data(self, data, device, requires_grad, train): + raise NotImplementedError() + + def net_forward(self, net, train): + raise NotImplementedError() + + def loss_forward(self, output, train): + raise NotImplementedError() + + def callback_train_post_backward(self, net, errs, output, epoch, batch_idx, masks): + # err = False + # for name, param in net.named_parameters(): + # if not torch.isfinite(param.grad).all(): + # print(name) + # err = True + # if err: + # import ipdb; ipdb.set_trace() + pass + + def callback_train_start(self, epoch): + pass + + def callback_train_stop(self, epoch, loss): + pass + + def train_epoch(self, epoch, net, optimizer, dset): + self.callback_train_start(epoch) + stopwatch = StopWatch() + + logging.info('='*80) + logging.info('Train epoch %d' % epoch) + + dset.current_epoch = epoch + train_loader = torch.utils.data.DataLoader(dset, batch_size=self.train_batch_size, shuffle=True, num_workers=self.num_workers, drop_last=True, pin_memory=False) + + net = net.to(self.train_device) + net.train() + + mean_loss = None + + n_batches = self.max_train_iter if self.max_train_iter > 0 else len(train_loader) + bar = ETA(length=n_batches) + + stopwatch.start('total') + stopwatch.start('data') + for batch_idx, data in enumerate(train_loader): + if self.max_train_iter > 0 and batch_idx > self.max_train_iter: break + self.copy_data(data, device=self.train_device, requires_grad=True, train=True) + stopwatch.stop('data') + + optimizer.zero_grad() + + stopwatch.start('forward') + output = self.net_forward(net, train=True) + if 'cuda' in self.train_device: torch.cuda.synchronize() + stopwatch.stop('forward') + + stopwatch.start('loss') + errs = self.loss_forward(output, train=True) + if isinstance(errs, dict): + masks = errs['masks'] + errs = errs['errs'] + else: + masks = [] + if not isinstance(errs, list) and not isinstance(errs, tuple): + errs = [errs] + err = sum(errs) + if 'cuda' in self.train_device: torch.cuda.synchronize() + stopwatch.stop('loss') + + stopwatch.start('backward') + err.backward() + self.callback_train_post_backward(net, errs, output, epoch, batch_idx, masks) + if 'cuda' in self.train_device: torch.cuda.synchronize() + stopwatch.stop('backward') + + stopwatch.start('optimizer') + optimizer.step() + if 'cuda' in self.train_device: torch.cuda.synchronize() + stopwatch.stop('optimizer') + + bar.update(batch_idx) + if (epoch <= 1 and batch_idx < 128) or batch_idx % 16 == 0: + err_str = self.format_err_str(errs) + logging.info(f'train e{epoch}: {batch_idx+1}/{len(train_loader)}: loss={err_str} | {bar.get_elapsed_time_str()} / {bar.get_remaining_time_str()}') + #self.write_err_img() + + + if mean_loss is None: + mean_loss = [0 for e in errs] + for erridx, err in enumerate(errs): + mean_loss[erridx] += err.item() + + stopwatch.start('data') + stopwatch.stop('total') + logging.info('timings: %s' % stopwatch) + + mean_loss = [l / len(train_loader) for l in mean_loss] + self.callback_train_stop(epoch, mean_loss) + self.metric_add_train(epoch, 'loss', mean_loss) + + # save metrics + self.metric_save() + + err_str = self.format_err_str(mean_loss) + logging.info(f'avg train_loss={err_str}') + return mean_loss + + def callback_test_start(self, epoch, set_idx): + pass + + def callback_test_add(self, epoch, set_idx, batch_idx, n_batches, output, masks): + pass + + def callback_test_stop(self, epoch, set_idx, loss): + pass + + def test(self, epoch, net, test_sets): + errs = {} + for test_set_idx, test_set in enumerate(test_sets): + if (epoch + 1) % test_set.test_frequency == 0: + logging.info('='*80) + logging.info(f'testing set {test_set.name}') + err = self.test_epoch(epoch, test_set_idx, net, test_set.dset) + errs[test_set.name] = err + return errs + + def test_epoch(self, epoch, set_idx, net, dset): + logging.info('-'*80) + logging.info('Test epoch %d' % epoch) + dset.current_epoch = epoch + test_loader = torch.utils.data.DataLoader(dset, batch_size=self.test_batch_size, shuffle=False, num_workers=self.num_workers, drop_last=False, pin_memory=False) + + net = net.to(self.test_device) + net.eval() + + with torch.no_grad(): + mean_loss = None + + self.callback_test_start(epoch, set_idx) + + bar = ETA(length=len(test_loader)) + stopwatch = StopWatch() + stopwatch.start('total') + stopwatch.start('data') + for batch_idx, data in enumerate(test_loader): + # if batch_idx == 10: break + self.copy_data(data, device=self.test_device, requires_grad=False, train=False) + stopwatch.stop('data') + + stopwatch.start('forward') + output = self.net_forward(net, train=False) + if 'cuda' in self.test_device: torch.cuda.synchronize() + stopwatch.stop('forward') + + stopwatch.start('loss') + errs = self.loss_forward(output, train=False) + if isinstance(errs, dict): + masks = errs['masks'] + errs = errs['errs'] + else: + masks = [] + if not isinstance(errs, list) and not isinstance(errs, tuple): + errs = [errs] + + bar.update(batch_idx) + if batch_idx % 25 == 0: + err_str = self.format_err_str(errs) + logging.info(f'test e{epoch}: {batch_idx+1}/{len(test_loader)}: loss={err_str} | {bar.get_elapsed_time_str()} / {bar.get_remaining_time_str()}') + + if mean_loss is None: + mean_loss = [0 for e in errs] + for erridx, err in enumerate(errs): + mean_loss[erridx] += err.item() + stopwatch.stop('loss') + + self.callback_test_add(epoch, set_idx, batch_idx, len(test_loader), output, masks) + + stopwatch.start('data') + stopwatch.stop('total') + logging.info('timings: %s' % stopwatch) + + mean_loss = [l / len(test_loader) for l in mean_loss] + self.callback_test_stop(epoch, set_idx, mean_loss) + self.metric_add_test(epoch, set_idx, 'loss', mean_loss) + + # save metrics + self.metric_save() + + err_str = self.format_err_str(mean_loss) + logging.info(f'test epoch {epoch}: avg test_loss={err_str}') + return mean_loss diff --git a/train_val.py b/train_val.py new file mode 100644 index 0000000..9c92610 --- /dev/null +++ b/train_val.py @@ -0,0 +1,29 @@ +import os +import torch +from model import exp_synph +from model import exp_synphge +from model import networks +from co.args import parse_args + + +# parse args +args = parse_args() + +# loss types +if args.loss=='ph': + worker = exp_synph.Worker(args) +elif args.loss=='phge': + worker = exp_synphge.Worker(args) + +# concatenation of original image and lcn image +channels_in=2 + +# set up network +net = networks.DispEdgeDecoders(channels_in=channels_in, max_disp=args.max_disp, imsizes=worker.imsizes, output_ms=worker.ms) + +# optimizer +optimizer = torch.optim.Adam(net.parameters(), lr=1e-4) + +# start the work +worker.do(net, optimizer) +

Raw output: lcn.c