From 6772578b1dd257224aebb7620eb15ab9074b72fa Mon Sep 17 00:00:00 2001 From: arm61 Date: Sat, 25 Aug 2018 13:43:00 +0100 Subject: [PATCH 01/14] starting the process of v2 --- README.md | 2 ++ pylj/pairwise.py | 13 +++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 4fe38f3..9cfb83c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ +## This is the branch associated with the development of pylj v2.0. Things on this branch are uncomplete, untested, and probably just won't work. Please change to the [master branch](https://github.com/arm61/pylj/tree/master) for something more stable. + ## Visit the [pylj](http://pythoninchemistry.org/pylj) webpage for more information about pylj. To build from source: diff --git a/pylj/pairwise.py b/pylj/pairwise.py index 743d155..8f9c49f 100644 --- a/pylj/pairwise.py +++ b/pylj/pairwise.py @@ -3,7 +3,8 @@ from pylj import util -def compute_forces(particles, box_length, cut_off): +def compute_forces(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, + mass=39.948): """Calculates the forces and therefore the accelerations on each of the particles in the simulation. This uses a 12-6 Lennard-Jones potential model for Argon with values: @@ -40,11 +41,11 @@ def compute_forces(particles, box_length, cut_off): distances = np.zeros(pairs) energies = np.zeros(pairs) k = 0 - A = 1.363e-134 # joules / metre ^ {12} - B = 9.273e-78 # joules / meter ^ {6} + A = a # joules / metre ^ {12} + B = b # joules / meter ^ {6} atomic_mass_unit = 1.660539e-27 # kilograms - mass_of_argon_amu = 39.948 # amu - mass_of_argon = mass_of_argon_amu * atomic_mass_unit # kilograms + mass_amu = mass # amu + mass_kg = mass_amu * atomic_mass_unit # kilograms for i in range(0, particles['xposition'].size-1): for j in range(i+1, particles['xposition'].size): dx = particles['xposition'][i] - particles['xposition'][j] @@ -58,7 +59,7 @@ def compute_forces(particles, box_length, cut_off): forces[k] = f e = lennard_jones_energy(A, B, dr) energies[k] = e - particles = update_accelerations(particles, f, mass_of_argon, + particles = update_accelerations(particles, f, mass_kg, dx, dy, dr, i, j) else: forces[k] = 0. From 62c5c9ee2a16b0a2f30778af9ac8c970eefe3caa Mon Sep 17 00:00:00 2001 From: arm61 Date: Sat, 25 Aug 2018 14:30:44 +0100 Subject: [PATCH 02/14] can now select values of a, b and mass --- pylj/md.py | 3 +- pylj/pairwise.py | 32 +- pylj/util.py | 16 +- src/_ccomp.cpp | 1583 ++++++++++++++++++++++++++-------------------- src/_ccomp.pyx | 107 +++- src/comp.cpp | 64 +- src/comp.h | 20 +- 7 files changed, 1076 insertions(+), 749 deletions(-) diff --git a/pylj/md.py b/pylj/md.py index bf86f10..867d9aa 100644 --- a/pylj/md.py +++ b/pylj/md.py @@ -126,7 +126,8 @@ def sample(particles, box_length, initial_particles, system): system.temperature_sample = np.append(system.temperature_sample, temperature_new) pressure_new = heavy.calculate_pressure(particles, box_length, - temperature_new, system.cut_off) + temperature_new, system.cut_off, + system.a, system.b) msd_new = calculate_msd(particles, initial_particles, box_length) system.pressure_sample = np.append(system.pressure_sample, pressure_new) system.force_sample = np.append(system.force_sample, diff --git a/pylj/pairwise.py b/pylj/pairwise.py index 8f9c49f..be3477e 100644 --- a/pylj/pairwise.py +++ b/pylj/pairwise.py @@ -5,9 +5,9 @@ def compute_forces(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, mass=39.948): - """Calculates the forces and therefore the accelerations on each of the + r"""Calculates the forces and therefore the accelerations on each of the particles in the simulation. This uses a 12-6 Lennard-Jones potential - model for Argon with values: + model for Argon the values are: - A = 1.363e-134 J m :math:`^{12}` - B = 9.273e-78 J m :math:`^6` @@ -21,6 +21,13 @@ def compute_forces(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, cut_off: float The distance greater than which the forces between particles is taken as zero. + a: float (optional) + The A component of the 12-6 potential model (units of + Jm:math:`^{-12}`). + b: float (optional) + The B component of the 12-6 potential model (units of Jm:math:`^{-6}`). + mass: float (optional) + The mass of the particle being simulated (units of atomic mass units). Returns ------- @@ -182,8 +189,8 @@ def lennard_jones_force(A, B, dr): return 12 * A * np.power(dr, -13) - 6 * B * np.power(dr, -7) -def compute_energy(particles, box_length, cut_off): - """Calculates the total energy of the simulation. This uses a +def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): + r"""Calculates the total energy of the simulation. This uses a 12-6 Lennard-Jones potential model for Argon with values: - A = 1.363e-134 J m :math:`^{12}` @@ -198,6 +205,11 @@ def compute_energy(particles, box_length, cut_off): cut_off: float The distance greater than which the energies between particles is taken as zero. + a: float (optional) + The A component of the 12-6 potential model (units of + Jm:math:`^{-12}`). + b: float (optional) + The B component of the 12-6 potential model (units of Jm:math:`^{-6}`). Returns ------- @@ -213,8 +225,8 @@ def compute_energy(particles, box_length, cut_off): distances = np.zeros(pairs) energies = np.zeros(pairs) k = 0 - A = 1.363e-134 # joules / metre ^ {12} - B = 9.273e-78 # joules / meter ^ {6} + A = a # joules / metre ^ {12} + B = b # joules / meter ^ {6} for i in range(0, particles['xposition'].size-1): for j in range(i+1, particles['xposition'].size): dx = particles['xposition'][i] - particles['xposition'][j] @@ -232,7 +244,8 @@ def compute_energy(particles, box_length, cut_off): return distances, energies -def calculate_pressure(particles, box_length, temperature, cut_off): +def calculate_pressure(particles, box_length, temperature, cut_off, + a=1.363e-134, b=9.273e-78): r"""Calculates the instantaneous pressure of the simulation cell, found with the following relationship: @@ -251,6 +264,11 @@ def calculate_pressure(particles, box_length, temperature, cut_off): cut_off: float The distance greater than which the forces between particles is taken as zero. + a: float (optional) + The A component of the 12-6 potential model (units of + Jm:math:`^{-12}`). + b: float (optional) + The B component of the 12-6 potential model (units of Jm:math:`^{-6}`). Returns ------- diff --git a/pylj/util.py b/pylj/util.py index 18faccd..007b4e7 100644 --- a/pylj/util.py +++ b/pylj/util.py @@ -34,9 +34,12 @@ class System: """ def __init__(self, number_of_particles, temperature, box_length, init_conf='square', timestep_length=1e-14, - cut_off=15): + cut_off=15, a=1.363e-134, b=9.273e-78, mass=39.948): self.number_of_particles = number_of_particles self.init_temp = temperature + self.a = a + self.b = b + self.mass = mass if box_length <= 600: self.box_length = box_length * 1e-10 else: @@ -121,9 +124,13 @@ def compute_force(self): """Maps to the compute_force function in either the comp (if Cython is installed) or the pairwise module and allows for a cleaner interface. """ + a = self.a + b = self.b + mass = self.mass part, dist, forces, energies = heavy.compute_forces(self.particles, self.box_length, - self.cut_off) + self.cut_off, a=a, + b=b, mass=mass) self.particles = part self.distances = dist self.forces = forces @@ -134,9 +141,12 @@ def compute_energy(self): is installed) or the pairwise module and allows for a cleaner interface. """ + a = self.a + b = self.b self.distances, self.energies = heavy.compute_energy(self.particles, self.box_length, - self.cut_off) + self.cut_off, a=a, + b=b) def integrate(self, method): """Maps the chosen integration method. diff --git a/src/_ccomp.cpp b/src/_ccomp.cpp index 5042875..1931257 100644 --- a/src/_ccomp.cpp +++ b/src/_ccomp.cpp @@ -1,4 +1,4 @@ -/* Generated by Cython 0.28.2 */ +/* Generated by Cython 0.28.5 */ #define PY_SSIZE_T_CLEAN #include "Python.h" @@ -7,7 +7,7 @@ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) #error Cython requires Python 2.6+ or Python 3.3+. #else -#define CYTHON_ABI "0_28_2" +#define CYTHON_ABI "0_28_5" #define CYTHON_FUTURE_DIVISION 1 #include #ifndef offsetof @@ -467,6 +467,7 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { #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) @@ -664,7 +665,7 @@ static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { #define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) -#define __Pyx_PyBool_FromLong(b) ((b) ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False)) +static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); #define __Pyx_PySequence_Tuple(obj)\ @@ -772,7 +773,7 @@ static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; } static PyObject *__pyx_m = NULL; static PyObject *__pyx_d; static PyObject *__pyx_b; -static PyObject *__pyx_cython_runtime; +static PyObject *__pyx_cython_runtime = NULL; static PyObject *__pyx_empty_tuple; static PyObject *__pyx_empty_bytes; static PyObject *__pyx_empty_unicode; @@ -846,7 +847,7 @@ typedef struct { } __Pyx_BufFmt_Context; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":730 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":730 * # in Cython to enable them only on the right systems. * * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<< @@ -855,7 +856,7 @@ typedef struct { */ typedef npy_int8 __pyx_t_5numpy_int8_t; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":731 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":731 * * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< @@ -864,7 +865,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; */ typedef npy_int16 __pyx_t_5numpy_int16_t; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":732 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":732 * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<< @@ -873,7 +874,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; */ typedef npy_int32 __pyx_t_5numpy_int32_t; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":733 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":733 * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<< @@ -882,7 +883,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; */ typedef npy_int64 __pyx_t_5numpy_int64_t; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":737 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":737 * #ctypedef npy_int128 int128_t * * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< @@ -891,7 +892,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; */ typedef npy_uint8 __pyx_t_5numpy_uint8_t; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":738 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":738 * * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< @@ -900,7 +901,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; */ typedef npy_uint16 __pyx_t_5numpy_uint16_t; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":739 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":739 * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<< @@ -909,7 +910,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; */ typedef npy_uint32 __pyx_t_5numpy_uint32_t; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":740 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":740 * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<< @@ -918,7 +919,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; */ typedef npy_uint64 __pyx_t_5numpy_uint64_t; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":744 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":744 * #ctypedef npy_uint128 uint128_t * * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< @@ -927,7 +928,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; */ typedef npy_float32 __pyx_t_5numpy_float32_t; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":745 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":745 * * ctypedef npy_float32 float32_t * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< @@ -936,7 +937,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; */ typedef npy_float64 __pyx_t_5numpy_float64_t; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":754 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":754 * # The int types are mapped a bit surprising -- * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t # <<<<<<<<<<<<<< @@ -945,7 +946,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; */ typedef npy_long __pyx_t_5numpy_int_t; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":755 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":755 * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t * ctypedef npy_longlong long_t # <<<<<<<<<<<<<< @@ -954,7 +955,7 @@ typedef npy_long __pyx_t_5numpy_int_t; */ typedef npy_longlong __pyx_t_5numpy_long_t; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":756 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":756 * ctypedef npy_long int_t * ctypedef npy_longlong long_t * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<< @@ -963,7 +964,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; */ typedef npy_longlong __pyx_t_5numpy_longlong_t; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":758 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":758 * ctypedef npy_longlong longlong_t * * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< @@ -972,7 +973,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; */ typedef npy_ulong __pyx_t_5numpy_uint_t; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":759 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":759 * * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< @@ -981,7 +982,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; */ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":760 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":760 * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<< @@ -990,7 +991,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; */ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":762 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":762 * ctypedef npy_ulonglong ulonglong_t * * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< @@ -999,7 +1000,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; */ typedef npy_intp __pyx_t_5numpy_intp_t; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":763 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":763 * * ctypedef npy_intp intp_t * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< @@ -1008,7 +1009,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; */ typedef npy_uintp __pyx_t_5numpy_uintp_t; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":765 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":765 * ctypedef npy_uintp uintp_t * * ctypedef npy_double float_t # <<<<<<<<<<<<<< @@ -1017,7 +1018,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; */ typedef npy_double __pyx_t_5numpy_float_t; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":766 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":766 * * ctypedef npy_double float_t * ctypedef npy_double double_t # <<<<<<<<<<<<<< @@ -1026,7 +1027,7 @@ typedef npy_double __pyx_t_5numpy_float_t; */ typedef npy_double __pyx_t_5numpy_double_t; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":767 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":767 * ctypedef npy_double float_t * ctypedef npy_double double_t * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<< @@ -1035,12 +1036,12 @@ typedef npy_double __pyx_t_5numpy_double_t; */ typedef npy_longdouble __pyx_t_5numpy_longdouble_t; -/* "src/_ccomp.pyx":17 +/* "src/_ccomp.pyx":25 * * DTYPE = np.float64 * ctypedef np.float64_t DTYPE_t # <<<<<<<<<<<<<< * - * def compute_forces(particles, box_length, cut_off): + * def compute_forces(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, */ typedef __pyx_t_5numpy_float64_t __pyx_t_4pylj_4comp_DTYPE_t; /* Declarations.proto */ @@ -1070,7 +1071,7 @@ static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(do /*--- Type declarations ---*/ -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":769 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":769 * ctypedef npy_longdouble longdouble_t * * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< @@ -1079,7 +1080,7 @@ static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(do */ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":770 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":770 * * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< @@ -1088,7 +1089,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; */ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":771 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":771 * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<< @@ -1097,7 +1098,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; */ typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":773 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":773 * ctypedef npy_clongdouble clongdouble_t * * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< @@ -1621,10 +1622,15 @@ static PyObject *__pyx_builtin_range; static PyObject *__pyx_builtin_ValueError; static PyObject *__pyx_builtin_RuntimeError; static PyObject *__pyx_builtin_ImportError; +static const char __pyx_k_a[] = "a"; +static const char __pyx_k_b[] = "b"; static const char __pyx_k_i[] = "i"; +static const char __pyx_k_ac[] = "ac"; +static const char __pyx_k_bc[] = "bc"; static const char __pyx_k_np[] = "np"; static const char __pyx_k_cut[] = "cut"; static const char __pyx_k_main[] = "__main__"; +static const char __pyx_k_mass[] = "mass"; static const char __pyx_k_size[] = "size"; static const char __pyx_k_temp[] = "temp"; static const char __pyx_k_test[] = "__test__"; @@ -1636,6 +1642,7 @@ static const char __pyx_k_ypos[] = "ypos"; static const char __pyx_k_yvel[] = "yvel"; static const char __pyx_k_DTYPE[] = "DTYPE"; static const char __pyx_k_box_l[] = "box_l"; +static const char __pyx_k_massc[] = "massc"; static const char __pyx_k_numpy[] = "numpy"; static const char __pyx_k_pairs[] = "pairs"; static const char __pyx_k_range[] = "range"; @@ -1687,9 +1694,13 @@ static PyObject *__pyx_n_s_ImportError; static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; static PyObject *__pyx_n_s_RuntimeError; static PyObject *__pyx_n_s_ValueError; +static PyObject *__pyx_n_s_a; +static PyObject *__pyx_n_s_ac; static PyObject *__pyx_n_s_average; static PyObject *__pyx_n_s_average_temp; +static PyObject *__pyx_n_s_b; static PyObject *__pyx_n_s_bath_temp; +static PyObject *__pyx_n_s_bc; static PyObject *__pyx_n_s_box_l; static PyObject *__pyx_n_s_box_length; static PyObject *__pyx_n_s_calculate_pressure; @@ -1707,6 +1718,8 @@ static PyObject *__pyx_n_s_i; static PyObject *__pyx_n_s_import; static PyObject *__pyx_n_s_len_particles; static PyObject *__pyx_n_s_main; +static PyObject *__pyx_n_s_mass; +static PyObject *__pyx_n_s_massc; static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; static PyObject *__pyx_n_s_np; @@ -1739,12 +1752,15 @@ static PyObject *__pyx_n_s_yposition; static PyObject *__pyx_n_s_yvel; static PyObject *__pyx_n_s_yvelocity; static PyObject *__pyx_n_s_zeros; -static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_cut_off); /* proto */ -static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_cut_off); /* proto */ -static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_temperature, PyObject *__pyx_v_cut_off); /* proto */ +static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_mass); /* proto */ +static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_a, PyObject *__pyx_v_b); /* proto */ +static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_temperature, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_a, PyObject *__pyx_v_b); /* proto */ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_temperature_sample, PyObject *__pyx_v_bath_temp); /* proto */ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info); /* proto */ +static PyObject *__pyx_float_39_948; +static PyObject *__pyx_float_9_273eneg_78; +static PyObject *__pyx_float_1_363eneg_134; static PyObject *__pyx_tuple_; static PyObject *__pyx_tuple__2; static PyObject *__pyx_tuple__3; @@ -1764,32 +1780,44 @@ static PyObject *__pyx_codeobj__15; static PyObject *__pyx_codeobj__17; /* Late includes */ -/* "src/_ccomp.pyx":19 +/* "src/_ccomp.pyx":27 * ctypedef np.float64_t DTYPE_t * - * def compute_forces(particles, box_length, cut_off): # <<<<<<<<<<<<<< - * """Calculates the forces and therefore the accelerations on each of the particles in the simulation. This uses a - * 12-6 Lennard-Jones potential model for Argon with values: + * def compute_forces(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, # <<<<<<<<<<<<<< + * mass=39.948): + * """Calculates the forces and therefore the accelerations on each of the */ /* Python wrapper */ static PyObject *__pyx_pw_4pylj_4comp_1compute_forces(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_4pylj_4comp_compute_forces[] = "Calculates the forces and therefore the accelerations on each of the particles in the simulation. This uses a\n 12-6 Lennard-Jones potential model for Argon with values:\n\n - A = 1.363e-134 J m :math:`^{12}`\n - B = 9.273e-78 J m :math:`^6`\n\n Parameters\n ----------\n particles: util.particle_dt, array_like\n Information about the particles.\n box_length: float\n Length of a single dimension of the simulation square, in Angstrom.\n cut_off: float\n The distance greater than which the forces between particles is taken as zero.\n\n Returns\n -------\n util.particle_dt, array_like\n Information about particles, with updated accelerations and forces.\n float, array_like\n Current distances between pairs of particles in the simulation.\n float, array_like\n Current forces between pairs of particles in the simulation.\n float, array_like\n Current energies between pairs of particles in the simulation.\n "; +static char __pyx_doc_4pylj_4comp_compute_forces[] = "Calculates the forces and therefore the accelerations on each of the\n particles in the simulation. This uses a 12-6 Lennard-Jones potential\n model for Argon with values:\n\n - A = 1.363e-134 J m :math:`^{12}`\n - B = 9.273e-78 J m :math:`^6`\n\n Parameters\n ----------\n particles: util.particle_dt, array_like\n Information about the particles.\n box_length: float\n Length of a single dimension of the simulation square, in Angstrom.\n cut_off: float\n The distance greater than which the forces between particles is taken\n as zero.\n a: float (optional)\n The A component of the 12-6 potential model (units of\n Jm:math:`^{-12}`).\n b: float (optional)\n The B component of the 12-6 potential model (units of Jm:math:`^{-6}`).\n mass: float (optional)\n The mass of the particle being simulated (units of atomic mass units).\n\n Returns\n -------\n util.particle_dt, array_like\n Information about particles, with updated accelerations and forces.\n float, array_like\n Current distances between pairs of particles in the simulation.\n float, array_like\n Current forces between pairs of particles in the simulation.\n float, array_like\n Current energies between pairs of particles in the simulation.\n "; static PyMethodDef __pyx_mdef_4pylj_4comp_1compute_forces = {"compute_forces", (PyCFunction)__pyx_pw_4pylj_4comp_1compute_forces, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4pylj_4comp_compute_forces}; static PyObject *__pyx_pw_4pylj_4comp_1compute_forces(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_particles = 0; PyObject *__pyx_v_box_length = 0; PyObject *__pyx_v_cut_off = 0; + PyObject *__pyx_v_a = 0; + PyObject *__pyx_v_b = 0; + PyObject *__pyx_v_mass = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("compute_forces (wrapper)", 0); { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_particles,&__pyx_n_s_box_length,&__pyx_n_s_cut_off,0}; - PyObject* values[3] = {0,0,0}; + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_particles,&__pyx_n_s_box_length,&__pyx_n_s_cut_off,&__pyx_n_s_a,&__pyx_n_s_b,&__pyx_n_s_mass,0}; + PyObject* values[6] = {0,0,0,0,0,0}; + values[3] = ((PyObject *)__pyx_float_1_363eneg_134); + values[4] = ((PyObject *)__pyx_float_9_273eneg_78); + values[5] = ((PyObject *)__pyx_float_39_948); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); @@ -1808,45 +1836,74 @@ static PyObject *__pyx_pw_4pylj_4comp_1compute_forces(PyObject *__pyx_self, PyOb case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_box_length)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("compute_forces", 1, 3, 3, 1); __PYX_ERR(0, 19, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("compute_forces", 0, 3, 6, 1); __PYX_ERR(0, 27, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cut_off)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("compute_forces", 1, 3, 3, 2); __PYX_ERR(0, 19, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("compute_forces", 0, 3, 6, 2); __PYX_ERR(0, 27, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a); + 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_b); + if (value) { values[4] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mass); + if (value) { values[5] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "compute_forces") < 0)) __PYX_ERR(0, 19, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "compute_forces") < 0)) __PYX_ERR(0, 27, __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); + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + 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_particles = values[0]; __pyx_v_box_length = values[1]; __pyx_v_cut_off = values[2]; + __pyx_v_a = values[3]; + __pyx_v_b = values[4]; + __pyx_v_mass = values[5]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("compute_forces", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 19, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("compute_forces", 0, 3, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 27, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pylj.comp.compute_forces", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_4pylj_4comp_compute_forces(__pyx_self, __pyx_v_particles, __pyx_v_box_length, __pyx_v_cut_off); + __pyx_r = __pyx_pf_4pylj_4comp_compute_forces(__pyx_self, __pyx_v_particles, __pyx_v_box_length, __pyx_v_cut_off, __pyx_v_a, __pyx_v_b, __pyx_v_mass); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_cut_off) { +static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_mass) { int __pyx_v_len_particles; PyObject *__pyx_v_pairs = NULL; double __pyx_v_box_l; @@ -1858,6 +1915,9 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p PyArrayObject *__pyx_v_force_arr = 0; PyArrayObject *__pyx_v_energy_arr = 0; double __pyx_v_cut; + double __pyx_v_ac; + double __pyx_v_bc; + double __pyx_v_massc; long __pyx_v_i; __Pyx_LocalBuf_ND __pyx_pybuffernd_distances_arr; __Pyx_Buffer __pyx_pybuffer_distances_arr; @@ -1929,57 +1989,57 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p __pyx_pybuffernd_energy_arr.data = NULL; __pyx_pybuffernd_energy_arr.rcbuffer = &__pyx_pybuffer_energy_arr; - /* "src/_ccomp.pyx":46 + /* "src/_ccomp.pyx":64 * Current energies between pairs of particles in the simulation. * """ * cdef int len_particles = particles['xposition'].size # <<<<<<<<<<<<<< * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length */ - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 46, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 46, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 46, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 64, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_len_particles = __pyx_t_3; - /* "src/_ccomp.pyx":47 + /* "src/_ccomp.pyx":65 * """ * cdef int len_particles = particles['xposition'].size * pairs = int((len_particles - 1) * len_particles / 2) # <<<<<<<<<<<<<< * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) */ - __pyx_t_2 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 47, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 65, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_pairs = __pyx_t_2; __pyx_t_2 = 0; - /* "src/_ccomp.pyx":48 + /* "src/_ccomp.pyx":66 * cdef int len_particles = particles['xposition'].size * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 48, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 66, __pyx_L1_error) __pyx_v_box_l = __pyx_t_4; - /* "src/_ccomp.pyx":49 + /* "src/_ccomp.pyx":67 * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] xacc = np.zeros(len_particles) */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 49, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 49, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 49, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { @@ -1992,14 +2052,14 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } } if (!__pyx_t_6) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 49, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 49, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -2008,32 +2068,32 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 49, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 49, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 49, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 49, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 67, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xpos.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_xpos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 49, __pyx_L1_error) + __PYX_ERR(0, 67, __pyx_L1_error) } else {__pyx_pybuffernd_xpos.diminfo[0].strides = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xpos.diminfo[0].shape = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.shape[0]; } } @@ -2041,19 +2101,19 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p __pyx_v_xpos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":50 + /* "src/_ccomp.pyx":68 * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] yacc = np.zeros(len_particles) */ - __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 50, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 50, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 50, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { @@ -2066,14 +2126,14 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } } if (!__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 50, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 50, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -2082,32 +2142,32 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 50, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 50, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 50, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 50, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 68, __pyx_L1_error) __pyx_t_9 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ypos.rcbuffer->pybuffer, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_ypos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 50, __pyx_L1_error) + __PYX_ERR(0, 68, __pyx_L1_error) } else {__pyx_pybuffernd_ypos.diminfo[0].strides = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ypos.diminfo[0].shape = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.shape[0]; } } @@ -2115,19 +2175,19 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p __pyx_v_ypos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":51 + /* "src/_ccomp.pyx":69 * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] xacc = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] yacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) */ - __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 51, __pyx_L1_error) + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 51, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 51, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { @@ -2140,14 +2200,14 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } } if (!__pyx_t_5) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 51, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 51, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; @@ -2156,32 +2216,32 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 51, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { - __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 51, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_t_7); __pyx_t_7 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 51, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 51, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 69, __pyx_L1_error) __pyx_t_10 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xacc.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_xacc = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xacc.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 51, __pyx_L1_error) + __PYX_ERR(0, 69, __pyx_L1_error) } else {__pyx_pybuffernd_xacc.diminfo[0].strides = __pyx_pybuffernd_xacc.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xacc.diminfo[0].shape = __pyx_pybuffernd_xacc.rcbuffer->pybuffer.shape[0]; } } @@ -2189,19 +2249,19 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p __pyx_v_xacc = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":52 + /* "src/_ccomp.pyx":70 * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] xacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] yacc = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] force_arr = np.zeros(pairs) */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 52, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 52, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { @@ -2214,14 +2274,14 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } } if (!__pyx_t_7) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; @@ -2230,32 +2290,32 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 52, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = NULL; __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_6); __pyx_t_6 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 52, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 70, __pyx_L1_error) __pyx_t_11 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_yacc.rcbuffer->pybuffer, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_yacc = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_yacc.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 52, __pyx_L1_error) + __PYX_ERR(0, 70, __pyx_L1_error) } else {__pyx_pybuffernd_yacc.diminfo[0].strides = __pyx_pybuffernd_yacc.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_yacc.diminfo[0].shape = __pyx_pybuffernd_yacc.rcbuffer->pybuffer.shape[0]; } } @@ -2263,16 +2323,16 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p __pyx_v_yacc = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":53 + /* "src/_ccomp.pyx":71 * cdef np.ndarray[DTYPE_t, ndim=1] xacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] yacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] force_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 53, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 53, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; @@ -2286,13 +2346,13 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } } if (!__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 53, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 53, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -2300,31 +2360,31 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 53, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 53, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_INCREF(__pyx_v_pairs); __Pyx_GIVEREF(__pyx_v_pairs); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_pairs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 53, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 53, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 71, __pyx_L1_error) __pyx_t_12 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_distances_arr.rcbuffer->pybuffer, (PyObject*)__pyx_t_12, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_distances_arr = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 53, __pyx_L1_error) + __PYX_ERR(0, 71, __pyx_L1_error) } else {__pyx_pybuffernd_distances_arr.diminfo[0].strides = __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_distances_arr.diminfo[0].shape = __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.shape[0]; } } @@ -2332,16 +2392,16 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p __pyx_v_distances_arr = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":54 + /* "src/_ccomp.pyx":72 * cdef np.ndarray[DTYPE_t, ndim=1] yacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] force_arr = np.zeros(pairs) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) * cdef double cut = cut_off */ - __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 54, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 54, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; @@ -2355,13 +2415,13 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } } if (!__pyx_t_5) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 54, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 54, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -2369,31 +2429,31 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 54, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 54, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_INCREF(__pyx_v_pairs); __Pyx_GIVEREF(__pyx_v_pairs); PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_pairs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 54, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 54, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 72, __pyx_L1_error) __pyx_t_13 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_force_arr.rcbuffer->pybuffer, (PyObject*)__pyx_t_13, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_force_arr = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_force_arr.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 54, __pyx_L1_error) + __PYX_ERR(0, 72, __pyx_L1_error) } else {__pyx_pybuffernd_force_arr.diminfo[0].strides = __pyx_pybuffernd_force_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_force_arr.diminfo[0].shape = __pyx_pybuffernd_force_arr.rcbuffer->pybuffer.shape[0]; } } @@ -2401,16 +2461,16 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p __pyx_v_force_arr = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":55 + /* "src/_ccomp.pyx":73 * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] force_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) # <<<<<<<<<<<<<< * cdef double cut = cut_off - * + * cdef double ac = a */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 55, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 55, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -2424,13 +2484,13 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } } if (!__pyx_t_6) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -2438,31 +2498,31 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 55, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_INCREF(__pyx_v_pairs); __Pyx_GIVEREF(__pyx_v_pairs); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_pairs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 55, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 73, __pyx_L1_error) __pyx_t_14 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_energy_arr.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_energy_arr = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 55, __pyx_L1_error) + __PYX_ERR(0, 73, __pyx_L1_error) } else {__pyx_pybuffernd_energy_arr.diminfo[0].strides = __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_energy_arr.diminfo[0].shape = __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.shape[0]; } } @@ -2470,18 +2530,48 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p __pyx_v_energy_arr = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":56 + /* "src/_ccomp.pyx":74 * cdef np.ndarray[DTYPE_t, ndim=1] force_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) * cdef double cut = cut_off # <<<<<<<<<<<<<< - * - * for i in range(0, len_particles): + * cdef double ac = a + * cdef double bc = b */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 56, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 74, __pyx_L1_error) __pyx_v_cut = __pyx_t_4; - /* "src/_ccomp.pyx":58 + /* "src/_ccomp.pyx":75 + * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) + * cdef double cut = cut_off + * cdef double ac = a # <<<<<<<<<<<<<< + * cdef double bc = b + * cdef double massc = mass + */ + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 75, __pyx_L1_error) + __pyx_v_ac = __pyx_t_4; + + /* "src/_ccomp.pyx":76 * cdef double cut = cut_off + * cdef double ac = a + * cdef double bc = b # <<<<<<<<<<<<<< + * cdef double massc = mass + * + */ + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_b); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 76, __pyx_L1_error) + __pyx_v_bc = __pyx_t_4; + + /* "src/_ccomp.pyx":77 + * cdef double ac = a + * cdef double bc = b + * cdef double massc = mass # <<<<<<<<<<<<<< + * + * for i in range(0, len_particles): + */ + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_mass); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 77, __pyx_L1_error) + __pyx_v_massc = __pyx_t_4; + + /* "src/_ccomp.pyx":79 + * cdef double massc = mass * * for i in range(0, len_particles): # <<<<<<<<<<<<<< * xpos[i] = particles['xposition'][i] @@ -2492,19 +2582,19 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) { __pyx_v_i = __pyx_t_16; - /* "src/_ccomp.pyx":59 + /* "src/_ccomp.pyx":80 * * for i in range(0, len_particles): * xpos[i] = particles['xposition'][i] # <<<<<<<<<<<<<< * ypos[i] = particles['yposition'][i] * xacc[i] = 0 */ - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 59, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 59, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_17 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 59, __pyx_L1_error) + __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_17 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_18 = __pyx_v_i; __pyx_t_19 = -1; @@ -2514,23 +2604,23 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_xpos.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 59, __pyx_L1_error) + __PYX_ERR(0, 80, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_xpos.diminfo[0].strides) = __pyx_t_17; - /* "src/_ccomp.pyx":60 + /* "src/_ccomp.pyx":81 * for i in range(0, len_particles): * xpos[i] = particles['xposition'][i] * ypos[i] = particles['yposition'][i] # <<<<<<<<<<<<<< * xacc[i] = 0 * yacc[i] = 0 */ - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 60, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_17 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 60, __pyx_L1_error) + __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_17 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_20 = __pyx_v_i; __pyx_t_19 = -1; @@ -2540,11 +2630,11 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } else if (unlikely(__pyx_t_20 >= __pyx_pybuffernd_ypos.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 60, __pyx_L1_error) + __PYX_ERR(0, 81, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_ypos.diminfo[0].strides) = __pyx_t_17; - /* "src/_ccomp.pyx":61 + /* "src/_ccomp.pyx":82 * xpos[i] = particles['xposition'][i] * ypos[i] = particles['yposition'][i] * xacc[i] = 0 # <<<<<<<<<<<<<< @@ -2559,16 +2649,16 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_xacc.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 61, __pyx_L1_error) + __PYX_ERR(0, 82, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xacc.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_xacc.diminfo[0].strides) = 0.0; - /* "src/_ccomp.pyx":62 + /* "src/_ccomp.pyx":83 * ypos[i] = particles['yposition'][i] * xacc[i] = 0 * yacc[i] = 0 # <<<<<<<<<<<<<< * - * compute_accelerations(len_particles, xpos.data, ypos.data, xacc.data, + * compute_accelerations(len_particles, xpos.data, */ __pyx_t_22 = __pyx_v_i; __pyx_t_19 = -1; @@ -2578,22 +2668,22 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_yacc.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 62, __pyx_L1_error) + __PYX_ERR(0, 83, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yacc.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_yacc.diminfo[0].strides) = 0.0; } - /* "src/_ccomp.pyx":64 + /* "src/_ccomp.pyx":85 * yacc[i] = 0 * - * compute_accelerations(len_particles, xpos.data, ypos.data, xacc.data, # <<<<<<<<<<<<<< - * yacc.data, distances_arr.data, box_l, force_arr.data, - * energy_arr.data, cut) + * compute_accelerations(len_particles, xpos.data, # <<<<<<<<<<<<<< + * ypos.data, xacc.data, + * yacc.data, distances_arr.data, */ - compute_accelerations(__pyx_v_len_particles, ((double const *)__pyx_v_xpos->data), ((double const *)__pyx_v_ypos->data), ((double *)__pyx_v_xacc->data), ((double *)__pyx_v_yacc->data), ((double *)__pyx_v_distances_arr->data), __pyx_v_box_l, ((double *)__pyx_v_force_arr->data), ((double *)__pyx_v_energy_arr->data), __pyx_v_cut); + compute_accelerations(__pyx_v_len_particles, ((double const *)__pyx_v_xpos->data), ((double const *)__pyx_v_ypos->data), ((double *)__pyx_v_xacc->data), ((double *)__pyx_v_yacc->data), ((double *)__pyx_v_distances_arr->data), __pyx_v_box_l, ((double *)__pyx_v_force_arr->data), ((double *)__pyx_v_energy_arr->data), __pyx_v_cut, __pyx_v_ac, __pyx_v_bc, __pyx_v_massc); - /* "src/_ccomp.pyx":68 - * energy_arr.data, cut) + /* "src/_ccomp.pyx":91 + * energy_arr.data, cut, ac, bc, massc) * * for i in range(0, len_particles): # <<<<<<<<<<<<<< * particles['xacceleration'][i] = xacc[i] @@ -2604,7 +2694,7 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) { __pyx_v_i = __pyx_t_16; - /* "src/_ccomp.pyx":69 + /* "src/_ccomp.pyx":92 * * for i in range(0, len_particles): * particles['xacceleration'][i] = xacc[i] # <<<<<<<<<<<<<< @@ -2619,17 +2709,17 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_xacc.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 69, __pyx_L1_error) + __PYX_ERR(0, 92, __pyx_L1_error) } - __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xacc.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_xacc.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xacc.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_xacc.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xacceleration); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 69, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xacceleration); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 69, __pyx_L1_error) + if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":70 + /* "src/_ccomp.pyx":93 * for i in range(0, len_particles): * particles['xacceleration'][i] = xacc[i] * particles['yacceleration'][i] = yacc[i] # <<<<<<<<<<<<<< @@ -2644,26 +2734,26 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_yacc.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 70, __pyx_L1_error) + __PYX_ERR(0, 93, __pyx_L1_error) } - __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yacc.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_yacc.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 70, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yacc.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_yacc.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yacceleration); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 70, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yacceleration); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 70, __pyx_L1_error) + if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - /* "src/_ccomp.pyx":73 + /* "src/_ccomp.pyx":96 * * * return particles, distances_arr, force_arr, energy_arr # <<<<<<<<<<<<<< * - * def compute_energy(particles, box_length, cut_off): + * def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_particles); __Pyx_GIVEREF(__pyx_v_particles); @@ -2681,12 +2771,12 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p __pyx_t_2 = 0; goto __pyx_L0; - /* "src/_ccomp.pyx":19 + /* "src/_ccomp.pyx":27 * ctypedef np.float64_t DTYPE_t * - * def compute_forces(particles, box_length, cut_off): # <<<<<<<<<<<<<< - * """Calculates the forces and therefore the accelerations on each of the particles in the simulation. This uses a - * 12-6 Lennard-Jones potential model for Argon with values: + * def compute_forces(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, # <<<<<<<<<<<<<< + * mass=39.948): + * """Calculates the forces and therefore the accelerations on each of the */ /* function exit code */ @@ -2733,32 +2823,40 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p return __pyx_r; } -/* "src/_ccomp.pyx":75 +/* "src/_ccomp.pyx":98 * return particles, distances_arr, force_arr, energy_arr * - * def compute_energy(particles, box_length, cut_off): # <<<<<<<<<<<<<< + * def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): # <<<<<<<<<<<<<< * """Calculates the total energy of the simulation. This uses a * 12-6 Lennard-Jones potential model for Argon with values: */ /* Python wrapper */ static PyObject *__pyx_pw_4pylj_4comp_3compute_energy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_4pylj_4comp_2compute_energy[] = "Calculates the total energy of the simulation. This uses a\n 12-6 Lennard-Jones potential model for Argon with values:\n\n - A = 1.363e-134 J m :math:`^{12}`\n - B = 9.273e-78 J m :math:`^6`\n\n Parameters\n ----------\n particles: util.particle_dt, array_like\n Information about the particles.\n box_length: float\n Length of a single dimension of the simulation square, in Angstrom.\n cut_off: float\n The distance greater than which the energies between particles is taken as zero.\n\n Returns\n -------\n util.particle_dt, array_like\n Information about particles, with updated accelerations and forces.\n float, array_like\n Current distances between pairs of particles in the simulation.\n float, array_like\n Current energies between pairs of particles in the simulation.\n "; +static char __pyx_doc_4pylj_4comp_2compute_energy[] = "Calculates the total energy of the simulation. This uses a\n 12-6 Lennard-Jones potential model for Argon with values:\n\n - A = 1.363e-134 J m :math:`^{12}`\n - B = 9.273e-78 J m :math:`^6`\n\n Parameters\n ----------\n particles: util.particle_dt, array_like\n Information about the particles.\n box_length: float\n Length of a single dimension of the simulation square, in Angstrom.\n cut_off: float\n The distance greater than which the energies between particles is\n taken as zero.\n a: float (optional)\n The A component of the 12-6 potential model (units of\n Jm:math:`^{-12}`).\n b: float (optional)\n The B component of the 12-6 potential model (units of Jm:math:`^{-6}`).\n\n Returns\n -------\n util.particle_dt, array_like\n Information about particles, with updated accelerations and forces.\n float, array_like\n Current distances between pairs of particles in the simulation.\n float, array_like\n Current energies between pairs of particles in the simulation.\n "; static PyMethodDef __pyx_mdef_4pylj_4comp_3compute_energy = {"compute_energy", (PyCFunction)__pyx_pw_4pylj_4comp_3compute_energy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4pylj_4comp_2compute_energy}; static PyObject *__pyx_pw_4pylj_4comp_3compute_energy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_particles = 0; PyObject *__pyx_v_box_length = 0; PyObject *__pyx_v_cut_off = 0; + PyObject *__pyx_v_a = 0; + PyObject *__pyx_v_b = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("compute_energy (wrapper)", 0); { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_particles,&__pyx_n_s_box_length,&__pyx_n_s_cut_off,0}; - PyObject* values[3] = {0,0,0}; + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_particles,&__pyx_n_s_box_length,&__pyx_n_s_cut_off,&__pyx_n_s_a,&__pyx_n_s_b,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[3] = ((PyObject *)__pyx_float_1_363eneg_134); + values[4] = ((PyObject *)__pyx_float_9_273eneg_78); 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); @@ -2777,45 +2875,65 @@ static PyObject *__pyx_pw_4pylj_4comp_3compute_energy(PyObject *__pyx_self, PyOb case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_box_length)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("compute_energy", 1, 3, 3, 1); __PYX_ERR(0, 75, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("compute_energy", 0, 3, 5, 1); __PYX_ERR(0, 98, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cut_off)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("compute_energy", 1, 3, 3, 2); __PYX_ERR(0, 75, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("compute_energy", 0, 3, 5, 2); __PYX_ERR(0, 98, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a); + 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_b); + if (value) { values[4] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "compute_energy") < 0)) __PYX_ERR(0, 75, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "compute_energy") < 0)) __PYX_ERR(0, 98, __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); + 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_particles = values[0]; __pyx_v_box_length = values[1]; __pyx_v_cut_off = values[2]; + __pyx_v_a = values[3]; + __pyx_v_b = values[4]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("compute_energy", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 75, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("compute_energy", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 98, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pylj.comp.compute_energy", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_4pylj_4comp_2compute_energy(__pyx_self, __pyx_v_particles, __pyx_v_box_length, __pyx_v_cut_off); + __pyx_r = __pyx_pf_4pylj_4comp_2compute_energy(__pyx_self, __pyx_v_particles, __pyx_v_box_length, __pyx_v_cut_off, __pyx_v_a, __pyx_v_b); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_cut_off) { +static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_a, PyObject *__pyx_v_b) { int __pyx_v_len_particles; PyObject *__pyx_v_pairs = NULL; double __pyx_v_box_l; @@ -2824,6 +2942,8 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ PyArrayObject *__pyx_v_distances_arr = 0; PyArrayObject *__pyx_v_energy_arr = 0; double __pyx_v_cut; + double __pyx_v_ac; + double __pyx_v_bc; long __pyx_v_i; __Pyx_LocalBuf_ND __pyx_pybuffernd_distances_arr; __Pyx_Buffer __pyx_pybuffer_distances_arr; @@ -2870,57 +2990,57 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_pybuffernd_energy_arr.data = NULL; __pyx_pybuffernd_energy_arr.rcbuffer = &__pyx_pybuffer_energy_arr; - /* "src/_ccomp.pyx":100 + /* "src/_ccomp.pyx":129 * Current energies between pairs of particles in the simulation. * """ * cdef int len_particles = particles['xposition'].size # <<<<<<<<<<<<<< * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length */ - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 100, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 100, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 100, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 129, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_len_particles = __pyx_t_3; - /* "src/_ccomp.pyx":101 + /* "src/_ccomp.pyx":130 * """ * cdef int len_particles = particles['xposition'].size * pairs = int((len_particles - 1) * len_particles / 2) # <<<<<<<<<<<<<< * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) */ - __pyx_t_2 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 101, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_pairs = __pyx_t_2; __pyx_t_2 = 0; - /* "src/_ccomp.pyx":102 + /* "src/_ccomp.pyx":131 * cdef int len_particles = particles['xposition'].size * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 102, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 131, __pyx_L1_error) __pyx_v_box_l = __pyx_t_4; - /* "src/_ccomp.pyx":103 + /* "src/_ccomp.pyx":132 * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 103, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 103, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 103, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { @@ -2933,14 +3053,14 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } } if (!__pyx_t_6) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 103, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 132, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 103, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 132, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -2949,32 +3069,32 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 103, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 132, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 103, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 103, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 103, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 132, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xpos.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_xpos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 103, __pyx_L1_error) + __PYX_ERR(0, 132, __pyx_L1_error) } else {__pyx_pybuffernd_xpos.diminfo[0].strides = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xpos.diminfo[0].shape = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.shape[0]; } } @@ -2982,19 +3102,19 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_v_xpos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":104 + /* "src/_ccomp.pyx":133 * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) */ - __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 104, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 104, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 104, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { @@ -3007,14 +3127,14 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } } if (!__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 104, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 104, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -3023,32 +3143,32 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 104, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 104, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 104, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 104, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 133, __pyx_L1_error) __pyx_t_9 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ypos.rcbuffer->pybuffer, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_ypos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 104, __pyx_L1_error) + __PYX_ERR(0, 133, __pyx_L1_error) } else {__pyx_pybuffernd_ypos.diminfo[0].strides = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ypos.diminfo[0].shape = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.shape[0]; } } @@ -3056,16 +3176,16 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_v_ypos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":105 + /* "src/_ccomp.pyx":134 * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) * cdef double cut = cut_off */ - __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 105, __pyx_L1_error) + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 105, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; @@ -3079,13 +3199,13 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } } if (!__pyx_t_7) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 105, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 105, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -3093,31 +3213,31 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 105, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 105, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = NULL; __Pyx_INCREF(__pyx_v_pairs); __Pyx_GIVEREF(__pyx_v_pairs); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_pairs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 105, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 105, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 134, __pyx_L1_error) __pyx_t_10 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_distances_arr.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_distances_arr = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 105, __pyx_L1_error) + __PYX_ERR(0, 134, __pyx_L1_error) } else {__pyx_pybuffernd_distances_arr.diminfo[0].strides = __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_distances_arr.diminfo[0].shape = __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.shape[0]; } } @@ -3125,16 +3245,16 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_v_distances_arr = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":106 + /* "src/_ccomp.pyx":135 * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) # <<<<<<<<<<<<<< * cdef double cut = cut_off - * + * cdef double ac = a */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 106, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 106, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -3148,13 +3268,13 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } } if (!__pyx_t_6) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 106, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 106, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 135, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -3162,31 +3282,31 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 106, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 135, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 106, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_INCREF(__pyx_v_pairs); __Pyx_GIVEREF(__pyx_v_pairs); PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_pairs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 106, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 106, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 135, __pyx_L1_error) __pyx_t_11 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_energy_arr.rcbuffer->pybuffer, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_energy_arr = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 106, __pyx_L1_error) + __PYX_ERR(0, 135, __pyx_L1_error) } else {__pyx_pybuffernd_energy_arr.diminfo[0].strides = __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_energy_arr.diminfo[0].shape = __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.shape[0]; } } @@ -3194,17 +3314,37 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_v_energy_arr = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":107 + /* "src/_ccomp.pyx":136 * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) * cdef double cut = cut_off # <<<<<<<<<<<<<< + * cdef double ac = a + * cdef double bc = b + */ + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 136, __pyx_L1_error) + __pyx_v_cut = __pyx_t_4; + + /* "src/_ccomp.pyx":137 + * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) + * cdef double cut = cut_off + * cdef double ac = a # <<<<<<<<<<<<<< + * cdef double bc = b + * + */ + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 137, __pyx_L1_error) + __pyx_v_ac = __pyx_t_4; + + /* "src/_ccomp.pyx":138 + * cdef double cut = cut_off + * cdef double ac = a + * cdef double bc = b # <<<<<<<<<<<<<< * * */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 107, __pyx_L1_error) - __pyx_v_cut = __pyx_t_4; + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_b); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 138, __pyx_L1_error) + __pyx_v_bc = __pyx_t_4; - /* "src/_ccomp.pyx":110 + /* "src/_ccomp.pyx":141 * * * for i in range(0, len_particles): # <<<<<<<<<<<<<< @@ -3216,19 +3356,19 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) { __pyx_v_i = __pyx_t_13; - /* "src/_ccomp.pyx":111 + /* "src/_ccomp.pyx":142 * * for i in range(0, len_particles): * xpos[i] = particles['xposition'][i] # <<<<<<<<<<<<<< * ypos[i] = particles['yposition'][i] * */ - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 111, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 111, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_14 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 111, __pyx_L1_error) + __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_14 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_15 = __pyx_v_i; __pyx_t_16 = -1; @@ -3238,23 +3378,23 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_xpos.diminfo[0].shape)) __pyx_t_16 = 0; if (unlikely(__pyx_t_16 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_16); - __PYX_ERR(0, 111, __pyx_L1_error) + __PYX_ERR(0, 142, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_xpos.diminfo[0].strides) = __pyx_t_14; - /* "src/_ccomp.pyx":112 + /* "src/_ccomp.pyx":143 * for i in range(0, len_particles): * xpos[i] = particles['xposition'][i] * ypos[i] = particles['yposition'][i] # <<<<<<<<<<<<<< * * */ - __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 112, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 112, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_14 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 112, __pyx_L1_error) + __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_14 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_17 = __pyx_v_i; __pyx_t_16 = -1; @@ -3264,29 +3404,29 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_ypos.diminfo[0].shape)) __pyx_t_16 = 0; if (unlikely(__pyx_t_16 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_16); - __PYX_ERR(0, 112, __pyx_L1_error) + __PYX_ERR(0, 143, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_ypos.diminfo[0].strides) = __pyx_t_14; } - /* "src/_ccomp.pyx":115 - * + /* "src/_ccomp.pyx":146 * - * compute_energies(len_particles, xpos.data, ypos.data, # <<<<<<<<<<<<<< - * distances_arr.data, box_l, energy_arr.data, cut) * + * compute_energies(len_particles, xpos.data, # <<<<<<<<<<<<<< + * ypos.data, distances_arr.data, + * box_l, energy_arr.data, cut, ac, bc) */ - compute_energies(__pyx_v_len_particles, ((double const *)__pyx_v_xpos->data), ((double const *)__pyx_v_ypos->data), ((double *)__pyx_v_distances_arr->data), __pyx_v_box_l, ((double *)__pyx_v_energy_arr->data), __pyx_v_cut); + compute_energies(__pyx_v_len_particles, ((double const *)__pyx_v_xpos->data), ((double const *)__pyx_v_ypos->data), ((double *)__pyx_v_distances_arr->data), __pyx_v_box_l, ((double *)__pyx_v_energy_arr->data), __pyx_v_cut, __pyx_v_ac, __pyx_v_bc); - /* "src/_ccomp.pyx":118 - * distances_arr.data, box_l, energy_arr.data, cut) + /* "src/_ccomp.pyx":150 + * box_l, energy_arr.data, cut, ac, bc) * * return distances_arr, energy_arr # <<<<<<<<<<<<<< * - * def calculate_pressure(particles, box_length, temperature, cut_off): + * def calculate_pressure(particles, box_length, temperature, cut_off, */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 118, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_distances_arr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_distances_arr)); @@ -3298,10 +3438,10 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_t_2 = 0; goto __pyx_L0; - /* "src/_ccomp.pyx":75 + /* "src/_ccomp.pyx":98 * return particles, distances_arr, force_arr, energy_arr * - * def compute_energy(particles, box_length, cut_off): # <<<<<<<<<<<<<< + * def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): # <<<<<<<<<<<<<< * """Calculates the total energy of the simulation. This uses a * 12-6 Lennard-Jones potential model for Argon with values: */ @@ -3341,33 +3481,41 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ return __pyx_r; } -/* "src/_ccomp.pyx":120 +/* "src/_ccomp.pyx":152 * return distances_arr, energy_arr * - * def calculate_pressure(particles, box_length, temperature, cut_off): # <<<<<<<<<<<<<< - * r"""Calculates the instantaneous pressure of the simulation cell, found with the following relationship: - * + * def calculate_pressure(particles, box_length, temperature, cut_off, # <<<<<<<<<<<<<< + * a=1.363e-134, b=9.273e-78): + * r"""Calculates the instantaneous pressure of the simulation cell, found */ /* Python wrapper */ static PyObject *__pyx_pw_4pylj_4comp_5calculate_pressure(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_4pylj_4comp_4calculate_pressure[] = "Calculates the instantaneous pressure of the simulation cell, found with the following relationship:\n\n .. math::\n p = \\langle \\rho k_b T \\rangle + \\bigg\\langle \\frac{1}{3V}\\sum_{i}\\sum_{j 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a); + if (value) { values[4] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b); + if (value) { values[5] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculate_pressure") < 0)) __PYX_ERR(0, 120, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculate_pressure") < 0)) __PYX_ERR(0, 152, __pyx_L3_error) } - } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { - goto __pyx_L5_argtuple_error; } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_particles = values[0]; __pyx_v_box_length = values[1]; __pyx_v_temperature = values[2]; __pyx_v_cut_off = values[3]; + __pyx_v_a = values[4]; + __pyx_v_b = values[5]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("calculate_pressure", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 120, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("calculate_pressure", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 152, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pylj.comp.calculate_pressure", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_4pylj_4comp_4calculate_pressure(__pyx_self, __pyx_v_particles, __pyx_v_box_length, __pyx_v_temperature, __pyx_v_cut_off); + __pyx_r = __pyx_pf_4pylj_4comp_4calculate_pressure(__pyx_self, __pyx_v_particles, __pyx_v_box_length, __pyx_v_temperature, __pyx_v_cut_off, __pyx_v_a, __pyx_v_b); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_temperature, PyObject *__pyx_v_cut_off) { +static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_temperature, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_a, PyObject *__pyx_v_b) { int __pyx_v_number_of_particles; PyArrayObject *__pyx_v_xpos = 0; PyArrayObject *__pyx_v_ypos = 0; @@ -3442,6 +3610,8 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject double __pyx_v_pressure; CYTHON_UNUSED double __pyx_v_temp; double __pyx_v_cut; + double __pyx_v_ac; + double __pyx_v_bc; long __pyx_v_i; __Pyx_LocalBuf_ND __pyx_pybuffernd_xpos; __Pyx_Buffer __pyx_pybuffer_xpos; @@ -3474,35 +3644,35 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject __pyx_pybuffernd_ypos.data = NULL; __pyx_pybuffernd_ypos.rcbuffer = &__pyx_pybuffer_ypos; - /* "src/_ccomp.pyx":142 + /* "src/_ccomp.pyx":185 * Instantaneous pressure of the simulation. * """ * cdef int number_of_particles = particles['xposition'].size # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(number_of_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(number_of_particles) */ - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 142, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 142, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 142, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_number_of_particles = __pyx_t_3; - /* "src/_ccomp.pyx":143 + /* "src/_ccomp.pyx":186 * """ * cdef int number_of_particles = particles['xposition'].size * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(number_of_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(number_of_particles) * cdef double box_l = box_length */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 143, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 143, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_number_of_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 143, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_number_of_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -3515,14 +3685,14 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject } } if (!__pyx_t_5) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -3531,32 +3701,32 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 143, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 143, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 186, __pyx_L1_error) __pyx_t_7 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xpos.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_xpos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 143, __pyx_L1_error) + __PYX_ERR(0, 186, __pyx_L1_error) } else {__pyx_pybuffernd_xpos.diminfo[0].strides = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xpos.diminfo[0].shape = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.shape[0]; } } @@ -3564,19 +3734,19 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject __pyx_v_xpos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":144 + /* "src/_ccomp.pyx":187 * cdef int number_of_particles = particles['xposition'].size * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(number_of_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(number_of_particles) # <<<<<<<<<<<<<< * cdef double box_l = box_length * cdef double pressure = 0. */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 144, __pyx_L1_error) + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 144, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_number_of_particles); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 144, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_number_of_particles); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { @@ -3589,14 +3759,14 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject } } if (!__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 144, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 144, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -3605,32 +3775,32 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 144, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 144, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 144, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 144, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 187, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ypos.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_ypos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 144, __pyx_L1_error) + __PYX_ERR(0, 187, __pyx_L1_error) } else {__pyx_pybuffernd_ypos.diminfo[0].strides = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ypos.diminfo[0].shape = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.shape[0]; } } @@ -3638,17 +3808,17 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject __pyx_v_ypos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":145 + /* "src/_ccomp.pyx":188 * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(number_of_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(number_of_particles) * cdef double box_l = box_length # <<<<<<<<<<<<<< * cdef double pressure = 0. * cdef double temp = temperature */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 145, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 188, __pyx_L1_error) __pyx_v_box_l = __pyx_t_9; - /* "src/_ccomp.pyx":146 + /* "src/_ccomp.pyx":189 * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(number_of_particles) * cdef double box_l = box_length * cdef double pressure = 0. # <<<<<<<<<<<<<< @@ -3657,27 +3827,47 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject */ __pyx_v_pressure = 0.; - /* "src/_ccomp.pyx":147 + /* "src/_ccomp.pyx":190 * cdef double box_l = box_length * cdef double pressure = 0. * cdef double temp = temperature # <<<<<<<<<<<<<< * cdef double cut = cut_off - * + * cdef double ac = a */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_temperature); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 147, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_temperature); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 190, __pyx_L1_error) __pyx_v_temp = __pyx_t_9; - /* "src/_ccomp.pyx":148 + /* "src/_ccomp.pyx":191 * cdef double pressure = 0. * cdef double temp = temperature * cdef double cut = cut_off # <<<<<<<<<<<<<< + * cdef double ac = a + * cdef double bc = b + */ + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_v_cut = __pyx_t_9; + + /* "src/_ccomp.pyx":192 + * cdef double temp = temperature + * cdef double cut = cut_off + * cdef double ac = a # <<<<<<<<<<<<<< + * cdef double bc = b + * + */ + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 192, __pyx_L1_error) + __pyx_v_ac = __pyx_t_9; + + /* "src/_ccomp.pyx":193 + * cdef double cut = cut_off + * cdef double ac = a + * cdef double bc = b # <<<<<<<<<<<<<< * * */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 148, __pyx_L1_error) - __pyx_v_cut = __pyx_t_9; + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_b); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 193, __pyx_L1_error) + __pyx_v_bc = __pyx_t_9; - /* "src/_ccomp.pyx":151 + /* "src/_ccomp.pyx":196 * * * for i in range(0, number_of_particles): # <<<<<<<<<<<<<< @@ -3689,19 +3879,19 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) { __pyx_v_i = __pyx_t_11; - /* "src/_ccomp.pyx":152 + /* "src/_ccomp.pyx":197 * * for i in range(0, number_of_particles): * xpos[i] = particles['xposition'][i] # <<<<<<<<<<<<<< * ypos[i] = particles['yposition'][i] * */ - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 152, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 152, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 152, __pyx_L1_error) + __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_13 = __pyx_v_i; __pyx_t_14 = -1; @@ -3711,23 +3901,23 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject } else if (unlikely(__pyx_t_13 >= __pyx_pybuffernd_xpos.diminfo[0].shape)) __pyx_t_14 = 0; if (unlikely(__pyx_t_14 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 152, __pyx_L1_error) + __PYX_ERR(0, 197, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_xpos.diminfo[0].strides) = __pyx_t_12; - /* "src/_ccomp.pyx":153 + /* "src/_ccomp.pyx":198 * for i in range(0, number_of_particles): * xpos[i] = particles['xposition'][i] * ypos[i] = particles['yposition'][i] # <<<<<<<<<<<<<< * - * pressure = compute_pressure(number_of_particles, xpos.data, ypos.data, box_l, + * pressure = compute_pressure(number_of_particles, xpos.data, */ - __pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 153, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 153, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 153, __pyx_L1_error) + __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 198, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_15 = __pyx_v_i; __pyx_t_14 = -1; @@ -3737,49 +3927,49 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_ypos.diminfo[0].shape)) __pyx_t_14 = 0; if (unlikely(__pyx_t_14 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 153, __pyx_L1_error) + __PYX_ERR(0, 198, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_ypos.diminfo[0].strides) = __pyx_t_12; } - /* "src/_ccomp.pyx":156 + /* "src/_ccomp.pyx":201 * - * pressure = compute_pressure(number_of_particles, xpos.data, ypos.data, box_l, - * temperature, cut) # <<<<<<<<<<<<<< + * pressure = compute_pressure(number_of_particles, xpos.data, + * ypos.data, box_l, temperature, # <<<<<<<<<<<<<< + * cut, ac, bc) * - * return pressure */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_temperature); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 156, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_temperature); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 201, __pyx_L1_error) - /* "src/_ccomp.pyx":155 + /* "src/_ccomp.pyx":200 * ypos[i] = particles['yposition'][i] * - * pressure = compute_pressure(number_of_particles, xpos.data, ypos.data, box_l, # <<<<<<<<<<<<<< - * temperature, cut) - * + * pressure = compute_pressure(number_of_particles, xpos.data, # <<<<<<<<<<<<<< + * ypos.data, box_l, temperature, + * cut, ac, bc) */ - __pyx_v_pressure = compute_pressure(__pyx_v_number_of_particles, ((double const *)__pyx_v_xpos->data), ((double const *)__pyx_v_ypos->data), __pyx_v_box_l, __pyx_t_9, __pyx_v_cut); + __pyx_v_pressure = compute_pressure(__pyx_v_number_of_particles, ((double const *)__pyx_v_xpos->data), ((double const *)__pyx_v_ypos->data), __pyx_v_box_l, __pyx_t_9, __pyx_v_cut, __pyx_v_ac, __pyx_v_bc); - /* "src/_ccomp.pyx":158 - * temperature, cut) + /* "src/_ccomp.pyx":204 + * cut, ac, bc) * * return pressure # <<<<<<<<<<<<<< * * def heat_bath(particles, temperature_sample, bath_temp): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_pressure); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 158, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_pressure); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "src/_ccomp.pyx":120 + /* "src/_ccomp.pyx":152 * return distances_arr, energy_arr * - * def calculate_pressure(particles, box_length, temperature, cut_off): # <<<<<<<<<<<<<< - * r"""Calculates the instantaneous pressure of the simulation cell, found with the following relationship: - * + * def calculate_pressure(particles, box_length, temperature, cut_off, # <<<<<<<<<<<<<< + * a=1.363e-134, b=9.273e-78): + * r"""Calculates the instantaneous pressure of the simulation cell, found */ /* function exit code */ @@ -3810,17 +4000,17 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject return __pyx_r; } -/* "src/_ccomp.pyx":160 +/* "src/_ccomp.pyx":206 * return pressure * * def heat_bath(particles, temperature_sample, bath_temp): # <<<<<<<<<<<<<< - * r"""Rescales the velocities of the particles in the system to control the temperature of the simulation. Thereby - * allowing for an NVT ensemble. The velocities are rescaled according the following relationship, + * r"""Rescales the velocities of the particles in the system to control the + * temperature of the simulation. Thereby allowing for an NVT ensemble. The */ /* Python wrapper */ static PyObject *__pyx_pw_4pylj_4comp_7heat_bath(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_4pylj_4comp_6heat_bath[] = "Rescales the velocities of the particles in the system to control the temperature of the simulation. Thereby\n allowing for an NVT ensemble. The velocities are rescaled according the following relationship,\n\n .. math::\n v_{\\text{new}} = v_{\\text{old}} \\times \\sqrt{\\frac{T_{\\text{desired}}}{\\bar{T}}}\n\n Parameters\n ----------\n particles: util.particle_dt, array_like\n Information about the particles.\n temperature_sample: float, array_like\n The temperature at each timestep in the simulation.\n bath_temp: float\n The desired temperature of the simulation.\n\n Returns\n -------\n util.particle_dt, array_like\n Information about the particles with new, rescaled velocities.\n "; +static char __pyx_doc_4pylj_4comp_6heat_bath[] = "Rescales the velocities of the particles in the system to control the\n temperature of the simulation. Thereby allowing for an NVT ensemble. The\n velocities are rescaled according the following relationship,\n\n .. math::\n v_{\\text{new}} = v_{\\text{old}} \\times\n \\sqrt{\\frac{T_{\\text{desired}}}{\\bar{T}}}\n\n Parameters\n ----------\n particles: util.particle_dt, array_like\n Information about the particles.\n temperature_sample: float, array_like\n The temperature at each timestep in the simulation.\n bath_temp: float\n The desired temperature of the simulation.\n\n Returns\n -------\n util.particle_dt, array_like\n Information about the particles with new, rescaled velocities.\n "; static PyMethodDef __pyx_mdef_4pylj_4comp_7heat_bath = {"heat_bath", (PyCFunction)__pyx_pw_4pylj_4comp_7heat_bath, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4pylj_4comp_6heat_bath}; static PyObject *__pyx_pw_4pylj_4comp_7heat_bath(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_particles = 0; @@ -3854,17 +4044,17 @@ static PyObject *__pyx_pw_4pylj_4comp_7heat_bath(PyObject *__pyx_self, PyObject case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_temperature_sample)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, 1); __PYX_ERR(0, 160, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, 1); __PYX_ERR(0, 206, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bath_temp)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, 2); __PYX_ERR(0, 160, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, 2); __PYX_ERR(0, 206, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "heat_bath") < 0)) __PYX_ERR(0, 160, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "heat_bath") < 0)) __PYX_ERR(0, 206, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; @@ -3879,7 +4069,7 @@ static PyObject *__pyx_pw_4pylj_4comp_7heat_bath(PyObject *__pyx_self, PyObject } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 160, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 206, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pylj.comp.heat_bath", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -3932,35 +4122,35 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s __pyx_pybuffernd_yvel.data = NULL; __pyx_pybuffernd_yvel.rcbuffer = &__pyx_pybuffer_yvel; - /* "src/_ccomp.pyx":181 + /* "src/_ccomp.pyx":229 * Information about the particles with new, rescaled velocities. * """ * cdef int len_particles = particles['xposition'].size # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xvel = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] yvel = np.zeros(len_particles) */ - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 181, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 181, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 181, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_len_particles = __pyx_t_3; - /* "src/_ccomp.pyx":182 + /* "src/_ccomp.pyx":230 * """ * cdef int len_particles = particles['xposition'].size * cdef np.ndarray[DTYPE_t, ndim=1] xvel = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] yvel = np.zeros(len_particles) * cdef double average_temp = np.average(temperature_sample) */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 182, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 182, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 182, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -3973,14 +4163,14 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s } } if (!__pyx_t_5) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 182, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 230, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 182, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 230, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -3989,32 +4179,32 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 182, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 230, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 182, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 182, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 182, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 230, __pyx_L1_error) __pyx_t_7 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xvel.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_xvel = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xvel.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 182, __pyx_L1_error) + __PYX_ERR(0, 230, __pyx_L1_error) } else {__pyx_pybuffernd_xvel.diminfo[0].strides = __pyx_pybuffernd_xvel.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xvel.diminfo[0].shape = __pyx_pybuffernd_xvel.rcbuffer->pybuffer.shape[0]; } } @@ -4022,19 +4212,19 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_xvel = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":183 + /* "src/_ccomp.pyx":231 * cdef int len_particles = particles['xposition'].size * cdef np.ndarray[DTYPE_t, ndim=1] xvel = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] yvel = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef double average_temp = np.average(temperature_sample) * cdef double temperature = bath_temp */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 183, __pyx_L1_error) + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 183, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 183, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { @@ -4047,14 +4237,14 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s } } if (!__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 183, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 183, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -4063,32 +4253,32 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 183, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 183, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 183, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 183, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 231, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_yvel.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_yvel = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_yvel.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 183, __pyx_L1_error) + __PYX_ERR(0, 231, __pyx_L1_error) } else {__pyx_pybuffernd_yvel.diminfo[0].strides = __pyx_pybuffernd_yvel.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_yvel.diminfo[0].shape = __pyx_pybuffernd_yvel.rcbuffer->pybuffer.shape[0]; } } @@ -4096,16 +4286,16 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_yvel = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":184 + /* "src/_ccomp.pyx":232 * cdef np.ndarray[DTYPE_t, ndim=1] xvel = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] yvel = np.zeros(len_particles) * cdef double average_temp = np.average(temperature_sample) # <<<<<<<<<<<<<< * cdef double temperature = bath_temp * */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 184, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_average); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 184, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_average); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -4119,13 +4309,13 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s } } if (!__pyx_t_6) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_temperature_sample); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 184, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_temperature_sample); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_temperature_sample}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 184, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -4133,39 +4323,39 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_temperature_sample}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 184, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 184, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_INCREF(__pyx_v_temperature_sample); __Pyx_GIVEREF(__pyx_v_temperature_sample); PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_temperature_sample); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 184, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 184, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_average_temp = __pyx_t_9; - /* "src/_ccomp.pyx":185 + /* "src/_ccomp.pyx":233 * cdef np.ndarray[DTYPE_t, ndim=1] yvel = np.zeros(len_particles) * cdef double average_temp = np.average(temperature_sample) * cdef double temperature = bath_temp # <<<<<<<<<<<<<< * * for i in range(0, len_particles): */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_bath_temp); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 185, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_bath_temp); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 233, __pyx_L1_error) __pyx_v_temperature = __pyx_t_9; - /* "src/_ccomp.pyx":187 + /* "src/_ccomp.pyx":235 * cdef double temperature = bath_temp * * for i in range(0, len_particles): # <<<<<<<<<<<<<< @@ -4177,19 +4367,19 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) { __pyx_v_i = __pyx_t_11; - /* "src/_ccomp.pyx":188 + /* "src/_ccomp.pyx":236 * * for i in range(0, len_particles): * xvel[i] = particles['xvelocity'][i] # <<<<<<<<<<<<<< * yvel[i] = particles['yvelocity'][i] * */ - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xvelocity); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 188, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xvelocity); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 188, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 188, __pyx_L1_error) + __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 236, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_13 = __pyx_v_i; __pyx_t_14 = -1; @@ -4199,23 +4389,23 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s } else if (unlikely(__pyx_t_13 >= __pyx_pybuffernd_xvel.diminfo[0].shape)) __pyx_t_14 = 0; if (unlikely(__pyx_t_14 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 188, __pyx_L1_error) + __PYX_ERR(0, 236, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xvel.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_xvel.diminfo[0].strides) = __pyx_t_12; - /* "src/_ccomp.pyx":189 + /* "src/_ccomp.pyx":237 * for i in range(0, len_particles): * xvel[i] = particles['xvelocity'][i] * yvel[i] = particles['yvelocity'][i] # <<<<<<<<<<<<<< * - * scale_velocities(len_particles, xvel.data, yvel.data, average_temp, temperature) + * scale_velocities(len_particles, xvel.data, yvel.data, */ - __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 189, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 189, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 189, __pyx_L1_error) + __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_15 = __pyx_v_i; __pyx_t_14 = -1; @@ -4225,22 +4415,22 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_yvel.diminfo[0].shape)) __pyx_t_14 = 0; if (unlikely(__pyx_t_14 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 189, __pyx_L1_error) + __PYX_ERR(0, 237, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yvel.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_yvel.diminfo[0].strides) = __pyx_t_12; } - /* "src/_ccomp.pyx":191 + /* "src/_ccomp.pyx":239 * yvel[i] = particles['yvelocity'][i] * - * scale_velocities(len_particles, xvel.data, yvel.data, average_temp, temperature) # <<<<<<<<<<<<<< + * scale_velocities(len_particles, xvel.data, yvel.data, # <<<<<<<<<<<<<< + * average_temp, temperature) * - * for i in range(0, len_particles): */ scale_velocities(__pyx_v_len_particles, ((double *)__pyx_v_xvel->data), ((double *)__pyx_v_yvel->data), __pyx_v_average_temp, __pyx_v_temperature); - /* "src/_ccomp.pyx":193 - * scale_velocities(len_particles, xvel.data, yvel.data, average_temp, temperature) + /* "src/_ccomp.pyx":242 + * average_temp, temperature) * * for i in range(0, len_particles): # <<<<<<<<<<<<<< * particles['xvelocity'][i] = xvel[i] @@ -4251,7 +4441,7 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) { __pyx_v_i = __pyx_t_11; - /* "src/_ccomp.pyx":194 + /* "src/_ccomp.pyx":243 * * for i in range(0, len_particles): * particles['xvelocity'][i] = xvel[i] # <<<<<<<<<<<<<< @@ -4266,17 +4456,17 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_xvel.diminfo[0].shape)) __pyx_t_14 = 0; if (unlikely(__pyx_t_14 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 194, __pyx_L1_error) + __PYX_ERR(0, 243, __pyx_L1_error) } - __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xvel.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_xvel.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 194, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xvel.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_xvel.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 194, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 194, __pyx_L1_error) + if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":195 + /* "src/_ccomp.pyx":244 * for i in range(0, len_particles): * particles['xvelocity'][i] = xvel[i] * particles['yvelocity'][i] = yvel[i] # <<<<<<<<<<<<<< @@ -4291,18 +4481,18 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_yvel.diminfo[0].shape)) __pyx_t_14 = 0; if (unlikely(__pyx_t_14 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 195, __pyx_L1_error) + __PYX_ERR(0, 244, __pyx_L1_error) } - __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yvel.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_yvel.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 195, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yvel.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_yvel.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 195, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 195, __pyx_L1_error) + if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 244, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - /* "src/_ccomp.pyx":197 + /* "src/_ccomp.pyx":246 * particles['yvelocity'][i] = yvel[i] * * return particles # <<<<<<<<<<<<<< @@ -4312,12 +4502,12 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s __pyx_r = __pyx_v_particles; goto __pyx_L0; - /* "src/_ccomp.pyx":160 + /* "src/_ccomp.pyx":206 * return pressure * * def heat_bath(particles, temperature_sample, bath_temp): # <<<<<<<<<<<<<< - * r"""Rescales the velocities of the particles in the system to control the temperature of the simulation. Thereby - * allowing for an NVT ensemble. The velocities are rescaled according the following relationship, + * r"""Rescales the velocities of the particles in the system to control the + * temperature of the simulation. Thereby allowing for an NVT ensemble. The */ /* function exit code */ @@ -4348,7 +4538,7 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":215 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":215 * # experimental exception made for __getbuffer__ and __releasebuffer__ * # -- the details of this may change. * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< @@ -4396,7 +4586,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(__pyx_v_info->obj); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":222 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":222 * * cdef int i, ndim * cdef int endian_detector = 1 # <<<<<<<<<<<<<< @@ -4405,7 +4595,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_endian_detector = 1; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":223 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":223 * cdef int i, ndim * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< @@ -4414,7 +4604,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":225 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":225 * cdef bint little_endian = ((&endian_detector)[0] != 0) * * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< @@ -4423,7 +4613,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":227 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":227 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -4437,7 +4627,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P goto __pyx_L4_bool_binop_done; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":228 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":228 * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< @@ -4448,7 +4638,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":227 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":227 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -4457,7 +4647,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ if (unlikely(__pyx_t_1)) { - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":229 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":229 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< @@ -4470,7 +4660,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 229, __pyx_L1_error) - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":227 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":227 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -4479,7 +4669,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":231 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -4493,7 +4683,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P goto __pyx_L7_bool_binop_done; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":232 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":232 * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< @@ -4504,7 +4694,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = __pyx_t_2; __pyx_L7_bool_binop_done:; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":231 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -4513,7 +4703,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ if (unlikely(__pyx_t_1)) { - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":233 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":233 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< @@ -4526,7 +4716,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 233, __pyx_L1_error) - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":231 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":231 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< @@ -4535,7 +4725,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":235 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":235 * raise ValueError(u"ndarray is not Fortran contiguous") * * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< @@ -4544,7 +4734,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":236 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":236 * * info.buf = PyArray_DATA(self) * info.ndim = ndim # <<<<<<<<<<<<<< @@ -4553,7 +4743,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->ndim = __pyx_v_ndim; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":237 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":237 * info.buf = PyArray_DATA(self) * info.ndim = ndim * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -4563,7 +4753,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":240 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":240 * # Allocate new buffer for strides and shape info. * # This is allocated as one block, strides first. * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) # <<<<<<<<<<<<<< @@ -4572,7 +4762,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->strides = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * 2) * ((size_t)__pyx_v_ndim)))); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":241 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":241 * # This is allocated as one block, strides first. * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim # <<<<<<<<<<<<<< @@ -4581,7 +4771,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":242 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":242 * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim * for i in range(ndim): # <<<<<<<<<<<<<< @@ -4593,7 +4783,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":243 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":243 * info.shape = info.strides + ndim * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] # <<<<<<<<<<<<<< @@ -4602,7 +4792,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(__pyx_v_self)[__pyx_v_i]); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":244 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":244 * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] * info.shape[i] = PyArray_DIMS(self)[i] # <<<<<<<<<<<<<< @@ -4612,7 +4802,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":237 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":237 * info.buf = PyArray_DATA(self) * info.ndim = ndim * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -4622,7 +4812,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P goto __pyx_L9; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":246 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":246 * info.shape[i] = PyArray_DIMS(self)[i] * else: * info.strides = PyArray_STRIDES(self) # <<<<<<<<<<<<<< @@ -4632,7 +4822,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P /*else*/ { __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":247 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":247 * else: * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) # <<<<<<<<<<<<<< @@ -4643,7 +4833,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P } __pyx_L9:; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":248 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":248 * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL # <<<<<<<<<<<<<< @@ -4652,7 +4842,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->suboffsets = NULL; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":249 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":249 * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) # <<<<<<<<<<<<<< @@ -4661,7 +4851,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":250 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":250 * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< @@ -4670,7 +4860,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":253 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":253 * * cdef int t * cdef char* f = NULL # <<<<<<<<<<<<<< @@ -4679,7 +4869,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_f = NULL; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":254 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":254 * cdef int t * cdef char* f = NULL * cdef dtype descr = self.descr # <<<<<<<<<<<<<< @@ -4691,7 +4881,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); __pyx_t_3 = 0; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":257 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":257 * cdef int offset * * info.obj = self # <<<<<<<<<<<<<< @@ -4704,7 +4894,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = ((PyObject *)__pyx_v_self); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":259 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":259 * info.obj = self * * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< @@ -4714,7 +4904,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = ((!(PyDataType_HASFIELDS(__pyx_v_descr) != 0)) != 0); if (__pyx_t_1) { - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":260 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":260 * * if not PyDataType_HASFIELDS(descr): * t = descr.type_num # <<<<<<<<<<<<<< @@ -4724,7 +4914,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_4 = __pyx_v_descr->type_num; __pyx_v_t = __pyx_t_4; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":261 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":261 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -4744,7 +4934,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P } __pyx_L15_next_or:; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":262 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":262 * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< @@ -4761,7 +4951,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_1 = __pyx_t_2; __pyx_L14_bool_binop_done:; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":261 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":261 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -4770,7 +4960,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ if (unlikely(__pyx_t_1)) { - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":263 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":263 * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< @@ -4783,7 +4973,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 263, __pyx_L1_error) - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":261 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":261 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -4792,7 +4982,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":264 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":264 * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" # <<<<<<<<<<<<<< @@ -4804,7 +4994,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"b"); break; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":265 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":265 * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" # <<<<<<<<<<<<<< @@ -4815,7 +5005,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"B"); break; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":266 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":266 * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" # <<<<<<<<<<<<<< @@ -4826,7 +5016,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"h"); break; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":267 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":267 * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" # <<<<<<<<<<<<<< @@ -4837,7 +5027,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"H"); break; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":268 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":268 * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" # <<<<<<<<<<<<<< @@ -4848,7 +5038,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"i"); break; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":269 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":269 * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" # <<<<<<<<<<<<<< @@ -4859,7 +5049,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"I"); break; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":270 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":270 * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" # <<<<<<<<<<<<<< @@ -4870,7 +5060,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"l"); break; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":271 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":271 * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" # <<<<<<<<<<<<<< @@ -4881,7 +5071,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"L"); break; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":272 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":272 * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" # <<<<<<<<<<<<<< @@ -4892,7 +5082,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"q"); break; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":273 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":273 * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" # <<<<<<<<<<<<<< @@ -4903,7 +5093,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Q"); break; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":274 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":274 * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" # <<<<<<<<<<<<<< @@ -4914,7 +5104,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"f"); break; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":275 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":275 * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" # <<<<<<<<<<<<<< @@ -4925,7 +5115,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"d"); break; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":276 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":276 * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" # <<<<<<<<<<<<<< @@ -4936,7 +5126,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"g"); break; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":277 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":277 * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" # <<<<<<<<<<<<<< @@ -4947,7 +5137,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zf"); break; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":278 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":278 * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" # <<<<<<<<<<<<<< @@ -4958,7 +5148,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zd"); break; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":279 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":279 * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" # <<<<<<<<<<<<<< @@ -4969,7 +5159,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_v_f = ((char *)"Zg"); break; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":280 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":280 * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" * elif t == NPY_OBJECT: f = "O" # <<<<<<<<<<<<<< @@ -4981,7 +5171,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P break; default: - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":282 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":282 * elif t == NPY_OBJECT: f = "O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< @@ -5002,7 +5192,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P break; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":283 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":283 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f # <<<<<<<<<<<<<< @@ -5011,7 +5201,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_info->format = __pyx_v_f; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":284 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":284 * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f * return # <<<<<<<<<<<<<< @@ -5021,7 +5211,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_r = 0; goto __pyx_L0; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":259 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":259 * info.obj = self * * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< @@ -5030,7 +5220,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":286 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":286 * return * else: * info.format = PyObject_Malloc(_buffer_format_string_len) # <<<<<<<<<<<<<< @@ -5040,7 +5230,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P /*else*/ { __pyx_v_info->format = ((char *)PyObject_Malloc(0xFF)); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":287 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":287 * else: * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment # <<<<<<<<<<<<<< @@ -5049,7 +5239,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ (__pyx_v_info->format[0]) = '^'; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":288 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":288 * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 # <<<<<<<<<<<<<< @@ -5058,7 +5248,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P */ __pyx_v_offset = 0; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":289 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":289 * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 * f = _util_dtypestring(descr, info.format + 1, # <<<<<<<<<<<<<< @@ -5068,7 +5258,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P __pyx_t_8 = __pyx_f_5numpy__util_dtypestring(__pyx_v_descr, (__pyx_v_info->format + 1), (__pyx_v_info->format + 0xFF), (&__pyx_v_offset)); if (unlikely(__pyx_t_8 == ((char *)NULL))) __PYX_ERR(1, 289, __pyx_L1_error) __pyx_v_f = __pyx_t_8; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":292 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":292 * info.format + _buffer_format_string_len, * &offset) * f[0] = c'\0' # Terminate format string # <<<<<<<<<<<<<< @@ -5078,7 +5268,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P (__pyx_v_f[0]) = '\x00'; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":215 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":215 * # experimental exception made for __getbuffer__ and __releasebuffer__ * # -- the details of this may change. * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< @@ -5110,7 +5300,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P return __pyx_r; } -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":294 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":294 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< @@ -5134,7 +5324,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s int __pyx_t_1; __Pyx_RefNannySetupContext("__releasebuffer__", 0); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":295 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":295 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< @@ -5144,7 +5334,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __pyx_t_1 = (PyArray_HASFIELDS(__pyx_v_self) != 0); if (__pyx_t_1) { - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":296 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":296 * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) # <<<<<<<<<<<<<< @@ -5153,7 +5343,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ PyObject_Free(__pyx_v_info->format); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":295 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":295 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< @@ -5162,7 +5352,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":297 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":297 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -5172,7 +5362,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":298 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":298 * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): * PyObject_Free(info.strides) # <<<<<<<<<<<<<< @@ -5181,7 +5371,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ PyObject_Free(__pyx_v_info->strides); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":297 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":297 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< @@ -5190,7 +5380,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s */ } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":294 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":294 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< @@ -5202,7 +5392,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s __Pyx_RefNannyFinishContext(); } -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":775 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":775 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< @@ -5216,7 +5406,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":776 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":776 * * cdef inline object PyArray_MultiIterNew1(a): * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< @@ -5230,7 +5420,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":775 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":775 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< @@ -5249,7 +5439,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ return __pyx_r; } -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":778 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":778 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< @@ -5263,7 +5453,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":779 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":779 * * cdef inline object PyArray_MultiIterNew2(a, b): * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< @@ -5277,7 +5467,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":778 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":778 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< @@ -5296,7 +5486,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ return __pyx_r; } -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":781 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":781 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< @@ -5310,7 +5500,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":782 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":782 * * cdef inline object PyArray_MultiIterNew3(a, b, c): * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< @@ -5324,7 +5514,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":781 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":781 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< @@ -5343,7 +5533,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ return __pyx_r; } -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":784 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":784 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< @@ -5357,7 +5547,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":785 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":785 * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< @@ -5371,7 +5561,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":784 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":784 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< @@ -5390,7 +5580,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ return __pyx_r; } -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":787 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":787 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< @@ -5404,7 +5594,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":788 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":788 * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<< @@ -5418,7 +5608,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":787 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":787 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< @@ -5437,7 +5627,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ return __pyx_r; } -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":790 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":790 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< @@ -5451,7 +5641,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ int __pyx_t_1; __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":791 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":791 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< @@ -5461,7 +5651,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); if (__pyx_t_1) { - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":792 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":792 * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): * return d.subarray.shape # <<<<<<<<<<<<<< @@ -5473,7 +5663,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); goto __pyx_L0; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":791 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":791 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< @@ -5482,7 +5672,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ */ } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":794 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":794 * return d.subarray.shape * else: * return () # <<<<<<<<<<<<<< @@ -5496,7 +5686,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ goto __pyx_L0; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":790 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":790 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< @@ -5511,7 +5701,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ return __pyx_r; } -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":796 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":796 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< @@ -5540,7 +5730,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx char *__pyx_t_9; __Pyx_RefNannySetupContext("_util_dtypestring", 0); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":801 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":801 * * cdef dtype child * cdef int endian_detector = 1 # <<<<<<<<<<<<<< @@ -5549,7 +5739,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_endian_detector = 1; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":802 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":802 * cdef dtype child * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< @@ -5558,7 +5748,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":805 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":805 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< @@ -5581,7 +5771,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); __pyx_t_3 = 0; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":806 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":806 * * for childname in descr.names: * fields = descr.fields[childname] # <<<<<<<<<<<<<< @@ -5598,7 +5788,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":807 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":807 * for childname in descr.names: * fields = descr.fields[childname] * child, new_offset = fields # <<<<<<<<<<<<<< @@ -5633,7 +5823,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); __pyx_t_4 = 0; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":809 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":809 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< @@ -5650,7 +5840,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); if (unlikely(__pyx_t_6)) { - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":810 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":810 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< @@ -5663,7 +5853,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 810, __pyx_L1_error) - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":809 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":809 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< @@ -5672,7 +5862,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":812 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":812 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -5692,7 +5882,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __pyx_L8_next_or:; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":813 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":813 * * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< @@ -5709,7 +5899,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = __pyx_t_7; __pyx_L7_bool_binop_done:; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":812 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":812 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -5718,7 +5908,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ if (unlikely(__pyx_t_6)) { - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":814 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":814 * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< @@ -5731,7 +5921,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 814, __pyx_L1_error) - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":812 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":812 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< @@ -5740,7 +5930,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":824 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":824 * * # Output padding bytes * while offset[0] < new_offset: # <<<<<<<<<<<<<< @@ -5756,7 +5946,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_6) break; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":825 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":825 * # Output padding bytes * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< @@ -5765,7 +5955,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ (__pyx_v_f[0]) = 0x78; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":826 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":826 * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte * f += 1 # <<<<<<<<<<<<<< @@ -5774,7 +5964,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_f = (__pyx_v_f + 1); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":827 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":827 * f[0] = 120 # "x"; pad byte * f += 1 * offset[0] += 1 # <<<<<<<<<<<<<< @@ -5785,7 +5975,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":829 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":829 * offset[0] += 1 * * offset[0] += child.itemsize # <<<<<<<<<<<<<< @@ -5795,7 +5985,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_8 = 0; (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":831 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":831 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< @@ -5805,7 +5995,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); if (__pyx_t_6) { - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":832 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":832 * * if not PyDataType_HASFIELDS(child): * t = child.type_num # <<<<<<<<<<<<<< @@ -5817,7 +6007,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); __pyx_t_4 = 0; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":833 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":833 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< @@ -5827,7 +6017,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); if (unlikely(__pyx_t_6)) { - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":834 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":834 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< @@ -5840,7 +6030,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 834, __pyx_L1_error) - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":833 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":833 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< @@ -5849,7 +6039,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":837 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":837 * * # Until ticket #99 is fixed, use integers to avoid warnings * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< @@ -5867,7 +6057,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":838 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":838 * # Until ticket #99 is fixed, use integers to avoid warnings * if t == NPY_BYTE: f[0] = 98 #"b" * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< @@ -5885,7 +6075,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":839 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":839 * if t == NPY_BYTE: f[0] = 98 #"b" * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< @@ -5903,7 +6093,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":840 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":840 * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< @@ -5921,7 +6111,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":841 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":841 * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< @@ -5939,7 +6129,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":842 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":842 * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< @@ -5957,7 +6147,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":843 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":843 * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< @@ -5975,7 +6165,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":844 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":844 * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< @@ -5993,7 +6183,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":845 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":845 * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< @@ -6011,7 +6201,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":846 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":846 * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< @@ -6029,7 +6219,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":847 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":847 * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< @@ -6047,7 +6237,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":848 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":848 * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< @@ -6065,7 +6255,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":849 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":849 * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< @@ -6083,7 +6273,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":850 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":850 * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< @@ -6103,7 +6293,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":851 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":851 * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< @@ -6123,7 +6313,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":852 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":852 * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< @@ -6143,7 +6333,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":853 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":853 * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< @@ -6161,7 +6351,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L15; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":855 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":855 * elif t == NPY_OBJECT: f[0] = 79 #"O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< @@ -6180,7 +6370,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __pyx_L15:; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":856 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":856 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * f += 1 # <<<<<<<<<<<<<< @@ -6189,7 +6379,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx */ __pyx_v_f = (__pyx_v_f + 1); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":831 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":831 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< @@ -6199,7 +6389,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx goto __pyx_L13; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":860 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":860 * # Cython ignores struct boundary information ("T{...}"), * # so don't output it * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< @@ -6212,7 +6402,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __pyx_L13:; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":805 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":805 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< @@ -6222,7 +6412,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":861 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":861 * # so don't output it * f = _util_dtypestring(child, f, end, offset) * return f # <<<<<<<<<<<<<< @@ -6232,7 +6422,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_r = __pyx_v_f; goto __pyx_L0; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":796 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":796 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< @@ -6257,7 +6447,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx return __pyx_r; } -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":977 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":977 * * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< @@ -6272,7 +6462,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a int __pyx_t_2; __Pyx_RefNannySetupContext("set_array_base", 0); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":979 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":979 * cdef inline void set_array_base(ndarray arr, object base): * cdef PyObject* baseptr * if base is None: # <<<<<<<<<<<<<< @@ -6283,7 +6473,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":980 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":980 * cdef PyObject* baseptr * if base is None: * baseptr = NULL # <<<<<<<<<<<<<< @@ -6292,7 +6482,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ __pyx_v_baseptr = NULL; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":979 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":979 * cdef inline void set_array_base(ndarray arr, object base): * cdef PyObject* baseptr * if base is None: # <<<<<<<<<<<<<< @@ -6302,7 +6492,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a goto __pyx_L3; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":982 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":982 * baseptr = NULL * else: * Py_INCREF(base) # important to do this before decref below! # <<<<<<<<<<<<<< @@ -6312,7 +6502,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a /*else*/ { Py_INCREF(__pyx_v_base); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":983 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":983 * else: * Py_INCREF(base) # important to do this before decref below! * baseptr = base # <<<<<<<<<<<<<< @@ -6323,7 +6513,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a } __pyx_L3:; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":984 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":984 * Py_INCREF(base) # important to do this before decref below! * baseptr = base * Py_XDECREF(arr.base) # <<<<<<<<<<<<<< @@ -6332,7 +6522,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ Py_XDECREF(__pyx_v_arr->base); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":985 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":985 * baseptr = base * Py_XDECREF(arr.base) * arr.base = baseptr # <<<<<<<<<<<<<< @@ -6341,7 +6531,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a */ __pyx_v_arr->base = __pyx_v_baseptr; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":977 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":977 * * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< @@ -6353,7 +6543,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a __Pyx_RefNannyFinishContext(); } -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":987 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":987 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< @@ -6367,7 +6557,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py int __pyx_t_1; __Pyx_RefNannySetupContext("get_array_base", 0); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":988 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":988 * * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: # <<<<<<<<<<<<<< @@ -6377,7 +6567,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py __pyx_t_1 = ((__pyx_v_arr->base == NULL) != 0); if (__pyx_t_1) { - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":989 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":989 * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: * return None # <<<<<<<<<<<<<< @@ -6388,7 +6578,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":988 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":988 * * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: # <<<<<<<<<<<<<< @@ -6397,7 +6587,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py */ } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":991 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":991 * return None * else: * return arr.base # <<<<<<<<<<<<<< @@ -6411,7 +6601,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py goto __pyx_L0; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":987 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":987 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< @@ -6426,7 +6616,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py return __pyx_r; } -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":996 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":996 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< @@ -6447,7 +6637,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_array", 0); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":997 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -6463,7 +6653,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":998 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":998 * cdef inline int import_array() except -1: * try: * _import_array() # <<<<<<<<<<<<<< @@ -6472,7 +6662,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { */ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 998, __pyx_L3_error) - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":997 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -6486,7 +6676,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":999 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":999 * try: * _import_array() * except Exception: # <<<<<<<<<<<<<< @@ -6501,7 +6691,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1000 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1000 * _import_array() * except Exception: * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< @@ -6517,7 +6707,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":997 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":997 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< @@ -6532,7 +6722,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __pyx_L8_try_end:; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":996 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":996 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< @@ -6555,7 +6745,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { return __pyx_r; } -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1002 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1002 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< @@ -6576,7 +6766,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_umath", 0); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1003 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -6592,7 +6782,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1004 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1004 * cdef inline int import_umath() except -1: * try: * _import_umath() # <<<<<<<<<<<<<< @@ -6601,7 +6791,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { */ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1004, __pyx_L3_error) - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1003 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -6615,7 +6805,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1005 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1005 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< @@ -6630,7 +6820,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1006 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1006 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< @@ -6646,7 +6836,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1003 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1003 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< @@ -6661,7 +6851,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __pyx_L8_try_end:; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1002 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1002 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< @@ -6684,7 +6874,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { return __pyx_r; } -/* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1008 +/* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< @@ -6705,7 +6895,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_ufunc", 0); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1009 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -6721,7 +6911,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1010 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1010 * cdef inline int import_ufunc() except -1: * try: * _import_umath() # <<<<<<<<<<<<<< @@ -6730,7 +6920,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { */ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1010, __pyx_L3_error) - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1009 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -6744,7 +6934,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { goto __pyx_L8_try_end; __pyx_L3_error:; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1011 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1011 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< @@ -6758,7 +6948,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1012 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1012 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< @@ -6772,7 +6962,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1009 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1009 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< @@ -6787,7 +6977,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __pyx_L8_try_end:; } - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1008 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< @@ -6854,9 +7044,13 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, + {&__pyx_n_s_a, __pyx_k_a, sizeof(__pyx_k_a), 0, 0, 1, 1}, + {&__pyx_n_s_ac, __pyx_k_ac, sizeof(__pyx_k_ac), 0, 0, 1, 1}, {&__pyx_n_s_average, __pyx_k_average, sizeof(__pyx_k_average), 0, 0, 1, 1}, {&__pyx_n_s_average_temp, __pyx_k_average_temp, sizeof(__pyx_k_average_temp), 0, 0, 1, 1}, + {&__pyx_n_s_b, __pyx_k_b, sizeof(__pyx_k_b), 0, 0, 1, 1}, {&__pyx_n_s_bath_temp, __pyx_k_bath_temp, sizeof(__pyx_k_bath_temp), 0, 0, 1, 1}, + {&__pyx_n_s_bc, __pyx_k_bc, sizeof(__pyx_k_bc), 0, 0, 1, 1}, {&__pyx_n_s_box_l, __pyx_k_box_l, sizeof(__pyx_k_box_l), 0, 0, 1, 1}, {&__pyx_n_s_box_length, __pyx_k_box_length, sizeof(__pyx_k_box_length), 0, 0, 1, 1}, {&__pyx_n_s_calculate_pressure, __pyx_k_calculate_pressure, sizeof(__pyx_k_calculate_pressure), 0, 0, 1, 1}, @@ -6874,6 +7068,8 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, {&__pyx_n_s_len_particles, __pyx_k_len_particles, sizeof(__pyx_k_len_particles), 0, 0, 1, 1}, {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, + {&__pyx_n_s_mass, __pyx_k_mass, sizeof(__pyx_k_mass), 0, 0, 1, 1}, + {&__pyx_n_s_massc, __pyx_k_massc, sizeof(__pyx_k_massc), 0, 0, 1, 1}, {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1}, @@ -6909,7 +7105,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {0, 0, 0, 0, 0, 0, 0} }; static int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 58, __pyx_L1_error) + __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 79, __pyx_L1_error) __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 229, __pyx_L1_error) __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 810, __pyx_L1_error) __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 1000, __pyx_L1_error) @@ -6922,7 +7118,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":229 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":229 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< @@ -6933,7 +7129,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple_); __Pyx_GIVEREF(__pyx_tuple_); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":233 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":233 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< @@ -6944,7 +7140,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__2); __Pyx_GIVEREF(__pyx_tuple__2); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":263 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":263 * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< @@ -6955,7 +7151,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__3); __Pyx_GIVEREF(__pyx_tuple__3); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":810 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":810 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< @@ -6966,7 +7162,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__4); __Pyx_GIVEREF(__pyx_tuple__4); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":814 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":814 * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< @@ -6977,7 +7173,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__5); __Pyx_GIVEREF(__pyx_tuple__5); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":834 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":834 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< @@ -6988,7 +7184,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__6); __Pyx_GIVEREF(__pyx_tuple__6); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1000 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1000 * _import_array() * except Exception: * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< @@ -6999,7 +7195,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__7); __Pyx_GIVEREF(__pyx_tuple__7); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1006 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1006 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< @@ -7010,7 +7206,7 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__8); __Pyx_GIVEREF(__pyx_tuple__8); - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1012 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1012 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< @@ -7019,53 +7215,53 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__9); __Pyx_GIVEREF(__pyx_tuple__9); - /* "src/_ccomp.pyx":19 + /* "src/_ccomp.pyx":27 * ctypedef np.float64_t DTYPE_t * - * def compute_forces(particles, box_length, cut_off): # <<<<<<<<<<<<<< - * """Calculates the forces and therefore the accelerations on each of the particles in the simulation. This uses a - * 12-6 Lennard-Jones potential model for Argon with values: + * def compute_forces(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, # <<<<<<<<<<<<<< + * mass=39.948): + * """Calculates the forces and therefore the accelerations on each of the */ - __pyx_tuple__10 = PyTuple_Pack(15, __pyx_n_s_particles, __pyx_n_s_box_length, __pyx_n_s_cut_off, __pyx_n_s_len_particles, __pyx_n_s_pairs, __pyx_n_s_box_l, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_xacc, __pyx_n_s_yacc, __pyx_n_s_distances_arr, __pyx_n_s_force_arr, __pyx_n_s_energy_arr, __pyx_n_s_cut, __pyx_n_s_i); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 19, __pyx_L1_error) + __pyx_tuple__10 = PyTuple_Pack(21, __pyx_n_s_particles, __pyx_n_s_box_length, __pyx_n_s_cut_off, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_mass, __pyx_n_s_len_particles, __pyx_n_s_pairs, __pyx_n_s_box_l, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_xacc, __pyx_n_s_yacc, __pyx_n_s_distances_arr, __pyx_n_s_force_arr, __pyx_n_s_energy_arr, __pyx_n_s_cut, __pyx_n_s_ac, __pyx_n_s_bc, __pyx_n_s_massc, __pyx_n_s_i); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__10); __Pyx_GIVEREF(__pyx_tuple__10); - __pyx_codeobj__11 = (PyObject*)__Pyx_PyCode_New(3, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__10, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_compute_forces, 19, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__11)) __PYX_ERR(0, 19, __pyx_L1_error) + __pyx_codeobj__11 = (PyObject*)__Pyx_PyCode_New(6, 0, 21, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__10, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_compute_forces, 27, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__11)) __PYX_ERR(0, 27, __pyx_L1_error) - /* "src/_ccomp.pyx":75 + /* "src/_ccomp.pyx":98 * return particles, distances_arr, force_arr, energy_arr * - * def compute_energy(particles, box_length, cut_off): # <<<<<<<<<<<<<< + * def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): # <<<<<<<<<<<<<< * """Calculates the total energy of the simulation. This uses a * 12-6 Lennard-Jones potential model for Argon with values: */ - __pyx_tuple__12 = PyTuple_Pack(12, __pyx_n_s_particles, __pyx_n_s_box_length, __pyx_n_s_cut_off, __pyx_n_s_len_particles, __pyx_n_s_pairs, __pyx_n_s_box_l, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_distances_arr, __pyx_n_s_energy_arr, __pyx_n_s_cut, __pyx_n_s_i); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 75, __pyx_L1_error) + __pyx_tuple__12 = PyTuple_Pack(16, __pyx_n_s_particles, __pyx_n_s_box_length, __pyx_n_s_cut_off, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_len_particles, __pyx_n_s_pairs, __pyx_n_s_box_l, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_distances_arr, __pyx_n_s_energy_arr, __pyx_n_s_cut, __pyx_n_s_ac, __pyx_n_s_bc, __pyx_n_s_i); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__12); __Pyx_GIVEREF(__pyx_tuple__12); - __pyx_codeobj__13 = (PyObject*)__Pyx_PyCode_New(3, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__12, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_compute_energy, 75, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__13)) __PYX_ERR(0, 75, __pyx_L1_error) + __pyx_codeobj__13 = (PyObject*)__Pyx_PyCode_New(5, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__12, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_compute_energy, 98, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__13)) __PYX_ERR(0, 98, __pyx_L1_error) - /* "src/_ccomp.pyx":120 + /* "src/_ccomp.pyx":152 * return distances_arr, energy_arr * - * def calculate_pressure(particles, box_length, temperature, cut_off): # <<<<<<<<<<<<<< - * r"""Calculates the instantaneous pressure of the simulation cell, found with the following relationship: - * + * def calculate_pressure(particles, box_length, temperature, cut_off, # <<<<<<<<<<<<<< + * a=1.363e-134, b=9.273e-78): + * r"""Calculates the instantaneous pressure of the simulation cell, found */ - __pyx_tuple__14 = PyTuple_Pack(12, __pyx_n_s_particles, __pyx_n_s_box_length, __pyx_n_s_temperature, __pyx_n_s_cut_off, __pyx_n_s_number_of_particles, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_box_l, __pyx_n_s_pressure, __pyx_n_s_temp, __pyx_n_s_cut, __pyx_n_s_i); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 120, __pyx_L1_error) + __pyx_tuple__14 = PyTuple_Pack(16, __pyx_n_s_particles, __pyx_n_s_box_length, __pyx_n_s_temperature, __pyx_n_s_cut_off, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_number_of_particles, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_box_l, __pyx_n_s_pressure, __pyx_n_s_temp, __pyx_n_s_cut, __pyx_n_s_ac, __pyx_n_s_bc, __pyx_n_s_i); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 152, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__14); __Pyx_GIVEREF(__pyx_tuple__14); - __pyx_codeobj__15 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__14, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_calculate_pressure, 120, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__15)) __PYX_ERR(0, 120, __pyx_L1_error) + __pyx_codeobj__15 = (PyObject*)__Pyx_PyCode_New(6, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__14, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_calculate_pressure, 152, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__15)) __PYX_ERR(0, 152, __pyx_L1_error) - /* "src/_ccomp.pyx":160 + /* "src/_ccomp.pyx":206 * return pressure * * def heat_bath(particles, temperature_sample, bath_temp): # <<<<<<<<<<<<<< - * r"""Rescales the velocities of the particles in the system to control the temperature of the simulation. Thereby - * allowing for an NVT ensemble. The velocities are rescaled according the following relationship, + * r"""Rescales the velocities of the particles in the system to control the + * temperature of the simulation. Thereby allowing for an NVT ensemble. The */ - __pyx_tuple__16 = PyTuple_Pack(9, __pyx_n_s_particles, __pyx_n_s_temperature_sample, __pyx_n_s_bath_temp, __pyx_n_s_len_particles, __pyx_n_s_xvel, __pyx_n_s_yvel, __pyx_n_s_average_temp, __pyx_n_s_temperature, __pyx_n_s_i); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 160, __pyx_L1_error) + __pyx_tuple__16 = PyTuple_Pack(9, __pyx_n_s_particles, __pyx_n_s_temperature_sample, __pyx_n_s_bath_temp, __pyx_n_s_len_particles, __pyx_n_s_xvel, __pyx_n_s_yvel, __pyx_n_s_average_temp, __pyx_n_s_temperature, __pyx_n_s_i); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 206, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__16); __Pyx_GIVEREF(__pyx_tuple__16); - __pyx_codeobj__17 = (PyObject*)__Pyx_PyCode_New(3, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__16, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_heat_bath, 160, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__17)) __PYX_ERR(0, 160, __pyx_L1_error) + __pyx_codeobj__17 = (PyObject*)__Pyx_PyCode_New(3, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__16, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_heat_bath, 206, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__17)) __PYX_ERR(0, 206, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; @@ -7075,6 +7271,9 @@ static int __Pyx_InitCachedConstants(void) { static int __Pyx_InitGlobals(void) { if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error); + __pyx_float_39_948 = PyFloat_FromDouble(39.948); if (unlikely(!__pyx_float_39_948)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_float_9_273eneg_78 = PyFloat_FromDouble(9.273e-78); if (unlikely(!__pyx_float_9_273eneg_78)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_float_1_363eneg_134 = PyFloat_FromDouble(1.363e-134); if (unlikely(!__pyx_float_1_363eneg_134)) __PYX_ERR(0, 1, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; @@ -7176,8 +7375,8 @@ static int __Pyx_modinit_function_import_code(void) { #ifndef CYTHON_SMALL_CODE #if defined(__clang__) #define CYTHON_SMALL_CODE -#elif defined(__GNUC__) - #define CYTHON_SMALL_CODE __attribute__((optimize("Os"))) +#elif defined(__GNUC__) && (!(defined(__cplusplus)) || (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 4))) + #define CYTHON_SMALL_CODE __attribute__((cold)) #else #define CYTHON_SMALL_CODE #endif @@ -7344,67 +7543,67 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "src/_ccomp.pyx":16 + /* "src/_ccomp.pyx":24 * * * DTYPE = np.float64 # <<<<<<<<<<<<<< * ctypedef np.float64_t DTYPE_t * */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_float64); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_float64); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_DTYPE, __pyx_t_2) < 0) __PYX_ERR(0, 16, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DTYPE, __pyx_t_2) < 0) __PYX_ERR(0, 24, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":19 + /* "src/_ccomp.pyx":27 * ctypedef np.float64_t DTYPE_t * - * def compute_forces(particles, box_length, cut_off): # <<<<<<<<<<<<<< - * """Calculates the forces and therefore the accelerations on each of the particles in the simulation. This uses a - * 12-6 Lennard-Jones potential model for Argon with values: + * def compute_forces(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, # <<<<<<<<<<<<<< + * mass=39.948): + * """Calculates the forces and therefore the accelerations on each of the */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_1compute_forces, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error) + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_1compute_forces, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_compute_forces, __pyx_t_2) < 0) __PYX_ERR(0, 19, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_compute_forces, __pyx_t_2) < 0) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":75 + /* "src/_ccomp.pyx":98 * return particles, distances_arr, force_arr, energy_arr * - * def compute_energy(particles, box_length, cut_off): # <<<<<<<<<<<<<< + * def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): # <<<<<<<<<<<<<< * """Calculates the total energy of the simulation. This uses a * 12-6 Lennard-Jones potential model for Argon with values: */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_3compute_energy, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_3compute_energy, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_compute_energy, __pyx_t_2) < 0) __PYX_ERR(0, 75, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_compute_energy, __pyx_t_2) < 0) __PYX_ERR(0, 98, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":120 + /* "src/_ccomp.pyx":152 * return distances_arr, energy_arr * - * def calculate_pressure(particles, box_length, temperature, cut_off): # <<<<<<<<<<<<<< - * r"""Calculates the instantaneous pressure of the simulation cell, found with the following relationship: - * + * def calculate_pressure(particles, box_length, temperature, cut_off, # <<<<<<<<<<<<<< + * a=1.363e-134, b=9.273e-78): + * r"""Calculates the instantaneous pressure of the simulation cell, found */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_5calculate_pressure, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 120, __pyx_L1_error) + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_5calculate_pressure, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculate_pressure, __pyx_t_2) < 0) __PYX_ERR(0, 120, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculate_pressure, __pyx_t_2) < 0) __PYX_ERR(0, 152, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":160 + /* "src/_ccomp.pyx":206 * return pressure * * def heat_bath(particles, temperature_sample, bath_temp): # <<<<<<<<<<<<<< - * r"""Rescales the velocities of the particles in the system to control the temperature of the simulation. Thereby - * allowing for an NVT ensemble. The velocities are rescaled according the following relationship, + * r"""Rescales the velocities of the particles in the system to control the + * temperature of the simulation. Thereby allowing for an NVT ensemble. The */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_7heat_bath, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 160, __pyx_L1_error) + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_7heat_bath, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_heat_bath, __pyx_t_2) < 0) __PYX_ERR(0, 160, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_heat_bath, __pyx_t_2) < 0) __PYX_ERR(0, 206, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "src/_ccomp.pyx":1 @@ -7417,7 +7616,7 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "../../../../anaconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1008 + /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1008 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< @@ -8835,7 +9034,7 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject /* SaveResetException */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { - #if PY_VERSION_HEX >= 0x030700A2 + #if PY_VERSION_HEX >= 0x030700A3 *type = tstate->exc_state.exc_type; *value = tstate->exc_state.exc_value; *tb = tstate->exc_state.exc_traceback; @@ -8850,7 +9049,7 @@ static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject * } static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; - #if PY_VERSION_HEX >= 0x030700A2 + #if PY_VERSION_HEX >= 0x030700A3 tmp_type = tstate->exc_state.exc_type; tmp_value = tstate->exc_state.exc_value; tmp_tb = tstate->exc_state.exc_traceback; @@ -8934,7 +9133,7 @@ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) *value = local_value; *tb = local_tb; #if CYTHON_FAST_THREAD_STATE - #if PY_VERSION_HEX >= 0x030700A2 + #if PY_VERSION_HEX >= 0x030700A3 tmp_type = tstate->exc_state.exc_type; tmp_value = tstate->exc_state.exc_value; tmp_tb = tstate->exc_state.exc_traceback; @@ -9039,6 +9238,9 @@ static int __Pyx_CLineForTraceback(CYTHON_UNUSED PyThreadState *tstate, int c_li #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); @@ -10114,14 +10316,42 @@ static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, 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; ixpos.data, ypos.data, xacc.data, - yacc.data, distances_arr.data, box_l, force_arr.data, - energy_arr.data, cut) + compute_accelerations(len_particles, xpos.data, + ypos.data, xacc.data, + yacc.data, distances_arr.data, + box_l, force_arr.data, + energy_arr.data, cut, ac, bc, massc) for i in range(0, len_particles): particles['xacceleration'][i] = xacc[i] @@ -72,7 +95,7 @@ def compute_forces(particles, box_length, cut_off): return particles, distances_arr, force_arr, energy_arr -def compute_energy(particles, box_length, cut_off): +def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): """Calculates the total energy of the simulation. This uses a 12-6 Lennard-Jones potential model for Argon with values: @@ -86,7 +109,13 @@ def compute_energy(particles, box_length, cut_off): box_length: float Length of a single dimension of the simulation square, in Angstrom. cut_off: float - The distance greater than which the energies between particles is taken as zero. + The distance greater than which the energies between particles is + taken as zero. + a: float (optional) + The A component of the 12-6 potential model (units of + Jm:math:`^{-12}`). + b: float (optional) + The B component of the 12-6 potential model (units of Jm:math:`^{-6}`). Returns ------- @@ -105,6 +134,8 @@ def compute_energy(particles, box_length, cut_off): cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) cdef double cut = cut_off + cdef double ac = a + cdef double bc = b for i in range(0, len_particles): @@ -112,16 +143,21 @@ def compute_energy(particles, box_length, cut_off): ypos[i] = particles['yposition'][i] - compute_energies(len_particles, xpos.data, ypos.data, - distances_arr.data, box_l, energy_arr.data, cut) + compute_energies(len_particles, xpos.data, + ypos.data, distances_arr.data, + box_l, energy_arr.data, cut, ac, bc) return distances_arr, energy_arr -def calculate_pressure(particles, box_length, temperature, cut_off): - r"""Calculates the instantaneous pressure of the simulation cell, found with the following relationship: +def calculate_pressure(particles, box_length, temperature, cut_off, + a=1.363e-134, b=9.273e-78): + r"""Calculates the instantaneous pressure of the simulation cell, found + with the following relationship: .. math:: - p = \langle \rho k_b T \rangle + \bigg\langle \frac{1}{3V}\sum_{i}\sum_{jxpos.data, ypos.data, box_l, - temperature, cut) + pressure = compute_pressure(number_of_particles, xpos.data, + ypos.data, box_l, temperature, + cut, ac, bc) return pressure def heat_bath(particles, temperature_sample, bath_temp): - r"""Rescales the velocities of the particles in the system to control the temperature of the simulation. Thereby - allowing for an NVT ensemble. The velocities are rescaled according the following relationship, + r"""Rescales the velocities of the particles in the system to control the + temperature of the simulation. Thereby allowing for an NVT ensemble. The + velocities are rescaled according the following relationship, .. math:: - v_{\text{new}} = v_{\text{old}} \times \sqrt{\frac{T_{\text{desired}}}{\bar{T}}} + v_{\text{new}} = v_{\text{old}} \times + \sqrt{\frac{T_{\text{desired}}}{\bar{T}}} Parameters ---------- @@ -188,10 +236,11 @@ def heat_bath(particles, temperature_sample, bath_temp): xvel[i] = particles['xvelocity'][i] yvel[i] = particles['yvelocity'][i] - scale_velocities(len_particles, xvel.data, yvel.data, average_temp, temperature) + scale_velocities(len_particles, xvel.data, yvel.data, + average_temp, temperature) for i in range(0, len_particles): particles['xvelocity'][i] = xvel[i] particles['yvelocity'][i] = yvel[i] - return particles \ No newline at end of file + return particles diff --git a/src/comp.cpp b/src/comp.cpp index a460e2a..f29b802 100644 --- a/src/comp.cpp +++ b/src/comp.cpp @@ -3,8 +3,11 @@ #include #include -void compute_accelerations(int len_particles, const double *xpos, const double *ypos, double *xacc, - double *yacc, double *distances_arr, double box_l, double *force_arr, double *energy_arr, double cut) +void compute_accelerations(int len_particles, const double *xpos, + const double *ypos, double *xacc, double *yacc, + double *distances_arr, double box_l, + double *force_arr, double *energy_arr, double cut, + double ac, double bc, double massc) { int ii = 0; double dx, dy, dr, f, e; @@ -17,14 +20,15 @@ void compute_accelerations(int len_particles, const double *xpos, const double * int k = 0; int i = 0; double inv_dr_1, inv_dr_2, inv_dr_6; - // values of A and B where determined from from A. Rahman "Correlations in the Motion of Atoms in Liquid Argon", - // Physical Review 136 pp. A405–A411 (1964) - double A = 1.363e-134; // joules / metre ^{12} - double B = 9.273e-78; // joules / meter ^{6} + // values of A and B where determined from from A. Rahman "Correlations + // in the Motion of Atoms in Liquid Argon", Physical Review 136 pp. + // A405–A411 (1964) + double A = ac; // joules / metre ^{12} + double B = bc; // joules / meter ^{6} double atomic_mass_unit = 1.660539e-27; // kilograms - double mass_of_argon_amu = 39.948; // amu - double mass_of_argon = mass_of_argon_amu * atomic_mass_unit; // kilograms - double inv_mass_of_argon = 1 / mass_of_argon; + double mass_amu = massc; // amu + double mass_kg = mass_amu * atomic_mass_unit; // kilograms + double inv_mass_kg = 1 / mass_kg; for (i = 0; i < len_particles - 1; i++) { int j = 0; @@ -47,14 +51,15 @@ void compute_accelerations(int len_particles, const double *xpos, const double * inv_dr_1 = 1.0 / dr; inv_dr_2 = inv_dr_1 * inv_dr_1; inv_dr_6 = inv_dr_2 * inv_dr_2 * inv_dr_2; - f = (12 * A * (inv_dr_1 * inv_dr_6 * inv_dr_6) - 6 * B * (inv_dr_1 * inv_dr_6)); + f = (12 * A * (inv_dr_1 * inv_dr_6 * inv_dr_6) - 6 * B * + (inv_dr_1 * inv_dr_6)); force_arr[k] = f; e = (A * (inv_dr_6 * inv_dr_6) - B * inv_dr_6); energy_arr[k] = e; - xacc[i] += (f * dx * inv_dr_1) * inv_mass_of_argon; - yacc[i] += (f * dy * inv_dr_1) * inv_mass_of_argon; - xacc[j] -= (f * dx * inv_dr_1) * inv_mass_of_argon; - yacc[j] -= (f * dy * inv_dr_1) * inv_mass_of_argon; + xacc[i] += (f * dx * inv_dr_1) * inv_mass_kg; + yacc[i] += (f * dy * inv_dr_1) * inv_mass_kg; + xacc[j] -= (f * dx * inv_dr_1) * inv_mass_kg; + yacc[j] -= (f * dy * inv_dr_1) * inv_mass_kg; } else { @@ -66,16 +71,18 @@ void compute_accelerations(int len_particles, const double *xpos, const double * } } -void compute_energies(int len_particles, const double *xpos, const double *ypos, double *distances_arr, double box_l, - double *energy_arr, double cut) +void compute_energies(int len_particles, const double *xpos, + const double *ypos, double *distances_arr, double box_l, + double *energy_arr, double cut, double ac, double bc) { double dx, dy, dr, e; int k = 0; int i = 0; - // values of A and B where determined from from A. Rahman "Correlations in the Motion of Atoms in Liquid Argon", - // Physical Review 136 pp. A405–A411 (1964) - double A = 1.363e-134; // joules / metre ^{12} - double B = 9.273e-78; // joules / meter ^{6} + // values of A and B where determined from from A. Rahman "Correlations + // in the Motion of Atoms in Liquid Argon", Physical Review 136 pp. + // A405–A411 (1964) + double A = ac; // joules / metre ^{12} + double B = bc; // joules / meter ^{6} for (i = 0; i < len_particles - 1; i++) { int j = 0; @@ -107,14 +114,15 @@ void compute_energies(int len_particles, const double *xpos, const double *ypos, } } -double compute_pressure(int number_of_particles, const double *xpos, const double *ypos, double box_length, - double temperature, double cut) +double compute_pressure(int number_of_particles, const double *xpos, + const double *ypos, double box_length, + double temperature, double cut, double ac, double bc) { double pres = 0.; int i, j; double dx, dy, dr, f; - double A = 1.363e-134; // joules / metre ^{12} - double B = 9.273e-78; // joules / meter ^{6} + double A = ac; // joules / metre ^{12} + double B = bc; // joules / meter ^{6} for (i = 0; i < number_of_particles - 1; i++) { for (j = i + 1; j < number_of_particles; j++) @@ -139,11 +147,13 @@ double compute_pressure(int number_of_particles, const double *xpos, const doubl } double boltzmann_constant = 1.3806e-23; // joules/kelvin pres = 1. / (2 * box_length * box_length) * pres + - ((double)number_of_particles / (box_length * box_length) * boltzmann_constant * temperature); + ((double)number_of_particles / (box_length * box_length) * + boltzmann_constant * temperature); return pres; } -void scale_velocities(int len_particles, double *xvel, double *yvel, double average_temp, double temperature) +void scale_velocities(int len_particles, double *xvel, double *yvel, + double average_temp, double temperature) { int i = 0; for (i = 0; i < len_particles; i++) @@ -151,4 +161,4 @@ void scale_velocities(int len_particles, double *xvel, double *yvel, double aver xvel[i] = xvel[i] * sqrt(temperature / average_temp); yvel[i] = yvel[i] * sqrt(temperature / average_temp); } -} \ No newline at end of file +} diff --git a/src/comp.h b/src/comp.h index 1bef1c5..7c4a837 100644 --- a/src/comp.h +++ b/src/comp.h @@ -1,10 +1,16 @@ -void compute_accelerations(int len_particles, const double *xpos, const double *ypos, double *xacc, double *yacc, - double *distances_arr, double box_l, double *force_arr, double *energy_arr, double cut); +void compute_accelerations(int len_particles, const double *xpos, + const double *ypos, double *xacc, double *yacc, + double *distances_arr, double box_l, double *force_arr, + double *energy_arr, double cut, double ac, double bc, + double massc); -void compute_energies(int len_particles, const double *xpos, const double *ypos, double *distances_arr, double box_l, - double *energy_arr, double cut); +void compute_energies(int len_particles, const double *xpos, const double *ypos, + double *distances_arr, double box_l, double *energy_arr, + double cut, double ac, double bc); -double compute_pressure(int number_of_particles, const double *xpos, const double *ypos, double box_length, - double temperature, double cut); +double compute_pressure(int number_of_particles, const double *xpos, + const double *ypos, double box_length, double temperature, + double cut, double ac, double bc); -void scale_velocities(int len_particles, double *xvel, double *yvel, double average_temp, double tempature); +void scale_velocities(int len_particles, double *xvel, double *yvel, + double average_temp, double tempature); From 86f6ef24936d14aa38c46a92fc201508ba585a47 Mon Sep 17 00:00:00 2001 From: arm61 Date: Sat, 25 Aug 2018 14:32:30 +0100 Subject: [PATCH 03/14] update badges --- README.md | 4 ++-- pylj/comp.cpython-36m-x86_64-linux-gnu.so | Bin 0 -> 462904 bytes 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100755 pylj/comp.cpython-36m-x86_64-linux-gnu.so diff --git a/README.md b/README.md index 9cfb83c..26b2537 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ Check out some [examples](https://github.com/arm61/pylj/tree/master/examples) of Build Status - Build Status + Build Status @@ -87,7 +87,7 @@ Check out some [examples](https://github.com/arm61/pylj/tree/master/examples) of Coverage Status - + Coverage Status diff --git a/pylj/comp.cpython-36m-x86_64-linux-gnu.so b/pylj/comp.cpython-36m-x86_64-linux-gnu.so new file mode 100755 index 0000000000000000000000000000000000000000..5316f11047bd519beb91ab322958a0794936dfec GIT binary patch literal 462904 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 gOS9 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
fQT`mg$5oo9wZtNCGNT8VRHA(eYy4Q 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 literal 0 HcmV?d00001 From 20ac25755d29433a48996e724de94e67a8357eac Mon Sep 17 00:00:00 2001 From: arm61 Date: Sat, 25 Aug 2018 16:30:04 +0100 Subject: [PATCH 04/14] making the c bits more modular --- pylj/comp.cpython-36m-x86_64-linux-gnu.so | Bin 462904 -> 464456 bytes src/comp.cpp | 38 +++++++++++++++------- src/comp.h | 4 +++ 3 files changed, 31 insertions(+), 11 deletions(-) diff --git a/pylj/comp.cpython-36m-x86_64-linux-gnu.so b/pylj/comp.cpython-36m-x86_64-linux-gnu.so index 5316f11047bd519beb91ab322958a0794936dfec..15c27370be193b0e0915bdf5c7920ffa2f783c22 100755 GIT binary patch literal 464456 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 zadƭ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%0AaX?C>2cdVx>y}v+ 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 H==}c=ejJ~1 literal 462904 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 gOS9 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

fQT`mg$5oo9wZtNCGNT8VRHA(eYy4Q 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 diff --git a/src/comp.cpp b/src/comp.cpp index f29b802..95d6345 100644 --- a/src/comp.cpp +++ b/src/comp.cpp @@ -19,7 +19,7 @@ void compute_accelerations(int len_particles, const double *xpos, } int k = 0; int i = 0; - double inv_dr_1, inv_dr_2, inv_dr_6; + double inv_dr_1; // values of A and B where determined from from A. Rahman "Correlations // in the Motion of Atoms in Liquid Argon", Physical Review 136 pp. // A405–A411 (1964) @@ -45,16 +45,13 @@ void compute_accelerations(int len_particles, const double *xpos, dy *= 1 - box_l / fabs(dy); } dr = sqrt(dx * dx + dy * dy); + inv_dr_1 = 1 / dr; distances_arr[k] = dr; if (dr <= cut) { - inv_dr_1 = 1.0 / dr; - inv_dr_2 = inv_dr_1 * inv_dr_1; - inv_dr_6 = inv_dr_2 * inv_dr_2 * inv_dr_2; - f = (12 * A * (inv_dr_1 * inv_dr_6 * inv_dr_6) - 6 * B * - (inv_dr_1 * inv_dr_6)); + f = lennard_jones_force(A, B, inv_dr_1); force_arr[k] = f; - e = (A * (inv_dr_6 * inv_dr_6) - B * inv_dr_6); + e = lennard_jones_energy(A, B, inv_dr_1); energy_arr[k] = e; xacc[i] += (f * dx * inv_dr_1) * inv_mass_kg; yacc[i] += (f * dy * inv_dr_1) * inv_mass_kg; @@ -75,7 +72,7 @@ void compute_energies(int len_particles, const double *xpos, const double *ypos, double *distances_arr, double box_l, double *energy_arr, double cut, double ac, double bc) { - double dx, dy, dr, e; + double dx, dy, dr, e, inv_dr_1; int k = 0; int i = 0; // values of A and B where determined from from A. Rahman "Correlations @@ -99,10 +96,11 @@ void compute_energies(int len_particles, const double *xpos, dy *= 1 - box_l / fabs(dy); } dr = sqrt(dx * dx + dy * dy); + inv_dr_1 = 1. / dr; distances_arr[k] = dr; if (dr <= cut) { - e = (A * pow(dr, -12.) - B * pow(dr, -6.)); + e = lennard_jones_energy(A, B, inv_dr_1); energy_arr[k] = e; } else @@ -120,7 +118,7 @@ double compute_pressure(int number_of_particles, const double *xpos, { double pres = 0.; int i, j; - double dx, dy, dr, f; + double dx, dy, dr, f, inv_dr_1; double A = ac; // joules / metre ^{12} double B = bc; // joules / meter ^{6} for (i = 0; i < number_of_particles - 1; i++) @@ -138,9 +136,10 @@ double compute_pressure(int number_of_particles, const double *xpos, dy *= 1 - box_length / fabs(dy); } dr = sqrt(dx * dx + dy * dy); + inv_dr_1 = 1. / dr; if (dr <= cut) { - f = (12 * A * pow(dr, -13.) - 6 * B * pow(dr, -7.)); + f = lennard_jones_force(A, B, inv_dr_1); pres += f * dr; } } @@ -162,3 +161,20 @@ void scale_velocities(int len_particles, double *xvel, double *yvel, yvel[i] = yvel[i] * sqrt(temperature / average_temp); } } + +double lennard_jones_force(double A, double B, double inv_dr_1) +{ + double inv_dr_2 = inv_dr_1 * inv_dr_1; + double inv_dr_6 = inv_dr_2 * inv_dr_2 * inv_dr_2; + double f = (12 * A * (inv_dr_1 * inv_dr_6 * inv_dr_6) - 6 * B * + (inv_dr_1 * inv_dr_6)); + return f; +} + +double lennard_jones_energy(double A, double B, double inv_dr_1) +{ + double inv_dr_2 = inv_dr_1 * inv_dr_1; + double inv_dr_6 = inv_dr_2 * inv_dr_2 * inv_dr_2; + double e = (A * (inv_dr_6 * inv_dr_6) - B * inv_dr_6); + return e; +} diff --git a/src/comp.h b/src/comp.h index 7c4a837..25bdede 100644 --- a/src/comp.h +++ b/src/comp.h @@ -14,3 +14,7 @@ double compute_pressure(int number_of_particles, const double *xpos, void scale_velocities(int len_particles, double *xvel, double *yvel, double average_temp, double tempature); + +double lennard_jones_force(double A, double B, double dr); + +double lennard_jones_energy(double A, double B, double dr); From 7d663af538bec94db5d950bb2509533b7f0d4b84 Mon Sep 17 00:00:00 2001 From: arm61 Date: Sun, 26 Aug 2018 13:17:56 +0100 Subject: [PATCH 05/14] 1.2, now with the ability to define custom forcefields --- README.md | 6 +- appveyor.yml | 8 +- pylj/comp.cpython-36m-x86_64-linux-gnu.so | Bin 464456 -> 543040 bytes pylj/forcefields.py | 26 + pylj/md.py | 12 +- pylj/pairwise.py | 151 +- pylj/tests/test_comp.py | 45 +- pylj/tests/test_forcefields.py | 13 + pylj/tests/test_pairwise.py | 16 +- pylj/util.py | 18 +- setup.py | 30 +- src/_ccomp.cpp | 1766 +++++++++++++++------ src/_ccomp.pyx | 47 +- src/comp.cpp | 31 + src/comp.h | 4 + 15 files changed, 1501 insertions(+), 672 deletions(-) create mode 100644 pylj/forcefields.py create mode 100644 pylj/tests/test_forcefields.py diff --git a/README.md b/README.md index 26b2537..4fe38f3 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,5 @@ -## This is the branch associated with the development of pylj v2.0. Things on this branch are uncomplete, untested, and probably just won't work. Please change to the [master branch](https://github.com/arm61/pylj/tree/master) for something more stable. - ## Visit the [pylj](http://pythoninchemistry.org/pylj) webpage for more information about pylj. To build from source: @@ -72,7 +70,7 @@ Check out some [examples](https://github.com/arm61/pylj/tree/master/examples) of Build Status - Build Status + Build Status @@ -87,7 +85,7 @@ Check out some [examples](https://github.com/arm61/pylj/tree/master/examples) of Coverage Status - + Coverage Status diff --git a/appveyor.yml b/appveyor.yml index d73213b..e8cd205 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -39,16 +39,16 @@ test_script: # to put the Python version you want to use on PATH. - "python setup.py test" -after_test: +#after_test: # This step builds your wheels. # Again, you only need build.cmd if you're building C extensions for # 64-bit Python 3.3/3.4. And you need to use %PYTHON% to get the correct # interpreter - - "python setup.py bdist_wheel" + #- "python setup.py bdist_wheel" -artifacts: +#artifacts: # bdist_wheel puts your built wheel in the dist directory - - path: dist\* + #- path: dist\* #on_success: # You can use this step to upload your artifacts to a public website. diff --git a/pylj/comp.cpython-36m-x86_64-linux-gnu.so b/pylj/comp.cpython-36m-x86_64-linux-gnu.so index 15c27370be193b0e0915bdf5c7920ffa2f783c22..ec2eac9084d718474db8418d69ebc44bb86d3b60 100755 GIT binary patch literal 543040 zcma%k349b)^8W-GjRJO1qVYfn4H~>i#JGteYXS*$bb{fMcqSNvLAeYQ!2^h!8O=D3 z#$#7Jc4c+f#Z^~yR|HfD0tP%IUMMR@yt<7DqH?*K|My$(^-QNFpWlCWO~0yFuU=KX zdiBn37M2D_^-4+cIlqH^zxNSZe6GS2>5QVHRGsqqihOy#L-04#ce2p>6FI+4ymYtX z?L2+HfDjRTF#fY1R{7S$g9Pt98&4I`=Q~|Lb-7*uSuXX@s$A-yRXOLGMgshtrz3T5 z;P~GLRqQvH2!IOU6Np z(0S_WMYjRSV)p1U6Ma7{ul#lM$G6}9VENrQJT~{3C;oZ(F@I%A=1<0dG}9sYuN9`m zqhH1uX$LLwNBc8x8veT$|BWbp|J%KN(+BSychQ$t>A8PhH>#}f%Fpk)x&E}aa|+fT zdhzo3_lJLUUFGrXY719=^X`tr=lvo5zjJ@Rbv=sq_!|SGIJ$Ntf?x;2zXAmhgzrS* z1K}4yu>;{B>4ASk4}6yOAm^by;EQ^wcV`ds*Ytqj(u16@!Lbgc*Tp^XxvmF!YJ0%% zMJGNG|6mXD+}8vCXgJk@_>6;{PwLj-3V6N;`G@sj=j)2fWM#z{zvv8kI{o(f9k=XkL!W|)jjYzu?Kt}+V_Y9wBv_8)caNs z@;};xAD+^K|8(?V=PP>P|3MG@|ImZ|AM3$Bf9pZt6+Q5O7yJ)opMUgFZ)XpBwe?`n z$-oEjpZ9lE5Av+<0Y9JzdA{m_{`el`tnb18m-j&b`yT3j3<@16Zrt62Jh%2hKc)xz z<{td{=^o^t*8_d12Y)bopg*$*eZTI(--h?VXI~HcruM);vj@F)_s}jyJ4Tl{3-LLV#qrmvR)L%U-HGb*UioR1le1Au~ zkWY23LR_Hv_%X{%^JVy~wn2)4{yPJ9?hpK8Ef0#z?<~!~<#NU6b&Y3R9pO9Fw5mdV{d^Bk(}HXK*INFxYK1R_9Q;*kJ{?sGKUkrCzN)IL zXUv*eH77K=K2%lZtC}`*TF6&56%Suk*@W_{DYf;rS5KQ0s;!?;K63i3nY9xpUp2i} zuaX~luQ@{)0L^#IXDXJo~HKJka)LL>= z3Ain|&w&efH^;=85TNGT+9|Y4#SNqCQBBpD+PO$isGnR@JA%eH(QQ~T>F8{O3h{M~ z8#Bw@9JE2gt47it6wC7384v`-^&61j<% z*WIzaHdHrjimI00HU_aq>sfVa&bc*k%?3DQ?abQxtEbh@nO1S(l=0bB6;q~+ U+ zg*})tq-^Gt+Idb#6Y<7N6uR{69EZc?ni@20z4YuP8*m{b{ZI^*%xoDgH3gYdGZ{Vm z`dT!|w2%lgWjq8x{bL$tTvc0NCHjDJ*wwY6swr^%$unyxFUiJN@qa$ILWnYR<}}pT zYK2g{6qN;3vRl!;60yk%A!Rc$EX+*SmMo$BmP1%l%K(S5X7&y9s%9uj zrp>9EF?rfdpr&6_2d?Uc!($!LqK=FCyUz7L&hif?G$tQoaKC)dw7 zH)rS!4F5H=W=@$rY-sJw>*ow*8w~{u-{@f3h>?|*Rm09YN2ROIKI`nWauexuoN2}X z-&0Sn{tseI9e?vqkvS%ly*kQ}n$O^v-^+F7ESPsN~+M_j?og3lx5@ z2j8mkjgJlz0*Bs#7cc9MZ(pzAB_90JR~3G#2j8gi%RTs=8sF-{w`=?c4?dvr9UiDxW{ z#)XQ0rw5;*>Gyi@jSCcg#`5m%n5O9i9(>&`ioVE$Pu29M2VbP+sq^4{ntrwiZ)*N6 z9{gTy|3x1BW=+4`gLnL))q_7@pPO`e@RsIpdGL9fK6OQR`*djfG!K4>Zm(<)ezT^} z^WgKe{FNSj!f!qJLM>0D2k-c2vj;y<%d^CTZ`JZF_26?g|8@_4xu)Oj!GEOr@Acpv zKliQdZnq6u-+%|dMDx$`;FmTke=|M!#hSjtgKyFFvpx7lntq-Kzgg2S^59!E{bCP3 zOUvKt!8dFA4Icbi+MbpN@5Hg49{gf$&$Ji2+ijlapW(p|(fso~_}QAi$b+xb{Hwiq zO<(81XJ~z!J@{%(-{Qe9*Yrz0_)1N`+=E}F<=O1PS7`bU557{<`(Em9A5+t(dhwb* z%Y!e{^w}PKfwpIb2cM_uD?Rw7n*TfxK3mf_dhn^*K8rp0EKR?}gAZtVHhA%xzTJaA zPSfx7;4?J+UJw3VEq}(#-R+sC=>r~ow(c)Q9(<~%H$8Zt6aT$S+;=%9L z03ScH?_VU9=xULEf3zO`KPYxZl4ZKpXR~0>hUz&gWs&_^E~)A zEl;Hf@66MxJ@`CL-{`?_(EOV{_-0MN#Dj0u^h-VXEKT3;!7tbJn?3k7ntrbbzf{xv zR(H4CQM!Et9{dtbpXI@C(DpYy_{EyO!h`Rx`Oo&?o%!TE557|O$3-5zGY?$s!Ozz6 zw0iK(TAmFae5#hm^57da{Z0?QbzzFk_tILs+ijkv&+y=X)%MTx;Ad<4A`gDAmcQDA zuhaB(9{iG9lswHIe6^-;@!Uv!I-$G4`teN0WC z>cRi0`Dc0XMVda_gHP4;6&`$^rmyticWC-~9(=Z@Z}i};MkW7Z4?auNFY(};wZ0oX z_<*Kw_u#+L^6d2BGc^5P4}P!apYcj}d!}jnfCoQM(-(R0shZyO;J?)J)OqkeO+VX% zw>1A24}Pyc4_f5Gzo_}AuI(=Wtm(?m0S~@a^QrdW-@aDS*Lm4}S5Zs=h`K z{@{<)8WBCr1@AL{OoOt&t4Bc@T}tF)An}uNkY0^G9FR+IPQ}>V2X>+7jWVGI!HXT zTzG8oB!1a0{NV|#&zI-IyU%lrTzGwSDWyyoo@as1ufl~t&Ozc?>B48a@YODSmJ46! z!k^~C&vxOnUHEw}ymLm$>_!)UxQo8og&*OJ=7rxGgH(dDHF8sAF{5%)_Di^-dg?HaaYIfm|bkVoC@VrOr z{1&cSu6!Y_B>k9FZ&U3lIpaefu-{HasTzJccpW?#rbm4WRmE659{7Ei)-(Qn{d$J3k>cS`PFd#q8g+IkbpW(uv z>cR(H_#rNQmJ5Hn3!m-6pW(vix$tMY@I@~CSuVWk!Vh)fD_nT@)sRXT{%jY0wF^JY zg|BnrYhC!+F1-7YW}XY5>!NRT;q_H^$!&Jwf9IlaapCn<8_8Yd!k_1&U+lscxbRC{ z_(B(csS7{DgYu<;WxPOMJ{~13t#NQZ+78Fy6_z?e5ng>x$ve7zte>; zbK&>8@cO7m!`Olm=$Y(}c zLw<`F^US7oscT(CNOt9(4U(?G=isk#Vi8h=MKimj3%|jq5#~^8w+nm{VGf~otH8$+ z=8>hnRNx~Bb11bJ3w#)14xx67z`Y1_=(HOJ-ai8{o86u*@Gim}D(z~4zah*a(ykDA z8(|KOc9Fmz6XuX;XA8WEFsG(=K;YL1b4qHb3H%CSPDO2>z$*!J=(KnK3dG>&2y;qm zcL@AX!kmiQ?E*ham_wx9D)57ZIW*c!1-^$cheUg^z_%0TP-wRZ{0G9E!rF}j-$o5bhB8G{PL5>~?`qBFv%7ZWZ`g!W^>fr2-#8IFs;Vfe$0h zq04R&xEEm#S$3nq`=8e-h>pWw#6bC}9pwcB{Y- z66TO(FBSM6!W?q!#RA_>m_v=-BJdvwbBM7U1-_9mhZcLb!1aVVq}bI0UqhHn47)<$ zs|a&wv5N%0lrV=BJ6qs!gt_#v0|H+_m_v)5Ch!Qt96D^Dz~>R>kYVrqS=yg)5#bJj zPb17B!fqG%B*G&Iw+ehLVGb4cQh|>kTtaxUz=sj$kYTq7+>7ui!i@s&zZURl!m|b5 zMc5=wnbC0O20U|Gtp)G^ghwNM0s@>FU2jI)tQ%njv#T87+J?i-SZS&m z-O*K%ZAP{j;XNo8jP9{Usd8n}bw>C-Vfm^V{nRobP+3>sOmJ%GQx+@9ObtfAX4$Sj zWHl13J{4Bmjqp<}2JX8XpG2y$;bcVXp-{z)=jLHgBN+WY82!eK(M#D890|YHjhwY>|oM(H1+A)2%HmAjsW6?=Cf1rJ7wn`+AO7@$~t_ zQhdeBIb5vZ7_*84iy8eor!^R#l9^^kzqF2p2-bRt4C;xXHlu5V3MA35t^Xn8_L9uB zyxy4&haqu9UP)%J&{byq^2|Um?!TV};^}|Fu1$ILGc#(tY`6wRbGlY?=%W#L?V}NI zIMs~%FFHHL*XDoV&OttAw)ta7eTEQfM*TMO-1}qkuN+h79NWeJnlg%H6V&N zk;jANfj)HWUZ?28PSN9}XlXZ{d1(vSmC#P#B)ys zGc!K$@tX(vtU>$50jki9V}#ct&?pDE9jX3`*G)*;BZ0nsWZFDnJKcAY^ayb1dX@V0vq&AO6nhlO&KWFR$--+B7TySt39Uu{T~ss3*Occo z!XH2>m~t<;!jykSL74J0u(m!ym58^||Bxc?KUk`(NK`ihsSH)!FqUd6tii(eLV{W6e>rJq28cwswOpsQqJ#7AAZM0ObshnTU^sSLH~D=dd!XTUO4e`+`i!uEl% zkm_y}M_X7wQk|Ipr`v%=oMTK%#5p5u_eCrH6(rW>Y$|q&wbCI<&!WBVLMi14w;*+V z0HQ?w^+?+1aWIMJX0sObi(h|~(hbG1&h4x!o|`UNpIYz!ln5_7&m`0H5=_rP>IB7f zAenxNc^h;c0=ru;VW#Nx@a0mjSEAgHu>Z-b+?Pn&Ppfh{NLyi5F0=uRvWS?Y5ibC7 zDiK#{#N%cx_b61A)4G~ES~qGP7|upXjV&No>i+?$!K%hNNZJKbWA59xC5soR;-NKQ z`+|$@$r}HJ2j55I?*{%h7yS=Eh$)S515F&uy~&mLp_6xs${Xsc|3xRSQ04V;GJod2r)y! zw=4G@N%xVoqMs}2jq>;3_#2G%yBx)WF@FOd@cdtagzKCtP;L<*t8*9BZ~C?oPGE$m ziM`Ve*aBsJG|9&CIlGIObL?ErQM7pMH79oEzA9C0h5+NnRg4?Al0sYG3#WAz!s$eC z0*g;X3jc0AI7IiGj|2pG9FNspBf;=1!KHY7SMEu`b>%)Re^<%hO8I-5{5?bdZVi(r zLlnP8Fkwl5fWOutRe!bA{|IMTvGh_=zu&od=kDwN7P z#jVN&u!1UQgRr;)vx1oa1yDno4Uk4_k^Y{ba<_|slK?pF^Mj=0^7j$RT_b;=6ih!! zkCwk5CGgh8-?LHHDOKL%ARJ4-5%oiiYw^h0I4PltYLvQ%A$C{pC}COzMlNM8QOs1k z+y-Xg@^X{7#a}=v?Q$jxqK@x?UVW%)my<-CJLKqKLc;2D*o9b?5&)Y#L~}D!VaXcyT@u_ zH#)-pPlVkd>~?{L5|;H^ecZz4lUY2sIxB@k$+1IHd@HLt^;xDmyM*|&fo=0Y1#zfs zo1Zr4dKn@9E+p+q98}`D$0;8Dga<3Cck%cInQi_$kpE41T#D2*#e;gUp3Njs)^%v3yz$)ke0Jg#^^5A1nvMN%nPFJjU zp9)s3WObQKoUedw^N$5NH;~%=Baxb+c$`BX|HFuz18>T`{ua2wvpYl)EV@FMVUW52 z6xP7+G;Vz;%L<@rbGAcQjLxBfrCb1DO8-hQ`W@G7BiN0i>pOerY{}WqRa*BYT4YPZ z8Ju_JVOX1W3gub>$AJNndJ?JpfHe8TNZM04S-_g^?c|!S6BD4^PaEmvg-bwVM!&I^ zZchy91BK(&367T_RiHRtK#r5R+Tl9Nz2b}&-U)`*CD?otrPhn#Hw~t6$D`EoBHZCf zl`2+UFq7TJ8A>eoNy>sL$4v;8$|O?yJ}JEwgsOBqQlnMrH7w2d?|&;u?wQDgW^eHk z{n+~8+k|E#g<%{Sis3?}E>H|-BWeFh7FHi&iU-VRvQfEl5uAyH9QZc z;R{Hefz$-Wav)iLiK!AaOi|V*9a`BMk(B8fVXzPRia{q*7b^z;MbhqdK$$*UAToW7 zxjtkX)?KE{h2`TYJym2{gjBU+870fHN+!`OR!BO^^sml@osJU*wFw53kh)4SFv(!1 ztbe?ADpxX{qGWmmD!S~n;bhwB2$X(UWa^F7bj9)~*w=oUQ>R$&_v8^PBpqcsHYw9> z!r&dyDh6wjnyDE4hYUW(tj@CyfY7@FjfS?Xze()Wr@Kt&2+IX1%>kp$KO3oeisfXo z9HM0Ug*;+~q@zr?ev`1%4<}Kn!UTh%NZqIy1ju020c9GjWLkBj$TSx!y6m)ASbhUD z{7+>1FH&K}@=YY|KQhY3avxAKk&ZI$vJ)~@34j~BGI$PbJ$AD0?JmRd z!eT0@)l9h(sXG;mGP3BeWEhNwhFwTU8D=UOxH8)^h;|vAU~n{2Es8-ZlASpaz=-4v z8)u`*K8+y4iV=C1VK=dvWj{)g1s)K5qQLD0Z&|k!3OTzsYp0%NoEQeehXVpO{71AC zju)&(su(N$Y$D)z`c;*Dr(9zXw#`JpwB_0Kmk4`nnU(t&&F)pd-(O~SZ-a< zqBx#7^op*Ism6&VKHn8>hob*LF@Y=QNdm+I(gfBsch7wyS&n#gV= z{1_=>=bQPz8sXa{eSalg9c%ybX6%AAGqQ2PNoGNPMre9YYp3BfiCGYOB_ni++0>e1 z=C5hk2|4WXkRvuG1C8-kAO*=uunzYTeHO;Y*3KMS*o^KKdqXyQq?!L}XaEFk*kKmr zE(U{!WlFE*$b^tMH%jQak^JMi&kZE+JZq(J6%yz(9tx#VX|=DJVuZgDWk#n##9nCl z-o|Z9h>53Phtc1x>HP;Y<&~~&jy{+yHmys$3|3d|7n^i^Y;=aXX4?top|6-VuSMI< z{MSNTpytQpM2ycx#XM^m#8}RyS?4P1$3mJ>BdYUt=dhGoS}mvyz{!AZ&a z$WAp2{8J%&!z6AQzacBOVP^bdu-jxtk2E4b3u=67v?Q}HH;l(+V<)+<{RPlgxvI7y z4g;hp1B^IcwZqw8W0#oHXv>F2m@$+6Vk7-Ep1$pb6yGXoO>u_LK~DMSicY7e7?E?C zN^DZwrvePdipb%9;n45B<4{vPxA;UnqOU2RdJ5+0T%GK%*y4@;B+=m{R6y<1%_d(8 zl&6Q7(ao2s9%(hHY+9vH&X&&4j1y@tF#gWjXz2fiFuyt69^Dk`oZu|egLYnyTZz+jP*QRqxCi;UJFX0~W^vtXvOr2r20TdCC$WpTO zM&vEY#4Zy4C=B-Wb-x*qX~sg_;kP-voB&~I&MP>KV|$P3kfifS7J%mH+712fhtLG< z_xWcV;k(%LnpzPc(7iV`begeIy5FQ3;UG$vMgQAbtn0g|$ZT4WKDbyN?p z4%MST5xRY-z6{1Ki$Pr0`v63Rnaun>;38El%<^G#fHf~0t;#n1OSqY_i_(yc?lGgm z%rxuHZFB*O8v~fAsNsHee$_uvV;Td^ol+axq5yFWl}33CV*QH^11K^UbtPmHhQwY? z56l0gAz<&OEbL#@pe%n~=u)$3eX5z?X@s{>;utqcl?Go?nvytSK_&x1Oh2?neulFkwn!}1SXQizZiF9_+RBQ=$oA>N ze*vwcj6MNw82ui7>=)_O{u9QC!y|T=pk*Y?n6b+<^RP8}yd1$8kydhST4y@LH4a-e zv!pLYZbL=rKW~?l9V?0FzN^9pSlf_PMb5{}SQ&yh^=P3+^fwqd&4~Ps4B+N7I<&0z zJ-}F33P|(9vnm2j+o~J)SBDM{#;Uc3lR*VYGaWBnzIQ~J2NCR}puIH;+NtqH9}_iw zi@3v)b4erhi);@qC_`L{{%lwDPc z)uK#a=esgaugl2Uq$ur4pR$oD8RB8#X9$bd1XKs-l5mPKc8SwptcQ?+F41r=X3lp7 zVgGn;JL4!q4%9o(x(T(IJSuca($YPi{)~94%u(Qf=|bGo2;a(@3;h2O;0Xe;x;k1Z z0B6rYb)lmVZZyw~9yztVZ}C_BI4p3`MtyBslntk5yyQL|?-I zGd2-Xo8sXVbX>MeQe`hxg9!!>;&$H9+l==<3U$wW$jon_|0i{N(fbvX;a{wb5@^cb z&>PJvF1%vgd8KrPlC>DS6NQ|4$3&FfWQ5NoNfd#%YZL0Cv!>4L%UK{4mm41N^VJu? z&ZOaBaVZ*06JnZ3tknjT7>cFsE%3^mR{In%p4!6k%WdxY~!j%+l- zB~aIlPGG~HliBr-*zz1iD`4gwr|g+!pGcdia`E1W+c&XH%wJtb^Xj5B@t#kViFJ8+ zp_6M}PG6(Z$k>dXlWD&WbE^qc2H4TwzhKapd2p<-_ByccK4l(=*%M|D=&u17MNc6T z@z{E33-w?=&!GKpm|zgkEjcm;BI@(=REU=>%IMs^e_=`Si>jY9Y@KYVZ8(x86!<1l89^n#f7M!H>@7CszMTO4y*grUN zg@awqIYIvZ&```6cQ!68nG=j%kQ$p?gh(4iu)U2(%*L{dO0cjhWF)WY+ia$6=z&*fmB;sJdw+O$QgvS$JmW0<6emn{PgYch{@F9e6 zO~Rk`$M7%*KEf75eJcsqB;k7qk59tW2y+sy>DveoOTrg{zkPBNZejkBN%&gA2PNSV zgnxjyYJMGnVZXI_Acz^I8|)7xvk_5%@-?gc>yr7)y5--Z@+qb+|EFYrFy8O!G+NvL zTq#T)&)t%qg6UtoGWsZZ2wWb12f9kdrvQ)ANNW&+bZ$VVnx7&6cJN8q9q_$`9lHZw zMA)%AV4L;E{qNwR`Pn>EOVqbiyh-2op;*s(j{ z7YI9c2W${_><)Mb`F*b20q`v5zng?-5MG;vw~+qdN%&mmKbC}p%)eK|XtyHf_rZLJ z?F|0egy-mdW7*u2oYtZ+R_I-5W-c%E6h&eN;u`uZyU2N%qh?@eMrZOBHU2us2)_e* zq-Gmo?vR%l%SuO==4>ntx5g$_8sRnAm&JH?X9b>3`%{9kg&CpZpz+MYK-2zSq2Do; z)wKVh(3wnSH|_5oI+>}wrv3iVF-#RT?LRnVFl9FFKP2R5s^Zns(LS@SG#f(r;uo)q zl@~Sc&oOT6)0-Yz_-{-+jAfh5ngRElDIa!y4R0$MImlOJtoi^RmxFJ7io01KeyBq< z_HUZjWhJMUKdfz9SeatR%Cn1Cu!>^izSffF($U%i+-b;v#|Sg9gJBD7VNXQWh!@4H zNpII7rx-KbSO&~73Kwu*Lhve&&&8DP^x;KD_&QLDpAWy%2u}eJAGK!qImT@bTuQ~$ zSBe6yiCqKS_j)N6e3S9KEH*K%7`!hJ=5I5?JmnZZQZ>MEGjv#S<37`fJb_@y?8ssy z)I8uqwBW>md60=U$UE2-BSp$*<&mz?A?3z1Um*>;Y%^LO;4KR?+K}BD5IGy?T|VB3 z+=qH(Y0v8qku0)}zALMlA7u?V5%NDOFWAb$*QNHw;jm1r$ z8O2R&M%v3IcOrA2MsfxDbl#JwWG9*;z)HSB=BlfaDM#IMsTqwEJU^jSKH6RN`%m9h zE(K3Pq+%1;<4~G$QS~$X3YfT99Mv8tNs)fEBt`t;NXmGLA+D_yS4gneI{ekr5?@b?moPz8JRULhhSXsElC)s-3QW+8;my5|#xuh%WXnf)SYPjUri?RC7Lny( z5!rv+@8Myxn>84ct4ZaBpwPjF*P~XXp%U>(et{XsERat^mpuh37-A%N=+@1~z#v;e z^i=d8c&6gswuz(w#a+|rt{HZwDt{1Vi08hCNq$LmqoThb^h%nSAp)XbGCryOsV;Rt z^(XF64IFYT?2i>5!v>%txhN7@p zv#BgPDXa4q#W!brFxq7ujPq#ha~k1(=o)3Q(OKkC79E`pDMptTH;*1gaS+L86_vG( z#t|=ug67dBHUpHyr#NqPNyBr+1+$78o>Il~MvrRvYl2(K=xnE~osuX=zA0t#a%l5l zYL%VM*#oZ`ie^HXjD-#l5U8j-&l*WBS zjPT!(fQ&}?XXw?qFJRoZi^lr37;6Aus1K^+6)DzUbU*QiE-{3*Wps0>pe%Ng6KH>8pgqk@u@Pv?q89}^PjKSrXXi-|d9W|s z9HIaA_O32ikqg{lv^6=mQ2Pm#uGy*YF4QOfk}^7=`@rZ@r`4Utl$NDS+Aktj#f#gA zqg%*OwrW%g_SI9G?CkjLcFe>uJbp0uc%@%_K-5H2$AcB^#;Sv*H>F zqCfS?+9ev>hr-MAe`y%bhC2}~Ao=JNN1b4NW{SNJ!K*y_CD&JoF&O93pkD%qu9s*3 z7l{@M72St`6BBca%T!b%j@^_GD@!aq<}GnoBl08)*cT#(f}gSMaAVawDEIF^YzBWY zLH^B~O1f+5n=Q!7VOBi%QX$Na*}|NiCR z$8!W!B?*Z;$i+Zdl37HC06162Q3RoeQ&2Dv#nSpF{7An`#8%CeZdil)4MEd z8Se{Wm*7gwS~GCl>UvZcZ4cs%D)J(jv3JccLVy1Y0B#uL>?5&Z`~z`K>ni0ShOSWj zJIET(y$4O8F1w2ty$frBi_a$mS!e~6svZNv{L&&L{3v-~VEzk;B){{4#JW8f>$(51m~!ogTuz$@+(mnk7>^Zt|aEq1zZ|k zQ`}^y7|p2+;s_0EI(p{^4^B1i=nq6rS7~Hp!x45Tn4$m8&yUYbDan6({;4I=4MX-u zUs?0bi7D;x>`mEg*0kezvv+L5QK|W_E%>lFx&~x7e}rYoBd=gKp3+{N-)h{+lRI+} ztH8cZzL{!7o&qKq!^m8Ut<&we__$kR)(tt!RU?ykvV=`csKhL@3{Y0ys)UE zJT|uy;jRK8hvG^;rPm;+RRdA&AkwV&AuSvnmOmY?jnPKBUFz+yvnHM$mf*RMC(2d}M#9;%w~V)ST92+u7&KKv3k%*}}I` z4p(Z)dqa)LA&0rFA)fvjwimDnvGIt0gl2>*x3@9!zgkYen@lSB9jt-=ehR}2Tpyt_ zXCvP7*`3o>Ja!_sCMHzyXPqJ?*UR}+6K?c2St+n)8A6y54$xbh&VnB-LaLmO{u5-U zDC*w6zZ%_b&lVYc?f^+FcQg>i(VfL$V>Hi)BxTBH3ocJfHSXF5yVKiS8;-ZDk*UUs zJIhcseq%~;{$AtGF+i6@Um3DL`pz2r#FW?G*`Kl>C-CN)&w9s#sj2y|&wsl(+TQst z#~-d@+puSC{}~3t5*Z+e!sy%1@q;~GGA2oenx^ZlG?}E^=OAA@C|&`u`%}B^FkbVe zbftETAJI-ZsDlSvHz_0A+>0w~IwKQf!dIYh-rk~z+q-}$j{caRJAxb{Yp6~9`Xb0# zR5H?(cHd#W#IuJ8*G zS?5Cw`z4q5G+#T+2ZFUA=)S>ign2Z}P3~7X_xrmU{gC_q8CEJx%D#)Vdcg&@pCa|0 zZN|r-UvD&{hZ&J#RD_!?(u`R5eb_ZNo3ow_J4+-Og#fdM0$c(Cilgt@=}=&`4@(wn zu4C=qnBl)ba|6{Rq<5Icr(dEA|m$#pL{h>$zaf{^WX2ogVSjG#HzUcr`0v zErGbPd4c$(6dXlDh9!`pAkDbTf{4Y?cmSt)axzRey%1IypJjyEt*~vAhJ$e&hq143 zERF6RI}R5PDkkP^x&{;Z-Ha(8vq78IW%JPU_qwKwx}qj)`aNojrQNcB19&YwXU+az z@d4xVu@AC!{*j!-q+0!GNuGl7pc7os4m({_@~JIN-<;j~Cj7Lx>E_G;wxBM7{#Z__ zbw(+od*oyAF0a8XiNcoUw}x^Z9b^zr%nJ%v{EDVK0~O}%My$9;7JV%UVB2+HWG{!V zR+J z6$ObJzR7{5_E?SJQWiTGhANJg1{lqeUmQg;f;I3_M)-NCf*41Xyv)u1soR6f+1J5K zbUmf{H)p1W3?~~(R3g)Qb6q#tal~qU43v@`=ZHy>yA~WP>&@TF+vdpIj*?2=q__!b zLnlB|3VMjRuG3qnnVpA5D#Kk8)q#NNd^cx{%&A+F+t)nhM4RD|y}-ZVOvWp?0rsyE zwt)!&V?_QXJ~$~YHX>~a^6m$SmGY7Rwitr3t5QSLtT$ev1D*Lk$klOt!9*Xt+_-Bb zn@Mh77k9l!-+UC5vDpDw9r?JDkvNY(1LyH)%j>m6QAVA~r#ViDIY}dGMT^hP=)8Ms zOX7U~Eo&?o%K1F!ElV1WNH&VE#(!wE>G18zt=jN-Np~Z$GE<7yp;L~;mZRJ(km1in z8S5aWNM9-$3$7Sspsa}_VD#_b*fpnXNgx;-k=oE3Zz^Jk8a|M-QI-M4 zUF~)~Ws!O$NAT96TvpQC>A%+Nurgc0HY76UY?5C4sWogBs16}cmoHqgpZ#C!@lTY8 z9$(>M&7*u&;e9|*q3(21;R(!H=sSm@EXzedS1o(;kDBp=0% z@C+2=p!EF9U0u73{<5u~g{!@14L%ZuZ#)>|9LnJS&VMd~A!3E|$D$}F3h)|h@hZ(4 z_fp;yqsY=mta39Ki7t}_u_)(diFVAT%OhXlA`1~}eZzlx*2IW}rf%cpG0%F{#rZrE z#{92mC4}bJKCpj4xj*5!uLqjz29dB7n_^$<3ABkfZ;kLId^`kB9j37`EyHvnd=y?S z3KrxJ1y3U~i0^B}{b#csJ$_Z;_)j#P*@!ehMZhr(Af24gdv5K8}yJ(L0 zLTImYGR2x-wmX8ECeNX=h>>^nCpHQzYCEMb3J@2%~gsfepER8%DMA1Y8!%`)CeCo2#jKflt;f!EH@6p zeMlHf#yOc7Z5c+^nqgK_RUZ&a@QR zCOZf;))k`e*~(Y}@i7`JlvynnE6J?1&U;B43to05UVK!>5+^%4*xgun9Ytfo$wVK+%{#dzXn)^th^PX zaerTm4#k_PDSk}1sHAAvN*pxh>K5dm3|ES8AQ&s034yKrPjqc-jPOav5RW^?h$9zb zsTh4bh#*(t_JBJ;($yZsaYlujxnl<$sIsOZaOCZH>kL}`YcRDMf!4kOo-Gr5C^jLp z!g>ii$54$1LAR|i!lMHqXgUpLzh_exoOv3`8j;?|0>E||+XE_Dke5HEcdDeQ70~UP zp&Ihn0;OISLCo<2)I(&M4O!CITG+~{T%m(Y#Z)6}CxT1vvQ!mZZaPkt%R;#$66G?a zW!kKOQ?3r>_M%+j0$uJaT@F+4ejjI2ckHl)opKhoxFncmqa3bUoYilXE;o=N7c*m= z`rg?BnS+>kBrg(|;_DmS0~E!h(=%st&OHz2twI&-OtOQLn{ojS#`mwSRX8|8WR-bC z4iLd8?k0U|?ZJ7xGP)7I251$c2dSQUn#jwZ*~qRB_sfI4kkY>xai1agB07a~!CycU zEVwzd$cWz~uA;_0?hyu{VsFfi{A*6uT|JV{MvUbK%IHZutbju&_S{Zf5>Sh_{*uX!F1eO1u;;-gPv-3_7oYg3?tQ@x4;@<+zI*Q&FJ| zo9kM_67=SjwKOJjvAJoc@M9jBkmnf@o=|i8H=8-Ib??kFUS%$eU61uxX&S;?Dn4Ow zIfndLMH*5QGVAaceF1+lT3HW6I5~*5PFf~LN1Qam>j$!f^v+BPMys(Hg4m+_1xZ4~L;LjxyX82T?j#`oCB3>NKt`+$7+Y)-Nc zJq52AI0!1mb5Gd;(Xgd=J=CzSgX!VrMr1$M_%B05Zk4BE2H9oTp%yidL_K>pvnKm0 z&MjMZ6&q>OGtrX$@fY3mOZzU;CSF;h!h(!?-!vC{uxNMA&lm1 z=jDgC-kHFnBlyPxkJVJp7TV9c7YyNR!Pq=R>!Qkpf0ebBRm1hy_Fl{`S)oLyapCbc;HVof!hPq@72Uv;v@Yuv3TGHO>EMsg!5EQ+$_X<@t2&L zZ#|@mmn4YuHL)ec4{2iNTQf<_wR>4?KK5tJu|GQz`?E+#ODmb7_Ge40ab-g$R)s8$ zZCQXEo(>m~Uqiu&!*^vzppic0cRphMdf|#<@;5ylCBDqFnda zb?=bHM&h#}!Kh_KPG*$7WgV9#&XN{4^ppPS>@z|Ko@_&qMAy0mo`~~4XBlr-5;kMS zQ2A}{i%m=434lSX}@RGOgM(9zzq;)W7u%XM!(Sk@0NeN}i-1Z;bNR-hi z^04eF%8*N0_}wa5mzKevm?Z(%`3CzT*G0i7KjF0lxFFo3^KO~HiXObHB+795l-hY0 z_ETScj=qJc)e9^!|C0>}Ya+GeGznv(Et{0MpziWL~n#R}qZ+ zcYKZh9{r@ve{P9mlq{s)NCc6ne*oa55fDV=MkU|3^goNzZT_D};vH2qNSl8ZH9cs#nnokC5ItEoO`>;X`WQ8%Pi67|P;H{%+zCtBzL{{^_O2MzcfK>=(?*!z+zG~ROeyq~qrqsn zVDzP=;rwNonPnW%YHD?Pxh!jC8FeVO24uw=`3G#|a_5$@e#7o-at zws2MJ`=<`PVVm6Lym^S6P4bf|I?QhW&hZR7g}oJ^@(1fNaFg9ygxL}(6wCeW_gH7d z7o=Kyv4x4t3^7|erC_GVOqW?#9D&GJ*5 zKLtA}s^xz`4JTn&L(ROR{!anBf~L(6^f}{Q+aVl3H>hD^jaM5-Z24Wb|%K}|hUw)v+g*j|ZLRzfHpj`59?UFi^x+klAwpTR&; ze>STeE;1(C#@ez(H~FiEyw;bLe+5dl`FS5v$^R2JNsbr!H#!E`%6*f>(7D@g#YTm0 zpC6PfNnHL^wpTpwvl!tPY~JWVhFcO3ZKo^wFQeFao$ynNtY5gf{|RZ4ED@+4%%W(> zHvbf)e&^L3dYZu7KTFKz-0g1kFRM4i;hek<{%)U$nU14p@*4)vqTMmxxxy@bH>kt1 z8pBm+wkCby*i5=fq>;OPaes3MrP_oo6=kq>NF6K&+YYIo17ycA_t*Q^{!4`XF`$(? ze?%(3yL}e`<=EG*LD?3D)V+^0uB^B3_*SazFMKXb@F_=X_yNq41H65X2vFp+#{W}v zFd|3D3fDh!fY?3!Ir~zcbq-8!yXIqMu^G7ijdQxOsI)v*iy1Rkt+IyI8(2mv;|!;| zIR814fySo-%?$z+z(#5ze9S+z_0|~SPtcH9@nVdd7r>x_z{uHhg;mN!NX~a~lz|9` z;pIuVzKn5^6iASqX4$(s;d9CLSuFRX^Qg(ZRBPudi37v=nwUElECDNt1=iso>p<`m z<%r#<_5~3LHiN|eA2>7qZ$;FIosrq*-viF7t!$*GCu|(`zt1{#N3cKoDH-ok{yLOz z^S_uV`!rJ3D2t1EaEpfk*&&p0;(%v<5Ji{jK0kOkIn4D|^8*;DhoKH}T&(vB>Qgg> z!5CIB{@RORMOh#CH}=P@3HossoZK;O^B<}u#+b{<8r+g;jhwSBHSC~VTZ2M%`mROhLQulZQ_wGJh zvHEl*Jl%*~gWd_toi74KQLQrDO-NNhAXrl^U#3!`^D#NXdd^vI*uAlB!1;QLl)exo zN}WQanoyd%1yTR$EXwbIDSL7sZpovl74c-6&3(xU18HV)z6wDiC1~pf@J|?~e{;dA z88au15(eP3RPM;p z%&60k#^JECEOrB8(1H39-wIBO@Gokrl>Yu;ivFfO3l%2g5A0V-`(2*NP2r#IuV6BG z-_wV4Wztv9Wz{m!u0wNydSse?KH^NW95;nu*X0tk_k$RUuljh}r+5#DY&PO@@8 z&*kg~+mY736%zJlyF(raq?OpWgAiX?8Sks87dZ@~L%0q7IKlXmy`OaawfXyC*G2iy zFW~%wbO)TXJq%hM10MKDV!+49w!cE}fa~1~lyvzwfmEeeBlWDSGd)T27f7zYY=Q$I z7!n5xji?s3Hp2H1j(#dVnEPSjTZBM9bTS{+<7*IDig084Q)r5Jb9}PFl6=eDi2O-x z;#iM^lHEj9-2cU9DtA^wyZ};vcZt`R;`LVAEEn2d3ECge8RUCX({e=b0BpaB*&6uX zA+#R=6BF}oKp-Myapk`i3V_WS;vXX1$9VpJkr{`1(YtYi`w(rE8%u0nqj8BE)HM#rFW+b1VYNfp(jy}`v z=oTasN5{Be4c(+2-A5~6zXWHBWlp+;3{u}XgnuDn41}s*TdNj> ze*_2Q?Af>2DsoIv0#0(-zH$VNc>!Dy2JwfQIF?|Cp9h6ww2;HlR|{*8yq z$afEhW86D&on>&#V>oRa_rLi*r94`5#n_KjiE7&YIgs&bhOxN+aUt6YjM91=Qai{WpU$Sy!9?CFI>J_Wl=A7b(_{u)sKpkhy(^ilbN;K7yLi*k65#mj4$4 z#)P??amW3qNd2=>><-~|6;gc^ukqw{u!z~y3|_i~iu%@ln}suKQiDrmE5b2qSoaf?ymSBcmp4BiA`Ttr-rRJsyzDNENd=EnV( zgRG1fo|A3*0J3Q!)uv5=+WfcR?^u*(o7S*!AmD zJ|r7KiJ8?Kn4wxHDbCSS+GW_vER#Y zQ{CLt-~frwg8dP#(s>tj$rN2?qNM7d)ku8-o~qM~A;$u6v`QWn)qiTI>gOlObCCJ~ z`=535%=FCRs8piLB0n;+U9=? zsgUY6tC6(pX%8^Ua>`wWa*6oiy!`(IZcpan)ai{O@PnBDO+0YztoPt7@Z^#>3-93I zGc3+-d*X5x64<0A4fX+pAPg9hy@dH)Eq)y@{1&06y?!Iys!|83_t??4sSq76$n2%T zoA&Yx9e>8)j87I^$qeJ7*YL^+uL@Vd-9JAF{cqW(V7%mrgHZH&mJyHGf4`U^21J|x zeO$GhifY>YZAjgSUbc#V(AfV5TzM&KyGok3@ESZ;lGIx92Cwd!*t*QZS=Vq;8Sfoo zvX2XfdFqr4S29(+4aP>nOzKWE{w;$5Zy8#n5zP6SKCZW7Gokk{e&e=+*BMrJXA!>o}3CUEHm@7Z$)0vEZ$a6s_I{qFU~ zZBLT{=8_$F{DyDtM{GiDWW+Acum++VB3uhQBfJnUP}Z~^H}i7CE~34(pd!MXAU}XP ziLl~Y5Cr9GF3PtQW$18`*r7Vb!*7YEswP!HQ!N~4^2R9dX7f-&j_mNN7YOW^e&u9A z*%z$xaqA57D?y>dC60Kwl@&Q2%P80-&3+kkQhaaW={ISL-1K7*EO3m%kJo)|wJl|k zxZzIND1`hr|0?L9++rzGHFOL9fm=Kb*#3(1+nB#G1x(;>aFSXSyM_+g7b89#@=d8G z{d_#sx4D(?E%+k}#{Gs=a!I0+3y~TR{+FPF0;I28MaW*LsyQZ6P42%idR~(P{xgJs zzwh3lHtC!3a94A*s%8n$nE%2&N|!H?DhJ~#RP!Fvs|XZV+DD@vYc0z}E&Go+#yi0M zQod*S6YiHT;Yt~O*W@))e1|R8S9ke4G8Z8W+d8p+jXu~V{~|e8Dq&L4sT6?)zo`JW`$Bsas4>0pc-x=v;VV z@~&#Z$*jSBSM|kyz{JxhaHA@DR~7pQ&iS|ct|vFQoGVpwn7;|51NIN(o@%ji+B#lT zePkQL)UNwPYB_>Em{Q05UB3pW?$MM zR`~uYe8{~^Yahxu=J+G1%9;+wZA&r72Pcy(d6K#HXs+P*U}>x`5Y7NX-8wjk`r?u* zVwhY~t+oa!f#oHK^`L{mrz8X(kU>s3h}dD}x9j@X;lADw@QWSHnW^)R7i9kmQt7xU z2W8=3`=fNh;JbbaU^Q-o6*}QP)Xd|OvmIB$jl;!An|SgqF_6~`06D-V3Y;Lm!7G>F zh|c=T<(ulzH(V-wcVp7#{JX+xgnOgpZd3xx?Ai$Tn59QIq#?Py$&OMEf7kH zLkG|%H)mF}OQl-75=`Z75PVSwl(5;Z{{?Wlt_Y1Bzy?YXTUSwBR%Hp_+gc2)ApjfU zsDey>^<^^AExyNV-TvVOMB8}*}*5rR{abblo2U0h=*I7S^T@G5wh?n%W zZ6~nbiDqTdHF9kH2vB8B_|8E1eeox;T@aR7cDKWt6IWQ`4N$^%%YLTqih=kQh#)uk zae)+rEdyAZwfapdCZi(@;!2&Ydw)Eeb_9KLqtAz%ifFGEZ9jFBkP;X84@D(L<39z(A1zU&y)aL?-6#E(5lscYB}Pjc@k-dnjQ&Tq#aOxpT&!cB)5_xf z0<(686CfluG*w=>aBnJ2U7VqT3u2+v$@BCcG!eJDlSJkcyBiRa-B;mQW-R z#6J{8B<`h&LcF2Yo9)9{8WakMLU*4g5}vFTa*xDIAuWGYq=S;t?#Qg8>3BXBtwR<|UoU7gU zDGpmVYVB~lTcL0{6^^Rzo3yZL3eGG82VC4g6F}S_gr(U|?ukT&ORYw&);y)wK&@7@ zsD*bIpvE+jh!?!CWh=qI=Eh`HR%&5jmb==UK2`(syrCe1g-sMaD^YX~T9HMEJ4Khm zt|%(kweQzO8+1{uk8*$59e^EJ>qok1ic@sCD%y_eK>Fpn=zttmYbA;7QtTM6v4(n$OzPvnMgQEe?gZ>THI*8u|5?;@)GvcGgl4?H7J+TVxC&}gUFc?xg zBhpVuaz8&-W{B43bWS}BS_Pi^^7!$Nbhs$@hwMaEN6@e_{}>UEm&f-=BYkRJuEkro zS&6rTwTMRFfg)J&Qf4EJX2cJJ-3he-;uUfZ(q`;oF}28Q#2-L)Bw4IUI0TV|Er5l4 z1|DEENgDp)%vNH-h!K}}(H#on7BP=E(jBsg)d-ZLnaQRh0Jbx&HJdlqD|lnQ+K3Fn zYK}XvMa)41W02(M;L4&~%it?%bdi{u*42PP3bVy7eCUl&%!Bfjkr(?kINM6QL*5>dJ-#CALKqP1dekLuXhI}ti=HS6I9gUPIwdn(33unPb6}%< zWk%!9_l7AOC`*MhP4MiUZ7sho>0vhtiGThN0r-_%WrdUe?if1hIAmG>#c_l4%2o<# zqu}%@}OJt|2c?l;I>TRJolG^v?AW1Yja8XPYkHoxgL> zo>heYh7R=n_W?xd+*PY7be?rM3}hYJEX`#^Za)OeU-_^fmsHp&=(3mW(&rG)J^L*A zP*1Xc7`lPyrJ+o&n7*?&N`WGn?^COz35?~QJ?qE(n|lw*d-iv$*6DuFKDoZLzXPil zc+2;=KV|)Rs|d-(P^1OByN*3E3h--8d<8oUqAx$-f+;U2vqtlZa3UdOjsqO5IHg??7@$+>VA zl)!cTQPmD2TQ1G#a1S5X@v|`28R6r=m6ztp#hMzXWz-FNb;G{5Cg#A1X{sjXsA}bF z;w1nS@rT^X24_o%zn4j!e!ruyCT15^#Q)U9CNTIGiza5i^(h++V$>yw=WF66LVTho zX1?{DCf<-BuF%AsRpR|WP0V~NqKO%Hl^7>$;yNMb8z{5}^Q}q}GpLot7T~RbF?cKB z;_C7!($P^EZ~1;MzuGb?@m9dw(A)J^0L_5S)&ss3@GYDvmc9#rakH#_CEp78O#JHw zY+`P7y%ew(OmI(%0iP!H7h&Q1X^_OOWAu6(PC5Dr~aw0dqthvdOZ~LI+OdGayMd@=sW^ z8avyaj|~u&@03rq&vxe@p!_-ReD$6J_I6RTNHBpfX;F;+-S#`xeQn73wx-ImyRd=h zkrVljoLTazMxC#2ys-{!d?pk<5;drEARd^B2+p-;3eZ~wXoTglWGljT;5L-B`Ojpx zaLUHc!k_#D@s1q8r^3>L{}OwOEGwkaYj?cq z$iuJ2XnNO;n;&r2oY>#6E?a=khx7k2a(0DY;=c}Viu-Tau0UKw>S?4p5MS}7p>E;z zZfj`6dR`dkfe>d5doAYe{+Q~Y0TfR{tU;=zy`wcL$b+WcFvlTs?} z`zBJ~v3*^w>#)Qq`cGshMovA7rqb;&c%pUfS8%eJoF7n;O)2G^7I}`qHovh@Ldxr*9`0c&J zX4JrqM)|^4Bww9Q$1Jo}Jog~P*~GoWwwtASD*r>nJ&L`Q(W1(INcDy(ph^Tu35UOV zU*yl|jLv<~Ms)ljx2O1&k8U{kLGjTI-ZdgYw--j_Djk+T4<5<6D3|ds9>x?t-xV1I zfnC$5BLG_Q8`WJRZe7_$=;+wA?tZVXoGs0den1W-4_;DD$YaLl>$fm|BML5d%{p4w z9bR-eQ~XlW7Lg+HlGhsm)q7N)dUrr>RWFukVh7w_lX@?}eLmL9ZkP5OJIKFG!GV;0 z6~}GAVDnXN*UUJADSk!uezdzQF!NrM)BoY`e|?V4)`^`5)oh<2bugL@y+}nTwBLH* zP&K?RfTsPw!EL2G|+)KGveWom*`78@9UNIY{ciHc|f-NF9p$v1yO` zQMm~OI`;wlUr+tu6$yi=AKw+1(D~`tZ29?#w@LJJ<=8|2A9-&cA61d{aR=pUT$m0j ziVE6lkf4H~MnOb_f(8u;3W|zCfUqc=BvC*`ltgWt2FHCJ*HPScblgYTTOC($!F|_z zMFerfmG}EQb?@yP#F^)LKJWY2n|!*vs&3V(Q|FvIb*k>EDk{?cs_x!3pQSO=ve2B! z~^+$Wt-*^v-hB(31;s|6us>* zIoQOXYHX*;64U49Q@4yfE$6Ui8*Ma^49Wr>1A5^`lh6J8?hgIS7fT3O0<)JOn&Fcx zNKqB?G~fX>{3G`N0N9Dt#e}+Ivx}JpprIrppM77Bu_?!DBuiazd9SL;=xJgLH z+kt3sj9EOr#9P@T7-P;TF}?*`A&8NkkoB(lBrSYpsi?8~%X{zQ=jU*LiO?Z2?ha|U z4P^|7{IN?k84EIAmf}hR0%Xay+mqUYRvHs*UKMhlF`6v?PI&d2fT7ojyTuR7N4tNz zPlz2BBUVmmU%=8sb|)CTg*9`Df0UC^)9VMQ?mz1FgG{f73)GF5IrpE3K2A%o?|H8P zhW_NMgig+zVHH0w7eb@WQ-u0Cict4m#QtN~j9brG6+CQn)e5TW@!W%$2?tG)$hp=w zd`}D9337$~4@s?Ww#=+hJsMBlSm9s!V1aI=ry5r~gJB7+$$KSW=y-)<(2 z_8$>%I=0RWPH--DryI~GDeuT}FQNWMjwawT-X+Qc>;HUy9qb555+E5Bj zh?Gd@1?fnm1dCYyGJ8KJ&e@1h%zya&`1{gtf%KcGp+EKjYq`NfUlYp2jZ5mci|%q2 zrBx&r<3^P^rpx>_=5WS1>BnpYwVGChukA3blrE4i!QJ)W>PW{$nqU;Ripl z04Du^r^!F%`d9-x61p0A0Nd$*4s1`1KaGD${bKJUo0@%o_j@CuOf{yR0+?h7JmEzY zyob=8BBpHIKl4PUr>)_DzDpXw(SOv+!L>4@%Xo zpSS_^c?i*$EhfxQIUScBKYg-e(G1#nZJI%b_=lUp5~mps0YZ{7jR#&27y`+wmddy!hTUn%2qS$MFqJD2cO%+|!I z6rfuc97h_OXm5N9ZKvMh7n&yO;TFVlZpe}~RSec{tKNuPLS6K-a6=c_n|ySU-sA^I zsu4MFlRNYb;&c83utWY6dJ#s&#(5bDf1-^xAaB>KGSGM5t{#Y*TeDFF_)|jj0i5iP z8Si;g1?JBb&|u&trdc~6a)?c@x6=-DnebZcp;h|Jd*_Gs(HrvK=|q-UTQp;LW>rft zQ-x{e-$2b7?*O5c^*(%yI%GEmi`iBIx!(MH*ruJrIvD#2<<%yQ%^B~vX09;?+fZA- zVGuHyrT46eWk_W$r)aT|();hIM0yb}$`Z84B534H+&JUC2JnF4y# zN!ze)EP(r#g*KRb)N<(^TS&bAM`rHJP6hMKl3)_z#z|GE9=h{m?e1d^878(C zy_~tUEo^o77QHFe^A6I7QSuCty795vLAl6l=Y-RY+TkX?$Y-a~6i@|uDy4ulkDYO` zWt7M<(f-kl6HW0afklGP)kI@`%u;=FeWCt*H^*-Xjo4Y?9N+EPn@(+TPiXydmBFs_ zG%-OTI8Rq@MYnYi8DgV0rOjFaY5eG2p%a?}ONk0)H$e?ogQ{?o?ee||T|Vu1dXcsl z|MmQW(kiJ;D6MB>rFGv8q0*YIu8Gnr3Joav(F8B3Cgy*)=oysFdshP6^_`0dZO4cZ zE3H}*{+rSYRifjNx)a($!%N27i(qi)Z)%D6%Ima56^A-Uc$CBZbO9S$Wxx5 ztMXoJa=O|!C$ufK8U7jX$6p*%(nb7j(7rYaVq|d{o(oO^HrF$_sZizHYU{-0R7k#B zzoK<2ox#&@nY7L#gG2Pz zRKw3?H;1@_D=VG-^|zYH(h{QUEos&_CYLkigYiFD&a{d#+0gLL(@q8lL=9@Fz(1mf zdHPebBeLGDOQokFRpBK>v2EQ(wd^d1KdF}er%Sb@8t#IgvWYlIxnL9dB-$27|LAL+ zdTBhtn&GW`mGTnOutO`S{_9o0&2-XOLoYyEY!XWQG|5GHCPZ1gt3njqsAmLARS+Ixd$$19>$b@oc z45pq?|FDBgu&ar0P_RGJ3JvQ&*M}e~Vi5ZfIt~!YVi~VBsZcC<+E#Yr^9QP3ll}o1 z=6`Ep8x75SUlTe#L?iKrBjdfwgP{2ajTUFbM6%>>cM}LYrP4ap_;065jdT8mH1R+KfZ4&Cn?@?#|g|3${vf2>k9qLR?O(?kCFHd;*rhYypOI^ zGxh{#r8TH6p-IJ7(O(D#3d#kKnfeB)|2)b6)<5S$Ml_;L)BFUM^r61a2x z8eFzq-OVj2GFZzzF)bRL$4W;$Bl6!+u0PC(KHWn2+geG-m!%-i*67*YDhOF9g{)Etyj= z{s}RW>s?@L-a8GqJ;%S32@QjPNuiFEJi>FJG7?8MS^rm<-1OO(G_ftbH0&YpkQ)x- zHcAFJg9RlQ4f>OzfZ$`~0KwOSb|8rI8vZ@?NO?`2>Xg@9fk1hslgeu@TG=VDOWB@a z&OGB^S9$Ny7b!2*9V##7)L-740c6RbDX)n{?l3VdSR<)xgsj(J7-YSlUf@SW4&HZj ztIj}{%GD7aX2OP2=uFpOBi0Qd>+@FwMD^#rR9GQrKM}gw2|cw_$5-F2ueyRM)B;(; zV>9Hj`F7Ap0+aL30H#eE|3xu1A@AK!=!&=-asCVOSn&qkg>lY1I4ai|mphZtb(9N- zvXaUkCb5v87XuZJlB}{i=`%k9`{v;VwcKsxcgIHV>*^ zNjx~jwc}8-=e=2^xOPk@^jM-Drz-DGJURb zlWTMCh(KN=MomsNWTGig!@^C9Ak3Pejw%tim#+}Xw_lSEXUSU-dIB8*XMX(#YQMf( zn8hnbrOYqmTLK=F(dKpxKkyu)oNM*ml}&aGKR?u|gEuvmHeaa5=a9X`l2Gut(;#W; zvV$ECsCPyFjvyzMM`ffubhyJYynHkL(OiwldK;;Bw`{9?`pbL00qMl(0773mF`_49 zeej0yvCre0P90b zNpw{%BJ_D&CD89D!R(%(mkMRQD?z{+|G^p-_+UjZt8_LQ`&a{J5V{Li{E2cuna8nm z4~iWsMTW{-1t(zaKk^L(pzCh!iRHa^e0RYHcjO2jbknMZmqCcweVF!#CG+0*tI|b# zTYh!fPlyHE!Z`n$lffL1pJlIF3(f~X-g|+^jtWl`(%PnoKF=x9J5;ti_4zNVtSsGW zuUO&UR(KB2`&skPBlL?SA$3kvxm!>~{uNQVb6mL=R_=J7A8qCO5b|PN4^X*NDVJDv zxEKQ@+;?7_hlsfrz5hzfbLIaq>OJo^n6^C$)9LWvq%^}p(ci&U9cxA|J#`JwTq-@s zDR<^}jRSVxTk>_1><MgxEV#kO z%Mtmq#yP)ORgNyWvCuYZ(^{RSJg7tc|fQb0S-s%b{(w75;HR?wzh z)uyah>!2O9L1>>JZ_v&(X!9xM1oH?!tkn1=?Pelo1yTVQRxogwItZS3!``e?S=xFGc1XERdVlKv|pT~>@6MC4wk)^lq$1e(iafmPt zn06k(x9V(VeKViuy+;624f0jlk@AT2{$@bu<-KbNEHNHff7{uibwCKhatlaR=3Cx@ zgg_{N3c@Ll`z-m`?}Ih=s`2(cg#T?%BI{$f+I zjUW!$4ilO>Mj=7Ab16P7LAKGvK{4+QCvb0pY(9z*5IP)5Aexfxzz_)Nv?qw}=lkv^ zWV=s_^!Y)KYL zii#_rD_)T-K1Nxr_*<{Jw$F`=D-;!1K3BY1viP%c@oU54#VpRa+7*h5E1xUAU_gR& z=2*ei=&oxXAA%SYgHR{}p}b-HBM`yWuHd#AiO;al(nTZ5o%fC*v@8~%3SvPmVw^mG zV^Gh5I(tLs?XWqn#gLCtr&;f0`)P3sKhYUGoW;?+T^V4tmVn`8$M1woC$Y&byb3R& z%Gk!L0^!*^b=ywwuakFlPsG|y>W{3-_N%DM9@g~_=huAkq)21uf5hkCoTgUKTvWN< z`8Pn?xNZTntg4H6o@;TCe%#qTA2DKbl*uhhX?k`~`=_v(?ChRnbau~f%3){s9NeFZ zng3lV;%)zFx@c!3;}(SKm@Gc6FZ9KapD=Fg?4H}nh$q@|ex6WP|F;I6-4h(bER|Py zy#&|J-`ON};r-%#&ieu*bi?QGREV%;EI|FQ4&wPmGQa^pb`Z}}QJeR%TK|a-;)(Dm zA0VEF=kQ#ihPs6boF(p{N4eu|%76W+kZDpO6Ync`3^VB*9?rxnKQsaEaF=tvb9i)G zPZC}_nJb+lqmd#wmMNLB6OleL0^c% zS708j0Tw3UD~|)jo!9eEirINRLm09V!nRgTtH()B9;EY9Ukc{Dp;pPAfO3^wN2nL@ zbzV=F@F`C#W-fJ9Gd8ZK{C7q+JFn+oKtLW3wx3qVtXIuwSIyc6wdK&bn*9hJ4B(+u zQ%d-0ML4f#H=5&b-4E0_ujl4po9YYh<8_zu{%ZF@Rw5M%&4Bv}2`GoG_x58@gL4XW z=mzfc+(9TUF{X$=1%|mm)6LoQl*nJI@u_06W!v_CA0Ql&Q!Z@66A`xGl1F-BZ`WFs zPa_L!2FW8PjwXlBgmFjYblXDG&HW|&YH>GSsJW(%YDgZDQ=&R^t)^lu$4BH8X2>h% z%kMr~EROx(ZEy6I5Dsh)5w_VL#RwpG470rYzQ319A0l4X6!Fd8Q??n*Wt?x(d>(7@ zgB=qK`Zg|2HB2GFEr}m4__}ei3Oc6Q5pR9NKRO0p#SvCo%vTLr@90O7cEO9+lu$8&j6DxBKpR}+eTBN_6N5p5F5bWOezDH1;jZ^+YMCX8~ zjgv7;Cy8}>Cw5c#%L=SAUi2av!&hZQry5T=L!n2?D6qM^O>im6?CxOn;7&I74ylQ0 z|Er@ygjq$rIt4fxF)|vn< zZmCo+O{;8AeZ$ivRAt_`aeali?$+?^UhOiabvJ)*^>*R?Z zZ&|xTs$EZVf@+nbT800}kzpgD+7nw--nxrX?W}i!laRU{TdBzjs=d7pO?0i8NV}j< z5v_3anN4QB!r%@4kA6#>)FRQ=xh?KR@7)rPtoPl+Dx*_MhLeC;`y2JK1qrr(@kYST zei(*)=m>27CP5cyGq4wmBrOMG8#0bocIkh#U=f zNRYaFS6k#j6Pk)KG#xKOL%4zsr$mZ~xEnqSGWagQUE3B&B(mN+0CB|Jg#^(tI6}rk zCvU)2jvUv(Fh|Q9m807@diLxW#6>7GM%K1oDmJGJcxMS5&owTjg2 z4%-Sf>^?g&09yB%xtKnxb2!+pAK|J4MVif5kuoz9Q;p+nC>~V8v4zpSft*yz5)~ri zZ-camqmY00A?g81j-sbSjv7HY!jDoMlrZP;uywrrJZpO+_rQOM+%d=Bds7_$oM-+& zh7~yecM|MEbY0Kl4~9ta^P-`oI^GRJh8(F5A{4gUuHe)m2_R#g!XdGF0*NOa5-&g4 z1c}y$#HbxWqGJMyb|e&#SjIbSA@MujG zYkD3+eCc1|yai5N=iz>2FhE=T7n6bI8}dl&Y96yE2aM8(_>psjQag&Jw~@||FCGf(3E zJZMR`j!!5#VTqDE50DCa_Pr!AOdwm>utA z)@Z{Ssg~J2^|vRhu8-pA08Uxd#Zw#}Fs`(JUktm!eL1Fa7{>=h7YYth$-;$#H&FMV z9UbuC8|-Im^(fy=q3)fgqXTXy!nRlckuycLcj~rfmp}1vtgX}@{}l%D&n^g*^_jRJ z@WWK&KHGx9d5dJHCU)h={*~^&KQ8qv>~}8?7(KBk|3ouQ>jgPxa#yM2O5M(|^!7zG zA|~}Us*eR(NNJIUSv6Sk92n4_ap3TDObI&ZPxlRK z6S9m7F9(-Tc|V>|lXg7~J`7*uP^vaohJi$$8hF z$rzFOAn$#&ETYshLS2ngKVW`jyl04adB^CKf_lMw1wJI^8J}4@7D^f#=h;5I`zc3L z*1yN^EI`ZBFsr5Ub`YaYd#X*j@>}a+X69|D=SQpcIdAP5V&tI!`w}t8d;1YO3>cx} z*@b8@>lZbzLW1y|W#2l^?h)!8^WAjS*Gnm)(;MRcr15i14_M1x3kQHvg2i9)B18U_ zryJZSDeBO;mr!K^t_XD{N$jeZQ)wu_eY2CD^Q5k7>61M*={%{s`u4J!4?OAawY-Zl zzF}X+93op<3E)@jfz}Q(QfRj3}N|!)rYAkA`j-+=GF^PTJgn zW<9%am+7BQ&AFWs*KTvuP_YcL@Jq>Rd9=~CXLi#bvI=sQFBL9xOU+7~ZUlIH4^c4_ zyYc!pO=y%O8m?okx4#>_L+`4G?QlLh`w@IS4~3}iU| z6~j@=A=UV*VGwoSU;$C?`+SFnYIkw4RAOcK4Ba>pPphg1qF;D)!R@Wg^ve zl}m)tRyx;q$7tq#=)}<1{BiLVzs#HL*PSL7O#jBZ#Amf&qfWaQK%F@5L}*H(S8PF4 z*9#twDqvhM^wVH($+Pqk);Jg6W6C=RA;Q7oF}}?Es3Y(F`{k&De-Ro-1${DKS|_@b zc<{{60x$aaMxU8VJRgFf@4aq!q=jR=dXo3fjbWWmXu2WG@XmPc`c}ue$-E( zQCx-o8A+}GZ8z%(l8?qog?>iaS0@YK9pgG$5SpwyWS#u_l92flilD!?Go)ug*CKyw z*Rf1rts|4B@wPxySl~FBJ{lj@+qnN~5XgFG-7apHe>+K{^|RAgj~-~usWe0`1(*i? zyw^Y|=Ng;wYKa88q{8WE-BUeUa}C~QnHS!5FxdP%d)$mF^tU<4%;^TPG1v}@MDz86 z8_(gCKtH+eRdDHQ+THxq>I-z63or{P7sb3k!%SLxR!!FH=OA1)cAW@C@h z?Dy>AAty(%d(y7zSdslM`HkdN1FTKA1_xatd=m0q3xlMu=ffJt{}{jDUPu>R3Vtkt z7={7ypsktE74UGCUwMF$DAn+RCMMeZ!pKRl@Xv*>+K)6C?E7RpSI+#p87DRM$#hON zzD#9_QwQb|wf^ouDOu2XJ{%!MUhcll~I79dKh;eX4L4Nz<0cMl<@~`DkJArXx zQ=H&zS0RUbH0-$=aUP9Er8!&bn!!n~+-)<92QnSxMUf^WwBePrjmGT12ycC>)v~Yhh>t@f3g6wzx zkVVz#xCW;`oh2Ho(69Y1>w>fa@gq9YPC` z5EGB*i3CqT*aUuWz_6pTRjYU>>5zL1ZaMwV{vQD5z3XCVIYN&Bjm|J#ur9~misc!J z*!~u&q*ckKHQs^8#rqL@R>iX&SKXYB6y#Uq4PZwBY-`9h&?eH*e>_6}@nkg#oPS5C ztfgiD{W-FaP4*}MZe#=#ELZ?F&^Hl}{mb?CdikE&!!Odu}#xE1r$$^&X);pqIPX z_20yT%^b^2-zD@beIYg{WJJiOks$h;Op1u-I$qB zXE^&j(M`6bY(ZYw{|!kv|AWk~`5g(p<(j{fARGgPIKTAS)%%FWOM>^25%kQVY5)EKVRo)B zBt6}+2Km|$+Xq5vaQy(KI3(u;cn^}EO0EBd}hn1E>!v# z{;M!UY<~>O#_|A{9~>+B`DJms=o{-kD+wLyxbr^2pbxq%&hP&smTLU6`|GpbiW`jU zdrAK=e!UCDgD-5-H3MkUKLZT@bus)LpJys-bls-A~{xvKv`Xk~)r zess+L7sp- zSIPu((~Kicaky1c`ggSI(m6N|RRy~?0;)~%+yuuIa_~5Yw?Ct!I!Hb^2SO$0Etfm1 z_~KC_^J@ztt9S{a8rm9L#SfAY|y%#9s_j}#9{N}t(t>ge6yW!$6Libxq$z>N6JAz{2ddFKeX4B@qbX;I7 zLN~?*id0}X)pG&$1X)a8zl|hU-TN=<3R&-kYtkBaTa1JWbno9fk?~t3v|xY7=G#BN z5ZU4x`1M4=`B<>XdpFFFL}U)3??EBzm1hwTZbO(||EI(*R^qg{#L0xdaP*;-M=5_D z`4d$=Vl~HzJV-QtE&gVaFt;1eR$r~QwAu_RK8=*ALA*5Bd~at7TrH7yix@f&D7J>m08_4^E+o?hPe9}zlcUe z`Oj&Re`m{IL)vtg|2XBpoc#WlFhDZe>T?<9yr|219jsX`Mh&M$T&xcD;%n6o-V1iM zXYld2>1fgXaj(#QFFswjtECu$xBGP#^pax`JY))$Umh?{v9m;Fw(Aa`3ETf9P;~{ z(ijopiqF6)xj<~^jwDxxC&Cj(heH2L-p9suWC<6r)}aen^HL~d@8^o60K!*7apk7DYw+MX-S>?g>9N|-*RxG%YYH+%G zp4@P4(mm7`J6+wvYbF$FX1GY0^NuozSHuu6B;<=*`T}Y#@!)8O_VJfTXqSJ*2x}fu zcUv7T#@bJ-!TcoA9#m$Pd_GiYcaAIBmC*aZA4&yV5q??`JfgmkuFD=(5}ZT8UrXUg zpZARYp?K;m}8e$E%|x-l0x$ z`FfR3iV7^Zq7IOHoc<&=6udev$W=X2I9p!%xXk|}Te!Ce&PU+a%_x=a*zq#v(%mK$ z*BvjK`f0)>ho*`hEPm-~6k7K((;I`N3mpetOJ(LO;&G>IH`)c6zGe0Z^)prTFmE@yy{Pb7gapwZJ z?;0d*h!6ZNM}{QgeZq{ikw|N`aof251Q9CeQ|C``xa#ZPaVQW|jhjhb=e*%?WqrY@ zh?s^=If=0RfyU@J=j}U}>_n%yXsJqPxN@lN6V~j|J?I=IJ5t3?Rh|8-b~mIM5>gGn zsCFY75}GZqdqf2aL>srYh=x;|fXgXuYZ6=|KH7qk@~M(@U$MU+2CDlMp;AwBLbe5$ z0MVS$Zc;)<&S_V^v3dST9j;phG??Lw*}DucEa6`85K zRmAe&9;WsL*?VuNip(p^T{ZTd6|mEZPKRSmuuF6$pPj6hS&g`*?q9MdwFfH_CwN8R z63*B9#&yb17N)cTFb(TCM-9_OWTUL6m(4$@ihH-ZSBFetP*Is-WMPB{PZoS%hy}Yh z8e|XaKX#h`ds_)CMOaYC%obDbRz=(c{|F5$=&gp*8Da;2BK-s5?_B-nykUPQFUgN7 zn(groH1VI3`-A55^HU9nY_D{?r0vCr($EL2K`=?TPspN6+DMLWLAjMAceL{>2&|jA z`sFY%0(*pHDeLV3+Qw_{f1(K2i@|BDz;BP24!J{e>}KTX5+CZ;GSyJGtELX0Q>D`< zS4s-Hw>vi{O8j#N;OD&a|Cu)NTu$rsCsF;-LWF5`N!Y)OU57sQHnNl4TG4EePie4! zKduLcHOlUO)3-*9dH)bGnp_e&u&q<>&Y^94Vh*vna3v(cKD!lwy-fy4upRh1r@i8x zL;)77*ZF%4wS1|DQ>=IHAGdqkRKri!?q8&RcW$t@^f7%sp|#pye(o%_{~KVb{Sxu@ z2Bn*5oc`3%SHku`8@B&evXi`A(a^PTW5SH3T+}q!CV$NJ#=(F5d{IO6vETiUdXq1c zi9WWaiHmnCNL1RTlqJ#=%#5d`HGAsheK^te*}cRd=keHsEV_cJb1FAdsX9+j2mn6~ z{56N-cvt4<4=L30gJtuY$FUIyVnSK;rwGp{l> zhPM9WJB5sfCfmX=SKQX{dbc)DmcE&qv^yx^Yz&OPnffyGYI)`6w0X6tKc*TsQc>Qp zPVtKYE#D!NWb#i6i(^7#EJ5G+^v&iIS9(XcrG!<{NO zd&N0-mFV7}lfv~SB(4MpuX9*C_PfGKgeuio>|riKYPhj37_MdIOPv2&$%>c5a!uhz z_XP=b-97ZM#tbCQmCrsNTv;A?ABLWWI@zwX*eca<&G$RKsDGGZeBj!pvQH z$%@2%zSm6`HR0f9F|+=?ZeD^?zaguuZ=T55oUG*Hj8x0x}N*1 zM0oW@+#>q-$@axrZqTs48N!*~bY1Pi(?vVIAU@1H3N{NE*`GfZ%7BBjkF4E-g5k?F{~ z0+HY!WHSpIr1TezNR(sbk%;LpxRzO51dsIA;;qu}X_`JIN}t~}eR-6w*O(z3zqYmd z!II!UR!v=h$_!91T6S;LpB57uwSIrni=nwZu<=ZLeMSDd0ld&E+}&~#7ZAvet^-RB z_O9o`U#ZJ2y`8OK!DnPVQF|{?*b2Vl1<~2@6Dm37AycMg#WkZs{bA{D%;?4I-tq>msgKgnH}TOEeM@qrMb@nmq#6Y^!?pxTtY9>E`)8=C6L!2vn^QQ zDtHy|JQBRAVo}=s-+*sEM~?x-A$S*|sp}y~Eptfj@{a0MwZWH&TUGWb-uFGn*anw#mVd zbe!aM6qVVlXHdi(;%c!a{DYxyRkr*HphfNt+nPgMZ>llZB8dqOaf|(}$;xdNx#OHe z+$I}xh+7AD%*Ek22G&rZ-&x&+XfF_z{K~%vt$<}TuvC+-=YtCn1IcfEQ0Xp6CGq2% zzDnE@adU4GXO;H1_B~uWSic*(A4VCPIL}3tc@+_KlZew82hEml>|&V4tLVEDMfNW1 zYg2)|_x7FXB54-Rej!x7b&>1iNQU<)2}n;+V!c%)hH2~h-ThM(4eyb0cs~{59r@ik zm%9YY&gG7^nogLY&fdS1DUb8_TWHwE#=^rPT{SyxO0cUDp~&ISReVpOVo#3X;Vaia z)QslmglueEw?6P*i9(vPHonocC*Vg4y~tY%*B)<>|{wLTJjr*~+ae_bW|_XnWsXNMBH(=?RyZf9b_ z3D)<4?Y(uBGVc~=Zbj&Z^*W`qf9{}Lt_+UBZG`d6yXM?9{h1>$3X6K&|3MyC=Szg{ zH!$nz!b(hVsvSIr%5_^dBieYwzQU{Cw@5w6z!G<{NsDKXM!Qmgx@I zll0fqE7w@?P&PVu$4My~Om{A+Z~II7M#OTOt+4`%f!PmWoA)ZH)$wK@Lb(mGxD^l3 zy1|6C@pvk~OshlAnFcmE11XE_h@5wg0srLhQL|qsG|zxbdpj4Ef05Q?+;}J0hAIl< zt!CV1B_NCc^sKK8>7E8R8^b+^&_dv{OcwLEhO`8KgV&i0IRAjNwl-3v8kf?);M-~E z7~k%pXJ`g81ePWJtT{K%`B@)JE4Zm^~)_vGka* z)?eP+CI+(!p`Qv!L^DEGoUf)}sLZZ7oCamQH*Nv)i9o(2-`L1^U$D&+iEo}e~9W5D;XbApy?xZq18-_{1@WO8gvBl6zS zgo1X~|De=%@*PuIW?Bc>g|6EW1&@QKseOqY=C#2| z2+Sp{mT{8o*Kz-+xvxS3?EkpF77A^!zEvzT1VfwDSBY-4wf8a3y~bAK#sqVzAU@tV z2OfR1)uC%LJIS17d493j?bguyo+;hhxDg$ryH{zEW8kpUtv>BB-O4iXrOiY=c_fcX zo2&H~{`Py=W39Phk1ZyHvsVW+ZT_J|UF(mN;>ngjsD+Ij2i88js~dYSMgHW4$D8)Z z0AppwomTs452wl+j|B|Oy!;GAjm61gjdRg@f8Ki?nBp2^9`|1m=?fu4T`~4hg53Y5 zYO~(405Ft;UFnj4LdHBSgF|~$(kjb)bzud0Zxo>;3T(=F0|YoyQ-LNDu~*f^&8a%! zRW(%cOmwXaZ^d-hoxN)4##+bkL^LkXfG&Nq2iU89<~6L;^vP_;J{HKAScY35YUaFb zPt60k#ct^hk>D;O)ZH*FOdKJ=og@c;0lkE5R-)Px(LN$_&O0E2IX#9siI85jL163^ zpq)g54kde-UIT+`fe~^1K;bgAySLc3p5j7bJUcNpe!F)n{CM&y#grKEx&3S_jvs*}U zm|afjlqj>>cCIq7!szlnFq57brUT97+tY`2rYbmy1KG?k)V;=)I=|Tcc-U93%fd|n zo6y_rm6fhQ5{cs9D8L_j%sn&_b+FPZ=Y^m`N6TM}Ij@?}f zI(7x6d$BNG)|p-6QD=3Q z_fbMuIp*@dbP$n{r;^a(>oBIrk>TO$c@&bmdmoonqBtbH3(0(1hS*$~pb+?@|nM zp%3^N&e?Dzz6^+(4JN4k$~BJ4)cr4l?EU8Zckl@g5Eh)vd^)YqmFvD>xsOHsaf9$( zp3$JYVcHmi%6n%LDz;Zm-WY;GEh@r|mn{tg_OuNq-8Jh-LKm#pEU?*|6K z{TWiWw`>m*x*g~sbBnUwOE$l3W7JMgqd-%&^P?tvwsxalA%9zS8vm_B$f>DD*dZEM zxyjyUR@bqBbuH;lsNPzlHJE)>-5fWbe9&EOmS3R5YDYqIlWpEanTM0vpS2NP8dtj8 zK5o*rw{hBb!bD@_0ay@!WaLLQ3ldDW%AUF^qSSqac6OAykzjBa3M-VbXT#TKx= zpr0|zR@OMkfG4SjhfJe#w{7MFtv{L}Loe|A?Gol@0~T>!IFm74Q@Rvv-0CV%ASbAy{Y2 ztFK6-JEs@>Q?@tNIU%V!ucjfP>iogKYQIo*ZVl?_gCoXEb$&0^seDd#UJN+Lyt4^? z1oK#lZA;Edw~n+!H|s_x@i5S3#c+L7l7N%<`o(1{2)$#BmkV?!W&VfD{B~D~NGU09 z`n4^g57*NfZkDq4a!L(!rEarQUz6f+`;gGf!0(F_RK|NrId!3MJf8up)2+ypJaQG? zOXw9UO0H*IL0YVUwf6lry@ImkR`y(;y6R3R^t!9g;WmVXV7_IJCT1Vlif(eD2w60l z30I4*?hb4z5IC%K8|52!(kvzCEj&PEX%W}B?y_{zGf|B)O1>l^IGh^8_bzUoh$^CW zqG7>UEH8geGpi-lc#mW9EvM1MT=^&Eu#K6|vLck;UwIVHOzS5`r&3r4dv{If|wh8OS3k=LUj<2u(MT8VL3fybFLAx`%IW?P_tvezY`K{xHpp-NSbl-FHWm z_}>%aZUQ4d%IC+B@*IaEXPDrJcdg}z<-CCu z$$Nhz(Fyn^gdVf};qZGF3Bj9gBxrA$PmeQ?AoMJm>3nW7&`+7~Qf4hqqn`8^ta#rg zEDv={aHkS--g26p_jaYsZaiV_htR&;sQsQNKqatFfF5&jih`BMm=Z)*{RNwZkf%fm zyOMxaQkakbf8&7 zhD6QThIZ4~6em2_nB{}b1MZJ!;@+mBWtnw$HO8Atg6^s1IuOv5ItC&u0 zu|N4StxOX|{^Y-O5yajx!~+O52gcL-0_twWBY*NuW3{X*mmLkeeHbB ze_Tv!8<(p8#cslcE5oj*^!|zP;3%wRAvx9!BLNj!D=?&`m8O;YRO7SEjKec~J?_3l z4)7k@B-QY&3pGzQyrNL9)$-2zY4NOnX0GKZ-SY8_&oH+WbXf1q-G@eE8`_z>TQ#TX z8kMpAM9;4^j-NzA-upY^cs;=3J)!OX0)O-ce`XT5-n5TZ+T#v>o={dl(^0*tGCRwB zp%WWQs8K#DB4N@;#l~scSK*o+p0~^L<6)hZ(v?7&0*s|@|3(=BY*PGsI3RgrpjLLP zEEat)qI&%)JVOEg6!u-v!XJj=RO4Hl@ig0Uas~i$GymEj`cv2;d1t%tmOPauCsR6G zew*d`AnDus5jo=HGa62^{CejfY$CY53$FOx+E@Z^KJzw$FU?aI?yjnHt@1tjiCpoW zox%DTx#4=a-W<9R{oP=8oFFW+Jr2m~XAm^_+CNF`a_id-k2b}*>qW{|@ExCFoMTmu zA<^!DKST-Ur!YwHaky_2I^0+IGZSz}D__>TXgCIRx5HV)yucv6FXxKuu$8TTycsub zt9%>FRE|8FI3eut7Ju{?Z&ggr?j66bMhF|{riic)RE=AYi9@$jOGSyjTfWco3QeYFI0g7(N04h zg`VHedG}Nj+?1zb)#eoC1$>1+C<4e5@N;B(&Bc&b#CHHELPKcfx44 zU-ZrV8hdfmsV{|xdcWls#oi-U)xG1AVWN}y%W@8s+P9umuZ9Tv6G77SFa632fKJz* zNp_-TE}B*8(67Gj`@pTtZZ4vjKOFsxnS5op!C-w0Y||;9Z*xSm&40^q^YHQ0?bwwU z06Kkga4T|P-*$Ed9t;cINddX@whXg9zOBpF)n$9aWGC;RAHnSk+|?8)|Bz|A;FfLY z3UJDx5ZOiI0U`sU0%It!mI6KQ4-4EG7D&4StHT26s6d(muTY@X^svC-)_}w_vVzkr z?}0A5ihx^YZKWK^)Or*4>$uWMa%e`&csC3cGttzH-)Mt_8^w=F@YVlC?_@HI&2469 z64djVZ8xVts^RMr64>8=iXvT1F2aLK2kMFTKgu{if{5+Hunh)_&8O^1!E&pJ6$n9} zZYM*E-6amZK{@+2&=LgGYVXY>Fj8Ho@$yKv znc28em01xhNNwEsnZ=8$%xA$%{D%Gu+=%_-a=K-kFpjXc!C`nMULt;1xG%YBoQ~Gk zfWZuCU9gl#_&@h*#CJ5EyMqL51J(ZXAlhipPQ63=VcX2 zHPlkqip7QXgMvS4F$i2@;%`&!pvuML^AfLj@#y^hHbxomP0Y_fJ%2ykU1cUgWFg5a zXegEWL#;10M6sPYl`|e3#%6wz*H=*Crr`9e!FJ1I6D$aZVBs2(J zX0Pt#T1wk*Ag#+v`fFs5$qRUMx6pb5t&q3&7U5W3P27Jn)qDrd{>O*JK1%x&Ztu@pbZH$1D;HH_ zNJUo;V{Xry!Rv=sm-5XF`k~Sy+}_V4;$OatMv0Ymo0-P1D}#D?yaQoRgAgeJ-C*!> z(w{;LTN*KS^3Z3j7Oi;J*};hws;g1|vA#+A{mkKk+sJGF>9{NaKpxSI5k!IxsHzQ~ zC%ZEbB0n(B#v3v_%}lpg7N-brf+&v^$@M#>vY^mv$e};`K+~n@Zgdv(pHj2xjt?2C2bB!U2!a7NBI3v5@8Egk(HS)a@f!-(R@JrmkY$ zd??`Zh^o|Y_L$=Oq`z>Y=A}^H<|MY6U-dP7gYtKNDyKu}gzv*}b>G;Z2Qqho^m*^B zvm-K(C!`sp)1xK<$B`6_M9MDFeyHW2qnlWjox&@{WPjdT9L;$j?JRhE#_-w_I@Q55 zV4D%w3aw5oz9c?ha6G^^aK2z02xv1q_Q4)2D}2Z1P_(<(V3EV=*v^Ni^a~R|R_fWG zwUMaCJ>8kXX)BvJRq!63`FS?L;Ai&=Fr3?c_pQzAe$K{_9;e99HG$_*opZ=2_dn`)?YK2N+rZ~rJDnipi=)=e;C2g?h8NNE|9oE5>4 zP%h-3k0aHakThIhiTCw9Cp9sg>E&OE^q&`mUAT2DDB!%;IsEc`LT4>^^Wl z(Q}krhYoaGQvVgbxZN?p%pTdAp1e8iujJkl*Od=KR*;Do+d>~HnQf@t_2x|oU0YBx z-%druuG9;L%vu}&XA~jymE9Jw%?h=$snHzmURUP70vV(G{0iO>M`w})iE`%j7? zp`N~jha2!u??|81B9l!e8*h{Af7aVgE#Uk^O|GKtK|?<^=C0mR2pkBoXP`Id9}>DB z1d@i>Hlzi0X1&cIlQvBw-f~Ka+aK~pll|Asf6MWuM;8RjzwNW%?LC+d6c08njQ@$j zs1v~KyxCYW(goyMrMR@Iw5b2fPBh2uXl@(~`C)u#!++YD5dp^$n(i1c^CsgRPeM?` zOGoXei27H;A8|_Xfw7D6hbsNYK9YXS2RY|$^C~36{}C9DJS_-4=*R=?U(NvbiRdv$ z2l>SfraUNeE(ZFDclXpJ`*Dgt2YTzg*D3I3z4Kl#Lb&^|m%l2Lm(rO^)aeb*zoUK@ zsq)^{ROL{(n9#$9LTD$~3yarz$5_?%7yo?nu!WgS`RCdD3Tz=dzE^ zM+lLN)B2fQ+(YM)DKrEz4MrE_vrl#?Yb2b}{UokAeY2ynDCOv2PMY#|IDyeFa?+gJ zR|PPy!oF=u6y`NZtc(290B8FB zd85Ch=kDovO&lir!`2B(ld{}vyyN3&4P z^t^ZHQRyb@p?PmrZG`+sguWCm*|z5^n^U3ZZfDrd<6$tu`P)ZK^-p`>1V|3A;wO1FlU@eU(S+xb3}7Bj=d z-6D8{9_0G5e{9r=uXR3A|K3)$w<7;Mqt&K_ezMwmaScVhHB9bUWA^trm0;!5DUr* z_6PfV(i%yIqcPxGye{ZQ3uiTKA|`VFs{#J#^hmyz5jq-#fx3ubP+Gt{(I00yCPeb~ zfl(;c(9L;n>0YP2m!tRsn#u7VTAU~hbpDih|9yR-s=Xr{|5?zVm`^oo- zqULNV%19qDANlKqH1fgur!)$(nV)?8+}|_8?|J8wd@Bn}d2i(;_9Pj89}wC$iQn@i z1bf8zWxWS01>eqkTuRgZw_Fe4cm=1SpX0ggGPV`5vOCJtSY@sUiG^(2M$;t%Y%S@+>lpI}%DKF>XylFomL_&~|kIBB8w+#zfui z@4#XjnD@S#=+KC|+iS$}{pNcppu_Gqn%=??RC$CouqDIzp9$1I-!XwY+)%wFgq`=! zCo~p#>i+}-?Zxx2fj~C=Uh7=4T3Vr#c)r-$*O$;9$@X<6F-7O6>mEaB({^4*&!bS~Nnr{u(dU1ANOn^4wVKJ4Nty7J6N}%KE zesFEmXc1Z$+FTAKYzo-~SIBFs&0D}?FZEQq4v)w4IJ{!>n5}p-uXoNrZ4ZHSEuJ9G zJI-tP>G@c5TJE~$X>S`Pe{CtIA3h;kbnHs#Yo?rXC@3R*%F~Jk*E`>=P2y_GuLJt2 z8v*}BgWuvE08!08>s8a-Rim>Z^WF#JqiS9yFu(5=-86UHjkkKd8E$(7*$RR@MRJRJNs-->UAHYw=Zyep($ya+0d8#1{O2d7AfD zkBgf7F`vY+b}05eriM0pR>EmV*Hcd+`EZUs7#yRP6sEO4*3V z5+SF-IWO_?a6IoldRn^ZMdR+Bgz8C)d38An!FTE+$pyn*fg8H1jW|rLY;jWy@u$26 zXvc19Q{ZmUPbP8BYi3dsb9>QpK1ALd`pqC`J{882j4?%w?9Plmve(15GfD9@{g+ILS2@uK|SX7QPzOv)f7p5#K z&A+Z3u~306zv6pH^CkM;auGH20(#(^FyXZ`wkP%;OjIM6jq1tWnY2i)6T#u%f6Ml7 zvd-i4+?v#2_%lFPZ@!bd_+!XH=-br!qmebieZ@G_pKqKVz?3>6WXn2kA?(1JS_HW; z(umL+B5-LAtc1_S{*}v&!vtwONLl6+K(mChd|NTzry>`F+mwocu56pq)SMqMnh_|- zvNAR2UqoQgbHG>(CH8ok0*gUipOut5g?60sB7qZ{ml~RI=7bihQhLwKMPni_A=2je z97_4Y^A-y8w8K`Y*O_c$r&=?L{exZubHk^CI-v}>3uDU%-sA)C;(!LCs4I#9y_8I% zzCO#s@bh6@vNnHV@_zRCe9`X*9XqO5s%)OVo~u0XtH&UJ<2sHL#bmy%bTu(h+NQKB zd%a!H;V7G${j-EN^LwA%l#>m&p44}ryn_5RhseCXVJ8+0n%BF_(k?4IEXmB{m3!-%UvC7QjbHt` zDtAz`-1KIBa{CokHT$qvZofld>|v=6&9~FRYuoCJ-3JRwy8Sl!^IqL3*)!LCr@9>~ zujZ2a`C&El!rw*ug{0UiE9*+U1FFGpU{1^SEX6rmEij?fvNnJfv z(q@mUTv|T31|-_&?$e$w$>ZI1a^A1?}*>l90osrN}b;|?EasC9Ew?;Wmf4W;8(>W z)FYv%b z#kF8HNz}6D{emwCXp}r0}^O1pOZK+O>2htZw?KCgro0A541cF1z+p_4WT=R4oU!-_y zj!q?}#=w%h~mGo~}7tA}eye}jIw?2Ij_jR;Y?qRgtc9-*{4P*w4dGHf;j#EIRB|t*b z89m{{kUgQRI%KZbrp=)7V8TPhA8wp3h7+@tU;7|m`gTd zA(yk|EZg%gTbV3kj6Ye%gR$oa0It*0X@^S~Ml3e->jTKT&3q}YHuLno<^0r~LC8&J zZHHHKb=r5msF*i*vsjSBU|TdLp?RPNYGw@jqnA`o*HnjbrTwLEI_n88qJYN5P|QOo zYD_Q|wnp|U5V&oKY2cBZ`FA}ZS!8-MrB(wALFpxx(^YiW=24`kGqe>@k^!nw02!Mrfhy&;I(3t*sq9VRX7~>ZF?V#NnsbjHoLbJE5+qdP16? zn$b0r(_?GXlWR_|A3M2bWYL7`@ipo8?FO}1>V%1P>5(;~#!lct&4iIf?MIBMp4`5u zeeKxMB&EYx{e-6R+A$L+*O4nuj}oXane3wDCQcZgObz4uNpI*`lsIDI_(|hxrld!W zn^-Nd(QlMKa$^1PaWy=M1JM%$9j7*lRi|s~Cf7ru{!{D5Oq>wWt2#YtqKGxQ$TC3A zqWTGwswdahR8vQK)Wpf-tLs!$Plnfz8U;~Dir_`HlSk}5bcAZ|G-A@EqIR|EvUarx zwj0?Y`DD`6DMgc}jytuJ%SYz=x|*Ri6KW=po>~OpaW&PoFsv>;ej>kr%t`$tY7*&V zYO3po4zI2oQ&cmhdPLp0sflMJ$2J8~J#Iw(xN54KG`Xg>wtjL=QM-|y+KmKL8ZvfV z-Pj4WMI($DLnqfys2e-JrfBHU=*iHbL?kf;)Z9*!rXWG}<0nleee8s>bwh_*(kN;e zEAkDWJh6J@2(@Oy$m+?HtEU##kE)+A0)ZS`myR1&)N9}g{d*6sGm$>5dV<7o#KZ|_ z)J(2Rx9hY|=gzh1x`|=PDxw}FxUPP(q;kT<2_0cpy38crbI(8uXG*IAQ;df`h?Mc z3duF3U2RzhgFe0gArEVts)V9`gQ}`%UM<+B&m4=ksIN=c zOr8v~2txmX=`UxY^CTJ)(;2Mb|lx>h{S`u18{SHMjAOADo;i&sdku zasH&7l+|`9NQ#4-kQc};jo752i5}3tgGd$9RSLx^6ULL_5R!ti{Gu{zq7K|HQc8@e z`s-6yGv28=N`#y(6ZeNtt*dEQ+aVoGqV>QytM#K~MuS#VbTl1OkS4+hMuS*dsz;1q zz)Y7_PeI-^pof1>FQSj?s!v1Y+jZ*77u8Ri=%l22T&%^~b?PE}fQO^Uo>4Qwfe6J+ zBW*m4pcg=4{KS#zaio9oG4@%t>slfnkE06`1Scbz-JLID8J&y^#AwI z!+%1D+ep7W@vI>ct|L5>&%i`luSEENL(}~zwMkF;zy!!J`#pJdvGVEj+ger0*%8$O$cIOta& zrRx*HNQRY`e6H{gq6hM;Pcj^(>Gw(UJdntj46BbtpJbW;OIY>m^Hx~b5`Mqp^PlQh zJt`v{qVTt*eMs8+pUr6R?}=yrdSS(rY3rB&pTpZ`?9V5>}2zlCYj z_qbT;<0ryVnto?eZYrNB?b$>=g`-dO{Qvr^`t=b!!BCy=^Z8HpD_^pV!mVlJuHh#c zj?(n|7d|V=8>OAMURd#DT9og9`>Xo(iD0SD=KrOB)sZZtaA*2eF~9%q^F8#6@+8Ai z+W+-eupamiI6RBo|6gGz%iR>hSxtSH5RU3pSo!Au2@RBv&DF{C|Ev~FE-vvuo+t;KdDJeW`Go!6}^ z;j<~9-*;NK?t4C8=|g-kJ_Goi!RLBD%lBTlu5;&g>vVSNv;Pl!Zvq}gmGzBRrISu| z0!2# z*pZ)mwL9@=RtLukP&Fs3mgViYUxnoOR-N*QRzX5fj zEX8N*Gq8(K;h*d3)}q{t&+2DUFFtedslcZcpF(_c@!9$keg;9g3!nY?IM2ZseB6Ds zTMmuBxE8_b^nAGlBUeV`!lIlNy3$9NaybfD))rKDUyL1pRb=K=oY&9b^_1Cjd9HV~ z$`KTEp~}4+3U?MQz&RtXM=hE?Yw`TW?s@tVN>RutT#lND%PC86g#~9I5nRT=*~}5= zno-h6gU4-uMr2_nu2bNgjTc66BB?Frr8pjo=bbTc{?d7RJrZIwDvyxC`A7Y^%h9!4 zdO1(yCs$_Vg!SJ9u|d2F8b(S_=cde`IRzI`7tNkNr}D@M;`FV$a=}zyMw_y5DzEV# z>D6>xj;X}O#VP29>6O!_PCugo|L7~4A`o>Yme*S?o@Yf}X0^`Z3Edplj8l1N;L7O{ z_?*glM|jK&sk~~qa0(&f8XBL^u>!X zm}a{1=JjBSBrZvxUAbWXLJPBX7Osv@oxNb8xi&o)*LA0BK=e|xG+tUP!@y!&CBQNY zw8ANHW+5&#OUGHfN@dXw>YFmqv(dBz3tk+IdWR4?B{}f<)@o6Y|4Xq>;Cau%^DdC^PS?tIH2S@4>pdohbM31KtRJ{H?BT zCCY;+x1!8^7xzY@tUzg@-L<&swFIU0G1fJfIB-L^9QN5`EqhtWZq+E>*@#%Q2Nl0H zTf6T#T(=u-v4WwY!EkYt#HG$kD=(#gmtO7LQjz*Y@F}|ou^_=5q?hBf|JlQJ_`%yd zXp?Ku0nlF|bx1H2b5lal8J1WcMB8#fx&oiA=&K*$hcze|S`{-S7>OB_5DX0pIz@>q z6evub>{5og6wAth%3ts)L!X|DlKN|61_i^be8Yl~QxbwrZ;BS7+=?TGfP|$L9XJ}$MCTT!T!yJ?aq~4F>V5HL1D^8r_b}4Ey{SQ3{b9OxmN9a{}dT>pSWPHb>U#cL#j{Rc} z#yJ)Ee$4d(%u#EMH!jf0W?Z1t&A1pAtcdv-o%S?_!E+b~FJmCQg3!N;q3~MJ862!w z6~D&6E^dA72H$0HPvU$o?C-_($)U&z#~l|XzHd1!Fcce%v!T+GT$p&7_K49b7gD18pn|S*@M>^yt&LfQ&sKbD@Y#t^tz8nVfLk;0xgUO3 zA*bHWcGmm(d-HWzuq0+&ungTZC|ET_>KKALMuR-`ccWPll^0UcFSR&-ddAeVf%9y= z5Aj&XdA24F{lCgT43q7u1nCycH*fl*U4;lbd+SIte8$0fb}sBkzBpVrt0R#5cKlwv zhXwb?`nELs-3Sh+%Z$s*u$LdItNVoG81|0J3mm0egH`DCm_im63mPPeqD0@v=!_x= zAYO&Ric>sfl!RaMPj8HmJ$STmaltYCuAdjh!Ts^RrHz6I;tPWZ<6{Z{3?iv6?suC~ zn8za(a61HXqQP7IbI(lH~0 zWrKnxzBoHrRs?hqsUwm)U+Bn}gzdvqds59QNSgQ`) z`hVANuIY17Pt6^5b(gd~hTqZSX16cq$>1I=YI}X?Q3AVt%YHZh!xDW@oCt{`iVgx$ z2+>ob38O%W+2T?L10V%XU<_bQip3r(?>1bM#zPz&Z^xSFH8H;D{K1_uLxZ(&X&1`f zF~fsIe^bWd=BBW(l<1?7N3pyY{jR>HwXKM39vC5HU=9TLtz8$#AhEq z`|&w|&q1utH8G1#eM6&U|6P4W(3$vOus;^Ev*F8s#lGwR$x%KX%m1?)_)q`-C;E&P z+y7s+<7*RtR4!)!bKQ)^1m5~`UEND0j0}d>A^PDp+)u5F9gXZ>giX`a*xx*d#r$P1 z=J~5)*Z9_PRnYw}^wVFdtIH#bARLT}*uu|9Sv_mwi<3%IWwgN4qw z3+qKc(4rUkq1;`;7WXN40LXt0dC}Ctg7rKDdKu^^BmW;~9T^imX!{CckFEzBR@q&EA{!S6i|9b=cfWh&~1341Rb#ZLr<=EL%%f<%ZK3i+TTR-GD zu)U3xcmzuh_cw+VgC8>dRD&Dy)(?m4=96^LIL=ce9=lD&xb!0j|D7EV{5&Mb7-N9v zTs*>BSbDVpNR9eq)GYpP!-MA~JPc~#HBfTYbkWkKSKw7kJX}BXjUp~V$l=y^xX$>G zmkIH}&tB3V*N=k+PcrF;goH)Tgt;wNf3hMID`DQB8;i7D5ZahCl$E_zKYMN7bS!-c@HZ3}1P#v-}xCW1R|=9u0w{VKYqX9RZp z7!QW=$L(Tua znlgAV*8F*M@I)f~iy8slrLFb%{QPgZ5Y^A>f;F~s;q1@XW~Y*b4p#+8I=q9 zAocR)%g-sFHg&-{rGWl3`Nj)mPGs?-*>k$P_>>t(jB(G`qIrl9{O99*Q}J}tB8k4M zwNQI6D&*#7y5Gqfo=NmTBuax%(N#{JUKNp6FRHBey4ahrT8nq9*6+=C6OSVdA2soh zGw1)m2#7qSiN^$&X4DUs`axs{ySu1Fl?CqoggOK8JTz|m!(SzC{X{0$ho+An&yvbA zFaYt`m;{*5h)Ngz{+P@;)|jluFf5;gd)V;kSNVdf`H?fGOpBBPR8rSS`Lx-yW*G^u zD|JxzTz*ck@yp8>E}lE(oY|&4J$E(+G6(*&nddB64#w%rU38|R^;X2R*7X0|7(VuL zGD2==WbEaDAt`szyjgfUc>dg@W=X>lTy#WtM^BEU?5izv zJ7PmSoLcUx6PdMu&wg@mg7k*Rj5)=?mpdZy1h83>ys0dE2|P?V&+8XF8_9bcwZ^HY zu1Na)YG#9}bBS9I12ryZxl!T;3?BheN0m3nlv9cvFDD}R03KC+XJJtx)usJTtB z!Teq{e-R?0H_y7^I&zi5&TjESEPzubP7+ECL_9k`qgyeejHJ*Yuw2ImEtrKoEjd6R zYd7<~TVxRCchBy<`u3{q*0WddNO5Ft#EUwEF12)v42D>C_pFm3c2d71r21C;KRh-6 z2h&OVkUN#%n^4{u=To{^K>y#LP~5N_Yd-xq*HM&o%5I{cySF(Vy(*8j7dgK5-x(MGS>p{-hoBAehe_gWG;;ca zO5oU3A-hLEPJpJ&)2)>zWQoAPYZ^AkUfPNLyOblAG@t*GcK-W2g8xCFRGZdV3o9Sz+jr2JLk9)1TLNe{g{h5mv7lhj~Ka?D-`E_e$j_g z@%xS|cb-z(MGFCTU^cRzh8Ocre4R$<(qojdjbl$_ADb;XzaPae|h4@-XRm8 zeMZjxU8!at-UOZzttGIjmMGO zYUK7AIrn!`&#bYx(a5D6|AL;tk@c=Ma@|c_cnkdzhq33**P7$>?=oYrv$5y?j_TPo z_Nt9s)p7c*%E*O}(~b%wx68;KYuuL^xvj@(M~RUuJC1*aMy~KUa`{HC|8d51KO>aBenMTezPF&KBT*TDt{%+i`KO#o1)p7bQY~^=?QXqpUUQ6` zW%6HJSHP66oMq&)jDN?dP-5y$ZeY*N_XmyKE5~Wa0V8J_d!3H5r-c1RZns$% z8n(kS4cTYpo)M?J@S&8o6Wj?`|WPejIzdjNFsQ@vqj%H9yXH*=gkV znD`x?uQYx&My}~`?791gGBfUvwXVARg=$mpvGVR(Q?Fy{Jy!fy8oAwOoJQYM&lb4j zbeWMmY~pv!{Ac728UK!zpR0`A&g0~@3M2RPaq2BIa^d5QgAyaR^*Hqw8oBR}Q*XYJ zbB>VpV>#RHew>z$nCpmx4k&^BS%WmV(@$`?yf9(vlyT7lNZr-oC zzKy8dXZRbPBl*_N%75SRt(*q@Ta|yN%ipFRxc2woq5N%zU;W{c{K!4ZU(}%8N9}u$ z)v*5reQcD>u!4e|Nct($@S2Rpkv`pfchBtBcd=kS&+FN@duDIE^{}%tB3YR|`)2md z%(i$EqZ@m5D|5J7oX}K*QDbf@8Fy56R5{iE87WWoHpHta9>TjeXI_Voud#)+>&^)a^dF9bR!CjJw= z6(A-yey$MxbwZ3gANG7t;}$1hI-g69jg8}*e`B0Drd?lanq0M%pdZg#`BoEz;fruj zP@LoIM7=vm^E-EuWBdJBwtcmIzPNuDBA(7==`irEJPGZ* z+XC=UJ0apYU6TMGA{=sx(agA?35T6bR`?6yh;s;c?8W^`INdoPagY0raHew^b}DiI zBHYip3vG=%OgKNVmNqS$NMT?+ZfA_M1t|$M?+PSFkg~utnLuLgP8h!xf!x7B{B}1W zRe|@&acp{99VlV#jRaW~_-kh%LHj&#mIWqYEW{<*ML<>t-p8^U*UUZ@$OVBSvra~^FC%qG%BkeUFij_WGO&H&>Ymmx@P zfK|tJx8b3+D{w;qNDuLCci=(?NKd;6^*m$w=0(sC`Rs=T$3Jd+$g;Me9};8zkG& zi7yz84vV+G0qo2{m&aQ)YdODlbm3U%S;)j&Y^dY>)q_J;lY2Q9HpiDXhmE-H>_w>noDg4>J%U$wxcO+ zECiM$8O+xiqdIox4jLv0a{=F$?^%$YXOt2@9h1oKTo0vYqW&1ww|ie=D7g=&K_F;9 zK<%LsL_QNuwS2c?LMQYpA=od7J{U=5-;$F6meLL1S(w9#lRgI+6C2wo1EG2hL(6G& zQdej?&kaH+Wz!GK$!rfehj1+1@q>K=WtuOVYxQe<;d2yU0Ar0WQt_4;5{=i2xKoG$ z+W2C^jE1yBEy4qb<#7M#P@S_X4&8LwW%zw`naL_z0~CPO@ns64;3;Y>@Q8c-Rk4wRa-9W(GQ> z0hwk$3#4Db2?3dI{|F>M@F}7moMESsPKDUU!26h}!NvACAX@|d`vX~Km&003;8t?Zu|cwS2CCWY<4Cs6jOd^2+khMloRtaW3j1duhr$7Ju9P0J?C|yUbhG_9`^yf0GyvEZ`!(1L z+2J!8hOPEHz`}O;LX7m_RoX{(xIe-kyxRT@ymUK!WdztZI}H_N+TlyEzY1=*zXPwI z9iBwV9rmT{Cp)|WDI<7|w6YNY(-_Gpc&*f4Vu!!(0jx%_GCTYajJ)7=f>qezi-rKZ zUa%@VoWUAy5Ukn`Z^wKJ-Y8>anH?@eHV@unmmu6L?eJpSyj6H>ZA>VRSKkhU0U}vINzTo& zuB7ElVHoe6B>d^*)9(fK{0Fd%2Jc!f{8i-B%PlTHNhYrEP&WwGUN1sBDa1;iJVMC0 zvx#H)-j_x44Oj9@Pm;z}GJZUUeo64bb5XR!d$q0LL)&1~YKi|TVg+|m&}oVLV6EW8 z5^3jlcFZG$!%i1wi^u3h#F@oje4KE5r36Qdx3u~p0NM!xv0kt*0M++b&X?!* zi2SSgPT{<-m$iKNvk6~*E&|`+TMYUz!&OMf$2*)^Uj;$+JIVMKA*KNpk|6n(_Jh#Z zy+kP66&mXaiA|Ag6|sW{V>?(@H?+%H$vFJL!Du->^SW>^L`>6a`*zP;32|c zrwaS6;Ln63&Uy6f7Y@{PXD)NWuTO)X>D0Cd{2SqZ__uk0|3x_8$sYvxFvo16)2Aum zI?_u5SWK*-Wq$;uEbs->q%BBAUlu8XAk~54obR!MEDI#SLNLyzwUvQ` z^u#Z_qqTuyCjf~T&c?ul%*_GO*%}y(2m})ZsR``h{7n>OXP}bJZ6ru-U`s0?jU}J& z3KVmx2nuI+poFHI2(l;8p6-MM*&FByKY~pK*%xTXA&?}<{=j;6QnDZi0{^7769hRJ zxQy{=F36$qdbX#9AQsXkXMRg*gJXx&=xQtBA?cnS0hTHl{=s~*pN%@vX1Ax71Y6q` zaO(whbKn{}8?l)MtbngKkT#;^1fFgQq^-^Q9|~+|?Ai$u4ot;(47Qg*Mgp^#Cp*|o z1L=WPnLs)UCo}MOy4T6($nFL>vtS{OA_YZK^1mF$Vy((0#ZdbSB~U~ae#~M-lCC1 z4cg-dqh7;!)0kl$ZZjn(x8(R9VRLaxPRA2o!IAb-F|nK`zDEyoS78)u*oC9)ts-y@ z1(=|?xzIW!mrFB}-_M8WXtlc?OJ}e|;nTUejIp_nC6DHoYOMNk4~O+Qg>7uKgQa$z zR1=2;BGquaki?x~eO*@a-_XY3DRvj|{7$AT%DtS5%3|erI86Kw6Q1AUeDFIQd47kz zAHN3+RHR8??u48=43Q=$ahqv5Ih_Ib%Z8JVvpyZL?72fuH>9y9{bef(6Vsq};w2~3 z+D!oCcVTX%hZ4Daa;9UthZ;#=wVYMC$O<*yh-u`s#N#5^4L<-l)N;oB=~k!-Wx~#V zgFy*x0~~?5T9`;KfQP~RY;HtiV&mF&1L@YGfGcIo;;RXv;?sE|mXO)>g|gO`^*ShN zu}z!XmjP(~1me}SwaCWCq*<+B#6WD?UvXb6tM!!_K~3`&w^OXvlTl~WAqH=0wSKER z@FIi5U)hy6ZDz~1ConDoZnA9hLV;Vc8ZodKCj1Y4?E-kw7hwAB8OKKO?}$bo^zn6gbzvHuE&6&S?|#!Cg6ff2}xP0QqDy=a32EMPsf6s;A>VXHCc%U1wRCB9wIIHAo$)K72T;-82_I!7OOn$5%Y z`pr{F4m<6UshW4<5a)2AG2eF-P5%iNd}m=WHA!M_@NtAU8NiX6klAG70-Q%|b?r7O z*LJi7v&kfqLryZjn@py?u=8$Dz*7iE9R4r%CKZI)jYA;iTLfE8rg9?3-+?Ke-lFTL zfW_k$8EW}l>;_tN`x4}kb2s{?MR(n?%|+Z>^bpHdgoWRsu8($FWZp`XyAjV&i`+KY zb2$4lK^{Zvn5Dq(Q(D5xp zgd>)3DKuL)ErqV{B^XNy-vZF@+=*|=(@z3Ok}v5jzwfb+l8x~TEgj+sdgShr?=`t*Oxi3 z(Pk#$bDc$l0QV%k(n+U3S$6?m?JVsDxYwmwxR}>=KjP7_A@W1{x%9Qs?%IwQ_#%1mMe+dG@k>nT$RcW|DG13ZH=>CSG#m4q{#jlBWS;-%M2 zryYH-BHYip0I^P)O@H&9Q!ukqPS5g4beduJld^>VtaVb5dQ+B>zR`Jy@jh!Q=v$qZ ztoIzs)Ho$r6;jTn%uZ+e0Kivr=UD69+yn4tX0Kh&-dMm}DYM&oh459>-Q!GUdv`EN z?R6Frz9t{--PiVGr0J9z%I|gB{tVHS>xk@g&_mn?`{vO|FLsvS=>e6-OjeAQtTBfz zUvtdyl#?fd;&-OvTegWS0O+>Lo4A5nzD=;6auZEsw*)C)H}rbQ*(UneQJ?j5E2H{s zmgRdt0-?Ze5qge7Y}E&z5LI;B?04$Wq7XB4!p77Sa!`JTZj=m>YBK3Jh-qpIS_nCt z(3h!U!pTk^;*#2uaM-yD+kw;+!l_O;9p9}8N1QJ(wo+3Gw|6ckELkDlSw$Jiq?yiJ zX@F%8_H#Z$pQXwi%y-%$QmHZr3!SDBz%mC*oTV5msp)jH%o&X_n%bG|LAFI7r*Qo9nacDiD2rgmdsmO1ZY+@y9VeWmj={mCMIErN^6EMG3#pW5pS1SEt=aOe)jXAMOwsgsbxqxT;xYKDLTY~Sjzb!zzdkCgG+=5w%$s0l49p-03 z-|{U2FYUc6z)cHpf86Y(!oz`3d*5Y>}_-?!n8m9t~ zX@E23BqX4;^X%y$Nnn=(kRfSK=XzlVrLC}6k` z+6J4E5MM`nvQoE)A{HbhZ?+-7(Vhaal(k37*1LTqWF`LtSuyQT_7zmR&r>>5%CwLV z+NWJ@KLIK6hyOu4NltM^d?#Z;8vOYPMaRbQry^~1%oCWza)Oao5+fUuz^zCQX{W|8 zbA$pscS$=fh6_bF@Buj!1!)-wVAW5n5F{nAk)vgrAgu!BFqt+ZhJj5D@a3&(GX;qR zR$zdqRSD8Q@HNf})8@tW$GV;#Nao;M6vNKW4D3U4NIOfAew}7w$ixhSP=4TsA)v1m zdST!?B5Pte{7U3JDD9G%a}nt>EBUQNu(sPT!4HYW=Kzu<0ul>BO)N-F-oh|nYyaxX zC!>Dtcj-$iS;>hfL+CmYN`8s$xZciyoK(PTRH`8T9;Nj~0Ft-a<6X%`o}?#aI26`yquVrnC4YlFo_4SOA*96XWSkDF z*CJl;x+vCvG2K|{%j~qr>{=w9(;^r#vzT9=wh3E-)fg&iFWK{f>~nzZ3gobl-?YyMvOAE0%G3U4Uj$@NAiW2W5A5|o_6E+z;+gh|{U;#%0%sx{ zrhR2!1!RBVbN1`E_O(C`1g^lMoA$GP6Oe;}otZ%D?Aw7H3SU42aWVG*v2Z01LnkdU z<{@CXl6N_=Mlr7di`e10*mp-)^&(QN$F&}}KZ-+->D5j;xd=9M84iCiGNINm+ z8({buDeRt3F>D!L3*UG)N`53G zCSxu#75E({Nx#E%=y#a({0=jl-(dps%ihcHj1!ny!0&L<`W+@R{LU&cM_}XUVVNJX z9s?c+a^v?v;m4y!K=nHuiO>ea?{KR6os~l2c=J0PO3C-4x6?YuaGZ2(7DPHoTQAc! z5M)Peh#7}AS^-|+PrFQl$Q@BL5dBU(zLSGCIG4sS-}s$jpmg+M2$ZDlhke&R^5svbwbJL;3GrBY!^+_A^@Nr-fKtnk2>gE@)0h>kau*Tvjf{ z#&f0E#PidP)|Wpn#h>;`amDviTp7Zc&1k*3qZC`Rq}W;}#Z}9txcV9?w!I+5_K&5w z<`*eyTBTF{x|5{1eykKXE|cPxty0|fxDdwNN6??@@`nA22rR(x2Y)Ne?XG7JD$`5gSSUX0;Xopc^HyCS`G!+ zU%*D_z>axqP-Tz%`U1=+HS=kBz;t27kH@fug<16$E~Ttm5b)R*7#S=67B~hAx7J(W zyfGF8Jhp|q#KL9R@xsEF^%j~Sj~ELA9^1lXTId;{EEY@*lIyhvJhnFb&a$#@#CeAQ zBAcDY8JQ%Z$$B^r)URSl9ZxF1kX(2ZRu=y=PN$V}VV1KtiC1VvO{KCr4~6J2qRZ)= z#4ERkHH@r~k9FKjmV6o8yFdt0HY?MC)F?@Q%mAWm{EEOpr_(Mm5XYZ6AO z|2$D+syKr82;1|u_{997?)2WtMtvvLtZ6*?z1+?OX)Gm}C6kCH5k=dX#IoKS1h879 zm~yo34Mek^LDuun5hwpdA%4NYRVYGYr3f-QeoOfo?x(YD4a zt2G?yq>WlYmJAE&KcZ;fy&N0m?1THoICE-4sjL`!*I&G2vTfj9l945XWouxb-_I8v`d1{T&~+`8Jp6FAp+AFkHmkAxN7g0J{PqqVR zf{(1fdrHJqh&04`KZ;P_SOhzRL$ML#Sy?}0LU)Rn>B+UHzG@lGR-age%ztY& zY;jGhuivnHb8J3A$GKKD)Xpl0_nm%|I?p42C*2cB95r)=al>1#P?1kWxzN?uWMz#( zmhwMqvq6t|EJA1>tIo>6F2w(`U56>aWl?oSAghA9CrbOcR7QEI{8OmMadgC*?DD1#A{%bK_9o7_09L?%2QPH@VzT zL@SqLlj%>kS&+?rMwIeNl_!CnXR{!iOMShz1}f_iqyMVCI0gS5%;RgvHs{3o)Lw-# z!JUe#l4UyfQMUJM`%3VW0XF1!e;T4~PU-|!*EaofFbZ(vaZCXcdi<$SsYvg`{f)y* zYU$Y=)|N8?i*tGoVaFK&uha7hhn)Kno%ErE!%oBjJdAL}iKT8K;dEy_b&CjRI@#1M zCftv|%3JBf3FkZ4VFIL&AYAA?2uIRKa#K*^JVJOB;W5r%h5#-hJl2`VddCtT=WNC_ zPcJ20>MX=*PWpJlr#ROo0G4ayQ@C0W* z?aU%P(b+*e^9YwaJ85S=;Yn7X6htolTsqB-pu}DlORL|V7>?;HR)XqxxMd76)*Hwrz&?(N(@bgcxWlUVjLf*NKDB0OFW8*uM^gq)GE8D?`td% zH$o%8pWp2)A6H*XuIk_h?7xBG1P=3Tr?=$iP=Jq{*?oK;fD;bz-Z8tckM5TR_74Pd zlJ71c<$;H~0O=>lBsr_Ivqh}J>i8hici8SP#^uVCo$LD*hKvgX#04ktE(VD`P-{hC z>0@IA+WH27oDs+4!U*?(Ilk^7;fxsH$$fD}!_M3vd`J63ePo0KvvJ+Q9wufY zf%%vOcA+5Yfr~Jm4U!pHhFIgqa;V^*pQ$GUDVA8|2iCO!GF+lGB=8s;JVKC@1J9xx z?2&>D4Rl3^+oJ>-26y|zQgRmDvq$@e5gx$i+~!-0|&E!HlHEdrLcL=fAMO9v6u-C@Pm3O%YU=Sy852`i@E?WP>;9VTI ziU!K;OX4aqgTA7H+Y7S1YW1u zWpRY9054D28{;@{oxqFjfNYBE1rG0mXAO<%X8{QAm`Z^e`|`L$ASX0xmDn4jdL`J- zdrh#gHe$pq=cib}jS0s(%aOEN$$zPHEMH$pw`wvP@{Osq&9&Ri^1Vv^KKyw%yPU)J zbNSiSei~A5FJGmc_!x7HT+%h()PJVZ>vfm@}PqF38 z>7};*>Df|fz}yA%E&E&fwPoOd*_Qod7xu^iTnkYMK8@!XTicdx^39+f-bV@oFYM;> z`Y~X7X!U=DWBc{C_Hs&1uOiGjZ)JBV0OL_HVb_w0-#>wKgP$j3=rQ39SY+9cx0O7T z{W-_si>mTBSLH=jxr^iRCE;1wFFQc46vWrOHx`jtdrR9y0D~5zH|?!$c}vQm#r-V% zsnj5O=^p>Ib1*v&wx{jf&D1;C zo_e{5FplhhD*QTEz;6XESO;ZJqaQ?N;D7~|{gaqQ1a}(Vzv_8)hBt7)T+5E_P=aYS zZ~!6|-$61YCf5U4#_etG?RV%EZ|era8>OxOLpcXGxA*-3PVOs=!Di)T`n<(YAUW#>msVT5;cVj-hdfKt(zzh9DujET6PbyIZ#JPmLRBJBGtD(QrT{# zvL|H1ueT%%+9x18=E?>}33;>8f%e-bMK0n(u|b;W%kw0appusf(;Bh^YF+m8o9W4S zI)qQ2GG!rX!~sqRC5&_xs1kBp`|IHfq!pL`6V`hJ555wuuxBI>UdM8B^59s^5_@=ZUQ!CmHnQ=} z8$-Bl(s$SyRYI zFEaYClJY|Y`snq~vU*+mY zs4pgOQc^*dN7-p8LrBTumgbJ6uJF++81KnEWn@;9B5`;@C?*asE21?hLjBF2{_95n zZBir-Z)-cACqd${FWQD8UOWD->Q+H>ESjqSf$GPTAo~9it*?lu|BTUDH4Yhg<|3mQAF)2Lg{Nf{SHR|eNrS2U7E>w zc#Q;UM@F;_MZ9)&S9Pl(4ZCaA@1^=pND%!#(fW#b`X{;inG}~e6ey`+utyncD5a!G z9EzLic$n$QR2Z2nNRc?q5{ik#>56C#iZBj0d;0T@{->l!92RLi{z`(hV@b3PMZ9(_ zQ+2DLBQ^=Dzg+cOkRbXiqV*N=^v`$o`%zrtuwF?8#U5p&p_G#%ak#?7VV);*n~~X0 zip1d_p_n+_uZY&52;;yj6iR#8=<_i|ZO5Or9UqV&?bsb{LlLhXPpP_9&^_PPe_r)l zlOXypMC&W!>A&Ra=Tltb@K+@jjP)pgH`h$C4- zakn+fwhH!m{1MT7MG&h49)DysUlH&ftZQn2R5V`^@Y6m1=xDwo;1_!Ql4!mn;GakS z?X8g&#|S@C9TPq)V>gYij( zyQ|y)oBnA;&JXV4Imu@VTijwE5IAo@bHHCH+=^TCFU5|PeJwXqv2yF7-K5CfnJFRn z+b$k6_fnqI8~VGL5(d_t*nLfPhxS}k-Jw0*RCi`^A$pj{TkCCqNOop@Y{2mf&kO-} zLb5Yk76Uk-uB?wpz` zEIX$pg=Oc|OnsA`Q?k-!=X8R?vU6&#u#sL!%<3M(u-r*aFkF?HXNgf+EavcD}hGcd8ngkirlcH@X;$^cbs*W8UdQbId zsD3vRM1N+qz9OD}m8(CB;*t#)DXE~sqbxO)1*AweJSU{9<7!W4laaZX6p6!Dp_n*q zQ$%Y}gmHMr)2}i5u{b}_cHE@x_<t~+#6SgseO z2W3_Ix;x}MEBr|U;4TW!;cC@Y;TatOXDIvu;cg1cD%L$H*AYhJ>XO|fD680n2;j`1 ztYW>}0Pd;u7L5RBDP7P1B}nG{UtvA}S6I*gwJm!7uXH{CS6I*g71r~AZKIz5E3D`L z>a(8zt4%%sSO4|=KUlwt4GMCMVLWO_w<(;{o6>9e6>6%tJO9VWH7FXwxNiZWzSc2T;KNe*QowG zp8ncseMLO|OI-cmC@!tutfYeA2$yn|p+rcLEWIPBt5udKbDxo^AVuQvh)_%%9#=$b zP=s+<;OReQ^zS7_;_$q-;|3BW4lhL8P{eD;OR8=aeCz4&RsD}V{WqfZ74h`{;_Ana zM0FB}{Yolm?omE6lyp)g4xgDgS_9zvGvXK;N>_tK` zIav|JtJdRhjpi!?{$7uNRWx4_@DF>`QC9nm~Rn3H|HJb6(f&lBxcPk-DsIcVZO$tj+zC2NK^5ZR_`=>-bvuFhPibToD z59I^CQt8iU0N$*0$>Cd+E;)Rw(j|vqrF6;RS1Vm|_%>~qT*KX=u;lP-6qX!*t;Rue zc#ZlgIs7`6ksN-#!ji*pP*`&KjoNm};WsHPIs9gYC5PXlu;lQaT9=%O+^TVqGm+a8 zCAUiszdccMyPS#Kq4IJja;MM>J}klbl-d1~IARri?@?Yc6#p1k=AVYrn-s}uhlFBs z+OLYJJw=$)hI;x|BfWaDh7`$Zag8LmFC{?+b-aj}X|9NulLD%46+GwZ2UY(ePd^l` zuZX9g-$07QVYIem1ql*|G0`>@@!By?)vbb8J^eD(f5OwB5UsC>r(f>s@29xLp-M>w z-+GiY3?+6PWF!vrO&pq&B3c(3nIWV|94--xiNktDR8|qjVF9J3)tkj@lg_qAODjU@ z8c+I~Xz7}0X+G3a#<|_hziO0V*ny(1> z)gFIcG+z<$H+uZ_(R@X~ul4vFqWOw||0(&h{$3`0U4IQM>#u=j{oUAD*Iz%DO>Omc z(N-0K)s7zj`e?o);1BiqH$?Ll0e_~)zcHGx2&bt;{HAE0A{Y?a>v+0ye!Q&j&rWmK zcO~fhZeUs84J_-sfn|L+u&nO}#_zsN^*y4J6b zuV3pgjIUqo*C?Ee3hav%?$s9XT7_i~aIwPgbO-$sg=If*slu`!Sf}=7Kd@e5*$-?` zcn9|YmnkfJgN^a^dxK5!^?QTMa4X#jnQ~GeF(o=aJx>@N~8sIHTzmR*C ztxA`@#8pa{y~Nc@&*3@dHl;s=A7Je5N|!yx4yDT;;~J&Q9^+b#r|dDVQ&{#G*DEZ0 zj2krmvd6el+besFn^Z>j7&j{{dyHEYmOaK!ji>A}ZdF+J7`G`bdyLx^mOaKD3dt($(j~zLlJMiji@?)_3-pNsQ!FUzf-inBA$L{ zSAQeLrPY0uRB*jV>1QbSlOk(DuA}>w=RBFQM&^4`Bo3zu#l)dp5v@TH#=$?)t#zu= zA4-bEVWzg@BoZVJRnayS@!D~^s#^tXJpK8qztqz|Gg@B}Pk*7Szm?(=hZRaHxXq(n zU?`7~B5_z_;_#{`v)#!2MvBDY2BDZZ+^mS!pa|m-EO%?Y-RO@ZMdDDa?Z_iR;&5-Y z4Mn_m+^_1mqruaESoK$U`j1BIE8^)t?&{Z2T;lM8k_ztiC@&kzGo(ly_L?}n?a6#< zWMU^lM&j_bP)r;SDxx(g!ZBj}Q(3x$AA|4tqJb1K|;^I*=B^5m4QJNdd%cMvgQUW?J-uGlOjZCA-kdZj_ z5sHaJKSi_#MHq)1N=vH;iPvV?E{K*^gwj=>bWybQ@Mvj8D1A1irA1{TfO{i6%0xrC zh7@Vh6w{(wPiC=^d7l(%(b-y&?qioLqBSVOS{qGqTeK$H$F6Ka zq4Wq!ON(}hfK@QrqtqBmH7U}f8%>KY@MIn_GPR^gi=NPmv_(%TqBSVOTHmL%^wCSv zKE4tyt%$V0!j*nATKcVMX+J&`~@EW+i1Qb;9u_Xzl-K80{$NIWrzR0@O6i8VAN)^hFCrVAa9KTBFi9ny(1>=^j5A%~u5cLXY1hny(1>RUSVS%~u5c zwI07|G+z<$cY6G!Xucv$kkX^gqIrr~mNm3TN9(-@=*r)DTgG3{K_A9 z1{!2vE|BF0`E3A@#foHCa+{ki_woBGrsI4>?wM9X&eR37TxQN0OI=WJip>$7yvwtp z-@h$iTx?~Bxv%~}?v}Nu%y5kneZIJe)4U|iRhj|J%sz}L5xN1FW37a(Pa7{lx3mT^0&(!I0$2DyJ*AGEkZ z?hMcUECqr$w5M*a+_!#%DCMwCHwu``7r3~vRC{B4Ry(-o$)G>ce&7J{>)!UP7*+q; z7vx0g2>VA=o!gsZsF4IBmp5qIjoS#l6{2Vdm0ruA{hDY`cI0K*kOVPzd@39M${|8vdvX(+*2D6|+nHS%!Q8dUpr0vbwQaX_&CA4z zw7sw^*9RR~ixhrXCZ56<)8QpuSx?@l9I{Kha;z0R0Ecv0x~ zg<=MxB3}BqHJYag9BzCUzLHU^-01YYmA#thW!K5;4(%7&YKgiMa(R=2VdkzFBrpT0 zE#22KuP-P3^`e|NnmvAl!jJX=e51lM7`dAieuDOH7P#O}HeFirt`JNs6!BW|UNlb; zIFLP`;oBp3@cZguNT-Psaud3F%mIrq6kdqPqe+Eqp8G$CFeBx#w@<0U8%N&(i$~FC z0Fa%n;_m=F17P^z;bh>UQ^<|5Pw{#$jW^gX}?txi8Or>fzKLp8>A=f*D6K%kPN+jMsqF`m;7KC=HAoj1&&YcYrL&%)~2LMy6;43h7+O$_y zGn%?7W}U(Zy!eAJj~|Wa_V(ahMB*f{UPMF34+3zJkvX*pNZA;CtvGEGzOB<{^P7*A zSSe>9%x42V4^@w;HX68oCC8%E!F>(fe}QX_*=g8Bc>Ia%9biXdfsNT^*vRa1+)MV| zU=JaCLM^_YCFxR-W|1`UpwU3Gm819!Otu=Z#@Hj3l59AM^m7@wPlH?D$Z+rGSS|m- zSb3C~HRc4vv`uJkoCDRhQ2h+5ldb?Tn&UWP#P&l64{gnWRMBeC(~vq#NG#p}Y%Z|k ztpIKza3cVp-?ApN`)@D?7DASXU6zppBcomgFTwX0Gp4Q`^%QV>+?cnFcuSSG_OnG_ zgI58AQ$9Cb%*q%Vta!x`o=2l%VHN|`?m5C96Y$lzBeFDkl-lwJYvEjNv&gv~jIhTB zJa-VTRmL)dS9*;>yt%N?n+w*MQp4>&gz;c3;h%k(#=4Hzy+5>L9f5}F9vvI5wuOnL<3Q-(x|GEt2A!Vp~1 zaS$zj8KSwcJh36S_;27WWSu`ZFl3Esh7&LzNm^JtXz2jtH`7u>Zt)L>Go_u;^IBMu zU~DrU55NjJ=V5rZF?8-R-Zb=u;Fhx070V2l>Fls@u{PJ#r!<5Vxl9b*ZbU-}Y#$6F zR-lHQJ(B$Pcxq!stxVJ&HfkqA?Nn8>Gg&=#$Kd4%6$hexSSu3nAv{kz? z@n--SG*<15UkK!pF$OsYNV!2yT?J(7rTFq~s#!60ivT-UOua#X+7-oj16Tul#g78$ zjuA4gKLBe2-t%a!Uchkzl>dsS{KL^|zZaTOenN>N`9#_pggK+Uo2i*%)`Y$I`a8}1 z9cK9NrAk8BdlY{LY)}YBpNO{ea|Zds3SKgUDZMmcn$= z-vDd}U{$0V&qu=5UTbBP*4C1Y-;rXUbR(6-JXxX!Jwr7F#KPMt4KfHzHe*dG{eP8 zBS-Oea7Kdz&5+@BRF+js&Bfp^pk^1t#VnVjcqKSjisr=K#)~0_SHyPi0Q;Y)^5mouXRp`xf;VmD$#;7%Bsogj>O=Dw zB?iJn^9pgiv=d=7UOJk`-%sJ={QFDQO{OOv_Vz8y7#Fabv;Z&x7-voLUHro^Oeb`Bm@;)dZf>PdcyqLFSu=F;F4wlqYl;sVU z3Dr=)nd)3~!Z^2?xW>rf@{%0I4}#MloRS*I7C#M4-ewHZh!HI`qD6G_e25m&=bH$y z2?DTDFOb4!@)hOM@LT|+Ic+kGslBMf9@SwbBXcL{Qz&@@0KSvF=qdmY11OK`&XL2R@Jsk!GG1$0U@Eh> z&p!*U{RUQFR5!`#hbHj?#wkY7!igE)VbF?FylC+{q~tON|3gp-xpE0(Ie}VPlEC83MA==KVDq+HEz37VBt>HvN?j-6>X5f;H-f*{q8`?ZdRYtCwstpC| zL)p@(=4&WtQjMYf0BRD-Q4xfaTnXiBVAH!Bol_y~hO*4iOep&r6wQ-ETzL%26B}|g zlw*wizX_#P-q;AqS%_8ol?m%(GT7ww#>(bnoAz7s?i|}W2Wf?`-+4=3zmqF3mU>Ix zkYmk^Zw|rf?JA7Tbr|+M?Cs64rJN;Kh^M#XmFo{8$OY91z|AmMB`?WZ*p4sBD#fIz zdW~il3H~1N(d^m9#%3*Jy13mX&@1{C^h??TI0)cV0M_idGFE6=UYl2XYiLO*4z>r; zc4a%BRu#7c{z^9RnS$R8TqjJ%u*seLN5v z=ZdK+xmvwks%g^!k(4*5DZYugys}O4!@wuh!vCt}mURYx_E;&E-iDRCN?zus_`FUS z0G+3*2VM^z^rAYN!|3*j%D3RDy}8|9SS;!R`gc$+Y7by^IxbQ2T~g0ZQAu>G9QNdP zMQ4KkX9$%3hhcivgxrM=QjdU&I!CjkUNIi?G6&=?fKJhEpkD`pqH6)fVecazyOOD{$HnULG6438`~ zstzjH)-H$3E(#X)@Y96Y9m@p(H-s9Q}le$7k2}&1OWdd^=S6e!O6xE zZ1L=0+nxzY^{3^rd#H4{QS!FR`Cjjh*bF*!`?o5wL2#pw`UqX z8xGH+eO34y(5llgPwk-mXxAGlU_u2NI^ui`Q>k*jFy`<*X={!7S_Xc7`=Td7%j${I zPr{^^flcPS)?BfC@d2VQwQUP?MH|3d0P%?p1&Xf%=W1|@ZvyZc0NC6On_5Gb!K8-r zw=31G1{LsxgOL0L6;yo@i^{Sk5)+`rw2{-EN$mw-RXqlSt9UZ1sgk!H_80yn;1#vg z)G!m^?J&n)L}ykUGIVy?3m%;-E(A-b&r~gMT!qiHm12!%LM)uFSSGGn*%!CpunMhe z3QM1&%Az;`uOjW2kXw8ru#1rmiqip{))yho0#G~_Ru36%i9@cKleEeZXTEMzPOy z*}GhJ>G=)&Dc`LZBgjg$tjC~JwW0&UI#$L6FR+y!nyxOfC8ibDWagl@##~VOmR;5U zLl}_NA{84#tKy5P^{T&!KRTRVj53+D+A~`*)buP{-&5!a&OSFuRa6-^Jt?YJEA3~3 z#@yq2Shxkk8;ytEW7H3O`@b%P>Q1l*!NH>Y0n`w98NgQrz5&nyo15{!0{D8Cs!jU{ zh&62=zU@)F@txqao@pbzYsdV>)bXgwT3t}X)L3}r+q7}TWZrk-O5ABA?EBiM(v8*N zJ&n4GmH{{+2LN8JX7vMLm0x12=7h6G^96IRGnwcodw2T^S~vjuM97yWRjKVg=4@vP z(8+vRUc@k%0eILu+pnSKtKe;7O%+cV|KEb@9bh4VJTcbYG|!g4v&UE!ZtWa+dqoO8 zQ*DM1uiEsqDsD1$QRW+0rq&%|<$pG8xd@eg7+Kf;sADyKTCs*#?%N81w-n{R%e{dz z^V*#V_+$OSx}qiEPZaJEs)u(Wx4HDQsQXz*-eoW_?@lZw_V>|0TK^;nYVALqg5x^) zaxZdgAJ;)@mo3XUIjh%qy(ug&g;Ox^JuYLVB9eC%R{{gKz=SbyK^CvT692vhIiXd`qh z`)LHlP7uU?nOgEr*o01eb8N1>^;4N@P2s$^8Qers8ZdV@?iVp|CGT@l7_a8|Tp8 zG=U3-qXPZm=3*gO1(Q6=C5Ez`6uF;ay--Z_74f3GA)2QMhsKp@sH|HjJ9II;m&kTg zk0r9*q9WT}oIJ7AkS?XH3g zIEMJO#BWTOS=KxW=q3s1{fOZ_nIoG-H;@Zl0{eeh`ws9Zs_y++LJ2)oX+r2IqLC^H z7!Z^UZC94I*{~a<0s;~hkWLg8M8JfisHjm;5J93S(v;8?MKnkeQ8WrFSRklKvHjoo z+%vPwg5U3Zp6@@;!*a@d&b{~CGk4mV$voj}BeU<4;La2Lhv3cAu$P+-lK{_`{+z{O zaacTe#05>+#;-Skm;G>IQ|<|mCS&d4?r}`Jl*zT{$)+u4VFl?8dHF6l;!aHNxfZ$*FwKs$K5d^mY zpIVJVyTfEoS4ap`ZsY+UieXYY8WDzGA8E{ZG?*gxiRCQo8Q1<5v0q1fDvZ4mdb$zc zmj{YwcN#BVKs--0-98(gu7$n29Uv(cKv)%Oah3Vc%Ah6_8gq;4uTe&xP#&ZBt;q_u!uu-y;Y#kSJPN`~t=w1H0xtNcx-|Dt zf;-d&Z!r3ssqPzdtSO$e4v!eDzFfp#&_N}$sp3uNGGKX-pJP)?LG(xgu?WOe60%-Uu$v2Js$<_9XU#co0M&6Z&3oW*>#*V@SMtv^WK>L{E+`Pze4mB8t!8(#`=@ z09Ogz-GcBYlTQS{jM_|cEx;WXErvYeP7|h+7*=qGGQ6P^T%-&K9Q=Bef&B>vqvk5w zVT2Lo!l!3()3$RlG|x<&VDmz z72U$Bknjq%s}8%wx#CZrU-AbJi|~|-KZ86;mVdu?noYYqa$g=@zE&svCa>q&rar7) zDQh6_iqWJj1MwONFSTi#!P&d;lXwe={UC;e=*t!AoO;Qpmm8YyL2qQ0s@V?&SE;ci zxJvB-;U!E~sTR1$FRRpZB)CdlC$~uh2{=Ys=!;$K5fp4d=C3_U;$bzwXc3e$Q?2;K zM)8SFS~tR^e6F+POiBlueuo}@2-DQBRa@P7z|INHNomOci0ZBuxBcVFSjB+~9v)_} z9Uu;`7;c!Gz}yedjNmkPW)Nk||F%MIF>a)42Y;Lm$NTnM(J9YXDG2p6$mVrA9*S(0 z8emg8yj2QLJKTk@p>H+yrcxTbO-wrBQ^?!v^N@0b98PxB=i%grc{tv9-Zh24IAXpR zRqVS{?DPP6NEqZjOP~`*n{lizX8!jqE;b+2ayL|!2Y{FY;xiJDfVgWQPTije@r+v8 zFN4_tsr?3sA`fd4v{Ewi1Q%&1dvC?Z^QLyMf_NHE&SdM z*{utqwE8Z_FmKH?ol8arc&r95=b%3yL%s~KlM}8iAz2L}i!; zb75z8B<`S-LHn>g$S!C3^A$KmlYt69vP4H%S6j(XzzEOQe{`OXuq(PCBfOmiNBA@e zj*xEvd5M=1b_FLRe3S%7xQ_%!*f0cwBMg8D6v3hc+{*};KoVLLJHm!4kP)_3h9k^` z9Y;8hosS)1rUEY>Veq=qCS-h?9e!MyJK^v{b;w}(C0J&WlI3lX>`;Rdq~Hrt4uX55 z7=O1+DuR$<-n{t0Ivf7mU8-XeJH?;XgdLL8cFGZJ1ABJyF-v<1Q zy48L@&Xqjr0`la#-i*L_GqkCKzSVe>Z;NLLt$W`vVJz#;;vL~{gmC#9y6x^xxc_nN zZSr=4L41aZ8Y*un82*cuZZ;MJM5>-Kb1|syc+arImoE~zI!z`8PTqzwW z4~@({)#Id^UvA4*?a(Hsi=M^n*P=W5P*uetI^{zUJZVfh2qF=u2q{NF+=PW9r3l1G zG~DM65GBv^_ql<8;&(vtzKB$oaX6qHm}*FPZfRA)*opWVIu68DAgWIUaUF;wB)Wm< zH5G&x#P0h+1VL1K2*fZDH{!g)9s{B;&RWv4K%~vaPx>PKl+MYW{M`Kb`8z%7OTnT> zYjS#?$g`%Xe3Qttrr0|{+%yY@`$SSW#V!P~b5Tsh!#TVH|F*64u^Mf){8^?Jcs)?>KU5Z%wL)dukw9d;7Yv!R6f~)Sj`v z5Nn6}G>^Td03uaQ5-THi@0YEEsg$eBZs?U!4HffD3D-~w5^$*M5_6!=87YJbCrBJG}yCM0x z$y)?AtFjkug=;y_L0eHbQ*|9xd+3|569hz^6=R)9HD4{5LUn4Ms&Uybo4i`E4l3VH)g-Fs z4jS^+g3qB1eyUoTCI33*_-cWh9f3TI^xR@t@vVY?U=?|*;CzmHt%{h|x^f3l@>W5+ z9f+v~p}bWvADp~Zu$u(mD(L<$b|=17FbkQ(Es+ieT{VLa_(s8-0Hp9$g1 z0b4ED8@^1?>OIW%9@RRt9ezUve3`%pC{psGmkF99`rLQ}8v4?4|INz;8Fl6vtEa`Q zyt@#5b&-+DQEj&}?olo31%rSWgFFgL^HRZW>dWc2zl#c(td20%$;axZ5tFh5Fzkyo z7pHIRO9cU)Ubl16FBMpUEOc)=_KLLcu^)vhD%i<`zN`uAh24)^9;fT)vL8K*Sz#?9E)ZWR;oqQ!516y9;yDK=m4yF55$q1bi(S@-J8vIyN~)s=HNY9F zF{se#>_}fs(0nJ=VSS^q{-l%k06(*ve!cKgFBhW25amM@>YxVzj%OMnS%6FfB>f~H zIP;h$544)z2OYK^=0D5Rq};$U;#Df5J?o;$wd}i_1ASg~`I}S-g{lQ#krU zB$@k@)mstT^0X`W!SnFM-0uocUJ51mKLr;^xXiNNaP+M{hMtm0?tk-$X*L;BuBX@FNV3PYUt0tF&YG3ZE7o0)u(Lvn| z!b`0TY6`fF_tmC4z&h{#>mD^NIJwVU!2Mm=^#m%-a|?2%rS6bUu1M~GrOpy+paUJt zc+)AG*KO2lt;q0U(nBNk0RKoBMwC z>*juDxqbji?r%K+JO2Z-P0McX@0^NciIdj{E=vBF)tx+5y}#UhOW}&ie+;g?6iV_> z`4s)h2KSny{|pi@C6VOsFxRx34=IxW1wxtpJq`j&VI=vxD71*s1Btx}W%9oTs3d=r z&tOBXrG1sM#R{d4NC1 zo~LNf{WazrPy@7r0T$0GlB*oIB`!HI+6p84Ef|eqmuBgL>4Y$lPzO~o%i#BY^(%*{ z-V==P&Kg$Fo8`_kDm+9DI}D+Je2!7MyXo@DOl!F#>**CaM6tqriF)&*Eziz!_n|pS zt-0{jj|U4cHEDc7K4Yh1hXLe_$_ftDv6?+4kPY}O0PN4v>Fw-KARnSN6#Wd*d5FA4 z^m!hfp-TCs!@g4wnT})EmhBrF-3R5)FA<*_4;v}tGX-QI@p9b0Ue34!;$}?aIR+Mn z)^oJnC;%j5euNLnn2KM4V8#pq;U!Em=6-OJF>jGz#vCHSjQI;hD4>41;$4(6x%4ss z-Kbv(pTcD*hu-*ZdEE5rF7uzYi@mO`z4lL5t!9hd_KmcGffm5~moTv(fyqF$fO@LB z$j+DHzO&c1Z|iVtWd5@}HH>8N$TY`-FaOvY2^nv zUIO$oQvv_xMQWwur$}?Yo(^rLwi+ftyEmj^2uDApmsD#^-CF>^Fwnmt?o567&>5tz-7H9O{*Iht&mJy*WvE859bG}|6)#!LP{KA=NZ zVJhD2kEdTpL2LohgT!tSD@c3>qTaXY8mkP#(=-rlV_x~iY=adB!vK&9gKQG4Fjz-| z6$XVM%(#ZBabhBj=a=8>bg=q&=-@_GUK~Y76Q`B z-^DR2q*=8rOE$MPH;RrXpJtDjAMcoT{~l&tW6c;vsZ?+@MKpV&yca>0N`)0LlS+kh z$3U=BA(aFx6>>m$iI+-+_rOV|!e1mjDRk6MwSsJI2u+k%oQt~s;6me`BV&7 zZt$ATc78-cyatRnu>rWV;Ld{!-Fd%p;;a_9CWC$}Ey@nSmsx&iQPcC z(1{0(6KCnesXFxgY0)2;CA27@#jW5zV;iNWM=T`z0j_^%XfYO;iYH)^1d06sxbEO^ zs9CP9G&81Fm(|cOgnknAsjsQFo@(tEpm`RW(7RE+lhq**hUZ#&I1D`Mi#oiPc*vOM zLF=hl?nAhj!|N6}k;Ch^BzSmjeG=UxOb)LD!O7uu4vF}-xFbY@hu6IzLhaS>r4Fxw zB6vBm8t}#F${E1Dl-MsThk^A|bDTuVX0L;;MG+hia~P4O#ey>b6V#Ya+ltajC$|s|+ z!A>(x^YWPNp+^kE$7H)NX&fFo%Ru;;>?Z?>eoQvyQKOa{ii?$T@7YCOS;j48Z8*^w zSluyjdzTM41u&iv>w>tk`%HpBHpV?3ko2B_@U+LjUVHMdCoB0dNq-&x=Ih0!oX4|X zO|~Y8_uz7I07%*_L9>!J?~!2IRR0z6wg8i~X%9})W;6+=%{&rJn>Rs(MyuaTrcE-u zv_VVu(p#`c0q&*5eoeX1Q}a!q+&waNhPtb%y|wd!t@s-ndfIKsT(4NZ7PAcqyR2;U z*wS9$TN2+zweT&c|JXGP=Ne$x{AcZfL3%$JNMK7mX2eclr6#~V(?qhB7-s-;u>gmg zEAteX-{FTtz==lqh|2kdzUmrB&eMM=!j;Aw7u2>?E#IT}^Aaq4g`VG2>s75Ob+{MJ zKcQOQ*a{cd6HP*=7^riR!;{1COx3e{PdNH~-1H0QM`>PjG&`v|8>QLhXbPygb&}~e zpQar#8m4D>g39^wz2^-xSo3h2!&$Cc_MxU~83YS);zn=Rs+`^~Q#rl$b@5JcZdNV5 z4OQ*EusW*pmmptZ> zpHLTk7QMx|@U*moAvp@-IX!OE2FuC%k2g240EE|P$p9=C5T7>&rQ?QbDV!DjcDhm1 zF#PsIhN1JiZ%T~dJp8SS`Q?p{M(i$FR(PJSRW#}sF&d=H1HYnnuNqB_AKkN+W#I;> z6+WXY56xyp%xdedz_wPXnPj)wF~VWh)9pt_UjoPThQ_lT+QYx--a*&jMqJm+Hlw5K z5^H62ZXPlR2Id$&T{kxRVw1JUhSOnLpS0kOog^C z;?Cc|pHFuA_|xF8?%?u6!DkNd27Xf6lj<$AVR`Tq%1(6nGS`BiR<_$>)5HL`z&^Hx+HhK9I1`-VHF;} z0Z+}}y&i_wl;xmG#}%%vFYVtgpPWo8dmp4+|GWi&4;y<0psnRk;cSMFVOL%SzD?O% z8{lN}92VDl&zQ~|ANWMkI)FAN0yIb(z5^hCO9h!*Z02sLuX~JThHE)QEFYoepi5W| zxxOp<{j6!Xz4;ICe3Y%R9*45=(5-}J%196eB*GwmBjE>8<2;BSAUc9bjdfx_2+c5P z>}(LTLHN6BJMNWfQsnx!bllyMI@r>2SuQik(+Z#A!I^@yHsAt}oz9HybnmjeoldV~ z&)DfNNU+n^AKK|gB-rU5AW~zUNT zijv1iO;@!I5&W_!d5ehL|C!49y)EM#>wY99aSx%`eNfzjqbSOUBk{)AB%sc&)Juko zq?=f_+(rb8S+E_EkboW|!GM-iJn+E=`fL=J~ z;Zlo@84nnp(Ju@!a=_r=;_txVO2-Xy@+6$17A(XY42#jM6_T&R1P|+^%4$`fZ$fcT zl~0V8Fn?QlhQk-P`cEH#!dSH!d!y-wXK~;d2A&JmR~S{wN)SK(1!5hDqyK=|4q`|# zkCjpYBCj}zFF;&b%479e0HWl1{ysPG7=8y7;pc%u<9WbYFdyOsnOmAQ5V0$VpQWWe zxY7g>R~|$o5CtTXKs2iaq9ZX?LG%D|{4x-J5F=`X;CB;-)CDmT#N7HI#)DYa2*iUR zb~Xl)4PsvtkCnC$fUxV}r{4V#Hv=&OL|SW#lkszk zTrUu5gZOhB<(c?lJnhL!NL5wQb7qpQrr6uQEOpstWDTpT!qbr~B|$t6!b`1GRUHB6 ztBw-~Za5sucI+J(5qs5xFru{&L~1O|R8_@FrK)NS@V+kUwx+s$18$|NY6ZQ;YNe`* znoxhWS6J#E#*PokcB5DFJSpxW#Ex2do^%hmjAprFVr7^nc)l0hzsAV))_*1p z7D8>$!9?wWQD~wXafC21RaG5Sn9J6Wl-jTrt+T4?j)&1Gg;JKXa+UENsj6x{13AE| zs#PRdRYfA;ZH7Age6-4{s`@iAA4zJOXgpXosby8wYG^HAmZ}p}eI3=Ts`^CKysO2n zj``0Tm=86ps(u&sF;&-4^*E|oRaNs5I8Uwds*zu(YN@L7L*+|SO`>Wx<-?FwRrf&~ zyg{`xOa4UVF087`$4L7kT2fW@G^`?3RS$17UinASQB_r&G3B>f_X6dmP^zk~nT5dd zTdl)Mu&U~75K>jOZohFLpR*ox)!{90z^W?Wqeux>RXqv9cS2FMbqv!1ld7tZp$!#3 zV8op5$sohuDV$YR%K*hO^`fe(B?pa>dqn%Ms;ZXjcu$E}Q&pAnvGK$Z`iCjw-UNxR zstR9WSsf4}Q&n|JeL3Cs?^Zz*%&H?yb@H*gX~d-LFBtYknv2snwyKJ^LAkk|yRfP% z8{PYi-FpuEQRr?3vnO07q_X6&7^68K0=l(*W~YdK}h`wD*i3eYpOmLY%CU=3j+zYOKaQTtBCHH)W!$s^FhnaFv40 zvga@Lypdo0aQ!mXggK~^@eeapGAMLF236`Y42oJAR3~s5?bId{V9pEHHb2k$xp7b` z!=+9x>|O*a?KRG2K=*4$FO?;|)mZ^MP&)oR(5AA40;w#Si8iIOWLh=|R+f=U1eWRl$91y5cICHKSgk^5nAWgPt`NW7Fpa(~t) z<0_l3mel{_UASUlN%IAOQW(ko9EIi+dLZ#7LYXE{0V-)ydLeA6l{C2lT*eBuc>-W3 z_m6*Qn$+B1tB?zF|2`O}#%fIN?@|1J%>9QHq`BW-19oxlr>LfggYw2dz);Dc&;c1# z0S85`465Yg7}RjJ840k?yFdAz$e^5Dz~_8g;Co6yrL9LYgr3kH($P!qPg7@MKt289 ze+Sy+J_VBdKC~&h|Lzl-`y~8x)i5^qvtf7bPT1~3n^!)`DS;&IAUH#P%f9qOJKWHh z;yKI5bFZ;{d(>q;a@f3da}MycaDyja@N+Lk&!nQj>M3OZmFo?VBjO$uNW2y%Y|8n^1CV1pV{u#v0SngF>&4L-Ehw5DfmMSx!qfV~Bs?hY@O%*;l$O}qx}JQJS{ zgqax%WM(D-D>GB#8J!st{twhJc4oY=ThDg(qMa$vVrH@+Nh<_rsGmV$^VM8x`gfW6 z&pJpWPY{d4bDW1fSp7lKixAxpQ7E9<=gvbR9e;p%cnc7B9#{*;&7Frm@vQ)od5Fv9 zJhZ^l%gvn!DV&iExx`FtQ-9$kMCfSz>-5E)=L+~TGeM1+iDQag0+7r^9+ED&iXN4G=lk<3Kgiw0G|cD|3Vwab|a3S=f00xL6d`gxrR68`dP7&{XdZuj+r z7yEOx(|rkMA_mE8OorX#oIKgTQFAFJJ1<_v+ zgw*!$XBDc0JsTI8RLN`_d z>J@IVa-lVPzV1W{L*4h08DoDP>O&kwB^`zToNAqCR`Rrns9Aoi9 zkx7Y2om-#~Ewn%j_7b#k8;nCQYC5@{NWiK75JKJrWECLZWJv6-;O4&Ua33p&Mtx%o zq;U(gAln=o-w?v>6u?8zsMZN&AQRqh{+OWy#7%(B3d@Jq^H}K`07wFS4f<5=?;OB$xo@UP1FG-R3Wm0PM0|7u`q#)GJ(bTLeQUk)n0gE8PF zFQ%RU?>$E4PV&x4GRfGjm}1eBj24Pv-1bNQ^G4a{r1>LCgDtrp} zmvZQ|FZVOk^-S}hHJZJCQ+w^-ty*W&<^BEWJv|@ZAApJ7FpR=?w16`vh`ynhHV_dj zlU{zgX~3QIA4+fF_&Mn_Y3J{Jz#!a7KgK;9r&uvlo`^H`5}%;So8kXen1*J-5jTea zUi=^M0@93-!C}j~d^I31L_x+8k_AXlLPh{Gfsh%R;PfJpJV5RuWC|dE5b|6UgbhiJ z;w>7ZMi6lGbSm=(tfWSkXPjk)F7TxJlgBra!R<=>%ze;bi_*{@@8y}VTBS;tGA*Wu+)1^k%{`--OwHv1Z2{Ge=WMv-4#>cFf+S+0t0Eos+aRN0ZP2W`C3^ zc|bc^Yc0(7#G1Kv~*~FpZ8v@&qK_WJsiBbT>F8S|<3OM6hHuZUYdxM6hJEJvf{z zFVbFDGh;R-qobiqeMU72j)oVStqxDg4j+t|+TbYvdeu{we~1nzHe zq1CS&C(h!Ha}VfG)8c1fT5p6!m=@>3WrGV9L|JeVz>)(M*G9>m>;2s7S zx;bJa2RqC6koGmvblK|k8SpOy{|@k}vs7DKwf0(Qexs+{$Qb2-hnzr5qiKC6Y+09W zM%$Fw#SwXOq4(b~PB>RnNd|JE&!NR-!1Sg?0WBJVn+^^L>jum}5$zybPec+Vb~kV* z>2qnhj8j~V<76ZtIb;m zng^|?N&HLzp!PBlOAVPPlU!0}5 zr$o*LSD*-9R-h%@kFGoqxR(+;T{&dmLuy{r8Av8{pVIM@u44_e)UKXiZ-9x(7)Go3 z1D|6UtX(}16RBOjYbyxWuKo_fOPJKI-o6c;<|kgZfC$#uV7y4}>P^b@fiKRf)ULWW zKJW#iK2hl43sFqC>n7ue)vI&<#XQ{lZ3ANc>PiEOu3vrX9ix^S=uTIvc z>l*{>G@RMf1Gt3Tj*0hqwVgCoxBdb-5C=8q#XnKC&Pl9{(w#BPYIZWt5)Z?qXKGa1 z?9f>#g4UB6zZpIyZCap7NgE#trcEvgFJY24+rUZMoFl=ssk1}V<^~X<)9&nEB5jho zSk@`DWCzie48XmV*u#|zt$NoC(cJ@6%dRt$%gujyxCrc%Y^a`U%*;aV^KCYudW!9X zLEDc4zlr$URSUeXdA__Y2H8&y<}gZSVIYCsuUaRt7vBd!-|zSmCjEj@f$gOI%7fOk zA-)Cx64>9+2?=bCcQvp>L3jz1z|I0Efz2nuz#bvN{jubG=>I+LcrOvyB6>kf_HF3O zm4JIia<_7!vbgia%?(!SW9qKHQCM~suwhstkfXL4p|kHUr04n2PiIH&SFJNizIr-q zA$7HnF{uK$gfT_6{}x8yiT8|M12vEP3a#;rXfLs~VzGBM61(Ee8j$od~Gmpt}% zB)aks;9g4X3Cdv=oTBD+b!_%b=-Rw5Q67uCqTGg?|E#iw7*uT?lz*veov_7To64E$ zSeS4tl2MoKT8L2}L)QnP1^*gw+%7o59r8JcSSSh}yJYi}C_AN4O_$O17jWEMQ=a6C z>6t=NL`+MTr8jBycbZ=NwE?)MJkb@?wyJSkEmihc$F%zgFwKlL<;kv?j*T^qFMBma z(&_@5u8uY339p#G5o=ny>~P2Q2u)AKn)0MqOn+5P4>KamQ>N@v$F$`xj`f?^u};Ma z;;XqvDkbfEm0^YT`!MECGY&i2jOPuAwdUWua^4Yui*Wu65p5|n;;dQJPeT)^D>WOL)t3cjTXfp^gR(u8LixZH(sz$a8M;Lf5%kI^ysw0v_o&!QIj@|yIR#)Y6Tw+>;A5<;J z+E%rU!H!pqx2=#*H}VoWJI8A|f5CXCoPXy8r<}jQP$=g=XsFvu=A0!Cr&ueEvrphG z+)Wwwb9q#YLsZVc4fmnSr8*w{#0@X*0>S5_9qo>CbSlcx_fd|jeQN>{>*&2zrbj%{ z3XasvGbw&|iY8ei+Q(Rzj>{S0G58>h=ef}^{I#BdvKap!gXKE~TQ(RBi|yw*9f%a$ zhwE%MdYZi)F-ul4Yxv(+GnpuJ?h(#XJ>4Ex{SE5!Zz(rt1mnS`IprTAO!9TtDZy#vdS+rU?x0~L zN3V}&)3ff<{&0A0yAIBTqHqi^#u?-PluI zc;83hae`-gE))KB^4FnJPYvO#d<q~dd z3mbJyr9;X;OXAG}+`O>Su+;H5+~}lFd10ebDZa3AZ2@WtmtpDRW_;io@^R;djTC8k zC_w%V3cBEhjomSpRex|S`-HTQ>LqG*& z6dDQW5fJ_dbZ7s+0vhwGM`<RS<_j*kCEp%avev^~m!C zJRsurPIEOVWaQc;^ejRUSdz6DeKJLwbr3mfrJiv-xQw1^(-B~HcN)&OpHbIZn3agx zxeIE$Cx}mB6naXH)WE#hkfuT}P@d}&=EI4+*f8yKG)kdVhS$MBxJ6!U=v@~Xz!w`n zC&3pRNCb*t!Q7V@8#3x)HgZoG(?s*1^$YvN7aP8S*76mpIziQyXv`NI{t>mM4cAe1 z64iXMpT?%>P+n{Zf|C~; z9w)&U8!9xw&cx5fjxT8(6wtw-tJcy1Uu>8PfV|l7E(qVNimD}zAp-!D7aRVBHndH( zoNZi=S>cydz!w|%;RK}QMK3lyP|7syuHXOFiw#%kcs~%Y=Ea6LN*GTJp?|M3?%na| z7aOdb@abR#(!AJkxB7Cr?eC+4CYV)6nCj%ClNOS)^%`RLj@4Y8zOgShwAAT!J9puW z4N2(U>+D_{Qacn-Fne+@qAD*oY|(uv45;VEgui~nbjc?((IGE|Qr!J0xIiYj?;ZX3 z)Kd~E?yd|Sw_LhfQvV>KEbhL%5ug-Cio0tnw1Ch9iPH(?y3r3%SvMY`4YjgvYzCLX zuRL%Yga4f+iEk=$)8g*V3c>Y)Y|{K07^lW+OmX*M#k(mJ{bB<{ge_QJL1x+W@6&)e z#oYpv#qg+VteY{Y?g^pOI;dKWbx>XqUTS4f4};4ne$2Fz0x;(Vi=ls~HpoG#43A2Z zVK)`1w9%Z)(NS{=8&kMiOPyu113eP<0&Pl&DUia|J!n%3S9dl6!514y_^(w%w{Ug& zl#*~7$c0^n-(h<{+I*uarv#F;x!?@-H2X5vVdfx^%L<1>LL${DEdz z-2yBM_EOXj%fyQig=R&Ki2HmX36MNM(r*WZH`Aq>X}S9CYT{;jCMV1UNUE7USHQKu z&l#hNR5QsJ*LY*=g5qx8ygQ@ba?zG&PQo8BmF#Z{PhJWo`!|6LVdP*YM zzxAwXwur8l)IUHdvwsGm6h^ZDeT62b0D2(tenOf3zXK}Se|vM-P%DY@G`Ng!)aD+5 znf*L!cGaaxv;TxbF3A49FiwrtnCvfo&h+?_+0UfH7JOTsYW7z>Zsbn(3rw=Vk!rjg z)ME*0urq@~2V_uJU4=nWD}%ZfTt+vwxfx()I_BNq?7V5g$$sVn9u&fEGEiyvAsIqk z)3~XP$^KMzmJg_BUcw%rP4-hD*}n>HO7=f`wPrsF|LtlRoBc(wD}xx>kD$$dNt_a# z?WH{q&QMF(m*=AvecT4c=3Al;FBcZ&AawE;z!k1#?t9^-7e%R9->!uybV&Djjt6(x zP$LHjKW30V3J^E<52{}zlWd-M6CMOea(@n8`*Z#@8aMaNiw(S?by4oO_`zTc(U#}a zgfob{eFl{9JE8fnr&ZSDft$^8`<=Kf6zxghsLFiwrtnA}fS{C~{- zY6{Zaw>4lF=YBvn*&Nho34{M|289mDpw@x#QY(Wx!9h(_n;QYvdG{~+$HdXeedYq{ zcwjdksI+NFhEN&gH8(d`EL<4B2DP07b^A7qI3#J$f-}@BH1lY@Xf{4Z@L$m7ip@FI^l zhmhdo%~c@0gvsO0Pr%9J&2sHP@bTs~B=~sq77(Fs?qTKP$D7_FdO447j04ngrOhnyzOi&HT{_vjF#8S!p|RETtFZ+hCD02t>p7 zAZ}BlUsn(**WqV6#J-o*xUunJJ<0Z7hW0CHLpxQ=E}17@9KNqm7llMM`WQxOIWS87 zK{eG?V=soZW(TY!mM=NRssuWkHkMX)tW_4I9mUF9h*8OKLf~aM(@AhRBqGCE2Cna| zV{r9?0~)u4K8Qz+#;-CSQy~92Hv7e@8020cN zQctCa0;sQm+8zt_NqV>?DhmW+^+i7knE}X@rySi|HQfu3?v|ZZ0flGT-&$t#r`wvWs5ME8yR}1d`C*KVV`%$q});=c3ksAqpac&IY6lA#Ve+fRNjwF7m`nJ|OrT#JIu+{Y>m5LlMjp$`}?B!%kbOS}`?yCr%{XCAx zJz!$50r^5QJ1jRKwi^ZpmI``rDQKSl^^d;1mGsry(DZj2(n!##2eK%=je|EHnNHglW@pn@8h!D(!UJ1j7GBY@2RztfMKU z+2%^Q7^W1*4(NgwmOhNDN)jxNtWL8T;ll}pE8o_=0EF7 z95w7;fzJXy^-9%NQmt*_>~SqUU9TE?8b_@pgL9KL6Rmo-S4xL7Nrum0;{QZVE=&fN z$2gi?n(e5x$T91D6U_dJHIuIl7XbPJ`|3eomjLIb#IC?`-;DlMj5?X-eu&e(e)z*8 zwCDm%J7BzCNbEk~mVpBz3w&K1X6jDPv_5?2g za*B5ae8?$YZxTGkTMWWWn4IEm1}CR@r%CV>uSPErJjJ^nM5wp=jXv3O>v$9TA-TnZ3{HlxuQ|{yxF^AZ z`d`$LJ5_B`1rU7>mfR0^6t$_h$2bUQMFJ0T{-ngthUyf7}d+>>nFRaR2Dk7tIkS`^QRfvVX*Tv43n+ zFS37pr%V!jnFQnh!6F6uKJSSrY_N@ri5A><(u_vxyPQX=eE55H zSqVt#xR;&!uJB8GtmeqmjQT%}Jbc?}y0d3Imalgz zvQ#Kr6*b~SkG~x8S^`Req*TZt#$XpWr9y`PhrE;u8GeYbn3XA|Kz~;JPQ97Zp|ch5 zNA7bor9;10OjO>K3T>7i{0aMEk6wcwBVWykC)}KQ;TorBtrN>oS~!#h}yW`OpSFSWfV6VC(#0#+h;zh@&K~ z15sySF{@8i5GBv^_qhSx@OxbilfnafftgX&Fa!Ny(t`N0hv8>f8e%sF#G~mTvOqj^ z2Z-4q+7AP<2t?bFAeMqSG#bzA`TlSECj6Af2TS$)r8~jKflc2ha`#U?7m6HTG5ra| zxx0&5>1RcfH6^`x2YM)U{`fQB^Oee-Iv_@l1G1S&P`T3@MABq*A(@gXAbNp#WIFmX z2!wqbe(ubHm~Zd?`2>i`AcDCdW`fxK5{LyL7Aymi3u5?k5Gz5nTmfPoh>uBZ2QlRp zc$N2TzW~>KCB(--^aYXj8wlIF9v@;LR}O?cefm`A$r^~2?Y7DXDr1uPSRr>6=7wKs zIsn2;t=xfc`zr3hXW}r#?LC0yfOTvlz7h0xO(QiA)dFFdoCYB6ax@jP${QtjYhH86 zUoBp#e)v^d&+y8%s-tawU-K?B;-yfY<9|_2r#=NL`K!epS7Tr-L&+t@BtlRiI@V$^>XFU!JO++a8OkW*N$2QRl0=jxo00qMBtW`Jz6n z>Kdv(KsC!yj!>PNjL~p&77QsvsrwpwHAppyqDS_#&n!df0&Q@pYI$6@{5_PrunZ*^ zBVCQ=r3~eESVhWE(ylPg76F1Xlu1BI8Ok$2c`1}Klyl&u45iiUAXtX-3J57fdAzl8 zzz^V}45bqtuneX48YBe2ubBbD_o1R{>KKl24E(FbPeL0iR4r#4XRB6ty9!u_QVJe% zQh8As%JXeZ!|uxWUzMRu)A9Pmt0_bIvX$|~5c>a8#=VG%E<;JiAfJMzDMQ(!zMO9R zb5+m;v+4*_oqTlCLQ-}UhJBId;`EIzL-_@5b8|a)VHpZPDBKAdU|)lM=qpB+`v^Do z2B(as6s5lIT)CXGF_mXthAES8Y`%dxr%)b94gnX)19y+3-%ULwkq46JYZ?EAbhV^@ z2BCZ)8TTfj6hOKtwaFnD2sAp~=- zG=B79d{c$gmT}@X7n?r}Y&Kedtq^T_-l_Z`CR%cTIXrnOl-xfBE?@<5XmRwtH$YEGB=;vK8dph>BKJdt zGWn(xN?|1T?^kG;&;yBO2xacC2UK$ZByFgbG-&{P+91J3~DV1FSRnLpE#%| z)usSoT_OGP4I+bbR!uzLgIx*i6=^9Qk#Eld&&|=x_XAg}Gkg!<@@%Ud0NUg}1(N&i zHfioZ@wVnZ3I9847@PY^uv-W(b}HKZ{vA#UBx%FI8EP#163_(*eZf;s*=sDH2iFeV z>d7yPxaj5)z+c$R?9YauPbq5A37(yk7&{{}$Z?7vR^y4ioG zaz%h7`)|%?_J7^bIC8V!l%ia+3~QHqOB{lTRj%^D<(mDY;K@s&WdBKUfh2Gv9evL& z&{Go0ep^?7FkLOFpGGLNe*>WuMzY_h&}>2vB*qiU?7w2GCdwiZUTP&#J_46Kn`dE_Q}82!Yxy1n_s&&jAa3CP z!=F8FflDZES!m0%yvj&4Ct(`|PbO^Cn6UL$Y#Kn?$>7p!jJ*aeAK=HJw$st&x$qIH z7FqqwsEPpDNyxo`YzM@fcq>}S0%xc>ph8{sY@O{)lO6`Vfc;3r=K-j=6TUY@fh1yC zfc#BJ_hfv~6%d?}LNo;XL;667B0Wd-&?<&-VeSPA z;s1V^+QZ@hdG@LxY94Wi8dIHt@&iI90rCSOmqlF(5F(WizqBwdHiCegr&QG+*eCvF z-&XJAFjW0&18^6ln92w7vQa0*^-{NL5)PQ+WgxwLrGS6)B2U4mR5eW{qwAhf)uHro ztSvseOb^Rd={^N_zf0z5vS=2r`mAGCNVEO1X6|>%98Dh0(yQ)w%({O7vtoJ;}n zG)N~MO(D&0ty-?3c5(&Hu8B31x(z<6cQgqoI`d>yz0onNxC>_CSTlK4pA6_rjWL70 zyP(b;ID0UN6(nv4QSL(!cY}BwgnWW-ot~>^vJHRLRcwQ`AzuL?wIQW;gP0Ds{n3pINabnnnIcls9L*`hT|8Sb%-@{gYRe(Zim^x zs<$|113!Y<&{#7!_>Lx-W`n9e;+Sos*@9RzH~5YwlV*df<~wHfKZeDhBf+|tMtgA9QUHBtPAuzQ zMnmFFxC0iaz`Y2Li!k^w5yfZVbtED(iD2DJrB8@R_24RnTQ&KGE)lw$p-U~P8s`R( z&AOL6#R{hmZ|XFgx|dvdJ;-*ZBah|)<1Ju2+29U<3!PVAToAcr;Fv!YWzabNu$KT+ zZZ9m7AhGkn^#>O^6lHO*ScIYPOp9&6JW7jfS`>i$nHE1pESwX7Kt2$ev^fG)hkdXq zqD>LF>EJ@UA~tfkw|rAn;>2SEt^WajJ@BaysMd{1xvr>Qqo;XMp17K$xD$`TexmiN zWW2+{Qg*~xyh}tG0M1i zo1*Jo&TB8~3Lf7*gfqKJN359`PpBf!aJjMjj8z~Dh{8!z5VKan)xC9$`|`(HET5bUZ|YH66=Iu%=@dh|nyz`AgJvB;09P zx1uHcD7tbIa4#kHDdn&Nyr||iWem_+7+2#%aJ=4ithF$KWZ3dXVETL=nBUeAJH-hX zeT*#=CM$3nmHs*0y0Iv)Gno&qr?7G_03;SY(5}Q{Bnif1BM2{H5{oavNi3>P7aC<~V?IYXDy+!7w&i;5ax`gtbxt(ZN|!O!yldpSW=kN&gq~@Pk;kxp5!KGN9;v z(}qZP`hk*t(WL z0ZhKdXi9XQ|D?DOr0qpyo5>WBOQcR1Ue==}`!{r@AK+d}Y!6Ps$%WSHd8t{!5P{T>)m?oJhs_UxK0@qK zw;?S)^!3Mb!p+$QtKwwZZV3EJ;)ko2zNZ2e$VSsQ1CqW(~FWt^w>2U=fG%I!`!rl5H*r`HBwG-%hno7^T!GI*bkVy2{D%x7o2) z$+(DOS30TI=}I6IJ)H%g>A#`}ZWx0K%ZJvpvq}#DB#cYpL&CU|1QYnOZ!lcK%y9sm zgmEzmhH*0qhVdH^p~v0kFOk63T{w9|OLlSew&W2`4BWL-U2X}EO zHy;c`!{MR|5p8{=)z!}wx2>pX^eh5vuhx@c*H3TJ@S}A7MV^jNLzzF-{gCR|;#gyY zQaI@_58%P7m5fjM659x6=;+xPM^CDbj@~hja2_cOwA_`cUpdOrUCPkW_c4whR~;Rd zz&tVr=4Bhk;KnK%gE2TV8*T9%JXc0TyuT10rh3MJNl5E)kiQ&dm*&_NMeII`vKt#^ z*IO@k`R6~MGV&5Rg%h=aF53igpn_Pm^_l^BT3NwGdJW10M%XD+U@^sEgDD-iV}u!v z70%StD!TYhU7-Ff0e6JBv5>54OC3(+J5%8g_4r7$=0?x5wR}AQ(X6MMMU|}u+vxE| zde%%ARr(km@o}??S#mZvu?xfO7^fSU@qZ!56^ z?y~RTQ!3!Tt8{Ave3J&e)IROH&J3Wv_(7kn%C{hNQv0+DAgO)YLn7Q2e`Aq^AH-=A zJwVj_9@k;9PNep!J2X=JG#rG#cze^1d*|zd3b>DTpZYH=;2uzCZl}*zDuvicrx&6% z>GXOM?6eT+0m8rW|5K;KZ8XYjk>vHzQ?77a<-;oHBa3!X z@~kL%-zfQuQSzY?xxbHgG^PU1Ne`TAUswU>#2b??S>U88ZiUI_sZx0mGFJjR7?F^G zP9ed73c-LrPYDCM14L@96A9=kXe0}&9Y;Wy>+bNsW&CTV9i(6B7-G00gf45AB0W!4JA zpC&JBh2g_LVyzh74IXP$sCT{bW~yiFRCw0mWv!@QVTHD4s%6(n4_^4mSsT_1KkR4l zhe?bw^@NQnyQZl*DVAHOlx!JKc%|J3WvDJ3R?RYOE9K^fG9q)4M?UH~s(Y^gV%? zNPkm)HZocweTF?_r)!_qPTxR+oz5V^PR{_58tX(ly#^ZT^rs;FuV_2}YoxL5!@cpW-%ZhZFFF zV&N%ib;vanE*E9KAi9=;T{4J?WkK`;5vT|UgFx7~;b(Srh%-TaT?@oy5YJo=VkQWG z0}u;9yx9;$E{M3sFkK14UWcE|rVwuju>eF`0mWb7r&cp?$3XPu%RJv{fRi&3;QkfH z-hcq}gL>zIl27a9EzDZX~_0*(0;AFllTj-!}Q z@tx8j@Kbzuh>iJE-fh$uuPzWTeuU419fVsZ<2A5C0nqYnz1Ee8m;8lV5MFAfi|LM3FqTL$e)Ji89t?hk+CGP%?txM0N?kpikxBJ)JM~n^)&mu403)TO$<5Iy zg{FM8tMMKA2;U#jOZD^4t3a^&nM5EHD@qdf0;ztU-2(G4UQH8ZkT{=DhL#1&MbKKl zycqT4RI~cI`PEeCtGbR_zezQ#pZkjXtg4%-dLPv+t-goq)U58N+s?_NR6j3-%C|^0 ziE3DjeP;FZI%tE-R4cROpQ)Tv{fueHK2?B`u0r!t{rm;2BGu3LV@=_fcn@M)>&gj0 zN%eEpYYVM9kBX&9spAPdhv%z+)z2m15zGBW)z3YGreSwo{jaK@m*{x=idVTK5^Sff zF@*jB%DA_)qpP1YF~~)*G}X_?)tA$4|4tP&!K^yM)GvVN=A?zBY%2`=BF)9=dr|eX z`f@vWVfAw^y4MbSMOxXOxKYv}Y9C@A$Vd3*={{7z>AJnb130=$_2&R|$V;Krza0b@ zCH)$_tqf`^xQzX3^AW(BA^t%Z27M3WJJyZERRmo z0G`+mYg-@_UiMPt!O7M$5QQd!<3=C2@q{NqfV8>^H;=0T!m~N4d>*ELdk7e#e6~Va zfTXCY-gR*8Ki%6na*LXF$|v}uKSP#zV2vGBCI!c?5^NbYxsCohGP`*Xns zlE4jf^gmEfNhJ4c^)=0g>1s*+!GtpR6WaqyVI=qKD>R$X1Bt~6W$q6ERF0XmX+y1~ z$yRU~9n|JD2Fu*XdnfpvBY{6;@(%e6!0dsO+ zU~(exgKF|QsMjhKI)l2rgAS@62rsoVs7JtMl<90@_5r{;@BZ;#BXe?}xqvzl?2G>Z zmDU)^5UQm+q?0RB`CMO}B?0PrqknvAG|H-5hwa z+o8<^oj4_sq;&&lC?ES$Mi(IV1!;xN7gC4Lp=~9d+zxO~XXbuBynIYi>E3us3{hx= z?(g)0+g11)Fd)}pkmA)WFe99Wohpc)#!5=nQwv3QcZQ$$hW|3xI#3Oe5Rj{RV8%Pd<(3DYFw)< zbas?jrRHfGdDWu~EgL!++8ZP|G!l`a9RxRo-vwKz)^4P0G(N!i@Y`U2(3al@YtWpYAUR&6W4vlA!!#bayNt(s|A3_307%Hv6_ILLT9csm(Sr}_n{I@MA9Oc&Az?tq z5Rw7NPC~+w-t)+7^*xS*M|OYHayHV_R_gDTwxCaRWG@?2beJ0WYAlfU`&R!N>Btb4`H69uICBI3NnZZz5tp0{1x)NfUwi23*gZ z5XPg}^SLq7a;ywwL4Sf4r-8W(7;hdeioxenT0DSt&#^EWPzZe@Ce^M6%pqDNOoBxN za0xfV;^`<0t|zGQgZ|4tuxJC!O~BY)Ks-jGH;98I27{>I11IqeX=@y3xMji6^L)hz z(VB#GEdc%;RbCiUelM((YVv88TX74`SQA=11v?GD7j`2F)`X5A!J5$dAWWN%+aemj zQ1PtWCJ_Ejv2Aib`c8Wo(N;|ohU!^Tu>ixAy2)#8w6GL_i6mGzxs3$tCd>8YyZ|qC zll{R--DEBa)=mBcB9ICFIL3^1lS6vJB9|7dn_K{na}9nG5v-g1fCvk@C3TZkdlQj* zR{K_svBV~IlQwjzf2qc~vXr{XQDTL|t`mN#oAhOd0u7ohb*x3neTOPEY85OPpK*}8ch7&1sXwVk~ z%N*_o;U!GU92S6+GKUXHu*~6S5-f8_@S^=u>KDhq|3}=L$5mBzapUKl1(yQ|BA}=_ zAkH#64_p+7N(Sc%963QGJ@2}sjbI)GGUVHDg*Is+=;i9n>=zPWNCZr^zq}ZdVN*AyXWlZcD z2~Db&o{K9lhTOOUDXythL+sb!oxugYSW}SPauHX&Funz6Agokf>-`L-DsjbY1+s`M zUf7{Du6Pw7F_hWF6|ZVQ;)>Vc;aJKyl2XJKuSf|HWEooJxt))l#RaeaPQ2q^Z~~If zz(o1O7rdhXHFMHO(*N`Iu1N-q^YyM#K=DVchiww5S#mmGfqX(1Yz77g!5n)7x_S}q znUp7~Tz!lk+)+ZiuY)Cd4p_LKM%I_pjCr|6Uiae7T;s2y9z~Wf5HBPjKtxqzM*C$i zDCjQrQ}20T5N1?{Vucxf%Lz84&=Jr#vk5aA3P_mI)0|*4+Q|tvqmPi7^g~VW{)-t! zL&^@66kCC++ywhj#>Dkv^FU7SK>I82Uc-xFbLG>{2@rPA|7Q(mrrC?V? z>Uu6W>s#-$BcvI{Ad4`gBb;aj&OW11JhKTi+6_pUk;iD5(O*)EFr#KN){2EJqaWCe z#6LgB_XOKWvbZOhG+5Y-wi_(YW^`As6NMQykn{e(n$cic zaF8ew4jIB???P82(4I+?C6%j>79&QK<26aL_eMRE=Yw6C)F??cO-f#St1+n|y*lIM z9+Gq`DLKz$Is3E;v^N-9lM0USOC%2AqUMDH21O z8XExUGN55SWu9Oz0-p+GifsjIqXcwR7!pH~P=;@Z{DYFWp23QLSH8oDW5CB8z*i=- zp~ctbvf~lS#2OIQTnB~`T=9{rTprda_~>+_iJ9rj42U%> zl8q!2`^h8ZB7~{SCDm~S$$~vw{_qu}Z3Y!rkQQ5%B;I>ADThtUO{PqAqEwocdrVp7 zM7e2FDwuNAiQ)mPLLFU-E;6OHTzl|levm<7SCh0+;<;wMBpyCL>4p>ka3_9?JPqM( zh`BZV#!yj`!X=fZEtk}JkhaqazsnNT#LS5EH6u4TWtOdllP1i z{)NdM#$O=Azc6``amx7XQUw16vhlp>$R8d{<3E&}C%lYEGEZ&zU_Kaw47zcrFP<>i zm874gqv4A{{R}c+1Ue&q1fvrj=)H2NiTghWT66mM7{|XLodTCUeu*6ZqE45c0avux ztZmXN32>edq)c?t_*b2n#*YEP%rSnwGtganRZ+@+oOWuV|L&1SE^d1-@YQO&xRkKz zp-TyeqyTX#q31pqjOqB`xhPr9MgBfFb)*Ibzo@~(c0+_E)4lt6!ZoSGf?cq0gJ0-h z>;NdFxyZK>`TDuI0nw?s((@@6wWyh(yj4TVYo_!(gxw+aDTDHH4W%vec(ey)q9N^C z4P|a~C9@-3fckQCzBJJtu`_=TOFyA*`Yz2Z*d93d`G(-!8Thr;;F?y_AMht4XBk|? zwEYa974X(XEPMIJ#VjeZ$jGCpmzqBTCo=9~d~za~`ET_kr;5bQCBr_HS&Hf(YLDL!gw^ZTe(j8_`YFvnv~=09J- zpSCD_e4+%p07xp3KwkitMN5YB#9SoNgE_-15*Pc{%26OTJh#Y?CDWi7MkSL_x;1 z6;WvXtAT8bd(a|f*aOLhu_r$Fnd?u4Txt`+^%=L@1-bY$m7Cg60+|557WI;L;ZA1v zD*NzGK5Fma>e$~Rbq9K<6Iz>4Q{)Fu=td6oB`0)*1O1N^`f&&Pg+7kvOqA$H@$WuMbOTt&GZNhm z!;i<{F!fO$Qb^(N=qX8)q8$>7B`XZ@b%|yPrzN^;jf7}t2_5=6Bz*6XFkhlsf)_f0 zHSMTFEeWTcB(##OJ(Z+}xT3)ymM}!3;R$3bdOFu(fn?=wO_QvV%E%9#ByjnT+*q5{ z=m47q?9M-v%v)5WST#8C*GX`u597yt$A1_k@&AU2GnFnAp<>>B%UVBLZ1KEEQ6f0 zL}*IVpH5lc`PVFC99cAds50`=0ggicyA_k1xsQT#h(9LXbeZR3F2-fgz&^=vt{s8z zI{{I6l$mIa#6n<(GTWFKK(WK{wFju!2}u0GiRnnpn21Cc62EXF4~g_ih}%DurI@k! zwj{*ut3fRTb=AcK`)`*2Je&?BowFT$i4W65v+x=0r1s_v(Y&j@x(6f^o zN($#j%&jO%Ia1zpIjV9OQb6H3VU0w;2=w@33A_wog0uOWvqBgBXtG2D(j59jLom?6Ke z@lw92$rUGZ<#4V6lF4lSu#*qv@|$dyHAdvx#<|WvoNL14wabdB$(15b_hBYOuEF3s8FIgMl4}@z1ggfLd2rU(AQR1p!6&6lG{-%4 zrbwUn?F_@k3SX`y?UOtlC`J4ao*R;<96X~r6fI&A%g~9*-~*&_w-Fm?;$`CmKZkNA1h z+Y;bAUki;IFjJC;9CnuZ zyhm&2?Ig!3m+OvokKxypq&$h|yrBY*NwK(g-V;uFA9c!GUk*^tJKfBiTRZPq$;0L5 zIpy8yl=oFLZ&K~NzdGeT;>bHbR9e4q+!+$!0%W5U+Y1O=U3P>L&g6PwvE#CnlUZj% z@lT-qq&|Sx$vOpnd9R>+H?Z)|dvFk=y>1oJOztnt5(=Z?Ie;rTyY%fEs}S_@sBJR z41-%@Z_7_$cYEP5(hyeI9Ov521-36D(1;g#@nCxeA$G)8kxXlbL0ONB(Fdz5qm^3xDJwgMY3KKBoB$CI~I2lGQKt^-fP}f3U4C7!OBAm6+e1&VOjwa{9-Rr&=WTtcg9r zST~8SFtIMEvZ_n$Q4>2d09bd4J!oQYv=mS_TBOVHsp>e(X+er~CW!(r0xx?Y zeK|K~yybVn+QVc$3o!i>lO|Z|p-v)s(MUz!m(yuXVvZYk82AZtP0H(jz4y4JJ z3PF0rB(aqAXX}HMV!13x4Qi3T;0~T*xi3idYLPm#9#SohFe|!~ZjwYYpoymF>V0sVsA+s#%EUwmtTBL8-A~klkA={EXxI{+?gaA zvl)2N7!M_#|EWYZ)AFWZ-D|S004P{1OjbCOb=(4*g zCP?Q^5_ej9Wdo23ECqs8QH%6|t$(S-E=UJ!kw#-hsy<~oBuG1IkL0Vsn zbc-!;ndOEcEw4qo?+?;)i^p7U@&ad)=-TGMi>~!l(${i3pRsfmtkX=^x&YIkYy;A> zmZ5@_;7k%yQcWp!l=Sym$In?73D$uo>nN6Tg-!f<%Q`{o;Y<=zc9~MVlyv@EC+Z5z zF~Qo-WPORHMEiiW((<(+HLOKifGA5{Ww|RzdM(mMHt|A>Z#wJYUast4A@Eo3`XWoH zAYF4NiE8x&UZ}`hNuP`bin`j8AXv|vtepU+Z|Ck=W62bx3TKj#vfPy7tEBH|<6Ud9 z3)a0R>jIW?jNAQ!<&Yp1)*|7D+W1pPmM;Wpt}{s#@FVb|ntn?9W*($3S{?}2p(g7E zfP&ROL$W@iq<_&Ftm`cufI^61vbq2itbI(@HcGl{U$Ablj1sJh$r^65&M;Y9Dd{SA z#70Z5U_FW;T}<_3P1YAo)<`8igkzVNEV~42uF3k8$$HdeZKdO-AV`4Y56MaQu zbrbs(tNvAqRZOhPQ{{Gvy?3I8Xi2(?1&I2Z#NITq|8RYGNbEHe8^kuXQ(`Zg*dAET zsIN=xc@yi!a(7AWSrcpF5m6$s6()8M&wHg3d(^}pWLw)Uu?J1;2@hcRNbFt{d!9qr zy%M{_#J6FV>x*n<)~&BU%@*K$Z=lT2(O^Oi|$f{DG!vt7Bw4mGhWxi1b& z>_8J6#4SD|vC$^>3On$3B({f%or^GBeOF>5Ol%zU9+lX3CU!dq+s7m}(8RW9oxLZq z4NdGTt$}@CVtq_(ST|sgORR2U_jd&L1Bq2ktRDv}CnWaX2hx5Q@htJ7#NITq2YCjn zkl1S`*2X<_QerRGU^)IhC9&sCY#uws(-M2u#PXJn`jNy|m{=Fq&KZe4YGQYE0`_Bx zJ!oQE@cQ8siQQ{rJNE?ktiG6MKzA`OhSFy@`$C(fzr^7Mj=->>s|6 z*ySenJ)Y(NBeA(A_841grNk~UvAdfAdro5Kn%K{|kIzf&G!y#@+s*}vO){}Z&{OJ{ z5}RORn{zDmmBbD;v7r|%l+yPUpfq))QF{b8g#@;1VsM!GMj|1#3+xW#`P=_!o= z$4J{aecwp;?vL~XBR!PUiksLRn9OO_NZUBA8R@4vO(HG!+%`X{Do?IeaGrz3+%W7z zsXlJc1BaiezagDLKQ@$lZUeC5aqNtW%wL+BL$KN|Xa%;Go+m}-izPDi01k^=c^a9` ztx=IVV392OQ>^M2_5$16UKZdGE9{h+6L`Yh?`32*_eMqLk!EK6IgIpeJmVj(+uz8% zU1sjWYpo-7jm+lesK{JoX2$MFy3TCp>*b2f#oJ_NXdZ*Eo{`zy9TgQh14a>>;NWdA z8>&~cBO>on)1bEV(y&Rh7T7+5zTPt=dQHWCjypEFMc&5|*RWPQHv7XU_kh8*=mwN{ z3%!tw&w|B&0;+(6e(>Ny&XVD+@hcE0Bzj3UQiI^la~8dg)Dj5J&CSj}igXs%T@P{= z-9~aLVmg*0J~=t}fvS&X9z^jcCs(y0BI3upzLuwUf(rSG7@n&>i;0b&2&}l&kr)U3 zM2yZ;FJWHc$2TAkJBEtFPnWuR>J8L@pZcBi)bp@wej*0vsrH8WI{<8sv)*gik? z-a%=7T(NzHr)zw!+7`}__{td-EH53D!pN?bl)E?*?ej+mS)GX+k zpNKKJ*gC_hE1qtI>h*&n`0=fut4>8V`RV2fLNf%v{Dcn7Rhz=G^V983RBAHx&QG^A z02xp-Ki(k#+6}gzB!enOup zP?w?(C1_Glk;+pyfsY^m&;s=Xn8zE?P|v!Y%2m@)CO_SBs6chch)_|{o((uvpdLp9 z7GNgq>B*@)H7pSO?|6C*$W_C`(I7naexqE~AKl82cYEmVF0789dc`g<;z$@Vo_Yt+ zJx{>v^Aia>oDF62(-jNX)0h?c3Eh;Z4uqZZ6Iz_7ZUrwt4Z7s1nXprS0-(gdRQz}f zPw1n0>NU*C{B-S;r#68R@nc<=rzS&z{B#Y=Rs9eT@Z;@=O4NZm`3W7Kr~U{l;0L|4 z7xwF-9I)W8p{aeL1DD*#aU%}8P0CklJ}c1@O?T_?$+c{jAYkaVH&EusvVfBIkTdFjRv{i1yRxUV3>>R zJx=@Rv1p9zADnKeM?i$@pPUZV??J1se{s5pz_Cq3=e0UGH-` z+I>08RQO-kRtCC{#$v-&6~IvU2EhO{0VKE|M|kM!g7X8Y(B0Y(fJOBKFwOlNrs({q zOqIFrL%H-i0==J77~kAJQ8(7Es2gLsDgxWb#QFitKU(wQcGSzX zO+jtqp*-IJj3_vk7p!{7b6^WwGQj(Dx~@MPqwHsVz{LcEG*i`VM4 z;#Gg9PxU6t$3BZC0@Hf5wE>JiPsw*-kfh=EAe`>w|KpkAYN~0h}Zt- z#p^(PUFJMES-cMAi&xoJ@hU$mUWc!X*AWZ)+u!}&w&HcHpLo4DS-jrQ7q8>n#Os4& z;&tMjczt+Ryeb;hVb-KO|f`6TE=iny%>vX@x-eL@F(&K~YKyUEp zK$r(xkXO$tSGej-xKK6VHn3ViKGOmQ;ad-wif^BQuo!rsfJ^v}4j^E18w&GL8?FPO zXbp8x6qknA7}6WoXUL~v&se+y8%|^>I-ogTdjnRWnAnD&BkiI#TEG-U*^TnR$$?bk zE+BJ|wLodG5lN$hbGo8+0j(ih4OoP4Eg%5jE&R7A4>y7}S8D@vQ}%W{yU$;#<@z2}n_^k>HfI`i)t5PD^H|_xYCABg zst=dfa!P87;uT|{v>?8;OIN7?2(`gJ~lT$S0^Hl%k83d5fE2aW1}3ISP;2GMa%M=-rPXz&&XS`M;AeW%JT*b`>q_hZOs8r=qqP9%NA2ssYt1dSr&BCi?vMp8ddecB@ zLD#q%2Mx%j<@DK#SGfV`E$3uGh3^=UPtXAtd(40WTVyhH21iO<$mG+iq}Ztvc1Rm7Eo$}cumU?uj$M1 zYP|!E*JAgeFr`gAf-sM7IEyg@eCy}&?HG56bH8V}8dbU)&2TmK;F0UL^7jd82!;6j zg!aJ8?KikvwO)6Qy4wzgsCvC_;Ja<3$B>K^$vW+j?Bj*f+rEilpT@Qots@Uem<}h`l3{o{flccrVFaK>4gYeGO$i93u#96?fosSRW|6@_!eW7JTHm1+uTjcm(>nm86R`aseU z1S)O~g-8yNLRhw;tKjCWd81J=OcFLC`j0_0Z#^5z_)rLVO9S3;6jcXSvYRAFW zL$wPLqJkT64UY;T9Ev$=DCzgnRlaFL2*+p!-N+gqjjV@7R*u`8NgXhRd=Cnxb1WC~ zC~9q}Q*?0nE(FcKzq4g?jAzu0+oyz|Xa=F%*&I3Sb5utO{|vC(`%K|T(3!F?5YpDO zG!71(rJZ4E54cA-UUbS6e5@rXV~I&`)MTpZx)8=e&yOQ^jIhm8diXuXNj(GWO}}Ma z2Ssm$k>j_V(=Pfz^uFISoYwXAFgU+wIbBDuMxXjU$7vru5B|aLc~1N5gRt226Tca0 zsK0{MmETInH_?xWBE5>!f%@G(NUwel>2~_}E=aFoBaKje4xnzqAv}bFgoZiz6-`ru z|A4pgbrZgWV_}CX#OPAOUEt2$#E()qMt0~!lDnYlzVEUkId*hF})+JbZNs7ths%y^321*{=@X}qNbpK$gMe6TRfw1 zPm>pyE5u;n)qxnYN-*Chb{i^I@L(c6N{$?t#Z=5ra_XX8oJ>qehj+kSk1>J9F8iu0W8q%syZ1|ejFS||6*H5^iw&v{ulKb zu<-NWY;Gy&lQ!?e+&#O$3=Tif9`!h@rfU6p*1^xfl_dYJya?0vei*Sm+13?(ED-*^ zIIZhZXo`O{r+xIdpfdl*INeYWgkSJ~oYR523+Elk>2~^P&Ktw&2)!rgjpcL?ojr|z z9H*o8tr!*l@thv0??*-a2gM;hR4?Q7U``LyzZih@P)-lmXLGs3IXyyO*AeNFoF1uX zLi_%sIXz0>3LoUpf6Yx9t(Ra*@Sn)(G5T4Slg#M^eFn=(;dG+Dn&qT&daOQ&eLmFCr|=m{~SE1gRtK*{+VSQnkwwXRRZU=_Kg?!yDoMdygt)ehIxpbH~h_rj(dly$}&;-dG&w@)sx;U(~g4fb$e4vmfJk|Sp& z{14Qufry1US~e&gS}WmyG3856a{z7BDttE!+QnHpI5dzx3&HO59KO2TKpoW&LFsyA zAX1-miCv$oNh;lVb64HSo4bYMRS>bWD!zf;lnJ-oJ=c{PIA1&bV4}N@=BOK)lFVRG zCllPr;4e&liM`?H4Cc2nLGKh&dQ8Xl5f&5!pl3t;!j3;%FiyrnTrV}*wP+y!+&q$h z7if|kXy}gxTVuINuRf1&29qQ&e5LrPn{Gf@R9~<#c@~O_>L-C60J^^>vNP>6z~20q zgw@v=Y&HepAqICaxDa5UG)3LXfMVr+Z8ekkwHf9g7z(r|UeMLl0O;yfxHmPEoA?fL zcTd8=P&1j*G!@{ZEdbgWT+HCN*kn^}EbS`>g|4y~Y>|$Wb0!3ZOeD2d2S}36q0cA*N2t#PMVB83x zx6qgXk1!3YeUgQAn+^b~UBtjR0KF??QIRza<^t^b=R`wE3(+BoXf?VLe_J32UEB-z zZ;SRCsT8lGo7un>UE}XZl<2o6IeH&`J_|X0Sf=$HR*dTIk6^qEUX*ODk>-!O=_hb< z$M0rx32ML{FMuBa7#%Obpc$yF==i#-rZ@c_zZFb;#-08cUa zG1yd{sSRcUjONiP%ziS1L16&hnfgA!eihLss1@mk#kg~|{{m514F8;8iJ2`eMnH!F zb-x04r3%n(4mxo830$Zd5fb{wdoCRPQQv(*iA_FvZS7Qb|G6A5w9${b%fZp%LppH!#T+HALY+Fqk z+`-^43^rr%GJ`)d*qp(58!7#B^Dq~|^nm!C3XQHsBZ*<^1qRuz2*`iFG!g;D0}^%+$DB(A1UnGWYXX8D2#@ zfNTlz+>nv1gqDDi_`?-*(o`kB-VCq-*v#P2XERQt7{) zT%l+NpsvFV>;=&OqEyPejH#PVO7vs+(F=cg233>+1K}POj066_Pl%7Y$qmFux5MB} zQeZx+_W5JwKs|Wy_+B=}f&6Fj`SSy`(u;r0eNkSARARy;>2=8I#sAWQNs3j6Ax9kl zK+Lkk4}LO^e;{Vr$;o*BtM_|A9u(~^E=@>rgEs@LxehU82O#r0#8AaUUWXVOf|R%p zF*pS&c^zWdY^06r5Q8}gtbH9~cnMI>*C9rPLmT`AY#RAHUi@HJOl|G$=Skj=c#jIG zr~1H{v{s6zXK$de>D53X?_Qpfo-rKaNxY5-t}a;6GJY}1%}*t7PfzAl0qR~g*?NG@ zU4pJLehhl}sRrw8Z)WxkkRStf967P^s;V)5jP-7z#Q23HYhANGn0ML$hYid6lE>Fo zz*wfR?vyLar3#>1y)S{*iLTf>ew)5s~OHpA_9t&#a z0yV|>If`%H4&^n0v^GKvD_=CFt*pD$b~{;VS#~5e`YL?T$5-LCrdaseKxWT&Rq-5$EiTvudSFnBt5_ z_+7(@CK`<09H`llY#_VWAkiEX*`r39$c(!dVMbL^XrO3kFIS^Gg*`-?RD)&(joT$? zQC*xEdwar{^Z}-Z94$>%=((>$&)CQCkZky)nx4W~2Gmp)=3-U^L6T`#*!&Hv5zYI5 zk3$6a47z?`nA*{=p6crs-SEYJLTxdw(5!~R8QVoB;-1M@F?e4v=<(0uS0-A+qJB{C zAW#%R=?H}n7CC_)(iB36tD^!EJQGC&hI#_Pg3}XXu%`sx;mpDSvtY@|SuryiC2?|; zqhjlff=7FRrydlA{e9+0;QBSeZegNGpj~6R7?wWHCIe?;tW%g zS-#YNW{sJ_fQ?cl#U=${P#9x0%OTM~%xi(MINyO~g)VU9VsN2@+NY6*dORsyF^pqT z7v*uk+1}jMi)GS+nMo#*HCraZn?*c z|2=IvW-1qRigGol4)#)F;`;w}+H!Woz799+=WxUR4mVui;f5Qyh?&-y2-uzi%xR#Z zNI=_-L;{`BSR~Lvk7&qbc+e)C6w{z>i^F|4AQ!=h$;ck;A0nj(f%bDm$j zz|{x-Hyw)_$Bf$vJ!np4LMY2%Tf)EiW)8PLjZ9=K=i&ttEokj9LY`dOI8Qx1y~&Wo zsBb%S>S^yh^>lDl2$P$m%I2gIVuTB!Fli;MW&%Ndxxnxm{+j71Ld?cB5l%-3hhrjg zn(iFP&Nag2?9_!va+gNN?9)|x1JDqiI}5Glsk%GZ*lF~Deq?yUU{AwS8E&ta(@YR) z60lR?EZg)Ha&n21eh`&lalIYdXOL$=Sr}q)NW|R29W5SoC*B>{X`aq-FY~3+NQaE)?en#66S3Al!j3Ay7Y{6YbI5LPG4!f(t z((_;t43S9;jG;1#(uc_;${#M1@KPgcyBy4c4g?J5SuBGzjSYVb+mzxgIl zw`JC1sRjHuf9684Pn$C6Uo-$|ll;qCgsk7&0hRSnK4h=`(Gi(`WN4vnD4DCTsR|WHy*s%50mF zp1W}FoD5FG)NIpdr6L7xnL;shCeKJsk@Q)q=!hxKm?^25DH+ZP6q7P%N~$wz=A7A6 zABItUM(SLyGm1@{IVaiX%wfx#JF~V3)ZLk3)|@F>wK>wVW~VrFq|8jt%ydS~U6^UZ zEgM;4M)Is$1#q1W((JhlC!r%|&6y1tqYE~fk&(R6>;qs@gt~F#Q9-Z5Xw#-o1uK@q zqTi9kQZ{AgoRs95se);K3TNiz+>BIo>h#&EQzp%s%RP!QJv(*&q~w{*ZkxmUz}YQ~ zGBsm*$|PGxGKQ6b6J>Tn8b)BqMjG8?2shH1wv6esxh}v@UT8}d6?fLbS?@ zr_@sG+=VI0b2Fh?$Y68GNKQ$ejL~C&a~Gy&WX#Fn3W1oCIxl&qk(@MXR@O}0bWz-- zsw zYRbYCvzpx0T3rq6$jqAS5RXN@77@qe0hdn=?PYY3^5fRhRUd0n*4Vg2J&)GU zDb%k}l}|p+%g-83FV9K1GM*Nc=!@xVuYB@Jph(?U>)=PfDq*xWr;;uxdKzua(W~ia z#Y*dQD(IS`7t$J#egR@lP6FOxG&l{{W5}ZW;^mTNq1KhO&837qV|D*-w7@!`6P;L8 zQ2?T9(ZekCj*FgFOnr5G5qWFvRn+Um46T#8I+5HH;-Y9?<;SmGiHr)@TToFB%J;0M ztXP}=t-eL?sPCp`T2EDfMgJPeyIOajv09j)J^=vv=z%}3p#`x;3$)>WGzgV$rTbp_ zkrwFrqvw&YUPf=_l+X`Km0mxQVzibjbTap%adkmkpdyOrjLCDERoeEJm1 z*^^_PT1saXt+h(y%WiKepcb(-#eQ3Fkw}eVX;y{aB7DnXEy!OFrKW{z$fE+10tzWJ zmb|Q#8Af%|XmlBMu+nJj)GO2;?U|TgzNIuSDr=0sPfrX#M;Uq``4nnl{(36CINwh5 z63D|EM>gASs*?a^(p)|4nQ{6nv|H6}oq8;|4Xu)IEX}E=W7&4fvPClEIGP6?tZ}XI z6FpRDA^&{(HanKKsIhb@yMkU&^}?u3x}FUa0O}e@YgFByNjI_!$*$V^(8X-Mg1oAK zy>|<`x_R>^`Bc;V>OW~70P?8TzlYV?^eWn@+URyRS~5?sx^w5Qep$axbF1&%;XYna zed~|g^knt#lvz!_)l{VFRrN3F4fJ>zh^Mu8FSfBKEcuqGnD8-)HU9ytC60}wa;W`7 zsQplmm6qn{CG?4kuiiG=mQx)cle$#zNb{;_QVChDz3D2Na1?b(jE$l%vUT(}No@+`4jmff#8Ny|w@$@~K?A;5 z63T^u1j`mN+}7o=owi3y##re$1+3pG3FwqUdJ$Q+=HzcCU;CcDdI-%ap+{}#s!G~{ zVfuWIot{@YZ%GccU9x)@y{}e97Er^mxGc)3eySj@fW{{jysBr>NIMXonelP=#Dao&rdz5kCrcxv=s29n zYdO^g^of!`CQjtHS&HK5`|OgP!{I^J)01}Up!LU=3Pjs1dv!mG(qntY#hs6w&_f`@ zEWnM@ef31Tiav_b({#UOF{26!665Ks#R+?3vNEG~qwXd2x>l$KHTWShk{Y1InfZg3 zB^FRr;Y=Z>(n4?N*l$JAGF7+I2aEA_lyp0NgYj~C39MwdmO$s0V8CqGD(Qrxm!ZH% z^J%k+alWkkg6z9r(w~dUGNK4hc8)E2W!${6tCJ|hI%yI;X)7v9EJ!R`8WW$_y9edE zl$_U-Lf@d7=+^0w*dc*NCxoLJ?eb|tWkx|kTpTskeK98VmgzsxM6DHERt24PwdwN{ zL!;2iY5E?TYST|&3-6wI`*I|C!2#Iytx+)31U(8i8nu*LRXP>ln%=zh3w`Mq^e$}i z?&9jW_=4=QgL3G3N=S^#oJwA0YYV7yv3*orTzpJ?Vq}~i2je*GqT7UG@+}y-Rpb+< zcj4|@+N<}}r^!PvD}w9PTKee)va+m_1o}NT8PSpP^+T}6;BgjLM?3Z z!|0V9n=@<2tWtwBDrRcIE}E|esql~aS6?4H<0MV0%8LuvPnGNER#IEc0J`;Q3e;^h zJD&m)XnF#Qnwm(XVoO)+r_O2Z{Z>*tE6vcltC*ZFP!J4iU$$76Cr_o1nZ4XApQho=XDejL- zSWRz6+Bis{)dMhd)31@$;k0HzK6zAPBCRG5t&2*p21EU*AMMXhpjSu7(pT* ze>MHly@Zwz#H@9%yA=uRbXZWJK9ySN)m!NAh>DEz@`3_-afqHz88-T{LmIs}suFKI zw-@qa=?3H#vAkbd-k$Du`fQ+`c0=4}hB#jsZ414yl=emFzJ|O@Qr;HGyELkVwqT%L z8fE2ojod?HV(G(nkb7`U{_5SRmM=Be(@N==a9OGCL#t?MJ9NQ)a2B+)<=v)##@JUE zOIFl>hsk;!tR7kq)%dEzsk&v9o{Rns)iNPrm)y>J?=!Qe6HwmwATZgDj1+wmC}t!z3g{PAjtiC zf7tYmNUe=ZI|fwK8Y|q^U;Vinqf!6IwMaEIk|OhIfUOrTcS)m9!t>*Vaz9cF3vv?S z6W-2-A956hA~9W7jEv(CJVW^vDj%xH>P3+VGOk?FZOxfOg6V z2cDo#!WvpL8s%>_@?Qe09jxza)$~5sv^W_0zBDqH?7`I-GIlyQ5;nRs*ouU8OEHxr z0E#O@+qWa$)33%2f^+OmSF$nQsFH)oT^J-^bl|);+Byn(zeCuzbyV!s-H4IVlDBg7 ziby(xd1({M{Qyq-I!U*ui_`|u_A3LXD;*47X? z)LZ+}*CPt)GLRT-T`K9zi2rB;FhziKI;%(L1c_YHHhSDnJy2)~$4XJe2V%QP-hP8MOq9J6L znor9@s;GJ-s#2L@fRI3EyKF_w%@eY;r^XO{&%*ehM*`E%n zzCeGCfaimD6A}J%lLNWQW8>oy8EY*Ypn+Cz+LokAn?;-8H!iDT<@6FJ@hhrzbKHL@3yt3)>URNBSFywo zlxq5_T}^1rhJz-*HU>>z!F8rP;5?{S-Jus?G`DV3Gy)~Mja<*NvVRBlOgofbo={Ey zK+)W$xVQAi>!rn7Y(cv6zpi0BEuIeo~oSs^YN>%_gSnH+IgK$nB6}jHaMlO0w z)hnrd3Fldhfi0G(_aUa5hx98LR`fLt@zeHI^g;r!4C8rn&dR z*&4qdrgc{7l`yW|ib2Rzry`3oZRB0uQ!j#jcTS__!934@Bj;V^+!=r6*|Z z{q=cWX)-d$$H#FHtdSotM6~g661F(4mEUT7mKDTA=|>rD(W@;(YZ8fiIMS*m!Lrto zTtlf`!zO62!B}OXb-^4EeK``#XxbjEVL$i_k?w(*fc9cV|Iq?H4EFU68{*4|=zCVl z;J^_gtn2I?BCH!6OV>Mci15N-gb177SJFg`uoE4M#qYWIm1=}zhq1oF%ApRo--GqE zva?MOH|O=kka4^t=HK$cnAgAWW2Y_AP|_v1|1HrXPVg0RLfIC&(nC(kyB{~=gwHyq z(e6Pd^jW6_yb%d>a?I;b4~eBeBOv#wA&|Qsa(|4jq8B0d$7t&wp1ctww$Lj}=_OO_ zPb}6ujUy0m#8C(%=q#kX5y5l*CqwM3>EqsZdb4j8o#}1G+YqCL`aupNhEKcefkxc% z)@Rb|$hOeIu2PX-#d5$B$^Bw}IY%up z?f)INkY6QbKwofbe$W}GY){aunAyHkV)54csdPmF)w7VYtmK&>zS#q0C5Ul=py(^D zr9THkiKXOS;sgwWcYCWh57Ui@bM&f{bpCw>kPLHhk{%dTL^=e+htIjza)+4qHN3Zr|2| z{A&K!uh9Znw|<5Hqmy0qDy^L#?Tyo`1R@o_>DA8FRQ$NMLse;gN7T1)a5XBYmxWR# zs=3psCIwj|Bk7a{dq1UGcs;G1j~3xaPlv+qm_gEy@vyG}99cwJsh^F~tf8xn7G8%N z+|0qwD(JotJ9xI0Q7a*lK4%A9DrRY@Wz{N1pHa)`{Z6P??TG31!SI8D?8=_$jPAP^ zA4|(R8@sP5*vz300x0V*uYaLM!`w-yX?F7#E2F22mPRyA`2L}OL(FybBAnVj( zOtJ7OzjXxD^BC{9I~wBh2ZQN;M=RwIPJpWO_L7Zr+Y7r02V!kb80Pbb}E= zX~Fdnqe%794z&fXH z2c6NF-{bK0Y!@pMR{FjZTceY55mnq_38%mMX;!U z7)8soD}<%cO%*Z*Lysr2!{}!;bxpSI`97%6cbd^;5j8HWU0x!=kql;LSBUEx{hyPM`0u1s8G+}+Vbrlt3Q&NOa`y+Vr zJTX)>g+o_1I)r2;54Yng+Od@GVAm!8-{PFTM|i$LE2F%%mi40Ooh29ms6!cQbV>wC z2T<#ZC0zfV#5-DucEKO{R(7#hdO0w z!7A-r!u^bxwvz5dz-nF^T2b483$+gZqTO?N=G@g0wW`G6*(nB3HGRZ`=PeALj|L~) zF2>G1dK0#46>6Y6i=kSUkF6c52fcEGe_ae4E+Vw{m&K^}T9S?Zb20m%W!T!gx7bEY zsjv?f!t$QS-pO~1ImX-u(l;PgYn8Y3B6MmWm6mb+=`S?v04DhB+31?(8h2n81{gNX z!4LWhV@XnlB}o|F5k^MM3n__1??T$F<%_Py@@l<4RxGcsB3MT3aD`{zO_+TzM;H!e zHM^N#BdoM~NWxTlDjZPd5IgOMwdf1rX+?+P&|vRkD_V>u?m&Ida|>~nkR;Rf%yTLVP&^&Yh4@DvBe3Y*cXHrPbekl zY0W|QMFpbS>jm?VpurXK${-EBum4y3#-e?QXNw~+b}pfPcG^8YMC({_QnUM<^v zl@7u=V>~Zi%&UaIDU3Q+(dW!k>Js*@FkG!=V|1g|#$PUzMLWL=M?1G8__+|y{a8tx zhN5Lv;aCt4wVtCZO8^yNt4*cPKTt5yi?I6;CU`qqWUMO=mC|f@s}U&c+eKm6Kg7;r z8NIrQBiK@cQD#HNB?Rx#(N>t_w-{wRT`RRHAB4|ZUsb;-mOEl&<~b1{Y(i1A9Kk{t zRU1-|8rbMRU9~uLN-Qr;R^}jdzJ=W+1Q=Liz^LJs58wzOP8+FGCyp$3F43Y?dXas^ zkMI%eP~uN0`GqA`x{mkjJ@V;{ko9I)4#Uet`qgYsFUvt~KNT%L*{zB$3er1EnDohF zUa0MZ1$l$#S;2!T8`1f*pwRD7x_1@*%}QSiC3LT%d=0jA`Igq-M;qirUw7esiEVML z%{dTQL-sxrr?PnLF}=Hh&DX0U zD=VFBI6AEEfpaY^aU#?7toWMsi+}6{Y+IuqMOgYgyy*EWUM_mD3al`fH^%yAU(K?n zCgE7rIIVA-l51!ZuWN#wmpWTIGwO6aFLmDT%!cxTNFP&Jo3CQ6bFrRS>x9FwhLuor zd(oP5-U2-q>D^ z*!cWlQY@7RLf-L7kar=hgmw(G)A=xL1PqhwBVNdqmD1O3Wmtb8!4P+{MH(HLSV<>a zIK-_=!X`v>h+CQD*ze5WqILG;mWb%z18(7?w$LXZa-#PVXk$XjYTmlUUZs1L7AiL~ z<<2DrMg{e$rp7oDxvO7ga^e>9w!gu_y#WleQ(cbcUu#=JUngJ^`Xquo;zm3M(9+JB zsbplofzR*m$0Hu_uBHeOA9SjwBk?={MXz12FQK#$wRf&T8X z6|}Z38qd3!T0}jvk3kiZbvxqm7FK$o*`}Q=)!KUNKis0D&8y95yb^m0f~}AL@wc%0_!AZ0cpY*u2)(680p2oQUC!Kr@u0!tT&86hP@#>JvuKwSc$01yQ^~ zh)6M#WgWvA**n-hJfT!R92bp^r_(LP2H{Ec4(%IXNOMq`Q$Y}OU_vZa1R0ZO=>#~G z&#??Bolp~v=Q2|sjP-sCW-6h(%=8SH?oQy~epO3U^5+TFh;@0lv4=OU!ekdp)u_&A z?QHaYLdhL^hqqjCPoM&4ZyYaIW1_9jiY%gM5Q)(53U;dAZHYd8dwd0IYQ@`%JsaLa z`5FAjHN->B!RQntLp^U!Ldkz((xaylH2ld^;ejC7M8yOY#v6{esZ6-V6IcXXNBmTQ zv!7#u9812JRE=#j8#a}r!TT(Q_V3zez2dou%E9|0z z`o9pwJB1I>_&hZJ0UCcgn;ZW&@?B^F-{aJ9EDrwRhW`-6L*r*|>)+Xs$6;kOPCz-D zu+iP-+{|y1Feq=eiE)pQo2@5tEH&aSa!WJqg$5K0c`4PI`q>KtuY)5!b`VHxoDONE#U2S5U zN*huVR%@;NXyAlZtiCt^34*}nz* z%Z+&&|0Xp-vio9}UmQNZ-$Jr~2KG9YWW&v%v|N3uJgCd3`S~~z)%^_^3J%9=z)n5& zSgn0yeeCKu9MpXsh*@Y-8hsha2X#D`)NCNh!@5{19tPY0JPeI@p6m7uL;ZNJtEP{` zs_ECEY!f&!i(Fab_TO;HN1JN)tkRqh>S`7BFMCz@Cm4ry9tpQg^^@h;@(A;~dHW{a zZBcVrcW{BWK&5pl)$o}1$Q9y7#z-4xytOV?+Mbifd+9YNb$1q{5wG#V);ql7j*MIx zO1GQA@j3gk)3h-K0~p8n+>B4*=XYcF`a-F!*|OS;1FsddyJ;b9n_|p$rI zIkr$-R*6JK#M%kFA~o9?aLpT=JEptKNrgCag5Bdh&_-`z64=lTbK14!SbDLUF{gc- z3|rsU453#t&uJAZs{X+eb_O`lp--BEeIJJ1nWn}(xnnZe&o@PAHJRthPdGsMs|kGV z)3EwKnlKag8kuP+nEsxe0H$Y~A!4|e#B*eKZ@5c%DNKIc^gq$`r_l80)qLJSx`#Cv zG{%!rTxJ%nY>qL16+Uodb1UBB7;bqE4od%lE6m5n9jn$}OS4C)iZ%Nqrbcwo2CM_G zU_JO!U?qK$go7ze6dQ7|JVP0{o`c;!?2o~#y^akm`hoY>HekEzYPJpZQodet8=YQ- zX)F?#Sg>1_ZCgoO0?RH?e)7LeiwHH&Hj|raEqF7nG`WyIYsL$vrzWE%=s}w?GrlE6 zo`J}HEb=(2@GjSwlVMa(Y^LoNx}eWhoYx<31`oKGJL)VtYHzZY%CgZzXki6fxF0RN zf*V^~vazuZ+-1f!LtBzDln@Dgk`0d4u3WInyo1hqX2yWb=1 zzJyMsAWK;jD-zby-MDE4rWe@WYK|uh`FQe%hQmxgo?IvDejNqkBycMi{vFaq*=1B{ zjE~zeQob8=9Gfr2LA=)fX#(5R{l&Z*E*37~5_YjSgC`&iL5LMi$=5gb!A2&wSk`da z^m=2S(O*rqv-x-CaBD|n9)nk=RM3wts}SL`$a##yojR0(T}Gs_%NWQV>2NRDZfg+V zW3YY-Q4MnZ@CbavM$AlC9^qjRQ<#G0-+aW1gcbX3xO570uXXbI5q5y+EnIMT3T-^W zmV*GXkZz#Y^0Ij!6bI<&&DSw9{sXJt1sb>Kcr?u@yLEC*0m8gNI7`H)`gvM07~}P7 zV}watQgMW;z!os<^RdCoB343?KXojV+a;U$nhRn$+z1hc-bVq2P*5zNkL>Qq$~-od zecnenuzWiQq7JeFRY1ro4z7JzA!l3g_e+yF@Vg>*|KA%6ZT{baqBYHIv~lwPhoI>9 zrWm2iCO;e${nnI&qCCbMLD7c!929x!Ve@+8?BgV+>PW1MTXWSO-b=8LtvNtVLJYTh zbx{#tM$=#|h2lMzFKB9fxl%h)lfqJ;FPv>@W8+JR^1{=Kaj|r#6^9AWkHc#J)oykU zu=o&XYYdk8B~;qRDX!WK?#rzZv}_uOI4G~PopSleBNvAwxr3bIDg;7HLu81tiZ8cd znSZNw8m$^ziMJ!J`T_Dbu)M1*??9&#I)zp9ew?73au$dC8)d;#+-Vl)Z58L0kek5K zl^?6pgNK9%j}Gxwhg0$*Qq=}}D;Papv$WqgvIH?#khqmpDVFvU;!8=mhJd9#qJ4KZ z9}hkfU)4ePl>rW|9$i6&UAV9<(9rkY9Kj7@gc2%@0pbpaH{WGf^FGgE{=CcQ*vq*q zEF2OW2iXs$ifYcZ-*IgJ97!}XwMHEMlByNr6z!XCkUfxNrc`XpMbd05VP9mJjqc!% z#FgLZUVGjqD5Q6B#pk_X=WPPL*+csTAC5$*^bI{()|Gx+jG@02+YJ41k2)3`f$s)a z<4EtY+!gq4pE>-cY5 zV_tfBY%KOfjQC{3STOz2+DaS7G85b+c3wts5wncVgdbZ~(32 z#S(GfsrDHX?QF|I*Wr`sLi!>B2dZs(i~e9DwuumV-J*dQ*1f9vLUk40XlvtN9>hBR z@_?RA0AYpLJ-7p(|5cANnwMt$41tOgs_34=twnr?QE87M@1!|7wXHJY4m`{dT^@1NHug)eFJZm@yDr@Tpf^ zHLYba#bZ&aVzHZmonS1vk7IuM9=i!QgFv{1?)xEx7r^G8!SxYr=;9Ll3dnjdq>Q%% zo~*n;w-ai|OEM~;@7lzcLv80+ZT7@My3~d}*b(d_BvRD~TtE#jAI+&^ET++t%gDU=w#(^B(kDkFJvjMIxw}Fgh zW7+Q)b=KB^26bK*!I#IPG&ZF>Xvz7J*d@_i{U`Nwcx+?)DXL0)JASN8@n3Xbd> zJ|+01tsZ!RUL1>B4&b$NeW&HUXV zRoET4>}9VV<=~DI!ko8bFoK?_qBX5xwe2hDw?v)>o@>MPyCKrs+H>#x!`HFiWb5GD zbaN4#^aldSARJgt8WY&(0}&Mu|9bL>>Kf}hlj^7gEr!~d++hhEp80RNsR7;tK{%DY|myRjWPwJg{ zT6u0dUw~FEu@+o47AgElrY2eFNaCk6K~Smg-)o*=V=jLqgO$0WjI_;>gOj}NpjtF` zmpcQHy?iQp6kaW+H2luQe)7%*x}JtT@B*q5BP&}3JxJa*vIQaAGb#*r%ND&@pvv&A z*(@iw=#v)UzM;+&t7@s>LUmb#LJNJnm^=S9-lYAKle!=7wbujm0>RjR|3A#V34oqe zb^re+gK=;x?r2?b`_~qcB!sO(1rh?00B>d{Ljp-&CbJ|%G7GaLGXw~V3e~m}SJdiD zwXI-((zxSN#EKfLwsBAEhE^+TwQ;|Mk9*CJX!jBjfMFKV9%>%{b3nu<)7y&I6pkU}29v(eI^??)U@!c3!dY zS&v+}g8!ZO$c~RZY~c#6!1Nl;FCH?bTfR#_@SM{ZcWhhN@t9|8s{d_m_jkVFSskb9 z?S+o7Osoq{ShuL-&mU^F{@O%%lWD=C&fNLob%sS+ga+15>u>M+p#&pOJ96Z#CVgSf z`u@aU5dZ&Ap1%l9v7z<0s!>l*ZwWoj)OO*bH!k{i_|>34;#&)klD+im-Mod3@Fxc6 zeH(YqOQZ2U(*N}rbPxT)>iv7ewfKJP@R(lt8|)jg_gmAuu6nnT_bk;-yx^+WQF-lE zkat}L=f3OeuVqSJ@wH67smN=Y_UdMQbOPYFIeo0d= zdsbf36fM1^soLjvY18YPs8NOK!K2=4y3~1l`1dLHZ`gtjw;?-k*=U5<+dm7Bf8@etkA36?KRoXPtAEn*ycZn5 zs`D!+U$pRdj{X;Wx~TL0i$1t#aLbkhoiEh?I(19mW{RUuvrBqoLmdx4O^dtZ7W`?) zZ{Kjv`Dw)2q}t!lq~ zRmWvR9gn`@ZJqyh-m3Ff{p2Sf=-B$>g~$C?$1@bWT&6j)weXe&3vRvk+V^yvrpq4h z?>KTQZc*w@#G8KkvyP)Rjh)+Z*$pq>Gq`^JfzDg?zs^^z+M_l73pyVD0!6s9-?CT6 z9&uX7s4W9N+M&Ia%fF>t^b1=HI+y<5O^bg|-uihRlQ(?l9vzwebkF3L=>wfR4p`ee zUugd-PT3cJA9|YoJU8I+fc5^Or9vNtH;+0lAL@K!$7AfZpoJZ?3ol-<@ZvbF^1Ux@ zn=H_yUtGQ52s!NqQvp9O;LaOjV&Man#a^>MCj4W6nP_}W@4gT37;H@rZy9ZjZfVRIr zwugNKOXAPc_;W)1Sr&gz)K62wR*eo%E${2!Iyi8ay^TIRir{Un&5bRCQ^8Ielhd2W zhK42w_2qzVdN+8Bn0ouRPpd}F+13SPql4X36Vv@ujqrA~y-MuT&z_iAIXKn7b=7FM zz0uw1o1E2a##;tQTY9y+Z~O2SgA*p=OnYs+wPH{&s9Wt+t?}8-(?dgp6Rn}KiT=Ts z-dFYqJ6f|l2DdjxTBCX`TwQdQ-YAaQd+g0^^GWfM`ms-cHX(}J)|!dEJf`-Am!Bt9 zc4Nts=4@}@#D(F#c?t7+j7_bKO|Y75Yw6Pqt@y^jRV~${FQLti&12J}1C#2-{%wgm z+|X#KtqTTsHkO>woLy<})2H(Nkv=gHt3BG9Z1wFJoX{r` z8sP=)Af!)ka8EWa7@s|JdS*r66!jPnZ9g%5CZV-?VythVzb|S+&>8#4X_UI7H8nUg zE~!(~6X?|VTqQD1nw}brz28`}OkHCmcYgS&fHmU$@K*l{>0bBtv8l$AlSIz`x6r(nTB`@$C&PFm)?6>~p%tLmcJacXO0 zYP>Zt7%b44x3y;b`ukPvs?n*z2~C#zH`*bJpbtuz?=h_mgm+BqRDkWo*Kw62g_XiQ0gha}Mq zp|QEORVKOJY(5zIw$}9Mw$ZVjqpg9UyVfV_HdHIE=4)i*UY5o+I@jcU^B9-LYwJxs;U)dKsBgne$oON&BH`&7_!^90sGK^+@I z!6P=NCkO3|5B*Yi&s5P_^|O7BVjyU3$c9qvP+>Esh+8yf`a3U!GyN@npTV4ItAA!@ zN$}diWP{>qRCf;cZQCBbdW`1iz7;*|n`cMQASF_Dy}jq8_FDIK^$kzTM{Wt9>R2_Z zvW5rbK!XRAbOlV-gWGnFjc%WnZ||2cW5A;_k7!T^^p}I;gfz$WwzZ<^wq!Nx4L*;d zuVze*jkPAXj!m?dDqnQ0E9H-R`nC;PpZZv=UeXF*s_>*4kVb#A6lQFwV5oBDSl`Up zL}O@pVsc6~*1WK#(J$kY;7NsJeG}VM)2T6+wyhEk;#a7&l9tnP)+fvCZ++C1RQF#~ZzSNB_Bt0`$qm>py``n-;5#f03;Y-@6MWU~}=Xy>rJ#gKS4ziitX z2GRm#8CX<>@tt!#NWm$@8FDg25t^hmMrV#jrIhhWj|Y~zh~Q^hC!E?kb=fI4($cpu zOBH?nSytCrqK%Zfb|p>6R!z264^K^PA8egHIxyTfYR*V48}1KU)<1=_5LsUg(fDR- z7#tm(*fQ%=yvfq6h|!tGESF2OiLs&5re<4i2;*Y3Iutxuj2MPThsGK^`zBlR*pu6b z`)zRDUC1na-ZF9Ca|9YQ<|?N&WxFi~x320AZSS*iCpfGft>nx@ef3G55cfzW_X{xcbP=6#W8lGmeEgI^H*|2buj>?};wbTN| zqAkr1QbyHpQuP~^0_saWQ^S(1sBp8_#Rj3^(58YNwd7&wvY;iV*qSS*#M}to3m%j>Gzt`R|FJ9=_5lfFty24TT+d+ODL$9O<)JN}-2rc4BbQ7E;U^`QgA= z3~UrHY~Lw+jI&0=K3=3;aY;dtwp_ltPZ6?AJAP^@#sIOi=S187;i-Z~$jtkvw`{nHhq zYa0jcjZF5B$-&6!s>CS`#iR{{`@y83g#V}JNwTx%lgx1y2}g<-x%@+hWto`s0# z_Dyb0VuHU>%IenLH#FEaxP4GllPh}PWdHE6`pOLF0u3o9X8pD8-pyM5Ae9XtxeCk4 zvCWq?OiczA@oIla;j-M1nDiyAvF%zUsic*rIj)OxXd$F1E_D^HSXeFBdinIQTgzRZ}`+$8V* z71rY6+i!6-NTX)Fn`hOr7k0NMN5>VlObtbQRva-UEz#<&k3QR`I8pJS7h+X42_7vB z*i5hN7Ap*@UldYl%{JK3(rseQ77aGK1y7+UNFnRM@D2;OE@-ZAEnmH=8J4$k9@oES zJCwFv6$L$*yYxm4SWGwQw&hig!6 z5^UMufRs+lOGvK=$8Ak=exJ5hq>RCB$kc+5kR{rTBh|7PXz=oB1(FuD1zU;h0$Fj( zBCAGA!Y8%C5T{@UfE|aJjuDC6jOn@UR^S-SoHlD^q1}wIa8pkT=bo`mDsx#e)0vZV z_ON`#-nw|n39^7Z7YsKCx?B36{hyC$5Z-TFRNe}ix$O@$C&sj>o;3Hfe5)3c4Fwo2 zee`g8QY$ZO`nV0OhEgri1k7Nbf8mO=L&JAY$RjEoY=Nt-;KvEfX`QFo+{s0Bf3w;;n~h=yO`cyh)-jI zVd)n8I@(uUATzeM^O;(Ifp#l>&K(PyY}CVPJfY;0#zCL){OmZn4| zGcCcYvv6?O3e!|<-ayip@7XhPvu4ZovCVQ1rZ0+7;_5U`5n*LEscBYWM%W)8&_^_7 zn<0P?X4IYa&o*(i`zjX`7O6|k>H9)E?qpuBIY7c}lv&2N&KaBvt7&yYco2JO^KKP497tG?Y6mcc5*lZ%5Y&s&?ONyf_#BSDSx-gF zQuEDq7S2Yx&2}{|;Uld5VL}hVIl~-ASt}*YRLZ6;$jPnZmXWhMP{67$x>B96qu`11 z&TL^1Ncnvq*yJm6ABx-Zu~Fg6zKWIRtlI*k#TzK*oSl!TbaFg}Z7-{9sD8}her5?{ zMS7`A+>sZ6OvA98HXC1Ko>TnuwRQ^gn(E1~h(i z_Q_gnN5h8j;DA)c<-ogc(a!K<8kXYGuU>6^-XDuE7d&& zQ@*1ysrjjYt2$6StC}~$KK=yrwZ>>%bQyxCgf8DGk9rl|U2z&2AKMw1k_w{aaJ6C8 zSb9?QX3MpC68(GFjXqnSM`mBf8bP1>`pb9HZ1VGl#9-bQOgd!W3}bE4C=obaHBJJ3A#fc1I6Dn3l)-u5DQnsJIM>!-$&5<*617ljv^ zJeXbLv0mDfP#IG2uvGP8v~brFs~FMy1JiA*W^xo^YLtUlf&G)(9aP`hs&cY1Vdo7x zR@l-S(`=*&ZKqYUs9UubUEaA+-4vZ}H6^xPnCuaX^QFxwVYUrjW+$p=b}wJGsuF+s zL0F_)gcd>|6`?uMrs*F0e)d_?uDH69acNtmKLs@*KnUBOb3SXoVq$Du(a!N&<83=$ zAMx(rs<}zuwBIftfANx&u)p966mKWbYChHcsjW#a>N>M&eW#AyzN1g;SS=Ug(YNnv zh+va;uOGLWM+n2yu*11iG?keLK+(Ntakk+EsnuG!YW3NTzM0{$Z^5*u1J{XRZMoU^ zz{j=2YPw(_H!t*b)-xOAadUIgd*#6hn(Nb@IX^MU#;jAr>Ccqn0-^A4@KJJbiV5Nl z1(TFk@NAN4{<8*3sr0pTt)m8Krl3E%n}2HpvW4H@y!$4q!}SnlR8_Z=AluP6vM8t z^hf*u&kUMpFWmAX-V8}M)ZKewcPO;NV z3)p2fk#g)Vjk9&0D@q9WqfJYA*gCLvco^FdI80s98kn341!|Q(_nyvFOYxxUGc`87 zy|G2xZx?&(^x#xM>jya$+c8;X8|QYIn-+WJh+*j*mo+P9w$h`j??6$Dvk_Kc=4_=! z|9pNp$#PP2HZJ>A1>Zn!EIAP(H%4|$?$n}k)J|))X0?c3if@OdVLQZ6Oow7W6@r$u zS!=!^#3H`AY3icg&wjh9Vf`JhcIcLp+?=LlMJQH66qkcUUDna%5XDt)yS6$h?Qbqu z9v#Qn&Zc>5HU_tJ%Ym#k=M}SRv!>q)2#3|a-=(BZnI`%gYO8Mo%(Y>y_EH0rXP&Dw zHWw8%#x)O*U)WT!dkw61tY350w2YM-<_3_>f|IQ++AR>roFf5EFt%};jsjDkgrGQ7 zbz-pi7bS-Jw54ii|Bacj1Iw)wD*< z*DEL1_@SWrIvSd^+gNcSpn8OZpm@(!_DA={>xPGU*J0%BQ(9U>Xd`X%?Bdm`mFl=c zC9Q2T%{tYNcYACn#Qd6tmeMqz<5k%aT|)Ei?U8up%>Md`7WD%PO|_$Ir*2{Yn`<+^ z0T!=|gkvcS`U=OrRu`LBb7-rXC7%4+z<56xmn_=u7niPmZR66HVtbTZ{i|p$2E?%+ znyz-)AxBoMfOL8~oubU8njxh>9CO-6uP=b@l-|~Ss2kU3LeQrWU{agCuB!3cOT3O`VH$UsCdRbE z=JSB&nRDhuLbj92-8+;kIjpeG3a1ga&>Gwx)?iVRZ$)YHP$aDDBE#;hE}!n(9-KYf zdpbt3za^vV=yv&%U0j<#+^S=#7N}`HRAsbK=__2UurZDc_h6%OeJ~PgA_4keSlN|= z$GClH-d6rn!L3RT>jh0=wyN;njF<7UiZQvx9c;$lTN=h*VUI;#s!6(lVvbwqHgScO zR#yPKkrZZN3mR;zy)`=8iY=a+b3Z6Jm4boG5Ov)%UiDR*Wk~p!3!^i%s`%XyS&qem zx=-j0!{Ze@j=`0^L>QHSI$nPaTi8Q(WmcE$b(lS82wUgcnmg1*HB3=;==dlrxDKr> z6*k8>k@zyiN;`%;idd3opuBsk{*8f2RLl$P#6L^To6(9d?4sG+{VruD(%No!FNP-- zm5IlWT4G0WHfGb82VLRN$V2mRgd#1{h=%q^W#XlSSOt1gGf|!=;-h=NXUAxS@W5{Y z%df|SX9eA|;Z``Lva@P!L?7-lAa1wYGQd{XA&_^ah>^Ue@K^hy~VUH`zm<=>7U=Qv4~E^*u`Nv$0?oi$;Ag<3dwEydtk%y zcq1(GrPy3L_q`dZvG>}XE7AB*?P~dyG7xWB$DqVV+BUl^a=oyjea7Ppe-X}`G1;w4 z1h(s^az}KpHpd+(iTQEU<-AwER9L~p8*+9&5O2w$XT{wWyCvg)!b~BrU9Fa6tu|NaG+6$? z4x1)za#j!6S$e}xBXk&HcX2u9vj#?|jDixWhBM1p>gr|Y*WUbn#0E z^<%n7JhFLsFdB;9F49foMsTn)BpsF=wj%eZb0Z5a`n4zyo5k^DS*oD1=+|IqDWJdn zHrd#0)2><^SJ-yY$IpT97R+eJ6K!>6par+cAqfkhh$leqL%L4?iD!4bx* zd!`Hp`}f&BI1IT#yQ87yqRkmz4ej-p<4Z00xH~M!p@85Co=0$5hV}-Cl`3jF9cV2% zIaAqIwid^`NIJFAgcjEHEt~AZ)o@!Ak7x?gX|g7FvJ($awU(yiiq_Ixzoof;OLP5} zE>lyZgKjMkTMA-p&OLeGF=(b|svK-R-M{sc;|9T!)(I!Y4T2>nEHhp^!PeT@&hX+c zvYTm$7qppflRIuXK9Zi>u8Lev3Ocd|#2ZNLJOq0PovCeu_(ur23^Ql3Xt(40bX8sx zpU#i`+)37GvtT@pG>;edif|4w3QFf@VVhGnF&cIW^76A=4x?}4JS}2E=n$Ok;Dl~= zoN!X>%(GUt)bZwji=?FulO0@Cx(ySQl32u+7R~7?MgQBP(9l9uK5B$wo!~;!Yc8>i z)D5Pn=8Jq9w7EIH&2f%804*+Un3T64ROKBO0$4yF1s6>u>wj3#o81w8rz^kO0gCG6 z`GdbLTo(#{Yt)WMSM#ow0ZJ=Qrr}Q{HsaQv7C7=eLvc40eX=2oD{HNO?LKfgPxdf7 z&KkO-67KhM??3c@Y+1PdGiM>AYp#Wz&u}NTq+FUlm1E9LD{aw9v9?c-ge%y3D*vNf z9ZOCwtfsv#jI(rS)CbrGESzd+)D$$WvTOg*bFroiFH443J8XyBE&&wp#l`D8c2OyG z=b4kCGo`Q6>*9L_O^duQ440Vtwx>mXh@ADBNO->_sA4v_c$>(s_-rx#33I>nb4srh zFj#qOIBa{HU$P@MdpRHsm;4C+)DE}o23ee$!i~7_;%afNXV(TSQ(T|Ne$zq8Z~kCpjK{a2yBip+n|?i1f(QkchI^ZY-s6(Nh2M$ zC%mz8|5~uBpNp$Fk1{PAzR`5jDit=%(S{Iva!1L|X5=&Tt+&|ceo&meblAXcB~Klb zX*P+;G^501npI*l%`7o#vx`>dCoK!>5Nmb}TTJitih^d;VTD~`3t(!@_5`gdG6Kab zbKl3)Snjk%YY6)Eu0&Xjs;NFvDW;gPyH3ilp&9JgxlT)p78kSOZ7iD}q{nH^(^{#p zCm4kO^syVdURf-jwe{)nM!D>`x^emRn5r3_UBSrGiKqrCZV~n>S{a*IYqxoW^sL-@ z%RAm0)p9z%N~sRuw9qaFdN0_3S}2g;(9`+DgqD_Chir~#5Z+yhEiP(3e|gupZl7Ac z6|NNpD@svE=@5RNjV0T7;a0J2qp6}ciFhBO-P#@*4)?^1+O19acnPbp!K-zcf+~OY zP`$3mbxtd-JJMVb*6p$NdR5d8E_7SePNnKhCA|t0l*{CV=s|DWS;SC%NyJZ`{EfL- z%DBBVWs!&uK8r(8Sg@9QjW={n=h?VuSxj@`sJ*6TdR9K0Te{d|lCa&_)3-U^Ix?Mz9s8xe*)S=;eb8C)%#|d76GcTjqy1>If>qa$Q zm(gWi+V<$S`$mnlc(eAfo!6Lq-Q0&*omlV-b}>j{pZAm<6Ay2ep+)~JRxdSpqqKA7#f-xGBA4u~y#`vu9ZZ>y^{o5ibI#a3Xmb;Uh)dN*xOXrzZVIej&o!+Fgg{Y^z6ianzmmR{aj&(X#qP zojvD*wZ|+!_Sj=ieD<v3KM#(|{C5qwu%M(~#Ktge~5D?K@SI~KZn9JUVTS^hK?J6QB;p{(4_@QC*1#>b*>F5LN&f3u^e za3e%RV#k&qKXHg@B4Zpz*%2!mip7BO={S()PebR^ccc0LMf zr?*Z0EvD%C`WoyyTWqiYAMDfowrQ70kP|<-(E##FHjO!&(nMeu`;kouY!hNMyyo%TA-?}Y0XhrtHS51wvwcwME zDOhm5njQv*!_5JmR9U@sd7!bS=DgW<*WzBPO^J59GwQYtALS=1vj+g<*1vecqte3rbeJ|2bb@|UQ7iweJw&a6j3vY=xbcErT1BSw}OoQ;x zJ)KsaQ+7-qp5jRHzKU~K+B|V)y5^!dxM)?TB-W@f3%c5dE!(+gAz=q{r;V&_ud7|7 zdf{8g-(w@e-ORb*Mu+$XH(hPB%fg|*w#|M03}Os-SggsHHT1$yxM11cvd=x)^;9XO zE*HqxO-ycT30H z4SK@%xx1%MvCgsTE?cE~typ&U4rAXcJ=c#tOKpyVG=BE}s9ww*9NacAtZg(&wdHEJ z0`8f(xSSXs)1?=kD|FkHy`5o;(WHf%*fq%bB3idy;S84yvU_Z)uPCAJNZ?+mAwpaYk_Au>4?Tp z7OZWPTAdkz=g(n`^76mc5_;-N=&328r>=yac9tDcxrBv{>CSR>jaJUr^m@M|HK_-9 zXQ4?wZBjqWjKF`N!$|63t7BOU8a==#I>~yo+JsA8%uTrj3jIbVl^amawYHjTZ8_I? zrK~m8Tx-g?WPvZJHRV)ps71O8hh=AZr1 z_x$&W#(3k&ZBpM)87m|IGk^5p)U_3s1^$TE)+tAi^Gsziz^k3Ku(4-*xn+kK*wvmb zY5+nGJ={6N;x?F?JgCv}`QZg2XZy|0M}3OV=97JT zK{j}Kt|^e>7BsrcrHE7({skBC!z8G}g7&>3>4wcWWkJWdAsy$xvN7PF9@56D8GFe1 z`$<+Wa795@Pn*=*%m`dRhmq8DW&{>%S9Sc)_6(FS=SQKdldOu$-|yn6)bq1!;Pr{r z1ElH;8olM=;N#Yx@sC_wqN?MIhGYC#|nMVe~kwIrPE{vkMy#h;lFi03GvS?hyov< zL^XjQPo!Sp-zQQNNL@5!K&oYRDA%iIWU1Csg=&G1$pr#WOr#A!3NH4|PZC=bNWB&` zHk7MX*Imzd34fX-tpmO_k=FmM!|x>0y0W^_K=h)Zx{S0`cfMSoEhq!{+sO!;KnAjA z91hXvKPU(X|0D|s=4w`)DY@=j`EWCGHA5m&xl7>A19@0_Uz4pYxvUR0U3QbZtBwm} zW{o27&pe8e(*XXtlcED6b+N~yVl3C7D!vEt=eavprGQ^|l8NtWlUkGN(F>&H$Vlp6 zGb50yMaFxt-5P55<|L~Hq!^R6rcH_x7BpJ-F1`!#Txhw>2NP_%Xt^|*^IZH=lr+xK(?tfLL8r8Yfd+mj(_tpY$ zPNZ(&&zxlHyS7cL)7_|i2=GWJMMhH3OpM*Y!8wd`8_;M}Yu7{V{wdXNBk;?G+V!+a zQA2WBi&0wCBTHx0b$?KFGTWw|!&7>jH3TprH)XW|r^^J-` z>ItdD9^f&F)C8_hq#j^1k($7lCQ=XZwNBC^dmZ>qnGJYrfelPw#QNrri0Jj+zz?K` z_R@)8O7bhZ@<;yY4T+^m6>iC-a#^%*%ls@nq7F5CS@h-7`K9m(rKyp^03YE}>LTVU z&yvcF4G-EO-2o!HzT?RVSIyf0?|n?Zmd2(D%(*IKL$1u?+4FFG-6_A$f`Q~RMavl? zA{#t4v)NtVoe%e2Q_Tp#$0brX@V66bE$|6WioSu=NMh^;j?G~t)%5PD>CI}@dZ-$O zYw#%X*i>QMPHBV08`yVP4n zO{`Ys|KM5ayz=(IEV(kQIEIeE*yd5C(aJbNaSII70TW9W2fAcs@eoLQm$^`LlUV8T#`uL)Zmg#$^}LAzudY`nqB9?NpNh*p_Zt>R{pCul^{yBQl_ZxLLpfWWft=)xgIB#&9^Ffw z<=6hJ3IQMB@nKYQQj_bW2r&Y$a8hI>^{*Ev#&V&Tdto=FLf72o@TZvsq&{|XyNJXQ zUO7LxT}1WPr0T8tlvm&@sUp6YlB+{SroGgKjq!2twW%geAobN5gzijW$A%fmLG`a z5(2SY#@oD-|Bx!%#c0i@QR_l|5V@ey#Q^?m8c5$C$t6@}uc^vjQDH1#o|%{@{^B zTiOQiOtcf);O8gWvNrgoiFRTe{HjDdsST!&7B)_9SDRYBqx1}yab}XWxDBS07c|z> zxsOSmySNQLG0~P(id0s5@|me~-G*~_zTFE)v!xe|+)5WN5-R%Iq^eyXb$C}MWvLNW zW%pEN_f%!~Ap1*6b`LNYSMgofF7`8;&7qDF-~(ZOgV69G;O#-N4>NS_8Z_ zk-9(XkcLY<{Yn!=`l+}5#7kpmigb>{o=e^KK|GnK^;~mLGR)&}w-R)Z2(b#cEW4rU?Z3FQV?>;IT zi0^SC-5iLid36wwk$@B^D=IhX^R5>E>c62*jOO#kg{Omr@qe5Qg99M+}Y@%c%) z)@S$(bxE43)&egch|Id00KCLWF>WLE;-SQN@8Wx=y`)+H?Py%JpiSZhsTvz^b@<*Q zABlaLPanPu|6S|9nl(S;u+dM&Hgr0Cl>dfONjx#}ZTww_rzcVqcvd29{E5S3Qx|ow zAB<&f^xuxg)PgpN%}&(eF;IW5E&Qk86SzB(Ha^w6baCq1O4N9ccfmLP*CH|S<5FMr z0)Nj*#s*%S*?^Z8*ueCx#e-nF*2K}btGqXihHiY++hnw_Ii_(&1Jh6|1B_l7U+k>> zFN*RRZ~daikFUB$kALN5Jit2+dd?XU`B9|#_}=L9(MEYr;5+@%0~(h%e*a1B4|o!Z zH9q$B6=6LHL$QNilE|Xm!gDJQx1E^6SJF^#0RAA6n!sNt(gq*{t^M#C)y)-(s9c;4 z9pz<7o63^vM);4sE;(B-*|MSZp6}zlEg4E>?f51a^w+6zO(3#$9qP8-W$A&4{GKGg z3Eb?Yg^k^(fT>2vTkaej$X@pz=-f?iH^;i}LO;XPcoFC{|1Bl{cYFHw5*@okXOM%9 zV1v-HKiUqR#$lJx@2#DhK*~)NsoXk|$_*2#+$NFA%@L{G5|PS{5UE^$k;+xqpKlBQ zF+_@;sQUYoukQi=t&=($m+x+Wtu%_tT5VzvP5fgYBXQBh4`dSUc}&u}9@_HpRtY33?hETg0XiC;7gwgk8(al$OscRJ_^B;}>*t3+3u)J3U{-M~wo6d6gq zFEav*wd<OQ{7fo$IubKWWuu_V;@iks)(^aZ z$E61K{vU@ltmec9?&sxPS!6_a_@l2RmbJh=!;wYdF7TcC z>Sm`(BJk657)kvyGXifPDHcuYUz{q5z@N`yB(-%k)e-nNPKtFT^@+>~{KXu`lp0GC zBgp?&JGF;Sy*u@DH}I!UG7nCdzR5dU+g8AbcrROZd)lO)nEJkZnZw`rUz1nv`IwpB z`$FoyZXmrF8LPe5UG1mtYL8S@yxJpc=#kGSHR}a_)k#)~HEmKq%8bBY&0!>Ubn3ib zApII8rc@fjiodQ_xQhzEI@MzXFbNE9iqyGjY&HNH535I4WpuQP#4Z@3$ViIO5hIWx zij1VtaWMiJxX4Hf9Ty`o4QHrhN~ON?jh3pq(;KFE;J;6uwUKfBekL(uPe>!S5%`ou zT1$T(O0lg>`tH5idz3rQ*vfrmv~qVCt=w{>NBD@;)$5z?Q}8ib_W{3>s@0+nzsw}+a7^m{7TteZA~k_jp(X~WIJ}#t zCm_0^ssCs<5qy_OKt{V}USm4Sf+{QP2YZtyQ`5R|l@w4DIaYJ6tLCbl%vN*tRC85= zOLCp)HMC&_>(9W4|8)L}q-PYodRYq(CF-msstN2WlnBlxHt$P`k8n{PjhWqT5(BBo z^}s`jw==rZe}Cfwvbo%U=TSAFimvRd6jx`R?{Kez`Dtn{Rl9L`g37tDFZx}AnI@>b zNO-c3<~bY4RA3rZc5cd9_H81SU7JYr)e2LW2La}awyG6vQBi6o-%zbot6Hg6wNkBe zrLJ=q^qPVz^5AS^irbn%X1>~OoV6}ueHI1$ij$P@=H1u(u)o@W1F_u3KrFX15X`Y^wJ5rgBa6`enHuB9&_)Qn?N_?`;lwKU|i(2w3Q%y{U`%=7XBE zcXzpBfmp6uAeJi^h~?@9V!4a9dBt9wD@X|ovO1J=o#NayPkR#Ic}bZ`=^DPT9VXuw z4#kHV6)cLX)Xby*>GuAJ)Sw>v=2w|iu6{Mw+G?)K<-u|;yC_)BR(E;uP2QvTt`(@r zjmesJ-&L-A196Ae{BkyO6)G{0^^<+nn>kbe_hGd zRn66f044>Q#Lc_QqTX2%)vStY)`;3$5%uwksKaT?C+=4+2JNSwTd~=gtH@RUTNAE* z!@2KUF1T4j%MNj@!>O#wOB}!SvhG_hf>_pnT4n+FyI+s%vGUGGq%w!%)gqO7ZKvCR zq?R>-qA5plbh!|b$|Z9RuPp_7mt#qYeBN8`xR-**|6Io)3>>C;z_#vr{n`ky+io&1jkZq#bxs98??9FCgtcjb@n%thc;h|Fh zOJngd@9$ixx=yB2hwiES*Dd9dsZp5kRVul$stFsZWFEVXxWYV88_U~SHRe_=E^V%$ zZE}9q;<~HFbyth4c(zkq{mxHn*aOtxdkg<*l0y)RrqiqVEdN`rck>RnfL!k;^?rPk z-TZBbx#yZR<@#jV%|EPIc9Tl|Tjm1($Vo>wI?nxgJSxdGjp&z^VeO`JS^K*&$ycWO zrhdlP)T~phvU{qsd#bW~Xn2-g>F28K)Tz1N&8qCwsabY4p71_-TEU%xvyHATx5eBU z1zztRWwdH*Dp4k_p%lvo{{7@Y*8rbas2Dg`Y|Z_zSmg#B6>E5jx^%U>O=3f;*}8I( z3mWUnT_IAnCn_6uc(?PCrumh?thirutwy_RqV{jxJIhhNMSF7EJYNfZLn3tpf99kZ zpOE_4c&wFlANT_&MMhFPE>DcW+nf{`NxeTa0zWi|F?T~m)n@cmo3W7!Z%!572&9Vg zrodOHN^At)l1RNks$Ao|tCd2b*Z{X{mJ;WjnzI?MTJRs=UPE}_DDMR;Mx3)<^mHq=Gezysci)AEr92 z0T$|T!|rEQ>aeC-hc)+9>agaql{%~`_rpdnn~^rx`SenGMk^O+G=^h=7h|;FDivw8 za+xRtW!5aic=VOjHQlH!`cpGwqBI2^Etd@ob=M%@w!5k^BF>ldwe)kN7kG=4IveAS z6P~`K@zgeyx92Ad;u9$E$xl4bd<9Zf*=f0=HKt43Uzw`e1ZF{-s)8z}tG@^t{+rE$ zfLTzDhpR08UhV=ulmvAF5p+c3>U$Qp%aw}MacbUxB%r8>-c;ESPEcIjNdWU>3BgDyX8CIQkQ_AYc|$Gs{-)L7eRZ#*&~e zAcCR-mMc}SmWZSCO)bH6YK>a%@X}{fEt)`TAssANp++sQbpbio;q>Mmp6ihlahMeh z0#8k(Zs6rkia{5tt1~0;RdX0qYLY^_k8n8TzfmHomu5!bC+0AcddO6g2z-*0qC`^N znGyKHIgDj3uXaoi9YeeI@u+jbG+awsAgwkw@U5w^*WTUQq}vYtJMm3Q{iIms$U-eE$W_-g!~RZB-QNV} z;<~HFrK*28$?h(X_CqW6-oVhJwTd#T_1-|e?@Y2QPXDbg`&+5ry%^-uWRMldOfGzc zoE?yA#6kUUHu-mZE%&9`Hi49@o}f@Hs3ruv(*>OBJ!4ZrIa^&^Og>80bOA)veX9W7 zR_H+l{g3n@<#i^NXaXr$RiP_T1(C`=S){U_{zIu#jcAtFTmd&S3doYW(F# zfsy7g$L=*cV?C3G8uF z5J}>9?S&2f7e$hKxl;oxiLcCICH2!HD~X3)Ta-%b$$t{5K`M#gb7HIjskaqbNql(@ zE2&@KP>@QZb5F4Xq@Li^PyrGv=dhA$zoHq_e1imW7__R3-fNImdX1*s(d z%85}bsV@{+Nj&k@MX98I=G4$E634%$$VzI!sezTmU(aDBwXeuZ;xRWCrINbnb%kb; z*xzHu-cQR$;~Vv`Ky2ZA6SfEG06MIwRT5 z2Hzy}ltucuAwIH!scSRCbQXv!$#0QJrg z@LAax-m!}WBWv|rlg620lz!i_iv$i(B7wNSz()e_7e$i7{RLJMc)!R>3ilUSNuURj zl@#tTu#&+0MOIR{zracY?-yA~;r;?E3A|rqC58J7tR(P$k(CtgFR+rp`$bk#xWB+k z0`C`DN#XtiD+#<`WF>|B3#=sYevy?F?k}*C!23m3Qn-lC0$s_DcMT)?IKaMlCC-{*;ivFT{Tv+Z&#g_bhT@& zWZ$kjE9q+2SjoO!bym{VuCbDRyXvf@t6gIy`*zh?NmskZO7`ulvy!fMjg{=%Rc9q# z?HViDx2w)dy4p2XvTs+Nm2|ahtYqJ=IxFdF*I3EEU3FH{)vmFUeY@(cq^n(HCHr>O zSxHyB#!B|>sJUF{kx*|)3CN~$kvR;^?mR`TmB;@XW z*ihgj!Q3J~ASM&|ND$hK4@hWl%>ZLrVgq7UK^zIpN_;?UD)5oOro;!tpaLHW3`%@J ztSRu3z?#GdWWou2B$#l-2gKw89|=rOd_e3i@R4A_BR(Jt9_v0Z%N?-+S?(Acn8l9R zfGl>54UFZAE$VpwSAV@a{D+;XvU_)xEhiAm77&Qf@RcB{5Qyji4GhF`%L1|7jzFZ= zxTZkFBjJ1kF*hS3e9tR)#jLFHmZ`wtIS=bmc zK#a`_E?b+?FgI++Xkd)TxGCuGFe0$O4fuE9SI~(AO5^ZrC zjLDfiFeYd6z}TGefw4K`17m;2SN;zJeCce~A23Fzoljt${XI9$bQ{W+rkwwsh9+@` zV`pN+%rFJ(4lrgRHXxQ@Y+&MJu>pyXjSY;!hz)o{VeSC`d75H206*r_iAe)vR+0w9 zs*DXx3@tX`^L^!NY@c-eQQtK;8u*8KCmq<8>~L`#j6JFZAm(V&z?h@hfLNokfw4xh z0Wn5n0}}&_4M+@ZY+!6wY(PxW*ua>g*nn7~v4OEfu>mn0V*_JEVw=x~F7q83%LZmG zs%x#l!m{*+v@ESNtkaWW^;Qk5_r4kyi$JR#7{%5!c|&DEXpCho4~&PW=e>ug=e>v0 zbJmohSQ4x%)ulj;An=huN39)Tlr%7sKue7gjG6{U5|#wX)&+D&5$qLQB{>qwWUwTujqWmz6Fq2 zaX*YlM|J7>-UZNa^sEo(d1vz#osoq{DA=PD%bvS-y`po^-TFt8c+3L2PzgvZr00>q zW7Y%(36Ka`=8?c-Rtp6QkXU}tBZ0@P$O{r6u`-`W0*_gV6eK`mK{Ag79c1cX61xENNZ>IW0|g0?*dUlk0*_fU6(m4n!kb3|k1_0m z1V}8Z=8?c-)>#D!keJctk-%dDvw{Rj%m(vF;4y2df&@q`spgTuW40~|5+D)Q%_D)w z>}nJwKw^0{j|3jG;wngh#KLPH2|Ol@EJ%RF96FB#9y6~NBtXK^&Lbf^-G~-R zNCgRySQX48fyYEs1qqPwp7TiHF`l#_0TSMG9tk|glNKaE!h6mmfybwv`8ty^_}NZV0l>aQ>IVL_kQ2-#V^#Bch8e{QDBqSc8jh~GeO>ls z8U-BL`R=tWYx%l^(aNsOX!x?t{sw{3c+uc3=|zJkkn2zCCE#-lmm9#{$>TMFEC^Iz z;P(qT!9UA6f%r!m2XIF^^IhBq<1^L2!0bMEHo&-1YbY2u8jkSXZysH6mP;KkFVMiB za+=x&#J6f*2C_=AQo);&>)iz8?uK##Us^cIX0L~ZjY$LJsbwI*4;AigfcK}X9Zet( zT`d4UwcxbD&q=<$3H)4Q+u6XkUz(1^7q`LFPSel;Su$x*fuBw}^MU%;b50;DDjO^? z8@iGPWINaT2>c;Go|pClA5u6?1V1jFCN_a=JXxXO6`2jlG^MTtKBI6B2|giRb!h_E zCejAr&4rxc+Y?(8$acL39>_FkZ3lC{qqYM%-!V4uF@CtIp#pN^qnyBZC9VxXPDQ1< zz#nEVAZtuorA`B~GF97wtVk^<`1L7gFObtPRTYEHOdL(B*V%C|3}UVJi<@Y)IrBP8$|p@qWccg92oIZ&|^8&SqJ`TXR+*Yku`DYy7WfE+FfAaUJLD z(q;auY5<8~)lL?>{h15Mnpa#v*1T3%@W*maAj@ElFz`?T@`)bFzWj=)1v)p|yNkr% zW#YkIBo^j3rLMn{1TmYk@4pW>aEX?foCkYNy zgG>^5wZKUNCl)wKZ~-82lHdw}hzEC(z>|gSByeRS)}Gex--XMZgie%l9NLib}Wiv?{aQ|#1nY5oe?r{6mtGPhdcWRSvH~912g_Rwc z<(ym-@FQul*9+_@EZM-U@Z_6-EXk~L>^&WNdDdci#*)mkg1I28&MdFaL}GEqX}RSr zABh`{jV2aW%KBnoM;)0qm0G~ZCej+<>l3L3WW8kaKj)A0I!U{UzD{Btq%wgldMsmQTG0*K{|*v|0Xs&mqv^(OGaX<^d>vY0Vp zV3sKo24wkRY-L|Aohf^AW5bcZD=kHuK-{@<0$D_;OyE6*1q=8|c~t;p5uuzwCIPDk zm^nafK%Bj?fsaj*d@m4BZ*1VH9JT|A)l~p+z{6(CN$|}SAvPcrgt38{AH)Xyd5XuI zz+Wd)FLMV0u?Yh+g-96i#1tF%0xwCV7LaMign^l5Bn{1D>fi;t+9cLV&&?A1hK{jX3ml{ATyV-fr&fC24vbY zHZW6|*lH%Q>K!l38~Y*u%l!3ApGu79Nj`6|eJGnc!%1%_OfTTKI89Ro@Z*WJ9{A5r z3NsFgI_Hmfx0--ol#UeEfg!0k>8eft=0qa z?bb5ze-@4;z>iPfy$M|Dq|h=FxOrw#?4gsdcb6W>}O^GDz#frGcYfbsBwkpwQ-7{R;T zRqHPb0&&YBFA1W3%L~5EeRN@s z7{QNuEwjjaAR7rGFA25?EHAjQFgdu31Pc^n1pho0(hFq$qFx0u1z1in(?M+T>tbD5 zyclEl`Vry#KUG+5Eb@7P^@R2ZfXmZrV*~Jug<0dF?%)sCr|0N>BR(Amu0rwOblB7K+ZcP4M<$BX&T5ehIJ5_P+e@m8v8e0LK_6t6OY$z7`e@YmD1 zM-xb3ubiB55Z7DPzy$VU0}|I88<@aeY(V_Hu^sQep1|H{G$M<#q?(K!c1TYi%Fl`+U3{ zXeE|Ih?||~wzMbMcaHA`UX*Tj^x=c=ZC21dh;Jj|XG}JTS7yaD0kiRXDG+U0o!Sz-gLD zyk%~ma+lk;d^%FNgs5Xb;-e+$no0M3x%etq;lsBG3cZOaZn4yM@tR5%n&f*_szMWp zC@EyQR!?$nSZYgy=@6~s(V4k)AfnYx<2B9#S`iyNS7 zIWP-KmqEE_Ca$XNbdi!PNj1GlapPWD?Y#ggc41>jCzvYOpAIe;Soi0IuXC~gl*IRP zbobqK&A0ba{%xv@(>JPmuW-nPELFYy*(#AZ^?GVr&Q{cb3DzC{zDr-l%HNkPv9!^36v3x@<5K(A6cp#SJ zmO#9>g3aZW%QafLSfiCoHCnk)qm|2S`}lCBxuY?8bSjj=3&is91!8#s1F<}Wfmqh8 zKrGkhtFEtEZ<}QnN_>hd??P3$%yWuATak3VB8ED?$XOOi%qx$0a+`FviAvVnJj)m7 zm%h&*70=Mhl|0k!X;ZSRCJ?QbyJgPKxl#R7Q@;N`)&I3eR}V|Fo50_8l0Mwtx#($^ z=K4fLtsd)arfXno`k+R~=Z6;r{&v|ki_gk7T6{KNxp*fl7yPW;3LsUHUn|!@q;kO` zmCGyVD%P!>z4+|jEW}6%;pf*19!)(rW{7IFWjQ zybhp@96S9^TD0~6x#lIVa_fh7L`tqflNzi@#WjH=iIh&cj!nf?Isie`U&RBdzd{1w z+mr13*_7wG0LnOYaldiTt+`Ld<(|8rt)n=)OJQks#MhRGx17tOmU6bbNM?sOuFy+m z(O0_W+~B_&O3v)Ro{sh_0Ux=z_#tZ}7u$$6woa~VQ&~+Q#arBlB+55hx!Sx6#3VX@ z_`n`2Y8*KCdB?C18i>>!*BgjT9dvgfVu^%Efk>Q$M+-z83$82>t9#a3_LPH*z)y_6emeC0M9t=wdzm0N7Ia)XUlZm-eG%{5xNwMHv9)@bFne%HrnQ`+2ab^D$( zyURNJWm7rtAh*~OVvAT@)t%uM2ZZbli>tZ`+$!&?ii_hd&aXsb{mM?CNafc2o9jGx zp=!*7M{VC{la%t5ejBMND--E{HszaM-&DpSi~Egx?z{J?xP`xI>nM(q*WAVsFw7#A4WpdP=CN|N zy1DIPUfn`3l|{eHm3?0_s2Qk&6?f8UrKO2U1y0AjL0i?CwMo zs)ds41Q9H$LVsdf#Z}&Ntfs^wiIZ^_~=gZg^kyG`8mC_3%zvYfevVP9AGc z8EH4?ay2WlC;532_XcWQ1&?@VRZ_~zB2rmbMB@1Q&UCpbeJJxU^RY5_NB=C{6WxHG zjHX*Z8@L?A5wXN`Pl$KTMB)^fm&imym;N|y25jJTmp7@zRn{bt%BPefl|3JaaWD5y zRFtys>PnQtF&!VPQ5XT_N`}G+x?x@FhF;+MMCt)@;I53+^OAHIr3c8NYE6{#DX(&_ zL6aIROT{&TmnKr>@K$G5aRWkzA?$ZpH2CF7eE<@F77w(xijxmaToul zt)n=)OCd>h#4AxsIhREw-LFM$MqOJm(X-&3&@P39oU0@TABqe_Nyp( zn;M__d}qNCEo>~U_yu@g=e+VBH|=hd;`*Yx7l^RPnClY};^0ewH(vdxF&8%KgbXA znZyOrZ>A}!m)k`zd_`=hWN{tn zS9zrzG#+Tkfgz{kjELEu=m-Us=({Tb+w5;L!k z1!ITP+|!+#YSjFV;BzZ16%&W$B4@2Laq7iQb7>NT_U0SoDAXtyZ_DwboHU7RijPZ^ z@tX1=a?9s3cMR&(>#G}1FY>wI%jpJ9VCK)HMaQY5r<@vEqJcljbq%}F#Db$Clp z_RiNFSQChZpy?z#y@hl1t0}JH6`tnTZ*K8l31TV6o3SF5ui%KpZJF8EB-uFJA7xUx zf4N|Ec`B~^SoerHO?3dWxqMU8CtUS;p|{r7cjdy!e!bVHj)yPPEb}Ah=oLww;#5Uj zz*FZizTtJT&|CdCW-nKSJbgK@w2IVVE(ACLPD96rnjT?Kh z=X#0%>Us@u(glTs^jrKhb+`L(Anx}B@&hrJp8tJ~OMZVY0az$u?=DJsUoK(qE=qW~ zUoBM$dv}qbSk*Zf7ty6&*w$Pq@LktL76mxf{@FO6AX>4g@#FLVs?4M`1s3>L946m$ z4#h{U)kYvi)I?}JdXG0-nxbfh6x}Yn1b$!+W4U8v_Ht{<^Upc2?2^=XQjf0%-aUu$ z8$Q0j^j{UC?BznpbJR8QiMV7~q#or|wFLO+IgALWMKOC6mH#Er={c{=jntV=RUyE$ z<}jk1v`B^2>|l_mR@vX>ouJ_b&e4AocO;{@>aIrlznT(mPUbYnU`Z6j9Vkm{Ag;!d z(Bc|LQq7gjE9a`1*Ll~(;^`dqHGY6Pid3%Rg_T@g)m&W&p!izv)Ljv^rYdSpji|kq zmF<>_sKaT?@cqg~f4#tSFKBe(%-)z(s;g1@Z^pUrTQ0a?oyw{NfYL$JKhSq}Y& zIl1@8nQ=`FbGr-Lm#WiU{g!Iw+78?`e-V(}dgoxw`;NX8sam5=jnaRg_L_Vt)hG$t zod%;l?|l$o7KMnK zKSo96ZEx74zC6Yo%7XsW>vBYDUizz61wrLpaG#!X^;XNO#PUZv_v3S}vS41$KJ@oq z%ei>%?+xkw?G~^7aiP4%kG{sa?^`aoZ%$>c=WU#S%%pM+-{g<(TQ0cYo&;CiI*+JB zO{nrXU-&6Gq1u!U)#551nqnxU zrgOVq9NW*ASL-Yso-NKB4VToYQ)S^mgwiOH`S=I@QoFg ziiN|n-C64_oOj|BixNqF+o?56fokn~sNGYO_--IovHhL<$8y2%p~C7IH{v?)q?hsZaCDUW-{vWf-*~QS+%u2 zA4|^vF7;B*NEN8;G_LbUL-Vsxy|cWUbrWHg=fujMSe565!{AwbuRMCy=JIU|LaXQH z9Zz+?_cA5#n)&1*=awXINu|sxPqi5woY}|X9hw2MvlD~AH zt+(-x%DNX3JReIu)xN0mRO?mcsrE&g=TLpI*X#3c|9xQN^2U;4A zW~uB{9dz~hg)4_PGDycPJDzK9H z2PZ~WQjALI0TMU;W6U2}Nny@`mBd>Mw!NlJ>YLdO+%-eusb4NiCAHP5K`MzOzEWf* zwc4qHmBj1ju#&p%tA!pQQPjLOl^Gb#drERSUBKO0^X{G@fv#C6btTP1iB!kCXGow! zk(E?ZB4bU7f<|@KY1G{_bsE*xuFRf~?HY}`d!|mKy6QCQ?plrNYS(Dg-7|F>)zz-isJmzCG^(pzqfvLy)M-@Lyc&fA zQ&<4JAZygY84^W}T9-5m_a%)wSTpyptMO$AYc+3OyGHX4)@t6mI?X#+t9k3{H1A-o z=B=yKyo0rxx2{g}4%TYkx;o7}SgU#K>NM|Qt>&$()4YSVnzyb_^A6T(-nu%?J6NlE z>*_S`V6En@I}FWRkLDedHSeAo5=G5hU#EHZ)M(!N8qK?>R`b@^Y2H1xnzz1A^X{qD zy!CaOcTcV6txuZw+0Ukl;hq^1Uv{GT=k;w;ctjcAJ+(@@zD`N+sa4YTbxL|qt&*;< zQ__2qlH%oJT}k2QLS0GV6#Los&cGjb znl?UwOr|>X243n{gH-6Al}%(L=R#E5;}w)Cqd{SJ|J;J;3I*Rh!0565co*2bPykqrGr%uOl%=GAb~{? zM}h^0_<+P3CJs!b5%Q8C(okL&qXe#jj|73M_<-13;3I*(i4Tae1wIlOoA`iOTHqsr zrHLq=B&-u>r9iV*_JHVgq7L z#s8%SC_pxHr-@_u^Sy10P9TXQ^|xjR!wMQ)r2-4o(XNNn$Si}2z#*F zg7><;sJ6hTySW$}7`qW05PL8-aJG$&z;g@Q3~nW*-w2$(BljfuI;W}72Yxs{KGA=z z&`TY^&40xP#2$n^7=sWS5PL8-@S8stD)hDTVO03Tp%8f z$puD?4xP8wfUmnFwlFY~czMB}gWuw`z)0ffcjo>9Kj5PUiC1{y6aH&OgP-iW93+xJ zsY8!D16myzNubuo2>y@1D-=xv#WqGTnjIvPK(&n#jBW=;5)b-xZZ#O~4vZvFZ<7c{ zzXKx)6xf0<$qjFeVfj zW2fYQF{1DOMeZ(e!HD)At`Y5>sWGCxDMTjJv-*Jv`&7TZGc`uEcLpOudo4G(pvik@ zNE}u0z+jX&6hq?G`*O3vf9pXr)x)d5du?cO^>0*y9CFbW+?A%R94 zBN&Aaj3m%#V+5nnfsq6nZH(Z5cIO@#N&H8_B(8I!F@iCX zz(@icF-9;Z5*SHfBgP2EL;@oTY{VGBm`GqGfsGg=n6+kLB(c@cPK*)!n0!dGcZS62 zPBcbv!2u3Dn#e!DxA4B!TuCBluT-(i<2_puNTjMtK7x3AEQ3!6g>C)24rxOB($+(7b?c$G9LTAJ!&wX2{S)79&%5rugmCD)wH=JQD<=?b zH#RVP=wbt+|LWemW=LQFmKVG?8^c{QBrpmI1fu_z7mWIg4aoMpv4K(kP!|&CxKB66 z8y%y+Mgz0g9x{{owJ!yX5saRzGCFeNJkj3os|5^T#GBN$5xj3n5HGsdX?`QI12K@=v9eY5Bb`XFihW>EwNIuOev z9EdgJxo@^+oc7J09ApY5Bi>7RYG^h?2W?3>M9 z6VZpO9khS8#(MVGbpE!vY)xP6uj`Bbb$zjawx%!k*Y(Bzy1v+7 z>5KoU_Qip^zBrKj0!N{dIZ)RZ2kQFbKwV!PsOyUZb;si%Kj3Xq z6&~)t9gW=!+9WWXnzs(Gb!&U8Z?7Gxw@}Cn>>+1keLcTE@7%_mapk3^VSN~C7$I>H z+b0!oikUL+Y&DIhi_7eRCly7+UU-WJE@Md(4T#v|Ytg`EcFq$Gh}c1I(ZJ>R+Gcv9 z0TCOBEgHDYetV(;5&P~f8o10>e4+snTk%qC@`0TG*(EgHDY z{$-*85&M`e8o12XW}*QR+y5;ZxXgTzXh6iaW{U7Q96R zmpNjPXh4MZY|+4FENP+v5w@>I1DCObi3UX2z7`E!#ttSL5GAIuW?^#E_;E9hzp}j| z(YV4)BO{y%G(G2$i;I;PP1(Nli2$I>Yva zTQqPP=Pl8I2%FNPfy>yJL<1rmwiXRs#(7ILAi^rOXy7syD$#%ltJI=_%UGyH10upD zEgHB?@F3BEhz*Vw4O}MJn`l6k7|xoF$_?jHW;hSEQ(~fV$tjIbiHJjEVmO;iW;l_* z)v}7=Y_3Pc$)&__8fD%BHJtOu8%|uiq!Nf&D@(`JG;o=-V2K7qID{=4xQuI;Xh4KJ z*P?;ToFGdyAmSuhiv}*U`cE_mwP@fnu3e%5 z5$;@z1}@{;B^nTMpshs%mx&)F8W0gPXwkrBoWn!|A{@dN4P0i#-W#+s@ z10v?R77bkHJYAvz5%XM&1}-z_B^nShOSNd=GBZ}90TDAqiv}(;TO=9~Vc%Oca2Z>l zXh4L0Z_&VIY<;2uQDS;)HYzv0oUZtxy?dg&2;kdHCSSMY7$AFIN&{ciFSTC`B! z+YLHl0e;Oz{XkAs z1(Ql*Lpw?p+F*F9{guiAIeDct4qS0EP-S3TF3AccxTiEQ?w8PjL>!a`Ce$D_;C{>E zy$2s=GPzs8%Um=9WPe@@0OQ}uOaa8NQyTb8JLe(=02jGv7)ZQAbAky}NDF|Rc2OGm z4hwNe0YHv|NlxJ0AI7$W-)Ayu0g$s{S^#(>J3A%?0QYcF|DeG?xoE_pMOfsUGm{Jw zRgszjiKb|gU_4);0XeIqH1N0V{EpCo98Xgkm@taafP_z!2A*n%d!(JfgIzTI0fQU` z(wtz90!aZt+-s$Qe_^Lnq`!e{{glx+0$krk!+RLyxR5FXbAUz41lHVLjs|H~@I!X$ zNa_J3MkCsQd)xVHVF8bD(Fl;xjOqt-I7XBKe~=tV1#|dLXux+?&f#&YCYT-)Hzq{z z!zL4F3%JQIy?cRMxoF08gOA!@Z3B46+sQct*zckd;K44MG0$KxYlLkUG|IKW`G&7d zWZw>6nv}6qyQk{EqT2QxOU?GgP&_M$qD3) ziQK4#qar*@GRX-%*+s*^OOl-6E1lK>ayCgC1tf~8W#*rsP#H^=A6^lk>U=FC&ml{Z+iWSK zS@Rc;WC6}vWa*WSHW2|iyec8pAi*U+EDb-;;1^uW?V17P6@1AFe66uGCr1HJ`)aHk z_=6^s&IGdllBxj-FRL~%vEC1)dBL-wA?=e)jv0u>IdH)a{@V@AUT11Uq>xEKo*eFYe3eIsvpb(QhIIC zD2c<9Wg>V^TqXip8-^YyPW?$+6b2zHMb?5^GWdiWnmPv}3&Yb*DE9`)0x|GNusN&> z!R!PJaq%dL{%0CFs?{v0`ImZrnisskt#Jb}U*sy0Rql$E$TIg{6H3WImb*bA3D&zJ zT;lJJU2cnCEd_jiTo40U1qX#B`ur;t9Uv=X;Vm2`@!ZG*vaukKIgm{RtqJ(7m=nlC zTXF&iZi){J_z;sxrvO=JOWhWalDH|!3ug5#d4az%TF6U+4SKCHc%d!D1Cb>=>u)83 z*RyqZAhIxL1+GMJ*B9s=APe-6mjo+yaReMDZ%IuuypH{q#sOKp2X(C4Pl`Mst9P+r zKo;*>VenlsCy)ibl(1-&#Iech9z5zx`3{gJz2sdoO5$%xUhrDJO78%9k0InG!Qx-* z41P(>3nU&Otp%RrtN|b|L#Q(F3|rubQuE+|5{V96mlAKZ#QMp?AH0b#{5wG61fdWT zyjP%wfC(OmBLzG?ssr-2jj(_}ODY1sE9L|eb!ht7f(p0VU#$rEHV-&-fa_Y6L7rLQ zp(fIt;Mq>=00~A&PT;#E3rKiE>b7u{#AhQ9NX$Zbi$~e2JKcj7!$9H~;v)cwV`zQB z55}B8LK~73NN7WIf;X_Bg^W%h(T>mt5^r(d0FZcxlmHxytm_OC0ntLiKXzINNK{0+ z7sx9*niKqX50G?#>|ln+fk4U+EiR&Y!FPMuqyr=_BBcUrA(GQQ95Mjp9V=-(kl=}y z3BK2Jc7PAKXaGn+MU(-z@<2)lNI*pzy2wADNkl~p1^=6cQskZjIRq2(lGrQqfJ9@Y zLx8-~r6qtr8FK=O*+>bCM@jrN@_@W$8F(c6Zfhn~sWFg%kJJRXU1R|VO(fcujFLDg z@__G5c_iKwdBA&IGz=sxBsT}Rtw)H4fkcXg1w1^mfNynC2Y9@ThCgBOKKrXZ4t^-o zfCQqH27cb{bmTCQNR-qJ_?E~55}Xni@Dq^*{IrWYz{^}T{3C;}S`pnN@Bt>1I}AL- zMF#@eM%N~RUwKEPO>zQ>ph;z$Yw`cv7Bu)o+tif@W7#N)&qv|XStRa_!ez5aY;kF$ zMzSxTMS?Jg2>-qkUlk;pkSv3ijj{|%T%l#7xI#D%q4FfyRS@CQ+ADB>FJ7h%*>NS< zM+lWCfdiq;StRfaLUt1DC5UkOEE3H4fk}edT!eogC6UZ`%Y43LZVA~*Fh_*!B$yHc zlLW7Fim>`#=dxMM8p#x~toW#GC@7Dahl27cL4?)U|NcIT)lN+GGB?q@JsS!lfprZ9 zk-)qLCJ6%Cfk}c95Sa1lZx9DfcK>9P*3opbVa{uaSp|N@F3J0ZzT(o<;}4qilXe7x;}0qW6D5?aK#o5s4ZNv`{klM+gh~Sw5)^Gf z0)k3=+SSdyB>JbaOHD>pPqG3D;VBLLUJv?pfyC>S1}0u7+JN7`Ha-ggjfz<*dIOd1L#_9ZMJ(JNI3CbT3p;ATmbsXPnOoiE zf06=#gq5@&V8Tj50}@nH8hBca8v%(kNlqY9Cd~;Zq9imRF(IXaiR=gs_^KGt0TSyG z7Vtu64Fmt`qArjyjMz>fXGOIZU?MZ3A4s@GY2dv)%rXol0wXzrqmcz9{vs?O@fXz( zzSwhifSjX{oWSipb}|gaB@q@7$3*pm`4WiGfPG1j1U%>gmM)N(ifRL|<&lmqkWh)z zz<4uKC=h2vY2fueYS0DZi6{+BBtf(RFHPbI;G1I{0Z8ybbK2^jsDKs#CITQdAfAvs zL_k*dniD+cEBX$Q#l9#5va;8lU{>~001!7yX<)o4(FVj_QW_Z7Noc^@3K_RXvw~TU zN>(5~jncrZ6@><5Stv~avbNKlVAgSx6Nq1=w8loq|8a{JUKFkOy@vZf)yU+>lY!fr zNL;K%qkCB5tM*s*gKzY_9pGIqng(3$(@hCM9f|c#sOrGaGnq^Wz};Ll4ak97QMY)M z#InR)0^<;gx{rbxUV$Vb@Qyzgj!+nCI;PIdU8FlBoGwI8&+*9387^ zI96=t%Dn*MYiSX_uZuUO>cB^S*_#GrmsavF93_F@dfp)*o|xoaG)e-$OY?$1 z>aN-_zSnIgQW`$k`Q~@247|c*(p=z!CJI$1fitFg!FXeV$VMwiQN>!g?nNh;D4DY=p%tkrg_0zE}JxyC?x>d?bMv$3vTe7KsGxiCvcgwIzXI8VFB6vRQ=%hearO&+2@p; zK-^8u3BKQQhCB8*OFZi8IzU`hQHO_`9?b>6`$j4og4<@eTp(52WX`QOJ|XIMdF=;-|Fh70Z%ef z$V=kF$OB%J@<`y%YL&qU`3}}JAp2sW3=;Ugniq`YD>o5{ldCi^E^W|90tZ%!;Md#c zkq{U8k4fRKDiMsoDg^@x^C=B{(@)*b015nsx{#>3y~O=gANXL~xsl9^ix{91OaFM7 z9T@_FpHUsz;}4w4iK+he_Pm`@5F&$JW68a{nDwW zUplqomo9U^v=#-#cMKhBe&&YJXS~Q@&1d8wpJpY7S3ALXSK?cOA9dfd1ALYp>XVKF z?rEaX?-RuV5BE4=2Z#qM>VO|LR#1miN{moj0p81kgOV3GV4{$hAmW3SAR>-!Adii#KU8yq@kylsAfBn@1Ricqs*DOC zeygx>Tc2{B*8+(5Dl8z5tkwdIKO6dp#F?&c2*??~z$1}5!Qd-AZwH8fEL8#G7l$6V z9P3<9Bc=`-#1&Q=4lhoq%5qmz`VvnQ4^nBkkVH0x20YT-Mx}wj!Rz5~&jjzR1tQO$GkmM4=EoOPoJ#9QZMJBBugz z2qo{rQ4)mkG%px$P5KX*x@2I^QiZyZAUdb|z;i617YZg;hsUNwFfN-sK|mZf$-CIS zH~b0Biz9(gpfd2wqJOa1{e#-%O;AcRgPDj!^GNhEW8V15<^fk_J73t~+FV1tLwQUr zL^o8%R?-b-lT`-pbMrd`hm{+myj=7|Dtxjf;fU4xL`WTuwgqqy zl3;bLy~Kx6Vr3*ZCmdP!hTKQk+V>3m8-ygjWI|O5UX~I`us~KKi{Qh4(KIV)B*7Mv z5;+-j%`X!o2~N=|5q$sc36aDLS2RK;HYoo8CzDKB(8%QEGPCtoSGg$i8$>RCV0=>F z5D-OjbIZ5Yf-qP1XiK7v%jCWjrsM^xEN{)uruONdY_8~Q(4TD}$D2e%Kl2?H5wY{YAwv=6JNY7F`>DQS@tryfZ4S{HMxARJNx01#e-M ztto!_T3CJAzq~cUywD!bjRj%;zG@KC_sm5>h`Gd@4#KS5zPw;HIC;4$%ZpW6UaHFS zLRFTR`ML#-gj=^--|^4(Lb-WCnBTr2%x_>2=C?2i^P3oid2L>9H$Ofiot#36?>6dW zsc_C&VAn3UzYgMU=kR!p$3e$TG%{|s`F=2=(s>=r&Cxj6kU zJ`B0oN~yRtHsNTT{$#SzRL1y?{6xYMBCj5c8Yk61Cyteb3~2M+RKCxgiIZD zcMviXarlCeATJgz2r(>}vLM9sTX~NrZ??_~HSZ;FwDR&c2U*r+mE|o~S>9lk-H=9#+L{t7GK=Mho9 z-y$M52RLaWqWtMR&z?@+{-}%vF1^Cy*rFxBks_j@+g`&^>=J?gbrj{r6DME8bg$kw z@9epSr%D8!pH-2i9&lf;)G(d6(Dnz#t^+T1(IAjl5roC*?Yn)yWDv+!im>vk(;cw} z9cpl<7uNwUa#5G!qVD3ZposcU+!QuMSGg(gvC8#U+!OA(c`H@iW!`hEc%vweJ1-L% zw}9I$qWt#expdOXv(+ZDFIjbyUdmMu+B18EKf8l$Prt&4crlTYi^CW)=E%h{&C2*D z*Fj!Z2T1Xg`%ayLCdyY?UhQ|Aig6Per)8_t6Xz4cRKj@xtU?e{b4*+iV&^b&LC7vP zW-bWXTkd@x#3Y97*hSv^2tvN~IJ<0{KLTxEHG zt1RzsmF2yyvWcc(`dWE;SF0@VX_e(2t+Idh^v!9UIw8wB*l^i1NorM0Ce}UvG?qh|XHlz#HtZ zh&a%4<~N+h@CMQ*Ud)0xnV!Wjwx`1@J=&GE} zr^`4EB^fze#JM67fN4G+wG6a`^EjDnDdVVu9052V0kB=O7y zArDT~v@xXxCf~VulADG`(Mz4Q^zZ_-J^%Fj%Sh(nK@ za1>E~^iV|kAlly!Z1J9FWt?$|Ur-S(`C}j=UU{NPBH|ntO{x^nd9mxP8e&!ME@L(u z+S#k^?XM`xA3727jNI<8*B7n5*DkRh6KlwuNxUd8A|S6L$x;|N`aSO5Fz{R#_4wv{ z{_IJKl^3jk@QbD-Uds?xe((Njt$DM@n!3Epb$b-iz)fR4Y0aTg#7p}x@;9m~ua$Sp zdRAVnE|v%*R++h8scAs!D_fLHiY>~8#^+m>llyioCLB1|8dn~m1*eXYy53711fr}V z=3R<9Se0If@&ngB+{3-P+}Kp3GRJ?RpcH{5DBm#ZUB+$35vf0Vl?H(*s}DHT!Kw^6D37@ARqVH)m;!268H2YK zlwu4*x!0(*F-TS8BiJn;h~mNJO9^}=L2e@N2k&6-X;khj=X^QiEB(B5PBFT!yrg-G z_=tii;^kd_W~ZY2^|v;;{6|&#di;GAPSWzWr95oq*Fi=&3Ceqr!s5jU4rhvp8IW%^ zRvuh_2Zpy)2v>cxw?@)&Uw_i49A{EkK6!lq2QV>nVD zb+4qji5wB~9Li(4qVAC~69e{~v5R53-}zk}E%OEh6@nPxe#Z!$;WZ z=ehP*SR9Q0ZWJ-f4)GgRIGG$e|E9NYfZuCkCX_xwH|MM?-9!(bXsy+yRBUL2IM4k) zt745q5kH%N!zu2!S-Wa_4!gW5bD8~>qf>ld_0V57mqf(pRY#+UZ>cVhA`X79bGv73 zK>YtWE9Md}&OgffMOQS8B0jn*w=Jq@(0!(Wu!mHV1L{BVx3p*Ex%g?vm}{6^{De`Z zEDpKfU^T4u4mSK;qhMqED<>;~?>61xWF^`U`$EGH!d!p#4CV_>^S-eJU{b=eQA#)@ zmauG;68fzrQi3ooaisTZ2S`f;FYoI6tkeGHH>d;T=W%7;p&tAcu861w+A9+nx@qm2 zefR&|CgX9{sPKN!Bk$W2@o0$LKOj}9)Rs%HwtFH|j4W12aeHKwAGqH*Vtxaf?Bm)g z3G%!>=9PJj)QSE$3;|CXN92~CZg;sp4U%Up<`u_~)J3rn;HSnBQU1|bNX4%t&rLC} zgoQ~hi-iEcKaPlU9v^8*C8|uGhhkni*+c4)SP1aZaYUZc=f{>*4hE6ug*LXeQ|FG6 z+S;wj5OAAuM3nCq3#ml1$TJZ0%Kjp$H^xGMQ^yfe&Qm6JtZYw`r)ooHm<^H9032sl zNF3p|=9Crr|ljTGfQPCNvgYKlpNGe23=mW$~Zj6>hrExud1rN$KWrue6r9fODon{ z?=kkLW3F6r`K8g?ui59h_)fa=BnnbH&|v8RQcom6gwc zQC2P&?Acz{w7e0A+NB97``U4ax7puX5Dw0v#t}D2HhoC(byf+&0a4Zv^ID+}R;5Rv z%<;n(y&Q<&-`G^65`>#tP>LWNl*5f$3&K$^K0+%&I8MCo>nGBR+W|YiYcP`c%|EVg zB#-wap1ghV+G`uWMge&JfNyB2jKjH{6RkxHD3kAsiK`0ayJFIlz;T}#qZ)klOL#zP zCRS?UXkN7-e7v^HbCLgksfZ{N{UXY>izsimi1On0weRxmZ-1rPKzd(XfwBfOO5MfO zzlQ0g3{h0pdq!FBLJ>7N$16ECZ^uvVIpxP`YayAV+YkPk+Cu=9hwNw-L^N8MnDRq>l5h9t5JSej8B-t8yEmyvud>a>8!N z*i@sk)pc+|DQ+W_V~tw7jnpe1R_tX;<*%Bw)J`IRq_#Jyr~~dgj+m?C z>S2*3u|87AMs>gw#u0OMT>W%pNmP&26;U1V%5lV89an!7SrWe^^@peq_?L0STpd@p zyra3IeRs+jsqIaweP@v0q-%(|y0@X`*Uc5lxVpjru)nMK{bkb77^z(&5%`^PL{i)T z#x(-pepM=rn>rF7cG`e zWgyMfLi@)^-RrgM2cGTCoB^Zf~~}rdW}a`%dbk_7tSNTz$GMzh7ZN;?GMcMW2<^UUuJ`RUmxrp;KsjY{LkFO z-~mwtJjO(;_063$cC{sVY~@#_^AT{XRXS3J^9Q@)+Y5{jr_0rd4kP zZ$>BALJRIUO3e)_IlGQMzMh?W;FRYc^0MTUFCRZ@QYfue-}B5+P40XAGDY8MZTiqN z&Gqe2lv#4hz9>0my-H5m7ddC5zJSYPR_hBmv~QxmV755a$K3Jj<@X%U8O|yDqU4l) zQF6+@$T<`B#nD!uXpxgwqb z@TA`(ngN{Sq9Ndse{dG?7#9rz|LCF_!24Y^1iaxs*9H8ci-v%k{mEItcmKH&HU1K* zweNQ#@VzE#h@>ug#EHNwT{HwdXSHVZN}L6Fk%=00q~5TW6M+LR8Umi>q8Y&VnW#}m zYH*6H15S0(5b&KYD&jlbX#{%#P7#ZNp1g+qyi+)F=0~y zQrD(b5>I_N?JQDz{4>!?V#I`vR#HDtsU#jAM1)8 zfh}pYl3Kn-QUMZ=ny{ggn!aX2B{6EkhDvH_N+mHPu|t|Tx$jn<~)v2B?%^kMkT3>ZPEx-5}2ljO6q&j zP|cr90@Kt`Nnx9URuV5t3|0RaDQr`qlE5@IT1jD>0+j@&siBhkpJ=G&&n1CrYN({J zB0(z&j7UQzwRf}=^XHP7lbDqLF;ZBOpp^thq|r)hk7y_6&n1BoX{e-ro>ECXoS2mU zF;ZBOPyrGckwz;itVp1ez=$+dQdp5dC4muXsH89rfl30)&`?QX8UmHX)`^|yA0vfn z2vic!Pdt$RF;e&^fl2}+(o}#HRwPhKU_=@!DXd7KlE8>GR8m-xKqY|@X{e;IB7sUG zH7WhY(&a{TTGzd&F*6!Z0b@SotN{=+ptPshpr2`fg@!%Y)CReT828thNOOYmQ-qd} zc@g1+eA-65<^+G)WI_Wn>XpV=UuLd~%D}gqOtJz`elRv3{HV!<2E;Ao|h|u0>@Kg3zX<%F)p#gDtlm^D#5gHK7q%<%VL}%xh5^ z_|@hI2o3l~6DbY+7Mrbw24vVO4a`Uq8pCI;)thNnM8FeGq&dN#i8SEiga*Db(tr;n zH1L`><4d8ymzzin1%EEmfDCY@ff=)+4akU98kq4aG$5l@X<$aK(4r5}AcpO$ZPB6G zz>HOiAOUN`cEpG6a5-#;8MX{jEg&DGDr1n=MjvBDd0+;KR1U}(Q5u**A~YalB-F&l zP8=`8Ko$u~12afO8;~)gG%$liXh6n@(!k8)LIbieP#TzJfzW`=;7S8CTZc>Q9VpiqO+voDWqk(Mr*zJn(ond>gS4Sj<}H|e-jsQZDG$3MfZPCDGtWKf< z5i@0r1}@{eCK?do!nSDOGILj=0TFXpiv})ZlM)Sxn8I2#aGB{X(SV3)u0;cvah($l zh;X4>G;o=@Gtq#EIkZIsmzh=*4TzXtTQqPPUp&!(h?%!V1D7%Ii3UVW$}JkWjNwl- zAY#65(ZFS9i9`b;CXN;j`Bbu|?Lq8mYXH%>3!P26E%lLMQ21Kl7S~PGOM=;TV2vN+lW)v7~Czz-8RuL<1sL zTP+&6%#4+2K*TK7qJhiIScwKitkGIDa2YQ=(SV3~u0;cvne!42h?wVEG;o<2E75?6 zS*k??mzl8=4TzYfS~PH(Wn-cN5wlc_1}-yWB^nShOSNd=GBZ}90THuQiv}(;V10trpwZl&aal z+xb?12e_|`y1@NhGz6UKqAu`U6RCdi1(62)O+wq^?xwOYvA>!XysydRRT$uVT+{`2 z?O=iCoMrfDi445L4$vSv^jm<57l1!63f z2F6MX4Twcl8W?|GXu$oFm>c*V9*yq;Yes+puO+mN_ydxm_7%fNCPNK;l8>tnkQj=D z=YjK+T{Q5;CX+!5#Ql~iAMmOqkPqe%k>mst-IERio@xOd)Jo4VA3zP<) zWilxMc)5$Zz}F<9D)6A6IO_mE<)RVbO-WAhPo35Q691BySb(fLw6@qUY?sQw=eW%p z;3Px3*HN=$`R1dl%MF>zuw(?6RMy+R;xH!a9%3xf$JqZz~Ie%qqqYkoTdiPuD(99fJ{+xr+{C!!(&k`cgUdxV=NSQ#+oM}$G%C3Uu1pmTwc7bd2*WGz?@pr24_vI;{g_R+pLqzZY3RCVIJ@ zK<0VX4}O+U<{cn&zvKim^=nRWf6NKQ9gqhNcxq$;S#b#q$m&Y!=NtjvXCkG6 z*)Edl3%G_I1C+-FxV4MAz?ZnF17x>JdKSp4P1LhWyCr4>{?$bzz_tBUbO*Spi@LxU zxM&2pn~OR?4qr>XfUE_jUaY##iy47mbkPX#0TXE-g8va|z;*l-b_ckHi@LzAT{Hsx zPZxE79QKy#16dVH^?|+ki)$sm;eg>o-8Y;LWbGw;fD7h++^%ntc!viWJ}QxcN2A9G zoadtHz^hFZwi!v_D{0^28$F&w#KI28Nb`cf;Rm^<<0Gx(tGMYv&Spwg&Yp|k#ClHE z;X|F7tnI#R7-va&JDS6Ej5|cb4;jRlQ5u-|u#96Mt1_j5S(XV6h?k-?@a68;3bIFitSHT#8y3Pq5>L}``5iMd)d z7jw0inWm7N1dhGt24jx`kpvb=stA18ZCwY5jS5*w;2UchV4P!d!hm?fAukCWUnv%N zq`pd_n=8tIJ4O}|pH^7Fn$g5t)iS|rxwqK`;+u*#;7cM4h$AX2 zU@s2nYZ8a?48wSTq6+w3cNk{^rzhrop5Z6QWX>#2=1fdx%?;#Gmi8kUH&D*G0skwp ztl*Q~vUY%2Q^^S=WTpjxv8+M^Voa3={)q>{IzXI8$%(DSXVjcvJVc=ZaR!wJ#!L$h zn0kDhm?_4~)2zMuax|MG+^ozg7FQ72K;D@Yyfcw!ks}#z>`>G5E5;~#sp!$zq`BL-Gh?F=@U77&rTvQH|v9(m-#m< zYc1bHJ>-K1FN`9(`7+-CIRwb^Lt3=lyY51dU>pKuBO&neTCfD?#ewkKwOo?jH-A=lnsdVC+bl(MFk|U0gaYmJN)Gi{6-3lwDAEwRUot zOTOoc!VA2t!Mw)g;#8Q-W5B4$4~TL0L|CQn+7YR?;`X%4%61cwVkh^VIt5G>Cik5% zB`;8Ax%xMn+Ml`lF7|_c2B|vR44l6Z5#j!Ccu#e6uUJ^0GbfZ`FCvUT<6A_Sew-x{ z<@L-@*U6CJB;7)O9CogYJ zuuimxP7XrmB+f(zA?t1YrXXaQLMH|x_A<_+VniRWZ`FS0l~Gw<7nS8zQCVISmE{#t zSzeE~+KuGYxhQm`$=W|?l2lyW*TBGmyDQj+ia9gdmFq*a)OiksBakn1Xe0E?g zH$LgLeB7qj+REK7DHpt3Yz2_2$TBFefr#>gMUSxhC%b6%}<*^t5I>xAYW~50mMzOw-)HxAH9sOT z$iDxLUdO?fym~`uqI{L*72wc4b4i#l^E0PGn9qAb z$i#;q6ok~gIx%BG0~1@zJqSW#gZLRii0gz22tr08V?PMnvzz_tCrufH*{mj|~8 zfrP><-9mT78g!_^wO(8Y_*)kZa}49vUR-fkP(=Nucp&wcJ^*r>NLc8m{=x!I(3I<} za+EP~aZkACzP(b##hzQm)=?bYB_WKmn~J$D&!zKNo~<^w{m~ki^iuxNZ)XGPRX(5w z*}U7*&r=k08@brWl`%&y0>zc_O|D(NtPYUkC-8*-hUP5QN;QJN0qT$1EF zw}_l>ZYM)|L#_5pD{x+BTrp_!bFQRbilG8!FQe9ec8%{2FRI7{3G`EMU=ZPBFa4%5#gk8vO`4d zn{$LiMESu85wYvdBP^o)HvQd3SFC5ZtY^2ZLAR_yw=Axhdd{}93+ZA0{N#!HID6O` z6Xs@>F+byts4QVB1eA9I;R|%b!df>H>B3TC8zA8oKtD)Qd_vL@C9rK7*|(v zI3;fd`5;wP|H@SM#g_tn=fHRgi&BTiiqiJnIGvH$o~lMBSo?FVX_nvL0C@Ph=_CUGvaCZynJ5y;d2qvALzc% zed*#=(n_ywXq&N|#gXFkqeLRgi|19Mm}`U=4v4W=%7T5IZvdADkb_7!+uH}Vj^#I) z?)IN$n#s42u>CTl@!ccd+Y}Kl5Z+H^-g}|xjJiik-6N&$ky3XtNVhI@cT3&fQg^r1 zUEC4+L{=3 z5b)@6#67M2e*4>G&!0tFPGM{I-Tzc`hsIGWyvaTC9x_WXp}tD{Y0d{@v*hPnNqsoB zANY}RMA}WKOZz4JxJpQZJn@O0=&7PlWl;C%mRsCEY}qMp-VXePb@oJ^@@>;Fv8Mc1 z!M@AO@6RdA?a~C4%1^;OX0@m12F{4PhrgX;GF{?9Od% zW$j^qE88x7b?|1RG=`eg_dVkf@CW0F958;n`8#zxPo96oykZSWJsJxEa^9~on<(cP zU)`AUL5KLBbM5PWyy1bXtb>nzZZm`EBFl61>bKfnwg<+09RmPQSx{iY7GYWej!mTB1!KRD(2DX{=&{+OvbHjL15`W| zAk~nb%WEN`yb>bH>mZ`M3L9!qgH;WJ7)xw={UTs{lXA|$)HQTfr}Jqk+UH9*R^@>N8Mqd3`(@wTO zD;9_^O2k~n+Uim(l&=ZaZU>y}jN9}wsc)N9ZU+!$_1l3uSe1ta%FkVQFT0MPH8$0# z#GMxxl;UGupEN*65 zTw%HIvGC&`Vi*z_8$4Xrp!hMWiXpkmbW(;;%5ExtN~@xXnox~Ox1DP~QO<4Ij> zQnB&Ci+4$KllY7Yo7|*+xNAbqJDCa|;T0SNCi(s}yDcBB5u*(J?z&BRVrzkK*)TS% ze~i?Jtp|h%q{WR~L+Xl1 z1b%HCk<_H;x<=shOw?#3we7z-5%>xdHAGThi$vg`#}P>#{qL?3c#nx1jif%jsS|;p zGf_h%wIULMYd^2a+Ym_&np8R*c+5B=sXHPO_|P~asaenWIs!j$qNZq4cSa)c!Er=V zJ8$M1fv+=Bqmk5yHg_U$p@|wIsm-@=B5-#THAGS)kqA6t9Ff$*NCe(8j!0_b7kJUY z?M>7aO{yD-z;}!zlDaPvfor|6DWuUz>SZRCdkwsC9Ff%1xAZy!XKs~hB=s$mibmi+ z#}P?Ab!*oM+}}h^9Z7W~5%|7wL{cA)MBvdcPU}eOJtmbp0$;vuN+flNNrebpZM&36 z>ggsGBJiXgQzEGknN*0tpNu1VYNsZ<5LY+&Q~TR=52?vJI}!L{6E#Fqzl}uToMgV~ zA0x$VBt-+6N*ay%T=El}B;UMFQx)~0!Mm|1}F`DtdIO* z;A|6x8%W|ykq7*F$|LdC|L_L_IBKGxkHlJTNQQx%nJDl`V0fe%Kn#yI1B{Un8W1C) zH1I($^4bC4XQEIl2~3Ho1AfY^imC%+NJ3r`rmc<5VjZ+tFt$NxKx~83z*q*M0kI591HaK6RiU++hzrcO)NEkvg2WhriHTS^ zp^3QC?ZH54A_jUh5d)=(7{Ej@xV64uMz_=#$lz8Q7*|ecKwLScfiVI?12T}62F67a z8W4v@X<*zLp#kwnl!nWJN1-w>&VytHVgr;0#v>3K5RX7|fvpf8 z5K9qwB(N3217axxj|8?tct9*g;E}*q2oH#<&}M+~R)hw`TTvPqUqxs@d=;gEu{=Tp zVtAAW#_|Xah}{WoAc5r(9uUK$>cH5Yke398M~Pr8kLUwpcS2rIxDgu29UxVQ2ZVtV zbwJEhP)7paNO-`{nop$az<5SN13uS0BBg;bcR~YV?UV+_+zAbcwNn}xb0;())=p{Q zX!(kLyl(yL@&pGf^Psb5Rg78}Zm^eZWjXfk=W!Nr_-4p+F>Yu(@bT z1Y?>5kp#wBiC}DVAdFclh*QK~dBgH&ih#;DT33{jy08KFu8GeCs~eCal^ zcfqeQnb3gvKdKFk`y({qjkZQp+B0n(#&}g3nBgi}fp|Jf12b5K27J4XQKf+yszL)Y zQk4c~pb8DhI8_>$VJb8rqf}{N2C2}1j8Ub5uQAt1Xu$oGK?r8t2@S}wQ*B^IozQ>` zI;Da8ZBPmg$dFSS_&bpXd?XppU`DBEYaOE&T~h5E8fIY1<~*=AMz8TPI#Q0&5yt3N z79!FDUS*gOr!p`@P6`Dw;*llfIR3*1LNEa4LCV*>i09uBcWNrpYg|I1c-mFG;n-8inA+^SU|FC z0ZI8i^wZ{!oj2vYrIQd5pInDa>m4Z97fnKbgk^mO*Qa#Oo6=CY#M31|%HC+7GVioG z=S`V+w)`iWxQx+GDuIZoV~YkZ6NpSSAR-{yqJhhVE)orha2Z=Pa2YQ$(SV4sMT-V5 z6U9t4AR?OCqJhgSdlC(Z2z0h+;4-n#L<1sXpe-7>%z`S>fQaQ(iv}*U&`LBQ!ar@% zz-882i3UVCt}Pn4%$QF!AY$ydXy7tVZlVDZ-eHRdF5@sJ8W6D}Z_&VIW~W30BD}vA z4P3^)BpMK5URpHdGtzTy|DB+wXk2niV{#B(YLS5Txin?od@&V+!CG(;t0BcU`5V%_ z1>=nhqcvmnRw!VcuFaa2ZpVXh4K{Ytg`EOkJV@5$3H$1D7#%i3UV07+N%N znYDkS0TJGRiv}*UAV@SIVqwstfy=BF5)Ftj(k&XejKNMcAi_wuXy7siJJEm$Bi*8b z%NXoL1ER!+*Nkay!`a6^YlFBp1!I@xfHUyrwt`Tn6#QCWRm{BCAaOv+3B=RYoYWP! zHg$1l`G(p|-~tmV4NNnogtjIfZ_|@zyWH^YiEQ%InA_-;RoHUeZW*PKk)SNj38 z5g-$`(wLP8{CL?2@B}*_rZg}I6J!ww+&DRK0A@NC8t}~IzybIderRh1$e}7N6wH35 zXaj!O&NC?u%WUSdGEAW*sj@AgwbR{$(QkTtu~z`ypx2OS{Ol;i|5 zJ!wwxm_@~e2E52cLqLLK!UB3sK$L+GvOuN4M+rBY2epda8Ar3kbs=z1Tr;hPA~yE zp#ir^qG@2JOQ8X4)6fku_(E*%_b!?NWU>-vKqeurTH7r2kz~dJFEE+hbs!UyY`Ow} zm*fO*;uFpQ@GB93pS}5khPpt4fy``;`jt#U^2-G zWdAViIgt3M&3sxam|0Qs0@;3$hXeTGWSRprkx5P$DE=9v2M*XC@vM_z06pnLwN^ab$ovTiQclCTh6}K;~v^xwPAP$4{8}L=;FQ_&!j)UAkAS-*R2k`4jPVg=6eRO~<_QU8P z@o174jB6s51LB%!<-m{lY4>3uCoARQ0&Z@{)io!v$WG$mfDbj9G!=-WBlQ3tVh77r z+ib(c8B_))s1VvpVi!LxJ^;iak_rQHh*TYTam)$in3v=P-fb++N$BFciCYC;?nlQv zKti8#SAiS&x$zEgQx^>b@xioAFix15G9Vi!(v?8=OEf2#4HKaO-;j86;5S824v6~} zI-CR>E20iKIi4?FKD*px8D^7ZYRb!lE7D82hD1%Y72rNUq}~A%L6Mw5c1blS`1vs> zkf2Iv7>VnX!wukNF)t90G~^}0POO#-#!Zze1o#c}R+R?+k;!C?09UwZ2Jl5MijyVy zl_ry%Kzv_$N`Qw(7Vu~n4YRTJu#08@*$+;JYFVh%+zs2Yw;4fY-Wc7*GG@=A4IG7=D90>>VH* z+@c?d`1*+2)eDlG z;4j6Tz@;wg0(aWc7ZX5sE2U<@qaq7|cK%}Gw+ z<~vc>4v^)E^abz~W2t`dhhk3PHt~m$g=@tsUsBwvaHb}!LRToP6x;_ z1bJK*%^|^JN50koJSJuZ5vY)&_ToBH(LX)Mc4Q98ntp zKFw(zAfZKh;(@&^@D6`^H1C%hCKxCU2ma13$qfL`S|{eb+VD3M8TiL0lgR@3taa&& zF0k{=sO`OmSrSR1-!T!Z2kne<)zD?tP+KD4@M~6ZeCw#2`~FfWZa%M}YEIrX#cNmD zZsxh;wM$kYQ9h-CanXeaB+92W@Zs)rcY(O*N(1AMi#8zMxYEFQ<3a=CjVld|H!d_F zuD8;_xZXkoek1YB^X-43;c~OXr`p!D@Zz&P%-8|0a8VbCN3A)*c+^q=kZ7aQz=Rux z2E08vMhkwaJEC16j-hG;w`nYM+ua1IHkRjmv2Df6Y20c5^Z8nYs^p31;``DAnukcluFOlV32GouL&$n+J8AkoW=wElW=COE0Z- z$z=Wk?(L#!z=KT`)R8zYQ3pQ7^LBvqT{I0y95ARO(d(?VmdB8$F)JMwML=GUl_FNm z{%^a!MG`~;AL|=Y(}3?Xk>p)In?$-h1!m3)?I7`Pk3dZW5{U{5Nie(VlLEfM^LBtt zcye=rOm3PJ{4<{qXE3QTYbgypW^trY6Xr1Xy_5*v*F!|pfM=K}^%LJKJcb%c$Wx>OzbH69S^0GZCDQ-B19G$;61o^u-TFD4455;)>ei{=G0 zI|d>N;zddX6CDaf5<7VGXc~~YHSkE>XgpQ8k4?G+jZ~Hgi&XYk;}Q80ryR&6tTgal zzM(e*Nbp9w56E1tIl+5)lw}5x>05FFnZ7kA_%P4e0dm|$asq1;{vSN&3?LJ~0O&zUnAepEW@48@fK2P*7Ue5&&C3#eV_*1A1F``b@{(YAu6e;PvAltZ z1A+6PMDTmOkQqQ63aK-2BHtnuQ92jXD$d2iIr(B*tCBkxD$Bi#P)P1xD6!&SES$44 z{>25!8g+%?`+SYs4`g8~6UIfV$}wo=`-+5CgtBm5s=AQbAnlN zN&!ITYo&ot^*x{tkQrQZ0$GG=PB5!bp#fQhDhF2-A{M49%MYSU){og# z&-RdrfXwKc6U_WAG$7Nr(!fmBLIW~WD-Fz~EHvP}WQt|F<)Eq1*vLs|UGP~p)5?Pi zWI~plKz47m9^jYxVtFQz`B-V-xLBSEWLi}km}ylC1=i+HW=Ej`UvHC{Y6D;HbKOi} zI@f{OyAW-_bov7`4GImIPJUn}L7@Se1GR2oCPASAnFEyuW)c({@OR042!4i5esceS zOm~tKc#?&twE!?Po6vw)8cmb|nd*cE+`v|`!7%3QUEwhkGVN)hU}is|0h#=i24N0f#yUD-{Lfk|~ToAS$ zRJ%Fx!Z@qd>(hB|awx%ZdSZZ+1uOfMaXkGe79i5+n&V)-R_>FwFw?wXHp*qO1bn7P zbbZf!m1}EzEupsSH;b!YYx@hEk2EisJz3e`1hOY9BN(`{wdHW!u2w@WF@HFYuxq3C zcT(RW-!u5jDB{t-!n^PgAZG#O(OW!+jqvqs9u{ptg4ThT*Mh@%TWr8Wb?wKB7l*^| z+Vh-oY$XV(!_&4+vXfxAYU>HUb95l&#>e>4c1dm$v`BMhc7%0Ir#nZCe#JpKC9&v~_KKL?$^Rv}XiZ&j>kGq{MD zB2M41=|K@)VetMadcfeC8##;3NX{)vM$9-CTtpa0?4pP;jaWqyVHg=DBFcLqZ%w%U zw1+wbA;Dsl1z~AzEB8MyLm!;H2$kg}gvWE2re`qcD$CpO)u%Na4iT@`cl@)x0PaZ; z=659sxi8#=Ak1$=5atD+V7D*ci8 z^-ae-?GI3q^|f~Cuy)E+yTtvjb@Bq6+OF}iX$Q!2DZ^|<@d0Wc-ua&I$$NMYF`dV` z?hf!26RpvAy!Of<=^<_hi*O*V9|+H(As$nxvwFJoAZB%-g^SetxvB3{?(xR16zz-gFbn zowjh|^(+zL;^N&_6zy)sMnxSIJ>dIm9pGmEO4rDi24is}WpTwfEzo_GE9#|^|5&A_ zO|mjJS*fzfwXx?KqFv|uE=BRvK6x&kTJvnR>9*{}Vh($Q-Jv)612V{gn;X53g?~XV z&N7LkNiKq-BFY~|at(V~9U#R|?mJ})nkZjoxvJTwf=MY%sQK}vaZ@ir+aRQpn6eSCv11XHVd5^~Sr+!f zV#&>tLqvJim)Nt!$-Byv%cWy|*P@%>AW@tL+C@aGXi}wkLRY((Zu#-Cv*#B5OHhk5 zfMRUv9?pS@h_C?>gNjL}2~kl8Mepz*E9d|hxTss|E_xD04|uL#YBbx}E7y+GE!W3Z zsw{GS)N>8duC;8vCO<%uKOuQ8wY7P+n*F`FY+0`QOuOsz{mB|+Ph>4W-%!|Ja;ilJ;loYA>nQU$Pz!R z>j*#GGy`~~iw1%0yGlm3ss6)H zR}2C7<-zt4-7=T6L3N%AcHv?a5x(51I^exbBU< zrC&_c|WDNT4#B$Tiu^>HsNza^Ku3Xrg?T<<;icNOG3*-tw#;=A6TP@+<+d zV{%lfw=;aKG&pJ}x`3P@5MAZweDUE|$;iGl=cYsiWbGxo@;1-6ZsXKXrH8r1*LOrQ z2THJsBI2djpZUoP|Ag;rJ>WEhEx*%z0Y8J|gFE@Lh{6)Fea6 z1_a%lN34YZhbA7ulkQ!1>%cf{(afxt0#E{VDrwHl*Yl>y?g{5l;`@1mBqfI zbmZOT!k3*yKBgf@E%HNBBFeYyM3fiD{^J(5DJYbD_fJIm?p;L@JAoT*+w`&es(E4T z_uX#yy2d%nDsqwiZ7cw(OT3yxz=h+8ymR>ZU7Kpu4G4Lb#k}&glDah(0{qc9BFe9e zg;XAP@;nmrN(h70B;T4D0!}uO)LDoqXP>H(=3Ppjtz%w!Tu5yj3juC7j(CK%fEPNY zkjm3Wo`Ygu@ncDKV4^%+4Gi==bV^VhBT@3Vj;lu#}QG^<0CDpSOoH1 z8}rIQC$%IN0{q4}Vm>VNo|Fq?@>GY}7IE+Z$BjG^+Z#`QZhS@FRehBbR`@_3XDUb} z>Xx^vtC%oaTrpu(BIfcj9CH=x>hD;G(mC?{V}Yn+C1(4*BG-Xst^-j(@m0I{gF;n* zsj9!Csx)kO7OHw_%iXJ#%lpeM=7CHz>-ZyeV18@=W@SxUsa&u(^j!V9;x+Bk1eD%> z)RaRsY)e&KwDME4!{w)D3lEVG(^h^kk=(MOQWjrqs_t)19q`^5xY^+CQIvNOY^d@q zE}sqm9?y3mkU9lkUaKI?OPFa&j(S;bQ63@hVqzBFgI^qPz+s%6ps|#Nuij;AL^X+f9?@$tjEL=EW_w zE%=+_>t?`M1OGu~x?QYisk<*Z>w7at6e*cpc=HujKx5gCLXPjVDi^ZE8#B456&-3~ar7`N$V zQZMrt8wY_XtKSaP!KyqYQ1*4*{@Jk!cHCZIY^qTSFm6*&irWEYcca#B2la~Yd5#co zC+=5?_wgywn5(b_e8T7PzPHKtX8P$%w)yx#fg0C*gR^FEDUt4l8p--3sYE~K4pDrlHpoVg#QEP*ms{YKY+%0#ziV@4F#A2@E zNgJ|lD89^5F%36bxSbbnD^t`Ow%fs{MQisN&c7SCxqYNw;QJ+mK$O+*GwNVfDh}l( zuDh4rp|y=oHDu!4?itR1;k0!{MeEDP1oXR&PN@ee` zwor1#EjqKH6n7WOc}A_>UFyaMNyIpC5cV%SH?j4Ky?}kaX_m)2{|-pyNnf#Rqj1}o zpm+#4-9)SR{bkb77^$Np5%{NZL{i(o)HMSCzFQ+|H0EQ2s_g0|3<3vTGytSNs%y|| zM+ucl2lYF;u6|&utKW6eyh(liK-#8-_K%U;*<0EV{EM|z<`5uNYx3ref5h$sEmoHX zyt~zSa^FdPR28i?*QXa3cXS7MjEN-7 zJZX%?@4WYC0#P4$dFNAiZnLaHAFwKtuM*b#t`)tyl~yx^C1 zx;YYozuz~ucW{i<^Y?R&z~@d&iKKpSQYjkv_US2+)Xz;SL?E5p)R7eZD@0)0)q{m; zD7(6!uBIoog#Iy7JQFep0_n+yNa|>RJo9fiV|9`m^3wmwE zg8$2{SlDYT7XE*2#T#DJ%s6Tl-e~yBgQDze!&t$Z^|-}s{V&|+cYxRI-Kdhd0i*v> zn>9rQ#L5R}JhyAY%gtIP3NdJ9V@kz8r$DresMI}N>K@K5X2sV(+1mAfZ(s3shELn2 zFSS#s&X9QmHLteh>{^)blCyIUoN^k-^@wNr%eGYj+;@82AHPh|cUqf1^jz!u${n+k zQ}#v4DeF~o%D%`s6ZHjLoRG~BQITQ5- zT>PwBU%;V#6ZHlD=#S0OlFzIZD>XO|I;ZT5l2i6Y$tn9H=S2}Cf@JDQ!AeC!c%k4w32f{E$4z>a?Y>ioZm~%b89)z?Iq{gwVY@7lJm4$ z&eK|R{^;d#)&{S>C)4jR@Pm6bB3V}~JGuXrP2y<#D>L1326?D-!sn4%W1m>Wi_BTr z-Tq2e{D)(r2zacEhPHWaqvVVBR|^3D(`2Fy_;hm@lm_0^U5H`eYZKa`h8Y2xmFNEg zTb-*6ywU5L8cC_ZgH5C~@Y^B{_>qJL9*Z>K$6p`&4Sc1^q)^~bOcZVniQh#Y@TvPZ z>H?3%x(CEEz+0G1$^Z@~v>6PG%tw* zIw8khsi*QW@aGDUZbV{f$E50S_=y&_`mH3H649=N$O|ihC2ls;X-Z_#jeo zKqD5VXf-HSaKMB?!I4=&zzYFHCEVO37ZM?Z88op(aHbBg(P~AllBd>2t2J7!sMW@) zqE?IA0jt(HN3Du8&i~qHf8RbQ>zo5gpa1{oz51=Q&bQWHds=&+eeS(DTZ&gh<=gV& zm;%S6cnwrOj~656Iv&LusC*tTo(Xsqht0F5K93g{LMe5l_)3_^i_f7nb)$Uvd>0GF zE1>er;Kd68kK#vA8F!R-Ki;{cI0q`<9WO2pcoau02vv<26;Mjm&V=|r&=gB~CwGK4 zpCT7HL*w$6J<%3nbd?Xr}IznbM>Z6q(Ru zJhV0Of+5GgZ%`9xkYTNxr{CM%!F3#KbWq|9vP z6W>4{W42kr%&rxvP*ObC|KE%oOI^@`6ds5GgZ<`9xkYi5VhgW-;k1ip*iY zEiahGgh!DX%ebS=gyq}vf+&N5%ArTqiK%9uIPxjbh4cP@_^>z&JE#&zfNm@(YBJZ8Lh zE{_?Toy%heUFY(c0oJ*kgNY-9qAd%BCm_jFH(@97Q?-_!jb zzNfoCd{2*p@I5^k!uRx;2;b8~BYaPfknp`Hu$9;u+lKHxJv17kGk24lxm-tOP;FWs zvx06~uDjf4>b~}sx|4mS?pvtxYlA)7li%6Rk}#J<-|}(-W;tF+I`R z6w?!}O))*u+7#0htxYjK(b^Q#6Rk}#J<-|}(-W;t>NwY4dxds>@f zx~H`%rh8hObocQ5=yN1bf6D-QTepKwQRMO{FN!I~?Vx$+VZ8CwqXau>qvLKm?gXN{ zJAv?H2J6qfA>mPE3Ngh}=K3Qvid=mRO+TO*T~fRCIwE*Nq1*>L`7AlbL!GLC;$0!j zcOmx7ys32FJnE3=D2hXIQf=Cn@~YtUn&J+jG*0=)ZeN_DINhn{Q~WSwNtug+ zghr8B-^9UW61M`Za0z5S-(!SN$K#R;54m|{ZHn03QFU$TsG9QGE?=Z5GL=X-P<$_B zNtx+I>PnHBM!JC_6OM_EG82x_C@w_?F|_j_KOE9g=Ke=wqsV7XV@ml(9B2!T;vG&^ zNRbaV!lKB$WSmjHFgVSo$UU&sfZ}tZb8vmYZM<<`#*-i^lp=R$hDP~ycjld<$owdl z6n77uZc`rW4zg1ec`ziF6uHkcWm4v`kkBY{=Vxe?c_<__inDNvZD>m%bAM=bl&=mB zz$r3MOH)#0o;H@0Gr^Jg`4D-oWN4Imyd>Tzeid32xD%c44wdFptZ}N@6i*5rb5kyJ zN8~ArTrZ?did-&CXq5jGSW@H?A}vXg`&wg3d2e^douatEQ_bfNn44c?N%_%$M)4J= znoTjhG;taF$eov`D1PHqg%mfpGD)SlF!jS?C8>hqNT-@l@o1+?QRFfvz9`16Xs-sA z6uGiVr%>FxuwqiIcdA7cxjLCza;qDxN`(~TRwb@P#*{MO zw@MW#a(`=RT(shzXt?Z1w@}>KZB7?aOzVcs0@vnpQoC>sXF|Z5}5g!+YOB}_rXG=$V6^vI)NJabYonuluzR*j zQRGyY5-4(^HI|fja*OUlikn|x7wQF8I-esRBjj5>o}r z%p5|a$i!i2l$kk%#wQad4nw2N%ptVs0=tk4?BSu$+EAYBK9W;N@ieDeNRf-GDU&ku zimWs=yV&=kbEegI_i;xK8*? zjy7+=oUw;yyIe5%-~yj<^qvbi{pVq+_|x z-4bW)CrLWuK1tHCoXMIWJM!z!3vT^H8N8%suJxI`;K`6EW8ar{EY}AizBykG{>`1C z6jS6oLgB58yv+U=h7Lb?7&pDI!UpYTpnM$VV2q=q-FV7yd3)8J(`6`fxswRix_7`= zxOFH)k>_1LPbV2}7lV&R%D;UT9dM%5`w0J^&f=2?AIp6u7u}n2^ye#i!Ck#+l4$2j zIb2cMb-p$G?<-W#SMq`%7mI77+6lXhCvcxV4#pXq|ChQWOKLh~x5z;|OI3v`emQpSj%2Z|%Mv5cwA@XvMc) z@?wlud;*AhS4OK{U0ErLEMC5q)R&%EzR~FpItVTroGbT9-80>%5ej|>@!;SEH;?o9 zvPr_^5y?&Npf}P=d>0=S=f2+&6gQv6edHpT{|Q9CYL~GVjUe*TY+-Su#+m0PNenenJ~x*kTSt6_Ay7DlHlVRX6$SJ-yWuf=LbSp8{ob|Z( zA~42HA51yM9z$7$SHCy9SHO{AR^t|jWL$f$!?bPRY$qwHZ z-P$>y;w4Tsmm)v#B!+y<-^G0sXD&r1)R^S{+eic{MzG8km!f#NQ@PLB?BCSyX_b`e*;Qa@@3-j?lnbZ-$yIHyOr5SD;~wh%yn8l=E_P@WbtN? zM^7w2Zr{fbKyrcecL`kWxitDpF86%l>MOb4^DNm{GV(6F87>`cZl9^Q0lt#^0Pfg) zCAV!%Prj171Likh$*tRF_dUAWCOhj|8=bDS(djxHovyOc=^7iIuCUSR`Wl_CuF>h* z8lA4J(dm)NcrSJz(JH(hBa%n&a;(IYbROx6if1PL7?M#%-#7E@n@_I7ih1+Pr&PXh z5*7~|cnB=2=)0oGZ^PzCKG_gSwEUz)NAO7p-M3N}kBRNSt`DtGmYECt%iqgVE`3Fgo1}MyET$=s3sO z2S%s6!04FjIjW3KcYx99_BT4+{6?o+-{|62Pu=#0r<>mBbjur^Zg`{9?ansd#%EcBX zAW?Dr@V$$u^xGCu=@BI=J)n#Vxsu~aR9EAD7aLJj(RW<#{qzm)kbWV@&4IxiWxloe zOQ7Nz_ZjZgejyLD7rBS-NaOK^;L~VCS*}~7|Jq#ukTs? zxX~B&pYLW>;6Fdce}3eH(Q!Y_rTxnTp$=bEI(kv*;6t$h~_>QLKi_p3jtN z%b#OFuw{CAk)M;AfH}zA9z)R;iEG~|C;H=MniEsiwOGQ}yQMruk-ZfAVu*Gm#khV3 zE;k0QDF#-N9U84ji7mYey}<9LNa>v6oZh0+uTVwB_hr4@$Ijhvy6_E@u=wKXI5!pN z^Yb2@rNYvE-yg5#E_Scy3b_O^b;y=SuRx;G3y`SzLhBYc^9%W&?z2FpBjAfczO9oW zqrT_U5#Nu+RE2GEFPbTC0MdN>&{3ogh+p^F3n#($$$?kTD*7yex z+RO-SCExKX6%;~|TSA){`KFeS-SO#iHr#}M!t1~OX)fJLF~0Nh$rpYDR{DrvfaPy} ziHc(AXTP-Xd+?5rA6b=;-xlKdhbMTZbE6-DTg2yNJ~GLuJZqtSTgqQ46=%9Ueo8h} zo~GpBlRo^!k9_V(f8a+{+G+r-_5y~i&UZhm6R{#YC~G0v{BV)1*}AMDkqEnEH3?Sz zTsVa+gYT534Y?=hiMptC@lzv?7DXK`iaLsP#*B!gbktEg>L}8TtlBAXD6eZM1|xJK zM<~CdEiKF9wskM27gGF*Q>7>d&9pEYROIbXDS|m4XtM*anq8>#C|=Tq_#wK9@x&(= z)|`dOza4%!j##>MTMTbRH+jRl!;5)A#_HT1R7>(6ukH)#Pw|gkh|i<`YzLe7*c$AL z_-sf|!BBSti*99pM*A=_u%eFKP!Ak+XQ)RVxycte>dxegI&yR?Vuw# z8`@lkn8!A%!7AF@t6tw_V3~_QM_kQ`x|&0;?eH!;r*+HepXnxUC4VyFes=^g! zyXF305%=?=?jt8!FaK9oZ0t?2md!Pr<7wCEbC#pAH`gfd!^7r1>8>Js2Ul3+pTPbG zjyFSLPGv%kIV3$A1@MQ(V<`N}8JA?Cyp5d8&(MfUul#0!=%wH2qHBNTq`G?rcEb@j zEsWfh&(HmG*AlZGi5uH7X1dR2<4pp;{2liX3XziqSJL9j6>E64%)N`4OOehjaZ5$U zYywzfqx0RJ_X+dBW*9NQczjZX5}A9XoD6E*zm~?hg7+}#=v$FUzUTL!0;|X<;%{Zd zefgcoIi{!iJ}3MYa~{p`A4kSItZh}F%e@B zl@38vdPFdSpt!n!6YT3p-w!cRxk-1CC>!8NXUB(rh3>Wa6mfvBISx@+T7J*gdfrDRv-O?`~ z@Ps-1D+Kz8+00XYpd2@MSth@}D07!0!;rnG{{00}=^#X@t$fM_bIGkh|l3=27M}BfNX8B?y z3?ru5cEfWIe~U!&1V#Q9i8!XnGkRh1r9Qu$BPxnKwimfIdc@pY#vp!mL1r6^9CVhfe@PcaRZ@lUzT(NYvwIaLA0Yn&=Yaf4G8 zQ2ZDw5JyW+{$k4c> ze1xN=C@yrW0*a?NRf;0Vw~QZ(9N#8>${g!4yNvx0w=H}#FotqHCiw4w@@YwH6a06( zBdxp(Q06hkkxo@WalBKdC~kk0bs)u$fY^4lQw0TC>2#!;Ev1|-*~x*r&QvjH>@4lv zP=cd;DRfd{ia}#9Oe+7ukSEFy2c9TC7NSvRl_ir!LyxSu4E@TGC(3Jr0x7a!SQ2xMhihm|y|}V)?#C=|qS8Gw8rhz!ON`^kLE!=sLn%bIW{!`c zdP8J`#~DWd!Pux_MjQUX`?&X~ zI}b}NbG55wF-6wWH|?Kn%A(?Wum~-+3@BghrFbP&Ns-aC&Y2cd>|z=d8BJF?(-MkZ zOm~S^ssSeFIMY&!bkW!QbeCcB|9h^XhE8`djl9b+|37<1nwowt3S3j9gPgE~PX|a5 zdT_PC_)F(x9>ojO_FG`^X9(b)TVo29-40qNc^#)OhjPFTY0B>he2K%(y>d}oQ9|W9)*AUG`+n8wU$@-_yh6luEoMS^U``a>=@vUu-l)}8*t_S|C)@3Jv= zRV-P7d>-#_jm8>Cp1&C|{>UVQQO1nD95`9%I%6KioDBPC5yktVl7Z541~2x_TAp2x zcr_2&n5RFMd7dkCE=Bs3$0dr5r7jGL%b~JM6t7salt?iMBJvQ$AXto?oKmE*YlUbA@mLjeF9vKkV7TF|k9q4ki=8uNw z<6H?TdOiR%-q0vdby*-qaRyZKIiX&W6=`I#o$NONdwEOPs?WGQu!JH@_S2D$eoVww zY1CC|jH}kj8vZUSyPJzD!vKF$!t9ixI0~w5ycOQaA&uVNIE5ray?ae zJVdscE2zo@H^kblt7(EE_RBdZG+Hn05>A=P<5f_jGJIW~d%zD_s*hW1Xda zS4U=tCYin8Tg@+4e11w1&Tj&@ZUVP<}P60(uH2*n? z7s0G6&_gxme6I*uxW*;uc@(EFVM<#_aW+&k=Kmvm)jYh4j@DbmVr z;I?cyJI*kAWEL%PPMqPK$g&eP%xFXIWVRga0-8>BZ8M)Do6S^wK};h?PL`vQ71KQ% z(T^jS=Tu$3m`%;r)IJk5U@cNv^~3Y8+O7jp=_x$=6u@@7+HxxKwpR;-DZ7&(w(XVKnN zhcbQ1fe*#syAlg1-UF4N4tNn%yC7P}NIEDw*3RG-;5y(dKs~z-r+6z*gXI zfop-!0y}`O0Xu>305<{$%+w{@>n+)9t6cb*0Xze^>nzQ**KZzT@g3lMz%PK>YVe^} zvoCNca5PZ!8;-M@tAW1-9*j@-eF)qM!(}LNHt^rT{{XfB@v!dz(r%%$8y`8-vz}70 zD+Dh7Kl-}@Bkm61AAt7&?*q028}Jdve@8ybXyaQ4-jl$mfm-(+kiXbNn&K=iK45Y z-@)JQz^8x{;dcr!o3?gW0v`o#0@}O5f9Yo<{L#%KSFsYtF$yUr)Lf&LFbwu|nEr1;)O`z%X{=hx8d@^yLIzpn37 z3H2L+xY@6)&z9n!iE%L(_&2oce}HV))hL(kI1S~ooZsP^<7jA+u8F;_Mma6O6H!i9 zm0OfhPwkccyaUSL3CMoe{6Q#(?aJ|ZN|9#T>s6R{9h`sI)#d;nzzdBIzSvl7?fL+< zSNeMf{%HS??%MM#1LYUPZY6Lg%3YdJ{#4kt0bB5TClB`HfZFeGpuZ2uxRdI=H_Fcg z>bTBJh>!8Sg}8Kix;;Blk8Q!m z9tPC>?ZK;6{4ojq`@vfW`~ukjWa~K>I272r%hkI5Y53^?z6;cR`rQHX6~Qmd zX|J#rZvsC9mQ`B){lFK1p98n9(k0nz`g`-WK6xyk<21?tEAZP1dC90Szl7gt-&M&K_`vDY^NHNPFahk;K3p9cON_zG}K{`N#Un)j!K@~fe* z1vUbkfM)|Q1hO7$ajomqtHx?dfepab!0K9i|Bpaz-vZvRfj29=oH}c94p7@a0{&R| z-x7afz4dSsFz0N0T@2Lz$xDO37gYq1eH z@CB5)?y*>zNuY&)sNvPMB;+@pZ zc!QFx^nJ%qe`CL=_81R8lY!HKY;Rp3w$nzm<5#L*HGjsbR&xq)+&T9865u|U+3P%@ zwx8ZZ{%r6oy6K;B)g!*;z{`Le&a)A11nT&%0k0LvaVsCwiTxw*UhwY+wga`%tn;mA zG4S-VGuA6d4YLC``-_|D&VQW<-iMomjM^9vL3Dg=KjoHPX`_k zYyj%=lKkET{~KU8>;h}qjJ$9aQ2Tqehy1s}->RGb8P~0d?@r)ffO!|%h{geRe18Y; zW#CYZW6m4RC+}_W{{#F0sQGuH+^2yr{lYRn0BZijJ>-vRupTA?-MqoL)c)s!_bcG_ zz?*<~0`CF-5%?gm^djrA1-SBJdwn7BV&L__8-W{uI-c&9`wx_#_dnLdnZV<*4rPGa z|6x7kj|cz6Zu)0j|3ZAP0KWjP{JD*&8K~pis?lot0sCV7bKYwH?eOzBaNKIkC<1E! z13lzdAkVD_-gbrc_%x91yd3R)29Wy#T|WJt0)J-$uLJ%X*b3D4zlZ(-ppHlL-^Y47 z3G-_Ta8AN}8;y1!2VBX#1JwR!f_EYCBGz0rwX|IO@HUGRG^7qBOW**==z3ZzmpcOo0LKEaxyqLRJD_ea@)m>tCU~DG z@X7lH`1Jdy1U`9u&bbIY#--y~fPLW=EA5@;Gc9u8rTInRmjO?qJy7$Lc=v%n5c|8N z^2qB1zZ3C!3D1k<4Oodtz+*W&KJq4jzaIWwIm&=M-Cnd)bgu}0OMpv&wZJx%mt_|5M;~mrvd%*wHWB z$y0wF;B}Wz-qwgW1!OxZ_ue<~-(CJ07|-VdJAj*j+W)1{U!!ZYx>hhYwe;xQ1a1&7Tk2=q4T7b>J zu-9vVJlEpBD9L^T?B@WhfHlBVf!cmK^ydS0`I_JFYOC2DcmVKpVBW9n{Yk(SaKp7$ z{}S*Gp!VNW{>C-dL*EwQT^3IS+NMx0RA^3T>T7wjDCGa6&C(!$yg|J^DSh$5Zh04DjzjwzsYi+i5l0s}SwNe%1U> zz}xMA?VZ*?So{LG;4yoh1=_3NzjySIe-HS7@1}powL9Y58+aHn=N=nNE-;A9N)y4G z3FNpf!uZvE^3vcJ1G7NQzXs*r34Hn?%XkN<`8V~D--dGU1+GP2V4l$a9|Lcv>+GFf zfqMY=10D!G7&r>}=)LfGpT#y{2k;HxM&OQrw7dbpJ%M>ZcyrL*IHn<2B+=Rq&_@24nt1@JszD{$pQ)@(IUJGmXa`+&`u2b?FGPu>&YKLuP5 z)cns;?v4-JI~?cRJ*AoUdTa2y%g?*P+8qw$I4w#TuQS2B8h9P>4&aWDSbxU?`#fr| z_Xi#XJPddQ@EBk*@N}TH4*vTv%6Saz_d~g=GV`FnP;v3e4yr^(L;V2%B=x%T>d6ue4Yc|v%u$pZv!7*hln1x z*a-X`unl-0@G0OMKwX~!H(JeJz|S7B*Bl3$-}$7~dy^%MT1J49r1iT!07f}2A2mEvZug3VfjpIleY`fkna)Dc;9d}J= z&s}@S{}cE-J!8wM#B&6nE9Smr^)yrP3i~m@g}^kh7^vf|hW>P*E?@IML%qCKd#Cwn zi)( zrh~r#^{P&&A9<&NPu{8oK6y8QPhLv`pS)+lCoie~GmZrsXsOURQPQKHUWPIN8`Dc&$+kWZ#~`y9Eaz?6mS5ZmyQ7H^676Z z{7wU&46FcF1GW86p+6U>%h&ubaW1qR=Ze<=+kiYLobX3$IT<(=I283v0WZfn#d@GF z?@`1xbgjM98|~5;xCd}A;PrpDygPt=Z*j$6wP$-x|Bs`b=YgLBHvzu_YA?MI*Y-eN zzUChZUK{WX#Caz0>nE%Q`|?vf0zU`# zdD~j-1RV9byr9ka}=2uoz3j8_d9p|CupV&iw zJIZ|$$a&L|Fn>0Hm-~(_c|YJmz{7!)fpuS7-fh6VZ|wC-ppHMu&x!Dt^R2bW0Dp~f z!*xdc8`MMoVDJy?rhmq@2=QfsO~B^wY(zH#b$sW6cL~tLxaGXl{3AV^Pfh@Sg7J`( zFn^|lHw#$ML;LNJx0uJ6_a8&K-=f?+tmiu3onXHUa3A0#;4#4IKy9Cb{v@C-U-R!n zJ3b1mMxI#-)cj50ZS}6bvl8>XIbpu90`E!S<;asQz;@W>U>=UcxGw^B0KJ6qza@V< ze$8K}%Gdl?aQ{u<+gsrO4fXstko9aseYO8>{$n*e1Ib&Tz^?+Y5jYj`6alsW>%hAO zNFMu5^PAtZnyY{xV7zkNYCd^4fX{s^?KFP?_QQJtPsBVZPnZwn4FjJ%?u)hmoQ+n~ z39SCmUjGc3`;onF2L8Oa%@5ZDwZ8%IvpaACa2aqM{44-!d)n;<{@%)u=F{&L;L$JR z)qL`{RA0uqrTX55avuS*y=bq?zqf~c`h5;|x_`9)$HD6^e>?PZf8YS%zQFH*td}lt zC*1#U?SBjVXMvf%c6`+Ub$R45F7nP!;NORF_8`X__D#77`zP|A20srxK3Bhu>rKEL zu%2??spDM-KS};HpS=068scloa&Ze0&PhiU%}cz$>r=poPM0J%@EKs!_e zYk?`Oi(Dt&x`p*im-pk(tY#%}D)u!+K<*3P!2X~U$bCwZzrpaA51a{10SkcI{sibt zfI1${=RV-CsQ0tLj)eWe(hD!};9Okg)%v{gv=@6YvS(Q^55=9q$X!zX8w!AHYVb}6vK{gg+Jn4{!2db$QlR#K&>psZCIWMRVz0*m zHGgam`5h?t9U$Z8Jk5FLYk9i7B)^UD zUk$qlfxQp5e)<8mzteljKNI|`y6K;BH6gxpfWHEId)xSOfI7ZkgLfOS8RP#ZpyreJ z0Qe6A9|3Cq#VGd%;7rWBbi(|*s)zjCooxLM0CL`RB+Q>N;9Us30{AQ7Bl}o?-vJwj z*z4Gqs<^ zBA||M5AgN_t{!apYk`{I2|wQf&&;#@UjQ}#(;o8M5XXIt2mRIt)c&6WukX$_j^?2j z9|S%E{3q~Vz-_QjX@9x!GX!`5a3=642U!1OfZBdOctyaxA6x!7pytnmpGqM2B^+0p zU(!SVZxBa2kmGb_!gwX`3DyJsR}Iwh{1dzZ{cSz}_dtsu0zU!vKgjB}{XwwH2aW-z zfNKu6cDDev{R!Ze0JldT8kCTaS};!k06YNuyx9r+y<2+7UxPT>fxm^{CldUV_XPMH zSH~obuYZC!U>DmiFXmgEJ|ez-8^Ajo*p7aDA)!D24c^;8&Xc_p=1bELZMkOy&j+>w zTMn`JZwKoBBk%9vllM>ppS-OGSij^wm%u0QVDQVpYfRuf9{9(DM>`#V+pac_T?bn9 z@EpYFBF$e5emn5b!2bX>KZ)0GH(TBUlvkbb{6*ej;FGs1fluBN@X2dQ;FEV5_~a$k zpS%ab9|ymzhps<)x_xP<`7guotH3vb9|3bwUXp!h5Bc=lOZ7j?(eZr_|J~(}f#0dX zjj9~&|HvNl>9+uO>wz6CM-?y=`tI_{J4N|*^-%r`!Rs!cye8PS16dE{-a8fdyUXu| zee*WJ1;FZr{q%Ow4^TYr!*x76^^i}$xv-lGWL(<+Al&aR|7Upq`x3ZuPvkZAob_Wo z&*TF40eaXs<^ogL|E~n<_~v0>^Z+mi`(8e$F2lazeBkB4UnT4(=7h@l1oh0I1{9{0{VE2K(`IfvbUhj(Qc(Q*Qt}feriG@zetRJNi2(VLw9Nf56`a zWWVV6&O<#oZn1@Lz|*$=T#JPG^k_K~)JJm=)TmgkzfJlcN>KYifmC%|FA1A*H9Q0ONBb@`gV z5c}12Kt6}CUw97tE&65uLu`Gx4@>e_1b@}QUjnZL{tBq=Z-M>~KwZA(lh+Quj$iY? zLHvgtYU@!1tOjlbemvIR*Y-W-?{}E>b2G5)aC?0%Fg4L$S5LOMahk=U(=G0Cg2i`% zH7DBZ7l5ZPwAW_=b-e#?`%kLJamU!Wihw<>*PSO>`+I=8o);w4_f52GuOqB|-c*aL zfVzFi>jVA{z#%{n{gDII_6LD?C@>fOnFrK-@>YW1Fahxa+ko`5660bm@XQ64|2}X8 z+UF!-7RdJ7d!gme1nPLEB91M^^CIHfw1xPz|L;3q`fLB5>c0+to&^3C$oAFsVLM%j zc4I$}OX%-Q!Mh7shH-Qca3{=b&U0N}O%M5v;9uTN|BUM%#Mcho08AZg$4?PZ$M*_& z?*iEl%sZM--Z$WTM_T{Aftr6S%6$abG2ik(0&4!fJ>;iQ?nyxAVa_}4zYM%K;N8Ic zflmVe4%{%)#+x(C;sW4Vz;l4DKwVyv-*@0Y=Q!&(1I%Jw;5woG4eB9(F!)Dy(?8>S zAMt$(?01xnvpQvQB~Zt=D|mx}%)5JGJZnCA2Y^2um=Dzai)Y*NZvcLS`ObN$`B(Lj z-+*$@26En1C(NH_@LmAE3Va9n0q_&xopWsb9{^hl>~$wl$DcpW-me3;vE5OxJYWjA zl74~O-!riP2k?32PxG5l?keEA88)5{pyuBU-d(_r;N@T*X@39l*58kT9T=w@ftr6b zc+-I?#Lsc5`OWjJ|C@nrzam;2xfj6?3Dbp1!6 zyd#07z)OIe;5R2>KTW&w;7?M1bb0jqNANn}Uzfx9wLR^0ed%XQ_5ByheH+O3YES5o zmwU*k-%YTiU&g2F^FDap<^LZ2pyw5zTeSZp@m$#g>|`Fpe(DF7MS{&8Gu z{{Dws&5Ju1X$_WI*#+OxfG&)EJvzSQD!;J#UVt*zRjAF;&VpAEbjsQI1H zf5`h~*6wBC_;P!FHBj4o)2(J3;P$|Mfy02qf!e+q`w8cN3w&)KbKTqP<*kcpo!;J7 z-o{vcZ*Rd?QAfSKt-bag;`DvI{sZFlKkzoj>bLQVc8%lr^;-6i({Jmw=Ev!`^VY}e zxA&ScjKWsEy&XIbude!j-mhZ1v$waS*B-0i$!j}1+Hk$S9B<<}ar<&R-1<7wOBr zz5d>&Sp6=ZcTF7shhE=U{Qz&^nmE2Ra!Z_kH*e*2ar%MY%17e#KZ?X|6urGc3Hsd= z^m`=ef1IG-GeN&sf<8B*?T_{xrk5mlthkQ`47qCOJ)}d!HGk*H|9W}R@ne47G_GE4qW9y6AGYiZ(5Ik( zO0LacKMBn6b7$D=&k*Qv>StN~atoeWMGc?x=nC*xP!ImSy{*Bc&=<|I*L}eM68dV> zAo5oU{lSuVjQ@_gR$mSM66jO&t-i*BcY)|lJFk0eu&?P0{V%~^5B|l_KLGxE#eV|) zqT?;`BE;WI(8ROxM5~|p1B-`4KQ3dhr}VK{3w`rqdp%tIn!ndY-^<(0^Dw{4tlHac zYpXB%gN=V2^auL-fnE{fr2a_Jn|RvcU=rdf1b-a(Iq*{peY>jf#n89>xof-K2K`#a z|1pXlIUxx1b-W{CLuSrrcXlFR70I*B|;;rQa9&7S#@8q0dwL6GU&?!Mob} zeM829`MVVS4i)F^(03~RU!iYP^?e)ql}hhzW9zk1>34>Hz0&VZy=tGsef@4;2gYZf z4c}WOdQ-2B*IGsWM2pYCPqp&15&Ar(??h{@b><{`Wb+-Wa`|Ew|&4uH}}B-n3hhDz^dpT&2Ir z*UNrDmHSut_YSlEFWB3byTkU@|7zuDKVQF_mkU2^{|4|ksCjV?_#F?~`j(--S3=(c zKjY-u{M`mWLsh#y4EDgH;$dn%qCWr~`1%TfAa)GI&ppzo{n=TWcx+zoxM z(sx2XQ0aH?XXEKq^*R>%4y9iX{WulR#n2B_`s<)?SNc1l?^OCfL%&MtpNGCk=|6@( zrSv=OXzNv`^uwSZqv~}e^bJZs8~U}%&tm8|DE?2O&r|%>&^IgnUC_5GKYxRMwc>vS zeT(A%U?*GObxOY{^qZ7^JoK%~e+l$c75_BoHz@uupzo{rzo8$+Z-+jm`2T`_sM3D| zeVNklC>swmkE)gb{h-fL{PEB?DE>U?H!A+g&@WK@Goc@<=Fu;qZ&!Y9^YyZ>J#6z& zuAgN*?_bcjEBz04HuaMAMd=TLex=eELSLlxD}4PxZ>zLjO&|GN?T zm1cu2e>@fX8}(;c{XYI(c_!#@;@r_IJJaeVz4(7WhJGCU41xYw=%<1&)7JmXLcale zNt^y(6ZA*p`4`(d??ULuK#yh6yBhjd)Jv9K|F4aFRqhkeAF2FrfW85KWO?%cK7f9- zD)&3+pI7bKUmp2P`>a#-+8_G1mA2jF(*K(deY4V^4E+Y^WjgqO=RrRd{v|E=fBy^p zaKy=d<{i+tsP=gb`eES9_SOG;9{MuX4jZ8#sLI{`hqk_JRekq?ezhuh4D<_>|Kp&a zs`QJYKV0=!ov$D0jZyRT0`S}5hvVv6==-Yp?}0uS{$)Gl|2+x)?y7xWg8n)9=RDd7 zeIELYClNoA^C>ePJj@GhbG&1q9|8Xy&&NZbf**0~|207Wlq&Z^`UihM@Yh1$j`_=S z--P}#<>w3N$3V~VpCd;+CjM2>vweO7{ZPd}68Z;~{}lAQs`e~~ejVcHI6njWofW?s z`UU7m=AWCOuZABPuKwTS(D#KO#{Yt^m-7>qC%2bJXj9*I^w+-dGY0x^Q7_Jy>CkUN zxtxz#=v&piXoCI=<>%+n4^-`WBlN44p9i4-MEO|{eP8A0E$BZ`{4b#IRPq0CAo^XE zdm!}hC_hI*zX^PfpLx(XC_fd@zoGoBfWA}t`6cxCfzNq&ldm7>wc|N17yb1|UoY$F zb%T9P5hmD6(0eyp{d-toddtC_e|~b4)jtdV2ZA9F91z_5BR=IKaUCD^P=a> z|MLAr&u`!I_0jX;jo_D|{cSX!_qDH=N!DW9hx-0Q67>H`(0`Ml-%bvcb7ViM`(wN@Y|NyetZ{c;`#*s?-TS7Cg`6{ z(7&3X{~$rXmAp9U??vB>^%Z?wJO3y_zrXLtwn_NEMZ%oktDMA0d=*>LJDYES|8S8aFdDR!&J_-8#1pNeGKhW#MI?gH{ zlfX|W=ub(|pOv7$G(mq;g8uFV{bLFGfBO1?k#*!X(Z`LSzS6mI?Kvnxe?Wr%hy?xA z1pV;|`V!Hbe(y-ze&>FEh3I#dbEFpRTll=ZCc)2r3Hlck^qrzN%sBu zlarwTvFOEBde+H|JA!7Hh%s9u(>%a#s5boAI!@uc+P^2+jbrluy-n9f$#)iipGYcdttbZLD> zMWdL6uF}G+>q1SJm?DOkR9AcH6K9MVold738{~h-6`!0fsY@S|ts7rgS5r_|lR7kA z}hq`3g?&wA7WY4Dypk$>P+#eV@u>-MfvcOs><5B>YA$R;rXL|hlj#prlvM~ zTypzI<6-dF3n_04_vBk(Q{I zjxF}-=w+eLtSYTvmOaKFc1bp+z71M^LjB??6?N%3ney7~p*!q%7;#U;4t=HrAC@Ri>crE?o_60CFzt`W@Q4V>*(3{h*6TQsIF^F*VRkviK>em>rA?mWZ~w;l={jN zGr9aBZf1v>zd`ewQ7iuowcH3lAw;r`F+Hv_JHBR#Ge%uUqOR48yR_*D)3Wt-S;>3Z znk9{4D=~EcZ;pd`ocT{I;>dH%&`J?N8ahuk+973G89Bw7y0YkWLqpl+ zJ~SjUr%EF&u~RBER~k;uE~_djuajMh4584C#_)}ijH7G29hww}aW*29>ty+@HholI zlTFuV%zjE2XDX96G~0wdEH9z?MsOr{O<7|~W#^aFa%272Y1p;CV`B{ciiC!NNoZPU z5|Upp7togdCRAw@=D!-jqf0W&O6r%%`kJn;k>y<)T2;`mRwx&Qy2KCdzjmAuD285z z-xin=75-MIG;0$R+PK!=QKaiKHW`JQvLaJ%mj#%c`CgN$w1YUD2xV_kpPgJ&Q&r>F zGPGjMv1@N|FVq5d_v&tq#CTm=ovvq|PnXxGE34|#6J>>$MSMwpRlVQ2qmX3cxKm_H zEKvp)CZ;Y1vt*gBl!SF^Hf>h&v}}dtImDDxTVE|Z>WG23tdI$hmXZ~^sziFaG+kF! zm98y=0UF53GLp)JXQIngwmM5uJA^9 zZ7@?gQz=_v-VEn*vvByHLZi{FG`bG{3apjYnerNcl!S|ubvhkhTxW!Dc3FOmJF_h_ z4d?evZB0qqJ|h~Pe>)TwZEX|yv4rj-qxu_J_5>4z?frj#UG|T7$ z&3fWH4s|M)9;SEyxs}0~Wybdr3dF4{zN1h#yUn6)-q4*!*PRiYE_cE!T$dZ+bmI1p zelg*3VNCpJL*v+=IKDEp+WH%XL;U?*c)RL9fcV@{b^Qkv(~aiFNajt+l3n(dUH2$H z6&+KdscH*qxSZ+{Zp^~r`^J2W@Pj4a(747&X#PrR7~$5FhZfs<%%1jv%#RO!xir0{ z)aA38xVFf)iH^O#G_7(z7rmwF?&M^Sk)>(9teEFSf4-)>E=B0&rD?nKc9ld@<19~y zHfKR0dfGT=cA>;TS?cctgSq9(Kq_@@9pow(Y}W?}ZcdiUldRrM_??XfTkgj`x|+vz z+X&H|Gy*Gu*y3@~Pt5)Z32xcM&Iu#j&|{2q?&hFtfUXnSxpQil;a$bmdg1yZJZ+u( zE=vfXvX-X1WGUA-c9}yqV`*(vJM9z&*FjgZE-9i3q zaI?;DRu{8-EOHI)7IUBIrlwQd#W!%kjY8lc{Dc~W%e`9=ZsZss2)FCLA>@QlajrDC zDd-xmQ>$>@z9w+cC0sXNgA**MDzb8FSZa4TFfOes>9QB_A7D)!BhfsX5F8K~)+nSz z%^DS-=eY&Zbam3_mygV;sVd1IGvl}k<7cGh@uoOE&0hiVwxghKhID*+m3b#3uSurN z89#G!dh)DE@`lE~uAzL)ta<6lQ$d(IX^wdfQ(KiT%T$({vxG?}%o;y)+Cpj&%IWenyD=duG~qrs3td*gqQJD{P83ISHLtSVpT*;A zA&Jg}CNEF$%$jOU&#kG?ip%;E6Nb4vt+F)RVDG0I=bGc=bV?4by>wO%-!nq8I&)Gk z9hg5>mYvE>O=zt!|pML)f8wb|_CBTPkOBLiNeE3g*1u)YX(? z&a@{;!Re{;rcD$R%?bIe>}ewU&4KqT(qknJ8T0x~UJsm}9XIZn8Pg_AOph2oV)$sG zN=4GgXKE@ZH^>DWL|)`%YbyO7@Q)7UmaUX^k2ge8fZzP`BF${>f>sI_?|Os2jaOO! z7XEai&0=srCsN_w>PNuH1lfDG?h^NVrJQQF!>{wWb4u{GnS`H3)1rc z=Kq9gDk;(0xaE45eGbELvoBC&crD9jYE9Yhq~GrxYwkjx;vX8DkSA5u7n`YJ-b@-R z|Hk-QsHH=?`l&sorY_R@GM!)t!Frq+L1;13%)1ZgN&VauR)qt)N$ zm1k=)T2rN^@`BNhSQGk0X;L{bkaHC?P)o{|`eztHD~yu599NL8t*n-JUUhP4<)Qz~z-M5APgUJ2UV4tn#uxfrGs+uM%fhN!kJZN zVq?=!%9`vWd85)~gK!wfm)DiCqbA6hgjWnlTp?sJHFY!htcjV96U~dnIoXnW>C02I zNOv>+We*ugNK-P)YJ*AZlCD21(&^&bTGMScW@A08pl(cgmAnp-SVoyCI5B_nsp!Q8 z3(_Npn|^c-+ypRPXByhg9VD@d(pz=e5v+7*mK|3jA=hO6>}Zw*|CaPbUe_dQA1+Lb z+wHDB^)$O{vyqn_u)L47Swb2kJUHf6$^AuA;+D5U&*TOQm3`@(k6!32=qXys+>_? zA-jZ7WM)n2vNA+db9`o-=zVtIx_#!R$YO>2R#sE_FvN~_LpHGI1IDCoBz2W{F`{91V z9$r)Buh+w~aecM1Fq^x8<|&UH{DI=Rf=IyDHlAcV>vCp!0h*{9YKnn2*z%?*`GHzehtX z!xtD#xxM6nw3n|B_nrXYA!$ z0Iq!6H;B%(E5FCV-`^q1$J)F6nOMVrwQ>=*=kN3o+m!)7lSn*6+4J{&h~%+M)}Pns zD|`N43Gu5DCc5BH`@2|fh2!V%0}=T>C3;ZR@qPh&_8)&oh-ki-5&p{!Ux<9Q{Lhq6 zd;Z=K@rbVBN9Ny6%AUVVMEncCm?b>(r`zxMqBGx>;`rk47j^#17OdNg_QXGlt@*AP z?fE-Ln_y3#Q2ak$6V2x_O-ZzO-f-UZkVx4d;V@xU)blMVcBo=$9kP5 zw&C*m`$_}X*z!ABFp&1d=as$to=uCjuV%+4*uSdm`Fl+(uS5BRVF<|Wdg+vC>=A2U#v8E91rpv9!7%fv0MdT6(p#_A#@zZ${zqMydJW278CJ${`-pLz{f{5D z+FQ|&bfdXDC)htxY%4yRUp$2aZNFE7{dX1CzVm37Y*E`E0DIkjZ{2F`_dGVd62UX(HIrY-y zwoBXTT}lAljDM5xZ(#msKOF0nazWFuq2I3`?C-Sd+Xv^(xHxu2|8*Tkt%&}7+V0zm zdaN(cS$*)+pH8c~Gv&+Kf8DhK#ZLM;56ZCG*n$88oeaMg4LcdW5rt2NKMxH$8UCqO z_*b^V=bl#N{0c^XGX4*>Qg2f$@|U%O-_wempTeL{R_~}*_^fC}p3_^wf7D950d(qB7UsrQps1 z&s*VtXDfQ1-AX@JwbI^kt?>U8{7z|Y)EBeo9rCnFIQtz{9(8>JRhF0Xcs}=gETcIy%#hzblMSiUndaV_E_^uWD zKCQI(-B$EDpcOvHTWPPm75-_hv};Q%{gT@XeXJFEDqF$#fSexubAJA4h5y?iJXyb& zwjyV{R{9reIBC6)wxXY`R_JeUh5x};^j4>Y2mpoRP+$^+11s_ z)pQB9#N`?QIp}jM_!BgwPsxm+UT<73I+DSsDkZztC>DSx)4Kb`q>cKzWM{4H*0%X&*L z6Zm|<^tn{>$&mO91lr{)F1~rnw5i22gQYWq#l^1TNmC~UUBwgea25MU6ckS=pHY7E zq?y6;86ye?O`bNjd_?K^$>k#NLRAiQ=~@i56@(B#sYGs|bX3g-+R ze@l5;uy{y$&=(BO03yGtta!wn>E-z|W=vyv#*E^@(`HO54I*=3>CAFjf@mc9@Hvob zioL+_^5F2`j7d{(mJ~y0mCu+sdD?7?CNOR4&BeZ%^dJgUF|@3#a>k7E2>?0M#y+on z`i%0j(%__NQ%9H1m@2uV3_)?x@+OI9_#w*ZNx=%Msu7jbCzlr&mX_TrWx1}LDvY-c zqKXzFd*swfWz!~<7Z08>ZAx5z|CH&|&?DjjqM^f!XHK1t#sw!5M=3{sm1IAvbaJIs zUNLoM*{#K86}J{oES)qN6fEWS8qeLSXROPOz1(A%S)+CM^wxxFP$(vSQ;#+j&~Io&M6*L zQC@cIuyS<5Oq2^ungZjCb01VXdGg<=W|cD<>{!FH!xHvn$pd@3zI2ME5~%`IOZmmu zO`SG-s#ZF)B2gK#23Ag-SWc3P1k4ta&x8rLlzrq>G_LH{@(I+4!a0Lypqk?A%V#4! zVn%6M`9M;>hG9bm6M|766tb;L-1XD!-9h?|Th$;k2f?xc;tnf^CZ?6KE(VuQo>>kn zsVuW;3jH9*5s?=ps7K7GOc3YKDxF+RU&LNmj)mbyFlun+)H3QrtMdmr5kl`mIJPU< z1#v5p!>gb?STSvaU_)JfJ$y%8?!l9%mB#H$0KS=d(<<4ujLE#R42D<A#XJBLt#1v9VVcD91q#+uYi;>dL#F6ZsY$hm@lC5|M&Vh3DgJ>}tV&?@g zVcIAUKYq zX}`DmOK>>yd}?c2i}sW z%7M4!sdnHkd6qcvR=rCdc&pxJ4*V_|&#!RcEqUr3cuSs54!k8#g9C5LV>s~jvfd^K z{+QIKE7-Dsi=_VD4*b^Zlh}aL9r!{?pW(pQT_@-Z9e7RB7dh~C*9!V72R>KQS3B@a z3k3ZV2R=*EFLmInr97J)_zX#3@4zpT{F@y3bV+~Af!`(RQ!CG9Jz3+(>PL?Qf3ZA= z$aUaTC4bFcO)8N2cc4av5 z6;dAetd{y|l6IKvz9QdYyu(zcS ze7&S!=EO_-dIx@!q~GPhr%QQ`Iq-Fo-Zi_W-clvK$AMoV>C+wfGo?N?2j22Og${hJ z)aP^ueyQYN<-k`+c@{hHOC5{(IfiIH!S?0i3Nct5He6o~h zmjhoS=^GsQj*{Lrr=@<1B)!{#Unk{Hci;;peTD-+UD|)41FuQ?A_qQK`sXSqUeZ@P z@I9scOC0ztNx#&Aua)v_a^N#0eZ2$!zHD!k1D`JGk2&zUl7H&lmiqKadXEF|lI_iP z;8P{N=D@!r<*9JslO_Fh2R=*E*E;ZSNx#^EuafjD9C(+cuXEtjC4GYfe@w<3h6Dd! zN$~i3bN&Osi;Oiv4YhFvexg>v&1HVGjr#tXJO8%Myzf95>I`Eoo z?{o)#sid!R;7!SYu>-$E(l2q~Qzd- zssq1Q(q}pF)sjBffzOiqDRJPdBz=Vg|Apkg$bp|O>1!SMW0L)ccazPeoS@i_3!l25t=zhtH0ljXpdOcH!@9r#q)F3o{o zk|g9Ta^j~5J|zzPM#(3&Smfh4i0}FcX+NjAL4 zhPUtNrQ7iK-MS1L-o87RWy90hus*pqJk@P|G#lRX9h6sS!(#(3{wcEIPmN=7*UpCT zXv0_7@Tv_z-G-+-c-E)NhA*{{cvjo+_IoLdZ1`?A`dS;F?h9I<#WsA3g~W4-4S$9W zzto1usdN0Z%!WTRj&-?K*zjlB@O3sk-7T;_n{4==781{T8~z*{ewPj3%Z6{T;XO9I zVZ#f{6PZmm{CPI|V>W!64eu&V*zE;2yxWGq(1uU8;nQvSR2%+c8{T8XUt+_j+whm# z@EJCI9~(Z)hQG{)&$Zz*Y4shF@yK=h*PeZ1}5f_!Tz% zH8y;m4WDbnZ?fSB+VJ%@e4Y)z%Z8U*^PJmY!)rEr!-n_U@J%-SwKn`Q8~!>Q-X-HK z@|^`XyxWGKY{Mtp@I!6*R2#m~hWFU;H`ws$HvB{zKEs9|X2WOM@FQ*bTpPZ~hSzNP zF*bam4L{C?FS6nPX~SzZKe)AsQkikCOAFTp72|)Ht+bl;?sbBw*?T9lnlA|9TkVyL z6u}jgX*M+DbHQAKX-YKf8JL~{wlV+f|H(5z*67{N3J zn$-+nOE7hxIi2Bw1k;pfmN0x3!8FyGg$(y4n5H;0m*I;Erm4-$VE82CW*x(~5PUwt%NQO{FilbB5{AbROjDCt%kVIQX-YDy8NQa_iwK_1 z@IZoTYBEb0zKY=91Q#;gmtdNr%v^>qCYYusGlSvt2&O5?^e}uD!88?_$qaWTn5H1p z#qg;FQ;2Rh{lWcDFik~f1H&gS158tpS>m@bCzA(*BFv*~y4e}Z!fZeVyW!9IfP8J26G9+V+hVCxR&8z1P>;-n&E2+rYXam&hS8jX{sU# z95^sd-=OI+V=fx0H5UL}S9z)y$#-k|PtAoHT6m8dI*MWe{ircml=JKB)zA)Rxlz;i z8ka*Le{-iaaH{O+kL0Df1Ns3f+uV^@4FapZ%<7ODdX^MF!6>q7aRgRoRfxRO1fqj`gJRo5uOZ`o{VG=__968$~@baya^;2{|qL z!T^G}EA9d@3AwdqmpO~(p=ioAZIWER6*L{Jq&Z|YO&pqjAhRwIosgES>E9b?K?Gw1 zL84GGYfv<^c@<4pc}81cXudf}K=^ir$nAI+qx->$V@@zo6)zyGb!Wy6lA#K8DAr#G7SwI^%wQhP`}kMA5ud_!}=oGIE4x? zqr&Ur8vZwNT}R{h!gF0USuQp7ISrXe%F-dM%1ji5DxU>w<117Nf2+Sm6j9~CpHy9g zW>vQxsS%>Obx3M8IfwCZ1@n>mhEr#2kiq>|G%n8hjZ0Vhpq;a*s;GA-XYDl( zBTKrMZGVtfwm^G=>3c|x5lml0()=EA8QQu#|6G?b50RlY!vD?X9*ma@Ayq8ORZ_Xv zM7eF~FC$Ns3vL3VO@!zt5$^yIBgAu3YwU_t zsi?6n)!3hF^e(g&zeyAit^wQ8sK;VENa9~|;4hK*2Y|oGM&C`~)lem=IO09qmUr|p zi>QWf6nT5|67}q{@^VDpySBU!th{qY-cz=`XRSO1dClJMkk#y6&IHZg!DwK!w*ucE zP$b{%{gbn)-e&J+{@%miZx15OUjF_!f3M?jL4Og`%;E1cd*5Z-5**7fnh;Ic=p7gGl%Xh;qXE%Gx!J*lE zHy8{XRyb_fDw5hrW>)J9nbkR96^JNLfY5gX=F&*#+ql-wXW{Vyt$!fM)r|7q%x&1l z-~EAV_KxH4qm0?j-+TD``GJ(XmA^YMO+Utm@onV(LQPp;!u3B%Ayy=12Z&Jj20YM| z!gy0?!HA}eZ}vXJ4Bi7v(G(KR$QP_cQ-*^Tc#wQ((HJ}^+~_<9MNq?Bz_6cZ0gdK% zHGA7L%iH+-A^z^e-$PmM+xYuB#(d_Z_B8Xi9>*KAezvt_2Tj6}lv71Zen+{?&7(w* zWFC=yQn46PH+%OpizcwMwPlWACfag0n4vB6L4vki4|;CP$4H=#CxQNe*1~Aeb{1*? zbG(n!D>&U1Y2&jd7SO}0?k5DC1j)df^>gF~Dd6T0$Z~u)RD8k${>F@k;#&wvbs4(^ zGa=x9j>NoQ9fc6l9Q~NfwW@@oi83)>*=s%xY)mmB4wa87dysmr2MXxQM@X9OXkLqY z7YiQqm7llW*#b1FA5$m;*lkINPR3L z9);AF;erR6JO|ojR{v&J)Ne6nwH~RZg4Nqdnulnlw05Kui_n^`AgT{OaCuhl5nB#MCj*lQUTX4La zIIctcd1+!_#6@x%uSOd;!bxzWHn8GLnAMFamCB004yii?s{zC+$iacvO|oDXH)v^+ zhyl*y(r3p@cSfp4l>Q4P%&Sf+h;tU=}>Pf*MObot2yy95J!biRg1wl{G zUd1v6TFNwvSq??%#VnH#silHtUt)QSkcrzB$sszD=|E##rW9syTAYCksh0(VpV1I= z@JVGlUC8uPHp{dEO|25*9`Lr=zzmNHz;EdBv%5t8;sYPDc-7O@y6WH=oi4H<}zWY~I; z^+F4aKYu3Ck3dGjz(A@_FxZV`V{v}crw!MuyYGWklfinR|Q+_#{9^MG&u6LVv zLV*)&LGMGapat|8sr5dFJqNAk*lDv;uw1y1ielTm!?@;#iE6JrmuuWQ+9glaiSkKY z-g_d8%l}2?*ZkF1)0?z4#x+{fMs3?)L9FwX*N@}< zb6Q7fk?LBgj~eQ>+G!3lnw!;LtVk_L;R!OwTFmz zmT`i)G6~u<9F~zxjTZZINowdIH)cpOL~MhOZ>Qe9lrYhhJ7^v*Yj>xXw6=Ml)gDA+ zHS3dag4RX^n#6uvRPEqStHLTY`Jg%zI8}F}~#{W*IXf#tK?mG_I!h zQ6b5w8r8X4@;Um2#j5gci%ixh%N^YX5nzwTt@~l*Wt+6@O=_qV?9qhg%4(w>h9>l- zhGqcA^_qi_s?{R7CDhR)p;)Sz(*EXpJSYOV2H9?{zj8WcuN+NVo*(gwqn{QX1$Nst zy_*{Tol(QxdR|&5+VC8fft}D!=666FQM3}gDx*-qf5{FJq5UBGVFnD!Bx$7Pg9EjQ zM&n`*)1~bD5!-*U=o7;3rk{Z5}Qt?ez^CEzONG@?0!W=q(*GT>5_5Fm0 zzD3y74^U6z2Z`~DElT}2_73AA54Ao;t8pcv@nj*IzUwA2B8_z-o3zp~b5G+pYA;e3 z82@OkXm9(T86ZFkey!;nA;-|}WZ7B9XzG)iDXyf-4GE{#_$2jvi~Z}rAWgK#Cqg34 zwrQG|hVh_9^Jouqa$0%-s!r8n09gbi(uFMT;Cl1YunU4Ofx(`%95>z5v`CP4s7(sx z-h!~CPWoLD+Mc3xkkeU2=0VFbv@5%qkE07{+-LVyL%d~HQwIlu;k~`GQHu^l;h9)DaAJz0gTC(xuw`2k&ZUkVwqRK}x_{I1@jmhL_ z?&I3f7q=hahU+^}sqrIq3`7XufV$!`F+;-MOcs{?Ri(!~!dk%iq89kG*9XUFH5=So zcB2~FLlQ@5lTWl@Kea}*;9h$R)X-Rffym85F9J-6jBS^}$>3ax1T!%9ktXVvNtF=Sq(o&3}EITeRX~y~n2ueK3 z1U`49s}cf^bnECXoK?Z!B2lwG6|Sll_0SlpT1fE*&VZi6L@@s`Epi#mQ;}{i(H>;sM>UDiY8hqjvY0cY6*2opG7GSE* zrl44SqhIVttOp9)eHRae|a)5!C2#^Npfo@@ob-^>( zAU9GL_{I$q^&T~{zGjiw7Tc073Ol@kC247g-N_DxtZa!I9fC?*6!t^*I2s3cO>^48 z0#7HKd|b<}pZ|zB?P#}Fqv=*yFX{2`^y(tvhu5n2{gVwUZyjQ#cp+(Tk&!67T@Cdi z5b>@X& zJh7I>`=6NfDP%wp?#1O0N66e0(G#Kv*pCOzk|9Lg9~-}aN%B!XouMl8NR+5|#J8ko z>-?AWA1_K?qGf+$N%5zspCaX)m6u~7FoHxzGZ3D1m&!?0O>tpc;b1EFqr^g#pf05_LH$L6E9~iJiV3n$1TRO#*i^kRZ)PBJ ztvfP17oIi%XL~mtk*dpw=3!w~K%Ts;(;_WtQ!`WmKa?_vnjdjfxxC1bT=nh?n0z*o z|44Cr*%iyQq^9Nutj|);AmV7}s~}n9$4Gcd#7G-x@%{spf^SnkK9%|fL6b@PCOM;> zyHkPB}Xy+{imnGn5 z2p*n*=MX$70q-QZUji-$fAjnVyoB<*CE(i$ZkvFI5qucND(i0o4E=qI2L_dzzsdZZ zGpjM^Ngso1E09w0Y6KyrFXzf3AXeO_&C)YRldPP@-yj72rOae$gdOm zFWK@(+Vhi;5!XBDPbJvWJK(MaTY3k4Cc&280mlfo^bWWe!Is_uH}3`ft?UQD3n~B8 z1U#SMbqTnU=>M012UGsD33x2!KO|xFTOs9lM7%@&4F0(U&y@M<^4WQrb-5v|&~awX z%L_SWvd>88@k&GFD#WO%m@2v@;Rkf9|C*_Wwt*h0>1rs3RGzv#e@K4j=KN4yWOR`l zT7wf9_}BXi@vJ$K6o@QL4f+D=8w))(C)x!6L8d5iLgu#>oocN(&{sUZq1z_1pM#T<#M;V*n25WQJ}93LXwNGjAZ7#B!Bg7Yef z&PIrF$$(rnbQ`GH?gso*4NU+L9lU1173$rUZKwe$Tetyr@m+(7wZ8Y<;G6L0{>aE= zA9#-qWbac$bfhp~km!H`TJTg~^>IxNzXWGU+2JKfhgwBWSbiPH&G;g zQxI+rwl7fM*pD>mGBmxwL$?Gpy)vWG!*W(vjUBFrA4WaAw5Q|ya5}NoKjqcTuOxV6 z5ayKvM2xtPKyyl$%1v6-*Q7;mXwvlj)W+>B^?O32QuZ(fh!bn`vas(^gd~~~&c@Rp zDR6TDnE^luKb)>EBx`L8F+)|Nrb-B^C2M*iN6DcDEJA)Nj6q#qnP=&q6&`*Vb`C>f zD@i8hFW>Gj>yEc#u_xnu4}FIt50LoY0~43|B$749lM2rK&R_H0AGE+TBX-m=ppwlh zpkP}6ZpV)7)P2w;qOat1^nF z&&p&}$`-kj<(mrm*mao`kOGgxNpVGFU}E5{AhJ}9A6TZ~-X7d(N5swMnoQ=JYNmDQjFV_#ef5bB>fMvk0qW{Hf3z|QD4)7IKM8!JT7C6# z_w2JK)<(NONTs7AL?#wwlrzhyIf2Vlm!q&&w%xCfPH((J@Xb6F(3_1@aOjGCPBqjS zL&F~#l1@DQ`j8ArF(lu&Xvkm^2cCRdu0J*;9Yii5^GtG379U^Mki5z_ef_89R=z5V zWepiz`E;CH(vS?RteF%qM|_j~(E_yQvFZ~^v)ltF2#4+0KYpL;X?&5#r9Uz)-74;@ zo}Y9(_-66KNew?w-W#pRJ;tpFUWfH8^qA*D0p7;LGYhOR@szhwLlGE8e&&(JE@Zd< znvF?;?BCQ7{g7xt-%orr>S;RV-B8(pBV5x5Ijr?2cg><9`R3IiqInLoT;-4ECk0Ov z{sSBH)mc|n9t}h*lFTzfB=qCQju!S@qo@Uvr=l7}_V_wh*EvLw;Fm53CO61en-2ik9*X+apL4^{L6p!1mQ2!o7rrX$s~>=2!Bg4l!AaOxPpUC9qSNaUiD7#De0C4f zzG!z{Lsv%wh4t#{Q+PDFXC16L4x6XAE&I;}=TN_BWjjT`U}L5p&>AeY)$m17mAd?t z0hb2d1A41rET~)qE=4F*6H8K;*I{vNlF4xUsXghqOhb0l0al*_nR_)zdum!GDt-iC7j+e6);{PBlHelf^Nx?9OMYmxO0WktPXm@vyYs~%kF zJ~X#SU0vU}5?`QODd@HfI!qr8pI|u~UNr{lK>2;UVSoPu-2;MdZk%of=*%%t1~P*p z^ZhSKsx0F*Da_a8`6J3GksFhu+>cyyE_ylPPv!mrHvN9o^bg@ii!kj#fEIV8^U^ek z_rOQejOko0QjmtJQVsvX!YbY#@Z$RUT5J$a*{Gc7eQH9?HGa6m< zb1~kZ1V9_cIQxii7~_B))6M!KK8PVx`1yo~`s+b-!73J)t*G0_sG?>*-t0t2H3wIs zQMI(4mYtughMplFn3%tYN;$vr-|=<3x5GKqcF_rV%4Xme3!-M!b1iYvD|2}%kNt<9 z*^C&MYYromh<1MHQ!tMz)!X43YmT?UHLXX_q9UJY>cA$fb=qiZU=!rdCb_X~Gzv^p zg#DnGZ-PigV@x0Mk}-#Q0|4VZGzjYjyx$Oixj{dyf9BUe0+V!OIE*s9$FIlKa4xhE z#w!LIoU?9b;;_-%rza$!W7;c$%Zn%}fb;b=z8W)0UF0Sw4%e`zp6lhlkK@gDkrAi6v$rhR z>C@MMY~F4xL!MfTXgsOjmtCjcM<;jMVyXiBHrbk64ZjLZAcC1WA6s{kl(vv4b2DEo zYBpY=&J(*=*XtGY=+aHu7Pt{QGgCti5KpVQBq`XnFVq z%9tN_2?F|0CnK}$IH#1x6y4E=rvl&H!h*=`BDlLkfHV~s(UV6FoLUJGB^DytNcm7S zAmZ%^)5dJfE45Lu{w!mq$WudJUT4LOT|k8ER#0g*e;032`XdVqF*y|x=K>wo>azvo6th<~2MKw(VG*Y-Z4Z(C#bO4_pR zMA8YIz-w#1X%`8&-Ps?`-|Exr8$YG_hgPvMoSB&afr79^2AGFHT;B>D&x+<`&KS)Z zB21TA$sDAcS0G;+D6X)ZU8r@3puCDR$&~6bf9Q>TPzMV(-epy7G-)r+Uvp_1=7jyA zu--l*3palO!l(b5?LCh;gx64OqO)=#r@!oowq}1jqkJQGEUp89G~zu%S3z{;C?0vb z_Xm1p?^o|zgn|WS>-`wT{-iqnXBuy1+u%dU0pw+Wb6A}gNN!TQbV^=$0Kth*FLD>? z>ALqtFyL`+b|dzhJ99hM(b*sR)Th?_l6ElfV)(cOZ(si+w;H+_^<{gfpmgPfCM_{1 z)*2nrUbu_UZywl__q8+NHQ?ZK-U5;F6k1`vXKOvFuO8|H!9yTuxxuZ5_M_)%lY1@2 ze$Q+APC9o=H8fN~Cjdx`7c`*z?p$AAEqXl$z-CQ9RSo-45pK3{H)7qlv-t+@-&8Z5 zB^V3`bCd+Q5d!%19cBs|@PP|U7ULaD+wBnHK+pH16*1)weCI-Bqw!S0wq46Pv(m;T3C6w25{fmW_RoujhB8AjWMJkS6I=h7R7q1^v)u z3&|(e)*S5H_%ZC%S2HiogDt2V(SC?2)*1Qm?qSTlFlt0eB&{!1F34Gl z>vzUvRG4`LzT!b%^wq+F9g<^_MmgGQY$g)SWWQkfMMF&AV0=zu(h6*&8tRLlr4_ha zi!Q1{I7k}hRD9RVf_mDS7zE4Lo zj5YA-YUph=1wM{Y{IW66hoV2IaprBX5?N1v_Pn&@plUT0jVMB<(YdAUIPx>jip!33 z?1ae83(n&8=HKOwS@I^wxa zgOiL-G%g~2!XOvN!~I9PVCCxlgQ%PMnzOHY2ifMnbr=QHJfY}YXWeH|Q;5jX zl!d2Q;;Hw3OEuD@+EX;j9~pr4!)TZ>Y^{5m8a|ynX#`De?b7HySDN11rI~-BKNJ21 zA;BFVLcA+bCAkUOjKyMYHy%9C8n=_&$O+R42ps#KpFD^oypvIgmn=B)E?P@De5c`W zdd+NJ>Ip;!x+~k^O*`yR!v-=p^D@BKTyM@GS-2j~VZ70SmX&1fWWPp7FsEKHRrZXT z+j-RPH6Ho^RP6~T%jc}zLgOFg)Q*=?9_`qVhp~d>qb7U?2u(;8O?V0PRule3eM#DR z8zd8L=k-=RPoDQM-j1ayb^<8lZz>BH0bkfxrEqk+77L|OfKMMvQ|DXhLR-4XN{i?t zlt!Tq*c|573a*OLYtR+Iso_mn;_$twnqvy?FA?LKW2dMg^16KEF;q{fXiCOLdUW>C zqvlv!bkl1e!?dHFmk>rBx&G13A2!fT z_dTx1EC%zKvJ)xyX}ID?Uziiu0WKPY+SY*(R`ekrtBBM%j_nAn5b>5C=_c`(UU)?> zP~NegRA>!9+$OT(d8})p3J(U4*k?lma}JiTNTgE&<~s;l!J-!lOe8!dbUq*L(6C@3 zT`xlQ^r3V$CGerNA(EVKkZCo%8!xwDM1Fxw7nlaHz&F%7HWYXhHPo*Ya_QCrEm$Jn zcHAv{6IX53&^Mr<=wt)WS2r;|?m33cQ;4ti<~R^9oy`c$wAKyP3#sa8%A*K~6K73q z$5^lTAPKGgKfZ>jhMs4heLf*sasQu84J&h!xg&KKFU8c*J1u2i(TT{cyTMoyaL?^+ zuD62zYY2gbni?8O{4vS)U`=2L!RTk>do$5Rl%1&$wI#MJ<_2VK` zF+|7Z!~(jZ$twa)Z>xp|cg6vl)gHM-Od*r*-{&-NRKrVE08u5ARP5-*TG?AP80wIw zCoRN4KAyJy0P-k^Du=lnaTB8FOWbU{RRURZ0>qTw)75duGmutDW}_LOzt2Kr>W8OD z20L^#MfB+C8oEbeQ(9venrD6@rNwYwhx^7r$X5JxDvCztL0igd$q)gAzbj#txd%yG zL!hk{KyWbC%DxwB?VSQlS44Uq4|`KZriWd?S_$p|1c1`uEvylAdb2fpJvn zKrMAxb(2j`9&#j5Oe#I2%2j`Q7)%%7hol`u)TEuBe}S(SIhB-BL~9?6vp`yjmQBI^ zGw3#0gK^Kh&CS24U646ZO*ba0m-WfQ&f8pwx~n@VP%1+d_^&K*BMN{_=_1K8PZwmk zZb^KvV%v!seJ#FO;M;@(-iBR*?_ya1XQfo&X;~o2Do}v}$50^W4O!sKGeiv@QD8dR z6C|%+B_;QuKs^eiERY3eQvpPrxi0m-SD}|cWI|dpA`jXwgJn__(j3qyr%l)Jg&;jXOpo$C09I&W7vQnt{^_@avuY*|HWPc(- z@TjTxm2m$ExA@CIwM#pAQ04Fe*%CD@`p^548*6?9`cH31RHuvDKSNPSM0H)eJ2AlL zq{QnPM7_d7{mlLTlTj*#I#UX@8pN^%+)}x$^W*TTWSoy7kB+^u zpP7sy+5<1fPe}9Ndu&<-zDJ~G;TuM6-181Xgnxkpk4waIFA~?9_rz=xJP$+Y=y4C) zDqM{kI+BX~sK_@4P(ctIWHn5@MH16^Q$uZt8Hg$0P>C3!X+Up`JIH(xoxq|qpnq?E zf~Sl}aY}l07lvgI3By=>U@>&)ID|EzXtJB|0(fnjFc1Ybo7<5!u@>d1RO8k-pB^+( ztZBge4fWd5UDyqzd>k_bUxhV1|2T28& z_vbu4>h!BArW*p((!@u03^*X*_{%>}2zV;y!9P#Il?zs*^5RzXlfDB7l1sIudfEl7 zCRNhCZE|82Gh6-uM93TY3eHIatD7hxC~cIry%qdyh$x_5s= z%%e&G)!OPrd2g5YJPx$Ts8r)^7zI>pal}mzw){f~2fW`X3A$*4j-*gSA7J44Ynbi< zTzz480e-W9L4ffXC3S1!y1iO$36dDp!5HDB&3GTKLcC-_cwk*Pt zTJ&L#L~#oy>pg0;_ot&Cj2FC5aKN|%M;&-k6MK$I8)U|m-@$V+#H05IAepiVdx?7$vBm`*Px?;#GCFbB&C;Kz;3eTT_g%lAF_z7D$# zI6zdvR}IlW*jUG0+e~(_n3iM~y|r&j8FYNh8w}VLOy=tpEF%GQnZoQ1SEWUK5S~}T zTV<}Buf1D-27wf*k3QyVFtp)G5A-o-+3=S7;Sy*Hk1Agr#*Uw$fZWD)Z;>M4oF9WV zB0%R214H>QV|it92WQ{{zOr{O`WtTd0Oe8~9;SOdHkV3QlhAZwuVYq_y$;81Az`oi zNNF~EJpy~}LpVBm`3LXncc8c+athh92*~~VDQdV6xXSID%sr&Yi-54&P0Jnj=Z)|4 z`uq1cs2Ll~Gtg@kmnOz%o8OQVRo20J{Q9AovJ$stgk-NEbsZ$5*Ull-Vt^t#34h63 zuY9&c6@Ls+w9n{9wvBx|-1W=39|h>ZwZ(mBHS`l$T6dn+FbM=5Hhv8qM!oB>w-&#U z{mwF$tT!Z!Dd&OND)eGZ>5kMWo5D!8KayyGoAe`9LeCLzwu}9?@Z#{@FIjyjJf9k_ z$3%usN;Y-8eJ}M!p$2xb^ffi#L~GVm_oTyof+r`j8RC!3PtDw{Mc?AQ zRoD}AVLyat94txpK}g|aqO`(b%UFk1waqf#0!aNsBfDkAQ3M54v8F#E+`s;otazBa zQX!x4_nPVIJ+Db}$)>5kP$`^0ALE2?gQ63=edc(8_WdJeEmV*9pP@CO=GTxaimRC| z;1QtA39vHw^S#E>*C^23Xjc79j73mQ*3gZ5G^)&Cez(T?jYH}t!H=2w0mDI?=M%qz z$bwW}mQ4Y(g2>cle@*)&KFbhiQ1?QCyt3=By!539Uh;7|)a$Q2$G~6=Y`zv}{0f;^ z2?zj}q3Z&A6=H}Yk60Bhtwsm&GXGL^l`)&fM5JdEc*sr3ZoDU{f;Vqa(Si|gt!yv~ zKpB5)CDPW~lT2*n&AW`*mbW8q^XbqRFedFj@VF2WL6jemS^@#=fzS@%%wIWrss<7D1I(*)+-?&6LW}Jk=6&oMb5Ui^xfsvJ zj#tIL>{oEKylorzoAJrub*K#YHEb>sCKzzIPowd>gdTU%-V@&Z|1U{>6(kfrcPUcS zM8{Kjp(|&Q@ZTRpU-9}x*tb}vK<>P>Dzlio3-c_kc-=3Ne~Ou%e`NOipfdah&hM6b zK1S*pp&syl7mzsy9V+aA?qe-o$|B8#kbULQhB;ji1$L1SgiSyZ4sLv@rxfAXacF}Pc+r<+YJQRxD3o|uuPQ(NLNHO*( zaLmyE5c$`e5z)1Ue{GkBFA9SF?a9AVT;E^Oc9MggD;(?~2F78k6b|+wp%l6R6BOTUFGT-d8wvc0gHoZ)@h}bPSG_kL zhaVw-Si72Ryrn;+V4VFS&Z>+zc1wS_5m@qv9#RDSA#K%}lOPAIdFJb6Zj-@OjK+T= z^%?pa$LP9J0KiDTHHgn@?+G7d^c1xSFQkUD zgb7SXT?P6NEGjo7ri=x55?|Cc7*I^f!}paC-WbtOo(Jj{~@x5H=)#gU&1tueXmSS~vfWUJB4m@)*ZKkfSO zOB{wV2lO9yNwyvK(Ef|ze}UZj2J?J$B<2^TD>yl{`xh48G$w_14L~tvKfbRc?fylM z(~6gjTfvRx8YARd|1wGQK8QbHx!ypky%6r0b zv$a*va4Romwilo*i4{}MKxz!wLN+%sOb0{9j)>UKIj zk6d2I-^v91dn+$MEOFVM);C48-x%qKDZfYjN*{iAB^!FPt>7+h3D&}Op@DheB=T|G0v%IM$BTn~q7fZYwp^sy~cwGNnO^|u%KCWi@R;wECt>Au38}J{?{5!A1 zW+kfGkB7aQJW~=Xkhv`n0_fT z#5DLAQfpa6@~DddnWH#@K-J2fOniHscnVT)vJ(CP@l8bBnFh|!q+*KPey6>*h|+~x z6ZO9N93+RI*bY(624rEJYRP8P{=_f!;B1e7sb}lQR3aq{jkNtz&m8b2gZGj9;k|~( zxB_b<$cz9q29YMPS+)rsMIZAxDv-b5b2sztoJNvFy?20p{P%kI4RRq~iP2bhnT z_;RG?*on^~;;TT6IKk{og|G*?^=lcwS@%2q`mea+amNqo7}U7mafQ6!@m5+Y5I7i& zcvpP{&t?ihAZXiL#UTaM`g40HT|Ps@uQv_noG!Y{R@m)O#a1PRkr+tP+D-5}Fy zct;0ti}dVs2twe;&dZ@z_Cwe$+6+U~_@)Au`1qYUCc)L|#KHg0PPUD+&~89tmlki- z4syqTNbA-fR0V#gI(|(-rAlEh%kfD3kXAJbrD2~yte_fK(Rw=bkact_wvT$du_X=s zMD?e-U(|~?{G#5dxG@-v-=CC{aO`6xzncFKR`?1R@f(;INE zcfmS%2s+n$1!eGiA?tteplHsNA5j!rU|34*H(VBLDCIj=3SV7kt-RVu^a+)WO-9w^ z&9Og^O?=!-BZN3_Erbws83GN&wGbR&7#G?&UrU4$DdO>jSVdjf5sm8aZQe}NNM;w5iz??)KRWD+&X`#HI25WznhuAm z=owXpe+6=Yiv;)`=|{&gf1k&=JCIy`HdRs7;LnSXDO?J zv;yty656@&OOOLJ1o#e>W@Sy`=1OHHvyJgJ8*wiJ$|^D*dt53DRyH*SY*|@sWJ65w zu_^1R(@9wrGRR9p{{%vw({~hRGy<*ASTBztk8i2`WW4jatOA>n_j;%bey^esh7st0 z!R{C}yhAGRQRNR37!6+}+REu#D~%S`Ax$k^LC>htXAj5$ZXz(!X8{YGa}k?}xKH%% zW3uiwYAEeYP;v8ch!XKu7$|IO-nYmO=vxDHuco;^fHRju(jxt;%RXfJ`7o*RRH{jt z4578`f$0C)uyq_KaZ^X66&hPUlSY8wS_7lP7HWlkN2HV{D`b-*gs$sM1k3 z*gy;DLyd0|Np6`(_B1W2K|bIM52I=Jp%XI?+TmtdrbCv~sQ++8_`+i8ZVKUU_%6x_ z_&jnq+s+o{(owD+a%kC9?sV>}m@(BV7r&CyLzcUOohhG$dKdq#+?7_j4AjTh7QTC1 z)W=R3hy7W&nNkaxX+4#A7mQXE@U!XMaB)9nY+4o6+Y?pL@Pf5L(DnyNVOwA!#z)Jb zUHdUV3u!}3h5StArJoWt<;GT@0I&KG%$?ISUPcmt{1Yz zB^YDpa%mEnBRtdr!v24tu^v(UEZ!i9_dX#Ia36R?i1*Z6LWwtV89K$-1d2d^x_A_ET?2pXC z4g7q%TY?R9+$zE8Xd!lhakGT(mtZX58>idGK?oR~knYO3oAEJ=Pz$EuJQvl&_iWtecw|hh zrE?RkU||>d#^C(kTu8L>->4;XTk#+m$D5{x(os^}N0@<>;g|J>CQwzC_~Lys%n*E{ zV$$EKh|m8R3^#u3aT(8%+Ql`>aK9r|Bm{w3_v0Ub4N3u0E8s*k579nd ztX&$@=}IQ>xWksYhxBKB3x=>X+&d`5lC~&rUH({pAr-*0NEC!paO#5>I|Ok$TS#X~%=VWmi8W-g{iVDhi5D^PF?ig_MuxMDF(i=mv`#FVJhC80I-TM&e%wuwTGCJlUa;r;kcddh0tqn zAcYa)uS}sHct5-;0s-R@AP5#Q{dYn9x+6~ff&scW(S>~+UAD07gf39i;v;^6I-nbB zSSKHQ$9h_(*zZus?bCL0NWWwNLE=N}Mp$C4?I5>^U~xZ!u11)X60qaGgm@dE8e)SV z!opVWThMPH(R555MIUnn5OUlTKHb9a!%EYJUu5Brw#07|Y+PnIfw%2HeuzbVt#Q-+ zs1zF{=kg9E`bz2hD2HhU;|ayQ;j@6VA*lh{gDm#F_!n8OdL9j->ZG< zeGe+gGF~Jd@XGyT%1d{k54>yXPwEw+_24nl@ zA&NToiM_Igq~)mc^TX84gSea%ViCVY>g$t;SO+{cxR%e9i56;>_l*jL5pYOr{sBvs z_U^}zE4H{NvJfL#+!MJs&4sk4znVrbd|UTK7Gi1JDNWoJp?uq25v(%FpzsP1;x-X& zAEFgIM@!*nxSf_aF&_em-}u923H&<5JO~ts%*AC19B1Legb24c5F656e`Wr=h#*59 zXeHWTsbXM!d%XPw0iZ4fH^#bqS?@f>0LIV%V$&s{W1k5Jg!~JXMIJf~{au_la-`W6 z9f3guvJ>$&9`3(}PlGsOFyX?Q7*RrTzlpBSqhii`E^jD8ailO(44o9m6=%Qa;?SC= z(`xfoUgmNHJ04pFyn+os3LV)DZ4qe@_WvN;Ki1d696m;>0pIZ%$7g%0Y6J~4+<(Du zHgKQLMJ)x0M&q3-m&^-b60%ocTuHrpW?SynXBe0a*D8CpQ=0K3B*tLnP9?*-GD-F+ zLQ+;tWJxtFfHzF&Wi4Y0SwW=Fe(;hvVdU$1A@m5H>0wu-887I;R1F_!PxgYI?J`Vn zzO_bwk4C!LudqvMbF-fS6mgqzI3mw!;bvhUh@-ac@!%YGf!lENhNd`&yqAJyK^59$ZbBvK_QqQ3mfvE^H{dIJ{!^s7VV6ThUb^xDV4Kr4 z8*tif&1+HRWiW^-&&Est3#s-fjn2aiR0D|rfQ@L6t&#iDk#YZq^^WZ=#q++k)`_kOWmGQ~{r(duOTT6r%GQ!gt+c=HMtAQ!(Mj!it8m-#Xh^xk$k>;2&eAR9u85L9m3;xT_@3hsg6y=)&U zEr^t3ml$hSc@c!&XoZ{n428P=u}?sb#w8q0HUs^kBe4wDAwD~qHEQT9bR^chnB%HE zm^843O3`wmu|XUXlCP%F2-C|eFnylm!aw62HxXu;`vBV3XA$q_oz#*lx8eE^-^Un$ z?R>l%E2mfZf~8=^zQ8zVg>(eJksNRYyiW*6u!|hQ58#Y`+IKIUVC2#?yaNf&qOYiq zad92%%G*?@9DC;O-^jekWq@f^c?RWU%H#2}QKW7_S^N+a%;I)HW)LMTKj4TDbPTDM z@xc>`X|5f9hXlHVf=(JBVA7S^JBIp1gir~C#QbYMhJNJrfujGk;?gsQSPAm7!>&^eeb*S3*ZVxc~Mh zXmS5dccF;%EBA-EgOea=OgVwo?pZ@*HVg9T zNQfeQ-trIBAQ zM*cMbf|a(Q@jj}F;)|HHOWITj&@1x@8WAzmjazmDuxMkAI2_~`DA)x|0x?bq0{X}C z=&`*T-fNIMh~MU_2gvJ%8(PNMv*7c^I1(K|7h^=Yh-=XpM{`;kN8)NU-r-;o=2I{w z8l8uD7^0ZPs4(Gwpg(yZm$rm|Hw~x^);DDt#+crT-@_NnK(hkf1!`O)_rcF3%F&ka zhq7EedRNF5!SpOsqZh7F1ZHRUk?;W6c z$iEgZ{S;Eq*alOC$loDy>!QUkr+`oVui4=2fM6Z3DZ^5D*|3cX_@YG)s#n7=LiMyQ z{nMkwrqab5EY^=FjRe6XtP@LnG%1-igo-LDkT9m478lQj)FU?We%J=_+KJYfXn#!E z2MiKO?Lg`YNlSNg>xlMaL~F(t>D2_^O^85blpoVezr;v12YZC6_I7)#yfN&g@&Cp z<8U^jASlDlbtHkAXyD;`k86=t$36h&3B*Jgmtx7+G@ph)D!?g^nL;gyDjOhrOj!+D zA?7lqR)PgqMl9(Q#N{oDs1t$K{bDEJ9%^-bV;%RuL5ffY>~2NsLafT5)0IHW^hIC-LMm)KISIJU3T|6C*y@zzepx|Ne>S1oR(d`x;P8`4Zok zKxvqJ%&&Q3%SBU^%vaEqsP`Vsp7{Nect?tm{R&cTRC%F>gnUXe#oa%oykG_1cOq$y zB=;Cq7BX2CFhXIsAVoi~AZEKFqAX`?S4M&|Q5V{ey!%<*S0a@wSYJd1PQWjtQ$PHW z?Zggw2V{Oa{7ZCYZ)B5dL>1it!T#|*PqfgpYsVHjMR79xqEiiD5!X+q3fCa zXmv&qJ00XuJDh0zQ={tx6s$ivC_Oy%Bo^r7O6Lo-B>s^Zs~>}?8a#K;Ru~#+*G)9# zbM;bQ^vYm*nAmQnob2HsYNN8Z3%*;x7kh9i3#oM7Sn_6Svi%l2@=_!D#xso#nPBSr z_GPfn0xWqsOQHUBhv|M=O@zNim?{h=@l;#vgJW870Y+;TOl}d~o#~2Np3HerM znn!y)v9(GY!o!5{B;k01aJ*WOwK#`sk#z2v-q(xRixe?kW6u+maZEq@0`a5&j(G?=wtQFMF^MT6{6&T9=Q)gH~1i>$U z^;;%myGaM)hue&p3vr`laL|debRI;n2bAZ3#7c~UpCX*>Ct~qGUXf2Fx$95&V-la? zH9DI2cUNyiFPfbe0^c!4xD;?=j~rfPpC)?FTtw1@L2-a#hKvJ6q;Zd=~ zC8Z}5Z89;Ae0fA-E&bQ4F#4{QVC5e9;>$o(7w^k7s?^~;qKUUNvoq%r;ndpy*HT8$ zBl;&Zccd_fj8^BY?NR$R+9|{??2QJ=9~%Ay(s~}z2}*SQY=Q^o!AGp@x8^*eO9y4} zEbV0V?Bg8UBw=dnX!8_}Bfg|F!(8)Z#N?jIRuh#|t70#|j1%J{cArttFK{APT`mY( zoa3-;ou6MYTDCGkV2&~3NuW8#D2+(eJQLJojP!7>SS>oj83mjd$QcE{gAq`FxQ1Y# za}l!2qzUC165dVii;`o$6ztuT~I!If$I+?^~ ziCV}X)M5bX_*_)4 zxW%?nbKhORL@r}a*XO#~(#KgraA<(olv0#jeiASA#pM$uZhq7kmld^}FY6LFzTFq! z&w|2fSB3Ex=u zC){HZ&39sD^UQVFQfGmGGMKPGp?<=Piv-4_Pd?h}isN>m@>cfXuqzeE z^_v7N;obSsLG%V*P4OHSSCC=68V(Q+aEi^aPO*it{S3n@<`;p3;VW+ipL&iBN*7E# z==eAm|DC0e+tcD>z}MVEW~#1}C%k_NSMKvseXB6MKc&YF|M(VJ?SBm_I^q7(x*b%q z%2g#?8rKsS*G4&Y81RXI0-WRqlYBwsqAs3SYn_ib$Ab+Qq$;OcIqZou-X{$zjr|2F ztHkh!opuQ5RDskVw)jygkdW9rhe|!wA6Cu@MP!O)) z0H*o0GuvwCXrqp|{{e7Bm1~ltq_havO7*>mC4G->#|hY4k?0?lO`Di-cxwqz@Ud+%#6B`s`-tks?hw;$<;fs=67QR++#$gZs#E(=VW|z4$IN z@;Mk^-os}87dwop6dgmvhvdk?U}lNrc*B@aEZS4R!N2+_k=!I9CoWOfivl3FG{klY z*dvWU1pu*)e*{v9Z98(1pTu{#aVoBlkO=pX2YAKr0Vf$UI@zXTN{H@E8FHG^Gdrx;Co;O9{^NzU&(;AlbjhCF&3 z_#00E)cuiBQbt~b9v&6Ms1g+%L%~R6-y!5MZ50-&lz*Vx4O{XP7NbEErc2o3wEPZm zvNI&vJpK(Bjosgp;4(i$^0VG}K)_mKdw*Mg>l>v4(iN`b7Am53 zSUqS1q+_!-com7}<7p6gcl{I8xEUA##G2ZLT`jy`3dLx z1dULhpaK5S-GGyfnF{rl3dL3{?MOqfVZbzJrJ33YnDUlkYDI@ga5fuIqq;wm*5ElY zOc{sr1BR1f9m=mW7?#{=Ylly{$-Oh(LdOt{oJA(kt;>jN&Hb;^b=dOfTH8PqDRomLiO)umg;?`=nkd{{Tpo2#hHfc zY>EcFqB1N?(OXPWUUPutPRb3;x8;6?fs_*y3-L=oiq4qNM1QpSq8CWRt6#ctRF@j>|p7Y)@6MgBc63x-@M9gQ%=Dr z+xT8SHH28RlLazkvKqCsejIzgRJKk=IL%iYai1m?H%2@{ClcrG(#V>Bs3griSN6^d z*xOQ<^{1{k-0`qML9$l2B#g>b5T6;R1Th?WLkjot|>tzX2*Gii-JJ*9PcZ|5K zU#yMvX6!`E-iM8by-P+4d*V&{bLp&O9vW1S&?0LdC0|l&Nr~gS4BolTH>ppq@)}ul zE#w4by#XFAWj50=J=(`ln9a-jCg|Qn#{J9YL=3!s;OaM*TjdE4l3zS<@mN%eIHC zp0f=jDLzI{P!MNKJ4TX~k>1>j#n>`-8F@gO*<&PZ87U&yGBQ~J3?sv=N=UP-Dg+@f zI~!(BbrF#)je4b>xUy{iN(f2TYMdlmUQ0X`t@fR zzkbg@8tK-_^X=L}vV!_3e!mvTMrLoucFluf_3Ib<`}p-=Wa+l^>rbrr;%|UzEh-}Z z6tNfJ)Xq8@>)HMF=I1TWwTomop_%r}M$WCy3S!St75Uf-E*Pjk*)Zf3azoPEgXQTx z@ie_hBqR~GB*opI_F?TI{^v4NJ~#!PcnA9GpOkR_k4cHV*2x7noGqbD)hhk{j{^aV?7@_cHClfI6Y3jD%t23Q8fNJ9?`EcasvTi^{O zjQjtc7C5HBpXg-HxaGt?lr{jf^h*PLi3QFjhj0B@V7VWA)B=}!z|$@81_eIc0?Yl_ zwHA202OPD)GMi*FVu9s;ti%F~xixHj_G?qYQU(43Ad!aLkBt^!v1ED8m+=g{_ALBzo3Yp3Te&Ow=)`_JPqo@_Ul%3BC$h<;ti z>m6*~Bwj+;0ur1wM}C;P|t}5$zJke+dM99;!yDjt|nyV|tcw=4nf=tmec9 z$?g=}weE}9+arx{Wl-|RTQ_jS_v(YYK9da%&}8K5$r^$tBR&F?;N2HPq-4YzDVcbt z|Gp^?ketk6?jP^J-%0rs{rAm#5t+(_VwfevlCZH~yZujd9wmG}W1%wQZEWau;FJ3< zpBefoPOwz&H^8D=qh$?l@nVAnue{HraOjr{>Vul5 zP?IoPzn+WS*sy9`ghR0Rp2_)hG*>qv&(IrkPU%U_NQ&Y2RFSp5XOboN5@Y+(l5BDA zn@@u`{k_%s{qJ4juP63`8Qjbx#bz=Pr@tw>AL8N-?mPr4GoixsKk($x1g*|^VsA?O z`dZgT$tZdVx4n_mj-nw^JAIzFDZZIUgbDwxSn~xcfk=Zqn}*su^MuChtji}TwP%QZ z05vdgBHCfl_UIDPp}GUX_$;U;-v6Pm%I2ZbjZpk)p2%B$k0l#E)TQWh2zBC86xdI8 zco^lyYrb))@Z0RX+5{}0;Vcvut)Jta=V?_A)~f6evWZ%i6k=bPs(isRUCrS>@2A{M zXLS8f>*@IUvMnVcj+){(XZ%n3sEhbV2!Q%Wn8Qr%%ONa#di9ejrfe)6%QFn!6l&ZL zhJDkgB$Ba~bBv3TY+1!~>F8|Ew)f+kE-ft|m4Oe#4<{sh{N#G)s_w(eR`!|MLo^#w ztHTnL!{DA&ECGV>8~c54S% z$_=mYFERN_@2#}E&oHl5HE5uXXhWX=7K#R*$Bx59GI;(=>?@=|FEZ8%Rm>s}(r8^2 znC{J5e7Kt2Y?||{So&<_jJ$irMBXyKs9V)TaTy=*f1WE;U;V91|8K;;fj*n~(1-Ya zWYD=g?SEbMgUxCNq0e{g)pS0?^Yr}Y72ew`c8zjvDum2CN%1SAOw*c?IeSv?XkrEf zr{`W8iXA5vkq1AU#N?rN6^tXxSGt%?fD1XQNB-uZ&3V@u>*^oDJs1MGaQ=dLd7 z3F84M(VPcdAoa$3BlS0Ki+&4*W3Y*yI=x56e`uuR{}4MW`tqmqMPKd$h0)iWi5&)Z z)sQCVYLfApI^$s+GLoRN%%nuyE#41Bbms}Y|I!c@hGixpwUr<5zj)|RA(rVeZ@A`J z1B?uXk$t;FyRo3j`S#AJ0)YX!G!I`6wRnH2i>|9|%j+1;c|~Vg1;e|GR>J7|#-#`5 z2xI>RK2z`8iODjJ9&$a=_}`h$tc@LObX4v7okCkSMdZ;^{aP515xHSIBZqYrn7G z)c7*`eQdywMCVLx8@`|h<_m@1db*v}*SXAUYaX>t%~%l|m@pHaZq{l1LV<~UMF_2h}ild#0YH|YHkji(xzK$OXO4S3| z{NFv3p4+r3-VcWxcYfxxm+#O}s{b?*`hUAi|7MAqO06LpuS93O`K#&o2c8Y*u9zD) z(m81Hi>}ZXPtyKM6UhwhU$ewYl885J4+>0guEKuu0oN^Wi&-hfe)hmEU;XoCGvKd6 zSZq4yU;kL_=b>UaIR9D`x1i^0KVzR$H#MD)MH=>?MOaL%roNQJaG)!}SZ1|_Q8(fc zAG^T3n(1z%QuiF(mXI|4hy9Q-w~74{&-6;Rm)!$WT?3W@Kh}V~7hBU{4cNP|AO@^Z zxMg=to=L{*!HT-iJV)63N2`+yV$;N9iPdToZ!)vY!DRd=1}uKm=hCLxGTwg5#zwJXIpkws?IizLjk+o$q_XX+V9v_NSdw>&3qPL+qOf zLw=n9>e0S{*d<=w{PrymMm;tp(t!ugf3=KKT#Vb`TP{ccM$1N=r@uVt1r6W-_?27P ze-W#o1Tw&Uyh`fdGaqsJ@SD+;$!DsjsHWEahzD5@gQcUH`wi1qte<`2i}Ka-*mqO> z<$qAN**O4Kv3DPwB|vPfnhwBMi(e_QU4W*V@*`nA8|0^{)Q%_C1ncm9)W6U7CS5u< zh>RfVo5kvL&-T;I*o9YX)!1*1G;aKYc#HGc*}}yGzjOt7H?i4H+$s* zQ)v39ZvuYaTUwjXkT~x^t#{GCL2Qjd{|wRi$HqGSVufg}Zm7s?(G1)(F_+VMl}1nG zzZ@cY&1G05dBI#Qk}Lq8PDRSbA{_*dNQ0c3k44&F6Ae_-&gg{e^Wj>}5^uVbjx?Mb zl+M2t+ms#Ex6D6|-MCm`RP!PYa`K2-U*su$*BvK5mZbO2$(Y{4M16gLK!)6*l4i$6 z-Z_z`ZAe!DedpwfOX0HdbF@`Xcv~(TtGrN%LT1?0J@cC6dz<2K?t8mimhtiTbVi+Z z(ydVxi#HN0iq!y)Hyd#+W~h{DTnMhsD~ZjQTNC(<@P-M@=9ZX1@f?W1@}{=Y>9Zsc z;kP;y!EN*)i`XMHlsAiu%B{|q+MVd#5g#k+&(D;e&-C!0x44L3Blaf{`^`X;vzgpZ zjE*~*i0}GH;Tz;a3n=dyH=Jtk@;zgFiGOOIZ`yKf}6YF%Wfz)a`Pg)<=- z75GjlH#x@%OU=%Gmk@}-h);(HdQ8-<(}9*os}mx2pVUd_1WnEtH&evLt*mvlrU){= zM;4?w(##Zo|4Na`%K1aYo;QMTFQQv5*7kNeUZ9%dEjhQ+ranQH(EsY!r`k zZdxj)=XvQ{YGFsh!vqjq7Zm`IU ziK68&#%&cg8Bdg54P~7J#wU$@7qnBlew9?_osae>6kX#wFB52wPhte9Mpb|7=mUHQ(RJ zqC;6p*qV=Kz_V)){3`wwz-ZxFf?9+h|7ToTdYA&O&b{0<_1i!!38d|{y2)8Bs56WD!#aWXp4u>fYI4SsZAi{sP!V&6KdA_eMj;=|yp z)dIRtnDtG|*yT%%d1?G)r<8Zztfo92I^A~Ym^24Jo&kVaG(w%W&jAGL^fH!`%2(ra_X)0)h1IGWKxk~vEvFV;tg8WW0 zy0B&O2i{dgEg({*TES=!^Pvf_*JH!hbqo~6gPVYJ%|;B6z5kzrDkUti}N{^;2W6a z7;(Hwthh6AY?eabVr>&7HzGhtJ{3P5l4Nso#WL-W^2`;bN$hc^#|!uPmP&J95(~1= zQt6IfB2eAD`LI$f$gMKGj&t58QCnp!$haJppL*d}U|{saWr-uWupqIeg`S9+B0L6= zy5Pq>hh4r2*h4vxXW)0M34F+_i^h5O zuRWzN#N$^e5zk?0FhUgjJr5n=`Ny?x!%Zi41`X#|a@XjiAjfc9db&gxT2)9*okr{Od(j?N3ObGhc==LWgs8sB&;D?x;7j~Nk9 z(^uj@5fSnJJGfe%D!}s;(L7>z`Vh?^9pCR&g`MWo%@OPhegd)8fZJg`N>c097C*(% zNIHJ7E@AZ$4p&jcMW!7D-;kNIaa_9#g=)8{q1^A64gvk49p8mXzqMT?T?{~^ z;Xz|`s!7ydW*14OQ0$SDwJv&|i^<{vuTEn+oCEk(>@$XZtu}7~$>DJN9?Pem3F07^ zx$tS$B==YoB(p|u1kTpm?N(1rcRUkh=MU{n5dK)$T*DZKz&{juU)yx69BB}DLi3FJ zG-CNppT__8tnUTp(iG%tUSPgz5slQ+e>am!-wVtmPcdfUC1$wB*|M4OKr^`Pmngeq{UUfa$-+f{?4RYXSwlMTGqsG8=JA}s z$*vj-0nyqzpyIchg-^9+u>)1=Avu@W%N`Qo zPa{KTSaDg-#$Gad$SGkvRHDa$qSeU&XsR-C2(b@Mc?yR}#h)}C-%-fD%`UsUi9HLX zu)0Y`559j*R{VQobY999cK>euoAGpRbvARm04k=J-c72NqpzZYBYR1n)HuG)6uwak zd+yP#&MI4ywkH-<_)QQjB^5sw{$gv!Q5~F{c2lj`Cz6m^GoMKpBQO)B#}mNo6OA8!r=;FIRS4|7+Lh8@i9MW< z5%XZ^4itDF}Yc=5c%JyZ%0=-=Ml?$5V%xF*sq+edM zxp#(^nM!P|S7x-7`St~{H)p+emGq9UVzb7Q#HV4F$g0_CTo6UQv)*6`l!GJ^F6yIs zqOfYTGWN|WQpwMnOmnt6?-D!CBl0|{`1KI+rU|h^p`nMWnBjnr%bF@~1d}?uyL4Ke zn=D$RC0CMabsG3PSP6)haJb4kCX2CG;KrUQaGY}8_oIuH;xyfUk3h}+Ok!| z=6FKCfK>d5=N0lig`7nWjYyfv#J+$<*gHwUs#s&j{w7T+eWc)TTIgskbU62?YoYy! z_43fSp)B#uj4O#YU2PC}V|t`v!PAQAHED$QJ%2mJja)au#GgpDIve?Ws@JCRr!e?P zqDQexVlKn>zLH2Cr398kpw+3hI9r_s#PU2=XOW5@1gl`XZ@yyNuTyLfW+}GeitT7h zov9U1CsyfU>mk^l5c|#gPa(g%(p_tPL~M8}j3yR;Mwy=F1}YTqDRpXbo*XCqZuQFD zOKcqF5XGHD<3IXTY=O5EarYiA^)oHC27p}UtDac3QZq!#rRYXuo68h-9yxgmJB!%k z0&8ruSe@|#USz<>0@|%kXWq`ib zX%vD9Rr!T6dbI|Hf+g^rZ}EU+Dp8(&^Y_oDJuQbtl#iWH>+}37zT2q(5Ri4ibb!Uw z>Nv#y3l!k|vOy}kDSofmuV&{*MF_AZYa?T$d}R-YT~3Vg`Oyj5mQRck4cJUssbZ^h z53xUbI`%74@e)PoiOqp6zu5lylp?AJQ9H3!P z*;eOhi-#&6K$P>3_^Tw-o!EiQ1T_yzvr+r8rNUldi* zg;*IG(MilLE^wy!;r`+o0upJMVJyXM7DcItLSilofwlEN&elKP-xQoRO0;MCkE4M? zpj(|&iEZ_?XE>?&?k5xeN&fSHa^?J=%cL(kEgJM)L*SnI!`UDygEPP>TMJAv^f(~9 zb>b}-gejI(D3|OvWJDUjlLGcEpxOg3E0B|b+B%+;8bSNdj}0(6bC&9Ididaw4byHFE1_Iozdy zj`-Ca)~$M$&`dc?s7fGo)^y7V2)8(CWZ?f;&xb}~AK#bDIZ>%6i#hp&t$3fbo+b4D ziKJV`4+j1L0gVmB&7KZ_D$7peKatz4=K=MIT=fTO_7-RE6d8qH*!SF?$=M=UEGYsJ z0TSV55$UtdKXfqAd7?urzjyRtpyx!|EzUvE@CdkkWSt>xYR?7wLMmz>4M!U8q&u18 zcCx-(kpS9}0OGmjp%w^t)yt}xNl);hyTd?sI2TAx5Ax%y_d`Yfrw5JlQ9ai}%~Nr> zrw7gI>hvIaHklEBf_-82!-M3FmueNf^Mg{|YRLIPpW|GIK-07Y=LglEAQH=}lf5_Z z{GgL2%NlptYDDR9zt!0be?}E{6PqTgAb(JW*GR`dg*s}r{#=ll^Mf8f-ku+nFC%PA z-&2)Le|gK(f3VMpVH9j})&t$@+~^T$CYA+$IX`GQ@e3Z2l)CgmW{gKB>mx=rJwND8 zFrfXDHRyjUfuBt4u}Wr)k~!WZGl6f!Ul&CYMnK^mNoASZv|uFp3Z#Y&W-p}JHkG?9iu+aGF}hrDT{L@X3N-zBrkW z9HYF6uYDu-2M>8ZuTe)M4Yvq|X6NwPQC^*wkLf+GIA7NHj)91+SfK168e8Hfq@Y`E zFZ#CH8s6@!N5)J7n|WLC-5x~84ZQ3}7|urd0xw$oOR25DNvlLK@{DY~4cAH7;_O@m zpnY^kvP|2Qvm3@At`g{Fj@sEwHgA_OdhC@^#2CR?{xOzewguNkKqs>qnP)d=eSI-# zee(N98n>B#yKlTStd|VK|8$vxi5XyyG_Km81fQ*y+M?us zh2MdMyVn9 zUuC+BN^SX4@c5*5Xn(1)Pin99ql%^$mDCIQ>^RGn&l-T`i3U&Xzlx1C&z!YS)`?v7 zD3`lLIhviVT1HMsnMVd{9h)~q*U`M~%8tICIgxgnIon|LK~h*AiC-oytn<|7tSi7^ zj>|}wTuz^ex)=(;pr=nfjfTqMR&p+toIa7kK?V~=RZ&YC-$c?SA}2XEI|nLP+K)IN zFYDtvX`V4OPi!kgHZ@Vl#64(%8W+BEGYg1@J4KN==R^}@RcW$Iwa@ldhB@F-I&gr5 z`Jzce2VVoZsoQ2ziDu_6kQikzh%x2#>@`nGDM3*qXR;!rK9NRqzE{?VwNa41AN!omX8Yz>LvDY|*H^Kd&68Pev!9S{=saWE zIZd%io1IODwAt?m8`c(J5=G8(5SOXVJpuu1*^xCv4;0pz_laYVD0kk<$LXVT{s(6S zxV*|iCc(#~NQO=lBaP)c6rYur+g#&*C6SX<*;zqFVzsojv?$_VbE@a>U@{U+)L16o z^q3guF_EpY$AcBk{-hR{{?TNiwn*cJ@ z(H`j-jc>42m4TC4aa;Va+)DT_oAVw*AGF%??eVw!j^k}8e1B7kiesh5qhouizy~+T zxa^+i5Q^h+=EE;TzCB>#JP6}oCw`R-g)-8LTQbr3FS+BrPlS~;dpLc*mgmcy`w)v# z58wA3)1kl`gK91!7F%W-Jkl^ns@H=*=Dn<6UK9<)J`@p~@xO7}SHyY$DMN&O7fSH1 ziu-0_Vy)z?21I@}$%K4j;{-cWEoE6&%83EITTwNeuQnFuwq_Slo}Q6C+lGY_axR5g zX%x+;!CAm>&`f>5pSLVZWrPUDZaYHIK4bJ%rSRk%K*(|?BwVI zPJNUETR6O+d{Du3CU&!@^R@FrjxTUOpg2cLCO)8eGqk%py5N`9_@(#1lfNvXz8w;9nJcX_iRs)!G9&WkCF`%vhV-#2Eu0D8{Znh$yp9-v<$QMH-J6>-6KTGEeoL z3gG#_o9`QT_@3cZX<)n=I<-u%9Emtq@?}=jDz%5xq+b?M2~X5F3P}-l>=e-)SITk@ zhVzt#G;*$2NGs?46qxB`BLYw8qo=>3S!;jj`-<`sv`jFh!Q~h4Lx!u@|AZxgSx@o)$I+s%-&VQ$`Y&Qfqp$jYG@nd-4yApOJTaBEr;hv= zb65E);xWP6dAPqxlsDt2=v$5>Kx@C;C5sH-N3HrP!E7COrGL^%-ToQ+;I2e}NH{`& z@H^@EdH5^kH^~v!A6zTx*asp-F*?`Eqbc|Mh_?^aTzzkSnck51)-TVe*)Stl9mZXK zZ~c6^moOPKNSgI?>;S>Qqqg6CX8X5iCvN+KJ1x$ug90q<-)wcBt#l=|h1gJ))R+30 z_;-bnny-LAMjoZp6r2tQ4tM{ z^4eW()f;5RQ>ca4pJdh$JCvs76A&lCk*|qA{9N=G`*)PuKZ+VQZYDM+fmfam0hNuPowz7tB)?qhUtrW#N0 zcO5eYk$CxMNZ7$KQ||d*u~&_+2n#(qXi=Wo>6E7NC?)K@WYA9uXVafL(ES&3bl+?d(zVXc@`M&8m z8c5!5jz1@ArQchgoECo#-EsGKQp=;L=kic2o2_Hs3L7o12trwHt~#E}%6neE^*z5| z+7v&{^%|N}%;J}QqFv(XBj83l?EsJ(bqo_LOZ19wFO(ta%lKqWfxf5biR?JhXR$}j z#yJs>sXSIlr?0c)lRbW0oXt_u_Xoja2>g!N`4Gr!`loiH8%f6>{YKD>{5@T`0)b%f zoz&c@@aQeITb)V|R}ryFWtQ!ST~iQ@ahsR{P5RL(g8CFR$LpW2*2Zd>#n2H%KN_nN z{fz#(zw+DLqw)PBKJ6tmWOni)2^dEr*sp_>>G}Y_SPh*Xd}^;g21u6i9o}1(52ATT z2RDw|O@U@-nlRmxb<|;^(%%?+b?#D75ptAFYE$1sJl+Cy|s-yqExKPWN2CdQNaWJ+M4?onMzxM!KP z+udT#GZS*#05Syj4|s2NUMX`M_$gx3O#{m!rOEjV8S&SdWEy>*k`}*{wsptXUup4Q z0As4zLad(RrtESld$lpK)DwdfTXmq=*KP5GK2}G$QmHocF&4$I>xY(%9(i6wM@q+X z=kGGkxcVvstku_%Euz{=O}B`TG~KmGH+Vh}Q1!q~im13Y|?GejMB0 zUquvYcvBW8@(v6mCp{$gCORkY56p)9yync@l^+E;DJriiGt&4B#PSkn4{ai;@`)WP zx*+5EJd_lDS$>-8OCLI}4Bg++mhmYG{hf|WmoDPv13uH)e3!Qi?f1yU03Mr4#}ivW z&bfb*j1&4?VVrZ1CibGx)`Ly9f7(n%;MSV43$QZg?ZSenVrkwW+OLP_Cdr7g0(KZN zz64wQ5#t{2O5giZ_F7)V^CUJC&>tQ#E;(u%s1XDo@0qu=GKyo^#+Ze2JyVg zYxCiJ7& z;Zv*$y?{36Js9&gLmkGwwdckmhwev;UKxgGTZ67dJrQlP(vzn5sR zY0dc`^E}cp_jg*$?GM+2kmsKswiU#52d2rX5M0+W-}3YsjfhVWlk~BFYmM_CyyB-2 zyB}uoD|-}3YaoY1gq}H25Drx48mJR_*gvJ;n>!zp(dv9(!Ut4kZrtR2L^NLJ?@zJb z+8JBpn~?_g#%<%+0SBnw($bN}Q)mu%9?txSbw2AqP`$7CZzlFTS6Zuu!s9x6)N?lw zI~4q`UA=*uo!HgIJ=Lz7SxsZV54E3smP1`zvYwRv3fHbaDm=9~Bb9+;Ko)}nV;?a& zQ-TWi74q_3W7l4=H2d*D*f^1{Krd_H8Ub`}#la4(9AwV?Slk zSkFkqbdfn5-3Xic|9n>xTZkQ|l8{m0kEG)NR70DMHah!dYYQ=sc^fi^?XP&&DxM|} z&vIfJMgz+Q$@_F=Z(dx1z2m#9B`}9=z~1pDwJ5nv_{8k8YyFE91drX#)FZ*iIgg$y zmhVKd&f}a1NYpMhv*R!|McH(7{1vrze0q_B?DxJT+vl_p$F(ZHz3L9 z`9qRe*CaXo7wc}1`%a29{v$5Tc~iaTNV@&OuvOrH=`qq+fr80CR+^c4-fgCLoakg` zyv#gPZGD#77av7!?6g;Ap1Q&Ld#Y`Bvd^ck%2oVqr7iOR`V{F+vUH4ZHcc-2*_`#8 zxsv~WY$S~#!|Z)X*3$=C`BN6{eE+bBZ?6iKRK^ebJM&j}Jb1VWqDe3A*uLn43Ch2-`KaN$=K)T zbv8=R($dp`GTMDAu{}n+Go@%I)>G$2&M^vkln2?L*oQ!x)@yQt0zOs;;_QH#GsId9 zHCOLkAo-YXX7whP?AANQ)O(JWJxjm>!p#(7$)@aR$^0)ZEAl;FA&(`~NN6Cj zPu+T(NmmakF@|2&VWTU4nv8kUA+$GiFlMfr8lRb1Q7*7X6&veh^1}Bo`w43sQ7}XL zSH#|MNh7K?q~opVk9QEkFM^^c_4U+Aw5Xw3(oMdPUtXdBdJsYO$#m<+$< z`(rmnhr5PSGbGUBZ&P-n3c5&ZEp z=?sbe9)xyD%Rm&X=nczw_5OnXOvzj=nZs=}T%15m9txUb zM@X?L6tnvshXBo-w$(}V3M3I*>lN62J_U{vIz6BhZ)VCHyEF_X>E2=K3eC<BM##`5@(S0$&TfkJP*W27$qhawl>YYdC1 zl4#;OQE9V@vA=Y|ghnMxvc>r;GH7+S%yAzp{F&Hd(AV01|IKfiw%pGWh#fTdd(u&%xc z7iru9#@yx^%on~+uA7|8$_%fFjNIlWys!K^gyor`w^<))yiE+(%B>mJ!^`To%x$&` zqNcbVKgOIC1@6NTs`(6Ucm|F59zz*kHh{jQ5bEAQ$!Pn{x zCKe;_5&1(;*^jh(b?qnVmhq(o4+v;%%E{{0HBDzFEGco{TKRpjHY2j;e92n*eNycK z{7sHDo~wa01E8LaZ^7BTVI^&_#g?|Y6*1*w3_77dO| zdaeX8ml_!TxLc-spQksG22oH`H0$!&ib#QaCxFsw2e|H3m$Y}MieJbI1?%-jmMhx6 zm$74~UqHK>;S$-dAdSS&C-BR*ye9=)oHzQ4L|=xk2&~n4g4m15Pdu3JCw{>rl8WC7 z8Jw=t6<5}#Jg9k2SDV@J#;!EsK_?hjE5=3-`zQ|YA$Ri5r0GyctpJ~wyt?vT6_hO*lgfesK|E;&Un`7F%S5kW7c#in>3p*If;*Y zZ816fB})!>&JSF2x@70B+`@_3kIN>_X?ya=yj{n)oVG@#Pkcs^jK|2wm5RR{#LZt$ z%88{@88B#enr5ew{lU+>0FOJJf?uKYNy@w;pB%gCDE8DM=k&GVE9AdTTCUf)p63#{ zXSud~8kw_si=CI{{D?1?wdI_hbJnDmN)gG(f1R1rg!N&Y=LL|k9r0ml&X|9}`pJVx zf2wtut@X*}Z!sPKlOk!(Fr}Y1{$#?)nmp{2kz>pG!JIK~M%Eld4s{;<1UMc?630A4fyZH8u76SP0_t(W--w)(G6=kE)p4Wmok!4@ zR&FhIAE1)=Sk7F^&)&2}IFA}`g>}wq&}s|Ki>^JkrBi>zFU~r1!K6sWCi(LOUpBlC@i(^dc$&AIZyU6m z6fE@{l;3=ldRUP_oRKx(a3iN_Z(hsNwA_|+((+p1DR<1*Igy`k&Kt8c^3zQ@she|F z?maSc!={`g$ckl0e!4Ah%y-;L-JR2b7ulK=q%$UNO1vf|LgX%$+@|fhkL@}+_p#Wi zlg8}MiA>ox@>Mq64$W;vI|G3SX+?Wx>3b69f6dU6Wc)Je7u>7#W&!&;&e!4wOG^0BlYh^L_Pulg3aorzPdE z+Cy^J;l%xzC9}zfGN_8U2S0l_kKWOjk)i-;1OG&lDZx#0o1bsGAh-M9#ck2$=Ub}U znp$yx5y0t9AF(*Un^=C6E9(nh7_%E8o98Z(mftbDGqYH^DLAGTuQn+aS#uegD8TqI zNSn4yYQ9^aU87j%?D=4r*)M{Ew4L;8>N@7lsjVq{NC&31rhF@5WX-{XgdTq42O& z{3?-_R_|MOg_}0#tH$_{NpL0H!E-4&F&Urmo+(*P`d#T(vb(NSA z2oPU!y$y3T+d1ze+mxXoL;!G|GL-zSVs=t8_`4r}BWdW*9ANhgOlwJr+B6@{+%FKh zMn-LFE^2wK(Kx;vv4K>}q#i+ZP@?3>eZWK`W#ApNJF@z08Sj6*RZNI$^K#~z;a3~4 zo*VgmS4b*>FstNchthoJe9}I=w;&BSTkatMX*S`0&Y*Of3?a~DY1(Ab*ab9>sl8%s zHW)FxRU#t3cLYWe{cI6i0ivcj!WeA?DrVP+n7`@V0kM8$R(H-enf}v7$Iq3Hxb5;? z@o!jecd(~2mpLnER*txMH?^|NM(n#}+~&iQ)Nu~3T$2z$fU3+IB)cJ#0ElZ93%EDi z+)K-QK=qz#WEc3$Dl2vZEoyjG=jPcUTQ9Tpds!IK+K@g6%$D(ji+W^$a58*~I5a`{0ooq9s;ergMSBK<+BFvZh?AZ>EneWnY<& z{qftq%pHWF@}V5Tj8w|9Y4{p2DE%r7mf9ugQ*Q?`(-s7=*Xv`^QRR#w*n<>k8>(DP@TWO-%9LVvDJOAzhso|`$p za&c98$xOQAab?}S@)B-%5%-Rw_Hx^$ilQ~O)pbayU|DTxWrZuRqG(m6 z2&+1v0EjbCS5Z||T~ks7jp%~P>cvI1QdI8Dt6Q)Dp%#n412xt2kDEJRD36$5RTUUq z6U`W0Gj?$C&;SL>ONwe}h}!7lN}EO^svRvcYiv@ANW1VoD~mq53y zg3=4>;G!f7t2Je!FAJhZb4I}D;1MU*bYxWW+H>mm+9gHhbtN!b87(iWUMMk721H@W z0-6eruyV1Tw5VP8R>;9MBha>*vP(*&pH?iCT1XAbDvHabQqg&36-CvO7A2##jHpIL zPg`1rji7>qFQLdn+JZ+YtV3OGw4}NkW>JKKWv8oU zojZ}@hJgt_GZ0-|R)d9@Upg%6F*3MD{zd13MrG{s-CemMgKLKPN(ptcXlpAUulb6i z#q?clv(Zb{gu$28xlLMU<>bK+E>0Avu~4-8Sqa&-vvX?wu^%PXV_{&vr54-H^Y-r_z1vMqA zt12CI)|0i?bVAv};f!HrsDri8VrFXUs;U^R&~~JRsi-Y4aiNSNW5UeO@=-LOfwHEo z7O9R+bd@2?heV4OAdBdbSymF(j?wjsQLE~bD$Fiq)CSf_tF;qDATY@lSY1Ui)&vV> z23Qrb%d!qC?Mosnq(3y^wc`)BJ1uH{K6q-nxM&}ij0$*7>%sf=B%@|%LQ@Q0pS~b& zv54&|>gxeRhKi`HT*aUmW5Q@M4?$AU(_c(xiQ9n(yGDsIRDOB2C5w%jql9hQ3~Bv& z%W6vo*9?t%ny5X{1J!=y2UKjXox{G=7F~!64<0d^KcK6sG_77#?pdY5BSy-2&dr5o zOG+vXKc~~7g_BC!k?`D=Y!}AZn@?kldM)8juJv5^;9T(`ZZH4SuiLti!*%30`0myE;>E;gaZU2& zo#>1ICo&yGx$h1DAHF|QPJDp+aiws5?!)_;>O?#O3iHTwiesyo7Q|zFaO2e_ZnX_a)v-kSb$S;UAGvn=;%=UVHIyska`W!`u4DMfqo^iER;g`hqFRpjwB5x2^9#;j|bzHlCOt~w-U5m{lzKSb;AL9epPOfLT zwsAeobr09B`;i6VK*9-JrCe*cR&4!5U3ALRdJO8q3C; z{OT$$tf;)W!t6H!R$S5!hV@Bet)T@v{PD?8cVcvb`U67jAg_rXB?Uf~Z*wab%w>bL zwrqZRNqY&hT&pUnE|P7txiv+yhufZ^`E0+Gu$4HMW|&_xuW0^-9q#YD8>#>uwoe1H zu9A&WR-dx}>80&PX<(Tw$jXHimhxa=FSK2{yriOC4T{Umu3^nwBm{gBdwxX=OXf;_ zgn^l6uk<1>m1Iw0_&^6f1 zG`9oG+y$vkFYR!DX@~oXy;f78W9uZgh0T4HTY|lS>==8M1;pEnw)A!XebkA8`E|84 z{sLD%vR|t;XT$iClIqHu0KID=JJ>~K)irkKcrp8~^Nj$^MzB^^YpBf>kh%q=LfT4( z;9QugVIx=t9gtn5fZ&1N;v%$Xt}qg)s0z%RA1GqGIWR9!WI2^!_oF7U>(oEqenPKa zBR)B9*v)yr&f9U+py#L0OPl@m#B6gv!-nZL+QV42^m;@0HS9fMAz?k?`ZpLe2zL<1AKsar3IDKlQ_r;<5z^R9fJLZHzM@m5{ zKZz^)_TIKM$*@1kpTkv(YzMlTgo0DXf-3U=Ci#=XX-T*D3Wuijo)e}nCzEv@SCqE+ z52n?gh3tZB6ml8_(E0c1<=_`|` zgrjHm3a3L5G^Zg4`3a9H(5ZTBZ`%z*Z$dcjnxqNg^fk$+g`+Jg6T%s*ok`)$D|_UG zN3ZNTHM}+{>E-Y`Al4_HLzp8Omxo8^gfnx(856=$ih^Q-)J1;zT*cts0Y49*6W!pS z7OoE_zme3dGlV(9@`+scfG_(ybXWNG*Dtf&tKa0_N%fdk#4heL4BPlV-Gs0iDz{pFWYnb6xq` zbbG#5czm7KJ1N)WYjSU>Sso|#uJqzldTTvz0$(nDO$~XXo>Rlo5)a?h-sNtSLe#du z^i9gONJhJIgNlcbcEuJ9$AcTsl2ml@ne%0j?&5R|V-+ zT`r?bar>8z3d(vplkR!e`m(xLrV_LxGaxv`fv3;o9H{?scMp-XGE&xU7y zV&g6a|As@_+Fm_^L}&6&=-1TnrsSl@!rSSrJCc)fHL@vrX{QpM(mVOMfk5O5XbzEF z3ZLcAm?79McXK8XksM)5^|BxBzk3{G($QV;mC%DJ;aw@oclPO&k7*)GX|H1N)#L8` zu8`==?nv)h7cNB^sTx6Hbq6Dq*E{(glq3%T+A%j=c$Sx#p=zP_?J4Ml7BCi0>Vj{- zJa_d>zP3*|)-yM}yJylwA~|8QK6g5;N^Wnd$1uj;`+n2bHW>Zuq8?RAx9!9FMW(k= zHR*222PcJ>=AnbsWNB`=>a0X+2Axst=ylMk{~dcpUFn5i{`JYp8+vuh^i)^=?|?7* zOj}!e*YYn&TF`;-DZS4N&qmTo)5EiK!Uf4rFg!btWRBz(B$arn8Q}tWmN6-xG4IjW z_O{7+Eh3+;`pf#H=d#*vUTFAEKA{AL6eB|Fr)Q z|GAd`(|kO2#s4y3MP4rd!ry;VKDnjGKDLNf()m_OFZ5$aTicV8F+H5N8mXmUDf5Dr zDW_xI@)-QLFivk{FndY{v+R{AS0=9(t7ztbl;24CF_K|_qQ~<6f}P}_?Ad9ikZZ(# zwxmp!d6o9Zi88M`14EyDANF!IdHw-zayX;|oQ%_VgKztD^govfq0o_IpXK8|r?nqP zI~%vo2=5LiPfXdD4ih$=UkSc`bevr;x3x|6_{OStJ|CPed_U0%-!4AkyBK_#|J>WA zTPV}QX&1PYL+<^5?N>0xa9l9iglRVI)A~~uHE0HS@!AArH4bJ^1sT$vntlK%g1h;{=FsqwN3xV;`zV9e@_CT^G*A9 zEPcJz(>rWJKA&$i(L8!oZol{UQIhIiQTUK?(+;Y&7r&xT*x zu*dP1z73DI;V2u*3E=WO+lC8lxWtB6+VFZC-eJRgZMe;bFWK-t8-8g+Il)|h2iovx z8;-K!WE-As!v!{6V#6zKc)bnpu;INn+-AdCTmN_j@6WKxMc3~Ikh;REw3oKc*Tn7_(Vo!c`+Gt z#EYlK1D{iKQFZO|ISbgxUOvk$T3k{ij@BzytXMv0UQzY(S;P#zf}(01YjGko7>0X4 zMd%4~Y_zVntbBxbyUk=su4yJpk`%T=)22!lR?8yGg#UK1X@jP(BO= z#7#`=AU>r(pp#>}(#a~+a85aU>bQ!{sV=RIUO0DNbQV#Qb!>Fbyt0K0Ercg|qm(08 zEI;Aw6?1Cp7SCN?X2V4%m!Zg_`12MluU^58MJwFo0+UQ&QPhUg|7$v&cyQ8Dz4G;O zipU-}Z@N4Z@>~i#X_1M#|=UNw!fNpqtwtL#Z@48(7gJ*;PqOfIuD!UVq{44mQ9Ya$E4+5Wmr|a!7>Y%fRy3os zN~}Rq`A`o~$mZ|_k0&%0@^sO5yphKbABDqXEm>vwJK~5~QXb8y!)0IWx>tJY;<0KV z3olqceB|*f3Wpkk^SU88;Xfr9^%EMUbbi<#=(DJV*>2xRUH3`DzQ1!5@6f+%D{GO6 zd3fiF%V(z;rEu@8tD&8WR8A^N6cJzh;^9+~GDe|;U}YT3sa}YkRvTd4;B9{&PV6Y)odDRF5yzhd*h!|8dv+-{?--hB8y> ztV4M^t{p4-KcGX&oZH9Pfknn}xZd;ibm@*LiUn`&~7@&gff;j%5YBE#1); zuHMoe)mbJ1v~M@7)p3ZQo-~Hx%6c?~ZWk7T-}8&fTx> z2$yEz)>%2b`{5noLKbdmH}wcuxQuT2bKASr(&dp;`=6D|Zdb3nsYlGhJ<*N6xcy~& zH*(%-@$Jqxaz3CvcPNa>-(lf)bOX2D!ev;xkuLCUvT*6$z};uz4z_ZUN9gT-mOr;Y zuI;9MH&}e7mTtHmG7=WwdJA`7H}YF&;Z}7+cddn+-HjfsvT(WGz|~v0qr1_+r50|z z#n)ATt8)44MlPimF3r+)pCfr+{4|}Bg5s-;v3>2YR_QQ z!UejhN5EDj-NOB)8@g#0ZnTB#$_|Ar+)@kIRr>}kTt+we_S7Gt75ig1{Oz`IJ-X4C zn1u^G=(Q zTS>vtl~IDEo(+u1Nhv+WnJX#SW0ht)OTd@B5!Zm^3~Aq#6h}_NNeVe)#*%+5C|6!A z(f3F3r$M4gp`NuoOLs!a1Ek#DlGh{jd$|+raZQx0pHuDR2ejDG2_VgUlAApT6W!^2 zl8Zb;4M&6EQ`M-@qa1zge6<0PQ0UzKi0_ejTIg@QUEq8z@$}F@A^45NqoGd^BL1z! zGeXxQcjr5aXNJ}@Gj_h0_~_7d>gw#3cy{Vv1ZN;9iQLp%neIA4O%$Z|9!erf6SGtA zrwyEx;1Kk)F!h2{N%RN~CsCUEoZJZoh1;ss6NGvnP1L47#pJ*V2QTB!($r(o1!w)T?n^a?*nnNvulUAqb8LHUYLa^)&uELxaB{ zSeKeFiDNXeKJ`pV9IJ^9spm>!m?k!+7D-}6kcJ4{mnxqIa*k8pHl-dJA~7%+M#z!kF(_j%RYsuRFByO-0m|4!`fqx+zo^-ixQt@n(1^f z^f-Sm`6+?E(%N?t4PQqj8SMaJj|zbm97*C*k9i?%X785t>Ii=VplpLXGg?+#;j+=V`xpPURNj>%x95tl&7ls1Khh61|Q^ zc<<>_IJrEF=qzC)xrRR6`}{c3q?DB4F^G!OQUjqrCml=4Q0x>MX^ij@2;F}q@v#z5 zft?=Q?k_M0)-Dc=?%TLcz{^3__bLN^Z%^W@6g+er7N~EN#6zK$4B}Tyyie#7n!j(e z#M43-!&BeY67LrpaT4(siKmAq9!h+T#0P}#KbH745|4&X$3peJ_G020q4OZ#_opK9 z%s|gaXv4Jdq7Q_jX-FbmF0~7U2BS9N#h1cXC~(lI z65pZloS!{-MDLp1efy0A@Tq`pN~xG1;*sb;2b#RP=s1s^9dI`s@8G(Y$y ziR{z~VG_l`41(O$K3JJ>NpKPX1*vyX$?(G9T<*+Hy%3MW@P)yt+$l`G79$ca4;GLp zO+9G{iN(RQNmQktCUhRG14upRk%s?*prOp~lq9J%Z zbT*}KkSeSSt_Iuo)Y-yYvr1=2YHyMCn&4l!von>01q0!0f?G)JN*#z6g|7{YIgF*= zAQJs)@V6v(r&f$0ab56h5_{6`K>XpKX^RAc=@$y8*9RXaGZajpD>b?y_zd{cg6U}@ zhIPSLNu>wVpTY=)Z!~QbOuqqR82)+ieePuh(@&)nhkp?~3<8!sYSO1&VM{?>3(>oqkym_8ZJ3;$A6g~9Z-Ii!B2 zsnTHj?eyR9uQgQ_O#cb}DSVsi$kJf?xPwUD87x5D^}+N-g7Y_eZ&i>ECHk5?Sv0Id z`ckj-aFx7eC^{KZ{k-T3qJdD0v_`ckWLhA35fI^;7H;$i$?fF#L=ArPv}U}(-~B{> zZ*%Q0kwEgt(y+h%htPo|vpo>?b9f@L&v&q9$ep`5j3hG8 zFmawU{ygAkSZ)CVP2ZkdF;PZ7%NlzU+3M#vK{MRhhHq*0qW~HjK`a;IYryqf%kgsL zsOZ0n@3;^DL)Y@$(+LXSd?gD1!nZi|pe^c9^J6|o*6B!a!<`s>ixQ^+Rgxfi#$kIF z`E4&z$_grtbd|)XXtwp)k!LP!Z&}?i)SMd_ho6~@mh%OMVB{~vj=m0$-aA;y#zO4y_F(Os2(in1n9Xe}#9nVHT}Q}# ze!%+*8yqQ;L*8C=9VNt3?{ZcrT8QJ`S2?3K6XJyTbS8-ALY(r>U?;^0@uhb*XYH0k zobf)zc(fAYY;4!IAX*Dy*|Fbq7|7dS4W7l4YSnpS0MW#p~eO^E3 z$qqKBfi&;D?jSmfB;DJWS(9orvopO5>8+Ev&hzrY>B!FFt-y+ToFVFBXQ4Xrv60>E zm0_4r(KPRPj)Cr`ZhWnLWDirfN3rRTOt(3$L|ZYdVG!BV{)al~Wlsk^ln!dJS&Zy0 z0kXUkIpF(fw7lOU5RrX_fP)!y(9doKoA~I+EPFe4H;d_@)CWPfeG{5sdE?k&{p}|~ zI9AMU(22~k$3iXUBsMXTx%NijaAzyNuG#brz;J=h**4ZBEHC7V~?U&BZAuxef4ed#%r*5~fMG!wE0k;dlsl zn0et2d%w}c2!}7KFLy%DL8M4jKW;NEr$;JqW)>zq$GHYSSEFRljZHC{7S&(2qHr+@ zX6@Durnfr*8{OX>BP6;BcTdg`4EN}!(pPORnmXHxj^MvVblTuGn%E6L3>@8N%4L(S z=qT#MI_Gl1iQWwCgS)+O5wjh&jeN-FMkK63!`7GrV>aajPn9i;=PT%hU(6q3jnkXG z_&#Qo*D;YKG-%e!UIma?j(9ao6x{~+C%B3CBN3bRSK8CoN}PubYL=(89cLxp%}yO+ z=r&g3OI<-18XEPLU3s$>wrqR6|4x83MmBlT-hy}#Ep4VutT*`r5X0?0sDsaY4AWV& z5jJaxCCXA|JdPxOR=U-+{pLo@D`Jq=0m96y1!I zAM2Uk1}ts7Nb;s0s8J>%86rxRTiCe2UQ$RYlBh90Fa>dGHlAu?VnH zA%=8X>n>jeJ-6 zG|f2#Ve8?<>CPYcHPCtl>yYW3Lj+qFvDJA_7p!ot19Vg1ygnGXm|LuXGXqK0dL(x( zalko+ zc*IH!$2nzbz)9p+Ihn}I*ks~r%d-u&jP1m8WR26>H2t8zWvvO;xlM%D`3BUXO(gZB z9sbkGHc`Z}&L?Pan`mO6<@penZJL$9*7E@Z5EpwlV7PNXzGa?14A5M@q_e`E7r;pR z9`jhO-L~1|n1CcsZJTRCzX`8xTTnmN*^2PCjp>VQ^*PTWZQ8bEnQ6{NKHyfw>CRNd zqpid>)7jJuIF^GU&&frXwT&k(aNb9|+e*v=&e?q6jo!+)Ht3J;;N}uV(3!J@}_1pF&u63S5yxV5%0lwCmg4(w2wLAkS^OBi(ZF_TY z&$F#omDBJxow&H`(fQ6~1V1jG&~jcwqQ$lAggkJZm(hYa>BVSgrx#dyG1j>OHHwp7 z^f^Zmi8$%SG^YqHi)*iuXo;met^;wVGaJJ+PFk7gIA}p!D)|M@zfoeGoY)OG`}2T1 zu>~cL57Sm$SK@Kbg=kHj48$sDF}6E#>9nnOzD1YCWo$vu)S!RaaqTN-&$3QAaV1ju zmaO|&Lesu++NOs)gFikS{AlL~`Y6-h?ZNt%vrL~eggO0d;mcA7OhFw}Csyz0T%tz&CG(&H<+o>w4TK>Kt;; zC%%QYN1YLD?^aGy$DN79+w#!56Up5$hsW)p{&6Sy1E|K`M&g8n9=ZvA?KuaNxL)k6 zaHj`MA~;zwR>h;P{@E(XwTl{;{Sv^?G6J?>7r#%>8(o;b8H z+Sx4jx6z*Eb1S3vY?kGjjg*S^9ulP^RAQ?>a+PSJ+vafRFSIC{GjrqB@hyK1v#ft& z7b-JEyqQT4^~N5dH9bT-jj@2l#}dalT@jb~HpH<`CMN#)IO2FGu_M0Q68oHCm?h)m ziSgg$+5^k1kmk&zj?AR#&NysE;$;kGIww+rWenyy=OI$@G6oBrCor4G%NPte(~&Fj zX{_cr=P3Ftz7yM1+JP3ddM~UPc75Ju^6xkx7trbOX_oy>hcp;)ORr!*e{Tz7N*JRO?~O(BCR`|l&-*cxuUd!{Zy}bcgc)J|ld$f1@5%--JB*#3?kz)| z60Q^?Gxb8GOxPeO<$3QL1b(gX3%t8YTo=al3&`)Fgd4*aAkyQkn4Z{>Cv34_h8u~+ zR{+f=0ul=$O)SWbna411w|@`n$6!!}^d*g~m>3Mwgxf?ZrW?j+!cMy@^rQg4YaspZ zCZiQIlZm(69uw4@?P|J8rUUz7W=*)yp2FnHWH|TOE1(>A@BgqcX50iN?6n`I>f5fW zw6m@RA}eM^I8^u9pFm4$9fJi!n_y>BxwKDXC_IN^Pakv?tT0^*dHFPTgD!QKwyOK(I25Wm@Xf;i*diU}~` zFZ*5)XJbF4gN9)bg0Sq^E;uAK340U=oXJZg)imrC9DH`{l zXUBfcXvK$p1**V~<;;=LF6>{Ra2ezXX8eT2u%AKUGRXc+P`qYIrNznW+P*( z?bt@_p42e546m1qn1&<&WJZj^Smaa??r@R}cQ_q}JDl{w9nNgw4kw^+r@efSl5fre z;SL9FxWkDI*I5NK10!C5Xa0%zFvyt55huanpUd@u8}2X@VGTjJ!=W1P)C!0B7Va>W zVm?N1Cv*y9o^-qn^IdepO)^})H?vz;hK)iSEicdTC#;ena!1qx%y6d>zGJ?JIAM7h z=bLcn0&qHRKnesBwubQ)T{`P*GqcW}Oo1I?9FNhd_@`V6J7t=P^)5y$6YdCOcKW=$ zf{<{J5NTSAgHmw1cQ)tar=&`mIvpJn2YKGlm_pC!tbr3bOu}cw#*|uG1_gsHDJYOn@BQCP%ORmK+<~KjGN)>HT7jVRDUjq zY3FdTx@Y0nukR%DKvU(zF1`=%LE>~xJgarGO`XEDPM0>p_A#YvhpvOD)S=r%92ym4 zyx1N4b-+y4X9wyL3 z&)62?!Nee@&RXFAwr1a1R>mzb2*2KDr*T9!m(XNnGz9l_7`bD}On#gJ z#MacS4IHG7ms^!ME2xNGdRZAGF#y6Bi5aJg|B&@!d%l%AasJTi^j^+J{V3dw^J0M4 z+Ua18qy}fn=A@dFMB6!uW&AY|utu~vYbb6_n67LO zvt<${&V||sMplUZad@n_I2G5`(8xbVSEXJkPB=%aTurYW0Mmm~KIiRFQGbk+ z)B_T9&gHtDmfVyM?z0kSD^h=9GINgCnz4OWpF(a>?y3Rgv|m>pt55exNS>vHD?zBF z0CP*~CVJ!I5b7;JZ-1r3hU-O$O@<$?o#evb2bc zjc8dJ-(f(fHj?4VwWqFV$!4oh6SOJ(o*MY#np9W55qCmFQ=ewVxmMM;&iDwsnAAU{ z%te&%V)X<`Ma@`Y+%gi7l;Ivx_Wni*?)N~ zi_45G%nipo%VSgzEg)# z%*Fg~;=!nL>eUo;kyo)~F3eD+I1bHGQaD$CDID|RDCmYSm9fCxfMNGN5(oCD{AMq4 zgP^sgL#yA5K1jVb4-|9bP}dl%Zz_$yd1Cy$>KHT3popbS1F^g$!IhSB@PRl07)pXQ4Esr?b z8Gs2s?R?@`xqy~-0kO~NNZSHpTz#NzA#u9Xn6`f6OkS0@(uNY}IX7d3qzxl3a895i zX~VfG2sj@Qk035~P7VSN5RY_z^#PA09_1{@Fi$HXE^&6E>(a&$k9ImW29|T=W1OGR z$g~OMk9FRqpNYidoF9F_lZnSW*VE5b;!Md|PvbEFWcZt@0_>P_mg+2{1 zadƭ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%0AaX?C>2cdVx>y}v+ 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 H==}c=ejJ~1 diff --git a/pylj/forcefields.py b/pylj/forcefields.py new file mode 100644 index 0000000..3a4e777 --- /dev/null +++ b/pylj/forcefields.py @@ -0,0 +1,26 @@ +import numpy as np + + +def lennard_jones(dr, A, B, force=False): + """Calculate the energy of a pair of particles at a given distance. + + Parameters + ---------- + dr: float + The distances between the pairs of particles. + A: float + The value of the A parameter for the Lennard-Jones potential. + B: float + The value of the B parameter for the Lennard-Jones potential. + force: bool (optional) + If true, the negative first derivative will be found. + + Returns + ------- + float: + The potential energy or force between the particles. + """ + if force: + return 12 * A * np.power(dr, -13) - 6 * B * np.power(dr, -7) + else: + return A * np.power(dr, -12) - B * np.power(dr, -6) diff --git a/pylj/md.py b/pylj/md.py index 867d9aa..d830b02 100644 --- a/pylj/md.py +++ b/pylj/md.py @@ -1,9 +1,5 @@ import numpy as np -try: - from pylj import comp as heavy -except ImportError: - print("WARNING, using slow force and energy calculations") - from pylj import pairwise as heavy +from pylj import pairwise as heavy def initialise(number_of_particles, temperature, box_length, init_conf, @@ -88,9 +84,9 @@ def velocity_verlet(particles, timestep_length, box_length, cut_off): [particles['xprevious_position'], particles['yprevious_position']] = pos xacceleration_store = list(particles['xacceleration']) yacceleration_store = list(particles['yacceleration']) - particles, distances, forces, energies = heavy.compute_forces(particles, - box_length, - cut_off) + particles, distances, forces, energies = heavy.compute_force(particles, + box_length, + cut_off) [particles['xvelocity'], particles['yvelocity']] = update_velocities( [particles['xvelocity'], particles['yvelocity']], [xacceleration_store, yacceleration_store], diff --git a/pylj/pairwise.py b/pylj/pairwise.py index be3477e..90b0f55 100644 --- a/pylj/pairwise.py +++ b/pylj/pairwise.py @@ -1,10 +1,16 @@ from __future__ import division import numpy as np from pylj import util +from pylj import forcefields as ff +try: + from pylj import comp as heavy +except ImportError: + print("WARNING, using slow force and energy calculations") + from pylj import pairwise as heavy -def compute_forces(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, - mass=39.948): +def compute_force(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, + mass=39.948, forcefield=ff.lennard_jones): r"""Calculates the forces and therefore the accelerations on each of the particles in the simulation. This uses a 12-6 Lennard-Jones potential model for Argon the values are: @@ -47,31 +53,19 @@ def compute_forces(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, forces = np.zeros(pairs) distances = np.zeros(pairs) energies = np.zeros(pairs) - k = 0 A = a # joules / metre ^ {12} B = b # joules / meter ^ {6} atomic_mass_unit = 1.660539e-27 # kilograms mass_amu = mass # amu mass_kg = mass_amu * atomic_mass_unit # kilograms - for i in range(0, particles['xposition'].size-1): - for j in range(i+1, particles['xposition'].size): - dx = particles['xposition'][i] - particles['xposition'][j] - dy = particles['yposition'][i] - particles['yposition'][j] - dx = util.pbc_correction(dx, box_length) - dy = util.pbc_correction(dy, box_length) - dr = separation(dx, dy) - distances[k] = dr - if dr <= cut_off: - f = lennard_jones_force(A, B, dr) - forces[k] = f - e = lennard_jones_energy(A, B, dr) - energies[k] = e - particles = update_accelerations(particles, f, mass_kg, - dx, dy, dr, i, j) - else: - forces[k] = 0. - energies[k] = 0. - k += 1 + distances, dx, dy = heavy.dist(particles['xposition'], + particles['yposition'], box_length) + forces = forcefield(distances, A, B, force=True) + energies = forcefield(distances, A, B) + forces[np.where(distances > cut_off)] = 0. + energies[np.where(distances > cut_off)] = 0. + particles = update_accelerations(particles, forces, mass_kg, dx, dy, + distances) return particles, distances, forces, energies @@ -92,7 +86,7 @@ def separation(dx, dy): return np.sqrt(dx * dx + dy * dy) -def update_accelerations(particles, f, m, dx, dy, dr, i, j): +def update_accelerations(particles, f, m, dx, dy, dr): """Update the acceleration arrays of particles. Parameters @@ -109,20 +103,20 @@ def update_accelerations(particles, f, m, dx, dy, dr, i, j): Distance between the particles in the y dimension. dr: float Distance between the particles. - i: int - Particle index 1. - j: int - Particle index 2. Returns ------- util.particle_dt, array_like Information about the particles with updated accelerations. """ - particles['xacceleration'][i] += second_law(f, m, dx, dr) - particles['yacceleration'][i] += second_law(f, m, dy, dr) - particles['xacceleration'][j] -= second_law(f, m, dx, dr) - particles['yacceleration'][j] -= second_law(f, m, dy, dr) + k = 0 + for i in range(0, particles.size-1): + for j in range(i + 1, particles.size): + particles['xacceleration'][i] += second_law(f[k], m, dx[k], dr[k]) + particles['yacceleration'][i] += second_law(f[k], m, dy[k], dr[k]) + particles['xacceleration'][j] -= second_law(f[k], m, dx[k], dr[k]) + particles['yacceleration'][j] -= second_law(f[k], m, dy[k], dr[k]) + k += 1 return particles @@ -150,7 +144,10 @@ def second_law(f, m, d1, d2): def lennard_jones_energy(A, B, dr): - """Calculate the energy of a pair of particles at a given distance. + """pairwise.lennard_jones_energy has been deprecated, please use + forcefields.lennard_jones instead + + Calculate the energy of a pair of particles at a given distance. Parameters ---------- @@ -166,11 +163,16 @@ def lennard_jones_energy(A, B, dr): float: The potential energy between the two particles. """ + print("pairwise.lennard_jones_energy has been deprecated, please use " + "forcefields.lennard_jones instead") return A * np.power(dr, -12) - B * np.power(dr, -6) def lennard_jones_force(A, B, dr): - """Calculate the force between a pair of particles at a given distance. + """pairwise.lennard_jones_energy has been deprecated, please use + forcefields.lennard_jones with force=True instead + + Calculate the force between a pair of particles at a given distance. Parameters ---------- @@ -186,10 +188,13 @@ def lennard_jones_force(A, B, dr): float: The force between the two particles. """ + print("pairwise.lennard_jones_energy has been deprecated, please use " + "forcefields.lennard_jones with force=True instead") return 12 * A * np.power(dr, -13) - 6 * B * np.power(dr, -7) -def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): +def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, + forcefield=ff.lennard_jones): r"""Calculates the total energy of the simulation. This uses a 12-6 Lennard-Jones potential model for Argon with values: @@ -224,28 +229,17 @@ def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): particles['xacceleration'].size / 2) distances = np.zeros(pairs) energies = np.zeros(pairs) - k = 0 A = a # joules / metre ^ {12} B = b # joules / meter ^ {6} - for i in range(0, particles['xposition'].size-1): - for j in range(i+1, particles['xposition'].size): - dx = particles['xposition'][i] - particles['xposition'][j] - dy = particles['yposition'][i] - particles['yposition'][j] - dx = util.pbc_correction(dx, box_length) - dy = util.pbc_correction(dy, box_length) - dr = separation(dx, dy) - distances[k] = dr - if dr <= cut_off: - e = lennard_jones_energy(A, B, dr) - energies[k] = e - else: - energies[k] = 0. - k += 1 + distances, dx, dy = heavy.dist(particles['xposition'], + particles['yposition'], box_length) + energies = forcefield(distances, A, B) + energies[np.where(distances > cut_off)] = 0. return distances, energies def calculate_pressure(particles, box_length, temperature, cut_off, - a=1.363e-134, b=9.273e-78): + a=1.363e-134, b=9.273e-78, forcefield=ff.lennard_jones): r"""Calculates the instantaneous pressure of the simulation cell, found with the following relationship: @@ -275,19 +269,13 @@ def calculate_pressure(particles, box_length, temperature, cut_off, float: Instantaneous pressure of the simulation. """ - pres = 0. A = 1.363e-134 # joules / metre ^ {12} B = 9.273e-78 # joules / meter ^ {6} - for i in range(0, particles['xposition'].size - 1): - for j in range(i+1, particles['xposition'].size): - dx = particles['xposition'][i] - particles['xposition'][j] - dy = particles['yposition'][i] - particles['yposition'][j] - dx = util.pbc_correction(dx, box_length) - dy = util.pbc_correction(dy, box_length) - dr = separation(dx, dy) - if dr <= cut_off: - f = lennard_jones_force(A, B, dr) - pres += f * dr + distances, dx, dy = heavy.dist(particles['xposition'], + particles['yposition'], box_length) + forces = forcefield(distances, A, B, force=True) + forces[np.where(distances > cut_off)] = 0. + pres = np.sum(forces * distances) boltzmann_constant = 1.3806e-23 # joules / kelvin pres = 1. / (2 * box_length * box_length) * pres + ( particles['xposition'].size / (box_length * box_length) * @@ -324,3 +312,44 @@ def heat_bath(particles, temperature_sample, bath_temp): particles['yvelocity'] = particles['yvelocity'] * np.sqrt(bath_temp / average_temp) return particles + + +def dist(xposition, yposition, box_length): + """Returns the distance array for the set of particles. + + Parameters + ---------- + xpos: float, array_like (N) + Array of length N, where N is the number of particles, providing the + x-dimension positions of the particles. + ypos: float, array_like (N) + Array of length N, where N is the number of particles, providing the + y-dimension positions of the particles. + box_length: float + The box length of the simulation cell. + + Returns + ------- + drr float, array_like ((N - 1) * N / 2)) + The pairs of distances between the particles. + dxr float, array_like ((N - 1) * N / 2)) + The pairs of distances between the particles, in only the x-dimension. + dyr float, array_like ((N - 1) * N / 2)) + The pairs of distances between the particles, in only the y-dimension. + """ + drr = np.zeros(int((xposition.size - 1) * xposition.size / 2)) + dxr = np.zeros(int((xposition.size - 1) * xposition.size / 2)) + dyr = np.zeros(int((xposition.size - 1) * xposition.size / 2)) + k = 0 + for i in range(0, xposition.size - 1): + for j in range(i+1, xposition.size): + dx = xposition[i] - xposition[j] + dy = yposition[i] - yposition[j] + dx = util.pbc_correction(dx, box_length) + dy = util.pbc_correction(dy, box_length) + dr = separation(dx, dy) + drr[k] = dr + dxr[k] = dx + dyr[k] = dy + k += 1 + return drr, dxr, dyr diff --git a/pylj/tests/test_comp.py b/pylj/tests/test_comp.py index a9513bd..99460dc 100644 --- a/pylj/tests/test_comp.py +++ b/pylj/tests/test_comp.py @@ -1,42 +1,15 @@ from numpy.testing import assert_almost_equal -from pylj import util -try: - from pylj import comp as heavy -except ImportError: - print("WARNING, using slow force and energy calculations") - from pylj import pairwise as heavy +from pylj import comp import unittest import numpy as np class TestPairwise(unittest.TestCase): - def test_compute_forces(self): - part_dt = util.particle_dt() - particles = np.zeros(2, dtype=part_dt) - particles['xposition'][0] = 1e-10 - particles['xposition'][1] = 5e-10 - particles, distances, forces, energies = heavy.compute_forces( - particles, 30, 15) - assert_almost_equal(distances, [4e-10]) - assert_almost_equal(energies, [-1.4515047e-21]) - assert_almost_equal(forces, [-9.5864009e-12]) - assert_almost_equal(particles['yacceleration'], [0, 0]) - assert_almost_equal(particles['xacceleration'][0]/1e14, 1.4451452) - assert_almost_equal(particles['xacceleration'][1]/1e14, -1.4451452) - - def test_compute_energy(self): - part_dt = util.particle_dt() - particles = np.zeros(2, dtype=part_dt) - particles['xposition'][0] = 1e-10 - particles['xposition'][1] = 5e-10 - distances, energies = heavy.compute_energy(particles, 30, 15) - assert_almost_equal(distances, [4e-10]) - assert_almost_equal(energies, [-1.4515047e-21]) - - def test_calculate_pressure(self): - part_dt = util.particle_dt() - particles = np.zeros(2, dtype=part_dt) - particles['xposition'][0] = 1e-10 - particles['xposition'][1] = 5e-10 - pressure = heavy.calculate_pressure(particles, 30, 300, 15) - assert_almost_equal(pressure*1e24, 7.07368869) + def test_dist(self): + xpos = np.array([0, 1]) + ypos = np.array([0, 1]) + box_length = 5. + dr, dx, dy = comp.dist(xpos, ypos, box_length) + assert_almost_equal(dr, [np.sqrt(2)]) + assert_almost_equal(dx, [-1]) + assert_almost_equal(dy, [-1]) diff --git a/pylj/tests/test_forcefields.py b/pylj/tests/test_forcefields.py new file mode 100644 index 0000000..5894e26 --- /dev/null +++ b/pylj/tests/test_forcefields.py @@ -0,0 +1,13 @@ +from numpy.testing import assert_almost_equal +from pylj import forcefields +import unittest + + +class TestForcefields(unittest.TestCase): + def test_lennard_jones_energy(self): + a = forcefields.lennard_jones(2., 1, 1.) + assert_almost_equal(a, -0.015380859) + + def test_lennard_jones_force(self): + a = forcefields.lennard_jones(2., 1, 1, force=True) + assert_almost_equal(a, -0.045410156) diff --git a/pylj/tests/test_pairwise.py b/pylj/tests/test_pairwise.py index a37298b..c893996 100644 --- a/pylj/tests/test_pairwise.py +++ b/pylj/tests/test_pairwise.py @@ -8,8 +8,10 @@ class TestPairwise(unittest.TestCase): def test_update_accelerations(self): part_dt = util.particle_dt() particles = np.zeros(2, dtype=part_dt) - particles = pairwise.update_accelerations(particles, 1, 1, 1, 1, - np.sqrt(2), 0, 1) + ones = np.array([1]) + dist = np.array([np.sqrt(2)]) + particles = pairwise.update_accelerations(particles, ones, 1, ones, + ones, dist) assert_almost_equal(particles['xacceleration'][0], 0.707106781) assert_almost_equal(particles['yacceleration'][0], 0.707106781) assert_almost_equal(particles['xacceleration'][1], -0.707106781) @@ -19,14 +21,6 @@ def test_second_law(self): a = pairwise.second_law(1, 1, 1, np.sqrt(2)) assert_almost_equal(a, 0.707106781) - def test_lennard_jones_energy(self): - a = pairwise.lennard_jones_energy(1, 1, 2.) - assert_almost_equal(a, -0.015380859) - - def test_lennard_jones_force(self): - a = pairwise.lennard_jones_force(1, 1, 2.) - assert_almost_equal(a, -0.045410156) - def test_separation(self): a = pairwise.separation(1, 1) assert_almost_equal(a, np.sqrt(2)) @@ -36,7 +30,7 @@ def test_compute_forces(self): particles = np.zeros(2, dtype=part_dt) particles['xposition'][0] = 1e-10 particles['xposition'][1] = 5e-10 - particles, distances, forces, energies = pairwise.compute_forces( + particles, distances, forces, energies = pairwise.compute_force( particles, 30, 15) assert_almost_equal(distances, [4e-10]) assert_almost_equal(energies, [-1.4515047e-21]) diff --git a/pylj/util.py b/pylj/util.py index 007b4e7..792e6f8 100644 --- a/pylj/util.py +++ b/pylj/util.py @@ -2,11 +2,7 @@ import numpy as np import webbrowser from pylj import md, mc -try: - from pylj import comp as heavy -except ImportError: - print("WARNING, using slow force and energy calculations") - from pylj import pairwise as heavy +from pylj import pairwise as heavy class System: @@ -127,10 +123,10 @@ def compute_force(self): a = self.a b = self.b mass = self.mass - part, dist, forces, energies = heavy.compute_forces(self.particles, - self.box_length, - self.cut_off, a=a, - b=b, mass=mass) + part, dist, forces, energies = heavy.compute_force(self.particles, + self.box_length, + self.cut_off, a=a, + b=b, mass=mass) self.particles = part self.distances = dist self.forces = forces @@ -243,8 +239,8 @@ def __cite__(): # pragma: no cover def __version__(): # pragma: no cover """This will print the number of the pylj version currently in use.""" major = 1 - minor = 0 - micro = 2 + minor = 1 + micro = 0 print('pylj-{:d}.{:d}.{:d}'.format(major, minor, micro)) diff --git a/setup.py b/setup.py index 99f453d..628397e 100644 --- a/setup.py +++ b/setup.py @@ -1,8 +1,8 @@ #! /usr/bin/env python # System imports from setuptools import setup, Extension, find_packages -import os -import subprocess +from os import path +import io try: @@ -16,13 +16,12 @@ # versioning MAJOR = 1 -MINOR = 0 -MICRO = 2 +MINOR = 1 +MICRO = 0 ISRELEASED = True VERSION = '%d.%d.%d' % (MAJOR, MINOR, MICRO) -from os import path -import io + this_directory = path.abspath(path.dirname(__file__)) with io.open(path.join(this_directory, 'README.md')) as f: long_description = f.read() @@ -40,12 +39,19 @@ 'license': 'MIT', 'long_description': long_description, 'long_description_content_type': 'text/markdown', - 'classifiers': ['Development Status :: 3 - Alpha', 'Intended Audience :: Science/Research', 'Topic :: Scientific/Engineering', 'Topic :: Scientific/Engineering :: Chemistry', 'Topic :: Scientific/Engineering :: Physics', 'Programming Language :: Python :: 3'] + 'classifiers': ['Development Status :: 3 - Alpha', + 'Intended Audience :: Science/Research', + 'Topic :: Scientific/Engineering', + 'Topic :: Scientific/Engineering :: Chemistry', + 'Topic :: Scientific/Engineering :: Physics', + 'Programming Language :: Python :: 3'] } #################################################################### # this is where setup starts #################################################################### + + def setup_package(): if USE_CYTHON: @@ -72,7 +78,7 @@ def setup_package(): sources=['src/_ccomp.pyx', 'src/comp.cpp'], include_dirs=[numpy_include], - language='c++', + language='c++', extra_compile_args=[], extra_link_args=['-lpthread'] # libraries= @@ -80,8 +86,6 @@ def setup_package(): ) ext_modules.append(_cslowstuff) - - info['cmdclass'] = {'build_ext': build_ext} info['ext_modules'] = ext_modules info['zip_safe'] = False @@ -93,9 +97,9 @@ def setup_package(): # compilation print("") print("*****WARNING*****") - print("Please install a C++ compiler. If installing in windows you" - " should then install from Visual Studio command prompt (this makes" - " C compiler available") + print("Please install a C++ compiler. If installing in windows you " + "should then install from Visual Studio command prompt (this " + "makes C compiler available") print("*****************") print("") info.pop('cmdclass') diff --git a/src/_ccomp.cpp b/src/_ccomp.cpp index 1931257..e707015 100644 --- a/src/_ccomp.cpp +++ b/src/_ccomp.cpp @@ -1036,12 +1036,12 @@ typedef npy_double __pyx_t_5numpy_double_t; */ typedef npy_longdouble __pyx_t_5numpy_longdouble_t; -/* "src/_ccomp.pyx":25 +/* "src/_ccomp.pyx":29 * * DTYPE = np.float64 * ctypedef np.float64_t DTYPE_t # <<<<<<<<<<<<<< * - * def compute_forces(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, + * def compute_force(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, */ typedef __pyx_t_5numpy_float64_t __pyx_t_4pylj_4comp_DTYPE_t; /* Declarations.proto */ @@ -1629,6 +1629,7 @@ static const char __pyx_k_ac[] = "ac"; static const char __pyx_k_bc[] = "bc"; static const char __pyx_k_np[] = "np"; static const char __pyx_k_cut[] = "cut"; +static const char __pyx_k_dist[] = "dist"; static const char __pyx_k_main[] = "__main__"; static const char __pyx_k_mass[] = "mass"; static const char __pyx_k_size[] = "size"; @@ -1653,6 +1654,7 @@ static const char __pyx_k_cut_off[] = "cut_off"; static const char __pyx_k_float64[] = "float64"; static const char __pyx_k_pressure[] = "pressure"; static const char __pyx_k_bath_temp[] = "bath_temp"; +static const char __pyx_k_distances[] = "distances"; static const char __pyx_k_force_arr[] = "force_arr"; static const char __pyx_k_heat_bath[] = "heat_bath"; static const char __pyx_k_particles[] = "particles"; @@ -1664,16 +1666,20 @@ static const char __pyx_k_yvelocity[] = "yvelocity"; static const char __pyx_k_ValueError[] = "ValueError"; static const char __pyx_k_box_length[] = "box_length"; static const char __pyx_k_energy_arr[] = "energy_arr"; +static const char __pyx_k_xdistances[] = "xdistances"; +static const char __pyx_k_xpositions[] = "xpositions"; +static const char __pyx_k_ydistances[] = "ydistances"; +static const char __pyx_k_ypositions[] = "ypositions"; static const char __pyx_k_ImportError[] = "ImportError"; static const char __pyx_k_temperature[] = "temperature"; static const char __pyx_k_RuntimeError[] = "RuntimeError"; static const char __pyx_k_average_temp[] = "average_temp"; +static const char __pyx_k_compute_force[] = "compute_force"; static const char __pyx_k_distances_arr[] = "distances_arr"; static const char __pyx_k_len_particles[] = "len_particles"; static const char __pyx_k_xacceleration[] = "xacceleration"; static const char __pyx_k_yacceleration[] = "yacceleration"; static const char __pyx_k_compute_energy[] = "compute_energy"; -static const char __pyx_k_compute_forces[] = "compute_forces"; static const char __pyx_k_src__ccomp_pyx[] = "src/_ccomp.pyx"; static const char __pyx_k_calculate_pressure[] = "calculate_pressure"; static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; @@ -1706,9 +1712,11 @@ static PyObject *__pyx_n_s_box_length; static PyObject *__pyx_n_s_calculate_pressure; static PyObject *__pyx_n_s_cline_in_traceback; static PyObject *__pyx_n_s_compute_energy; -static PyObject *__pyx_n_s_compute_forces; +static PyObject *__pyx_n_s_compute_force; static PyObject *__pyx_n_s_cut; static PyObject *__pyx_n_s_cut_off; +static PyObject *__pyx_n_s_dist; +static PyObject *__pyx_n_s_distances; static PyObject *__pyx_n_s_distances_arr; static PyObject *__pyx_n_s_energy_arr; static PyObject *__pyx_n_s_float64; @@ -1741,21 +1749,26 @@ static PyObject *__pyx_n_s_test; static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; static PyObject *__pyx_n_s_xacc; static PyObject *__pyx_n_s_xacceleration; +static PyObject *__pyx_n_s_xdistances; static PyObject *__pyx_n_s_xpos; static PyObject *__pyx_n_s_xposition; +static PyObject *__pyx_n_s_xpositions; static PyObject *__pyx_n_s_xvel; static PyObject *__pyx_n_s_xvelocity; static PyObject *__pyx_n_s_yacc; static PyObject *__pyx_n_s_yacceleration; +static PyObject *__pyx_n_s_ydistances; static PyObject *__pyx_n_s_ypos; static PyObject *__pyx_n_s_yposition; +static PyObject *__pyx_n_s_ypositions; static PyObject *__pyx_n_s_yvel; static PyObject *__pyx_n_s_yvelocity; static PyObject *__pyx_n_s_zeros; -static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_mass); /* proto */ +static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_mass); /* proto */ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_a, PyObject *__pyx_v_b); /* proto */ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_temperature, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_a, PyObject *__pyx_v_b); /* proto */ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_temperature_sample, PyObject *__pyx_v_bath_temp); /* proto */ +static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_xpos, PyObject *__pyx_v_ypos, PyObject *__pyx_v_box_length); /* proto */ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info); /* proto */ static PyObject *__pyx_float_39_948; @@ -1774,25 +1787,27 @@ static PyObject *__pyx_tuple__10; static PyObject *__pyx_tuple__12; static PyObject *__pyx_tuple__14; static PyObject *__pyx_tuple__16; +static PyObject *__pyx_tuple__18; static PyObject *__pyx_codeobj__11; static PyObject *__pyx_codeobj__13; static PyObject *__pyx_codeobj__15; static PyObject *__pyx_codeobj__17; +static PyObject *__pyx_codeobj__19; /* Late includes */ -/* "src/_ccomp.pyx":27 +/* "src/_ccomp.pyx":31 * ctypedef np.float64_t DTYPE_t * - * def compute_forces(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, # <<<<<<<<<<<<<< + * def compute_force(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, # <<<<<<<<<<<<<< * mass=39.948): * """Calculates the forces and therefore the accelerations on each of the */ /* Python wrapper */ -static PyObject *__pyx_pw_4pylj_4comp_1compute_forces(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_4pylj_4comp_compute_forces[] = "Calculates the forces and therefore the accelerations on each of the\n particles in the simulation. This uses a 12-6 Lennard-Jones potential\n model for Argon with values:\n\n - A = 1.363e-134 J m :math:`^{12}`\n - B = 9.273e-78 J m :math:`^6`\n\n Parameters\n ----------\n particles: util.particle_dt, array_like\n Information about the particles.\n box_length: float\n Length of a single dimension of the simulation square, in Angstrom.\n cut_off: float\n The distance greater than which the forces between particles is taken\n as zero.\n a: float (optional)\n The A component of the 12-6 potential model (units of\n Jm:math:`^{-12}`).\n b: float (optional)\n The B component of the 12-6 potential model (units of Jm:math:`^{-6}`).\n mass: float (optional)\n The mass of the particle being simulated (units of atomic mass units).\n\n Returns\n -------\n util.particle_dt, array_like\n Information about particles, with updated accelerations and forces.\n float, array_like\n Current distances between pairs of particles in the simulation.\n float, array_like\n Current forces between pairs of particles in the simulation.\n float, array_like\n Current energies between pairs of particles in the simulation.\n "; -static PyMethodDef __pyx_mdef_4pylj_4comp_1compute_forces = {"compute_forces", (PyCFunction)__pyx_pw_4pylj_4comp_1compute_forces, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4pylj_4comp_compute_forces}; -static PyObject *__pyx_pw_4pylj_4comp_1compute_forces(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_4pylj_4comp_1compute_force(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_4pylj_4comp_compute_force[] = "Calculates the forces and therefore the accelerations on each of the\n particles in the simulation. This uses a 12-6 Lennard-Jones potential\n model for Argon with values:\n\n - A = 1.363e-134 J m :math:`^{12}`\n - B = 9.273e-78 J m :math:`^6`\n\n Parameters\n ----------\n particles: util.particle_dt, array_like\n Information about the particles.\n box_length: float\n Length of a single dimension of the simulation square, in Angstrom.\n cut_off: float\n The distance greater than which the forces between particles is taken\n as zero.\n a: float (optional)\n The A component of the 12-6 potential model (units of\n Jm:math:`^{-12}`).\n b: float (optional)\n The B component of the 12-6 potential model (units of Jm:math:`^{-6}`).\n mass: float (optional)\n The mass of the particle being simulated (units of atomic mass units).\n\n Returns\n -------\n util.particle_dt, array_like\n Information about particles, with updated accelerations and forces.\n float, array_like\n Current distances between pairs of particles in the simulation.\n float, array_like\n Current forces between pairs of particles in the simulation.\n float, array_like\n Current energies between pairs of particles in the simulation.\n "; +static PyMethodDef __pyx_mdef_4pylj_4comp_1compute_force = {"compute_force", (PyCFunction)__pyx_pw_4pylj_4comp_1compute_force, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4pylj_4comp_compute_force}; +static PyObject *__pyx_pw_4pylj_4comp_1compute_force(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_particles = 0; PyObject *__pyx_v_box_length = 0; PyObject *__pyx_v_cut_off = 0; @@ -1801,7 +1816,7 @@ static PyObject *__pyx_pw_4pylj_4comp_1compute_forces(PyObject *__pyx_self, PyOb PyObject *__pyx_v_mass = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("compute_forces (wrapper)", 0); + __Pyx_RefNannySetupContext("compute_force (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_particles,&__pyx_n_s_box_length,&__pyx_n_s_cut_off,&__pyx_n_s_a,&__pyx_n_s_b,&__pyx_n_s_mass,0}; PyObject* values[6] = {0,0,0,0,0,0}; @@ -1836,13 +1851,13 @@ static PyObject *__pyx_pw_4pylj_4comp_1compute_forces(PyObject *__pyx_self, PyOb case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_box_length)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("compute_forces", 0, 3, 6, 1); __PYX_ERR(0, 27, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("compute_force", 0, 3, 6, 1); __PYX_ERR(0, 31, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cut_off)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("compute_forces", 0, 3, 6, 2); __PYX_ERR(0, 27, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("compute_force", 0, 3, 6, 2); __PYX_ERR(0, 31, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: @@ -1864,7 +1879,7 @@ static PyObject *__pyx_pw_4pylj_4comp_1compute_forces(PyObject *__pyx_self, PyOb } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "compute_forces") < 0)) __PYX_ERR(0, 27, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "compute_force") < 0)) __PYX_ERR(0, 31, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -1890,20 +1905,20 @@ static PyObject *__pyx_pw_4pylj_4comp_1compute_forces(PyObject *__pyx_self, PyOb } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("compute_forces", 0, 3, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 27, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("compute_force", 0, 3, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 31, __pyx_L3_error) __pyx_L3_error:; - __Pyx_AddTraceback("pylj.comp.compute_forces", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("pylj.comp.compute_force", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_4pylj_4comp_compute_forces(__pyx_self, __pyx_v_particles, __pyx_v_box_length, __pyx_v_cut_off, __pyx_v_a, __pyx_v_b, __pyx_v_mass); + __pyx_r = __pyx_pf_4pylj_4comp_compute_force(__pyx_self, __pyx_v_particles, __pyx_v_box_length, __pyx_v_cut_off, __pyx_v_a, __pyx_v_b, __pyx_v_mass); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_mass) { +static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_mass) { int __pyx_v_len_particles; PyObject *__pyx_v_pairs = NULL; double __pyx_v_box_l; @@ -1959,7 +1974,7 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p Py_ssize_t __pyx_t_22; Py_ssize_t __pyx_t_23; Py_ssize_t __pyx_t_24; - __Pyx_RefNannySetupContext("compute_forces", 0); + __Pyx_RefNannySetupContext("compute_force", 0); __pyx_pybuffer_xpos.pybuffer.buf = NULL; __pyx_pybuffer_xpos.refcount = 0; __pyx_pybuffernd_xpos.data = NULL; @@ -1989,57 +2004,57 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p __pyx_pybuffernd_energy_arr.data = NULL; __pyx_pybuffernd_energy_arr.rcbuffer = &__pyx_pybuffer_energy_arr; - /* "src/_ccomp.pyx":64 + /* "src/_ccomp.pyx":68 * Current energies between pairs of particles in the simulation. * """ * cdef int len_particles = particles['xposition'].size # <<<<<<<<<<<<<< * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length */ - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 64, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 64, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 64, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_len_particles = __pyx_t_3; - /* "src/_ccomp.pyx":65 + /* "src/_ccomp.pyx":69 * """ * cdef int len_particles = particles['xposition'].size * pairs = int((len_particles - 1) * len_particles / 2) # <<<<<<<<<<<<<< * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) */ - __pyx_t_2 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 65, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_pairs = __pyx_t_2; __pyx_t_2 = 0; - /* "src/_ccomp.pyx":66 + /* "src/_ccomp.pyx":70 * cdef int len_particles = particles['xposition'].size * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 66, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 70, __pyx_L1_error) __pyx_v_box_l = __pyx_t_4; - /* "src/_ccomp.pyx":67 + /* "src/_ccomp.pyx":71 * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] xacc = np.zeros(len_particles) */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 67, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 67, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 67, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { @@ -2052,14 +2067,14 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } } if (!__pyx_t_6) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 67, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 67, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -2068,32 +2083,32 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 67, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 67, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 67, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 67, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 71, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xpos.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_xpos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 67, __pyx_L1_error) + __PYX_ERR(0, 71, __pyx_L1_error) } else {__pyx_pybuffernd_xpos.diminfo[0].strides = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xpos.diminfo[0].shape = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.shape[0]; } } @@ -2101,19 +2116,19 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p __pyx_v_xpos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":68 + /* "src/_ccomp.pyx":72 * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] yacc = np.zeros(len_particles) */ - __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 68, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 68, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 68, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { @@ -2126,14 +2141,14 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } } if (!__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -2142,32 +2157,32 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 68, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 68, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 72, __pyx_L1_error) __pyx_t_9 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ypos.rcbuffer->pybuffer, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_ypos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 68, __pyx_L1_error) + __PYX_ERR(0, 72, __pyx_L1_error) } else {__pyx_pybuffernd_ypos.diminfo[0].strides = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ypos.diminfo[0].shape = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.shape[0]; } } @@ -2175,19 +2190,19 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p __pyx_v_ypos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":69 + /* "src/_ccomp.pyx":73 * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] xacc = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] yacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) */ - __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 69, __pyx_L1_error) + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 69, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 69, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { @@ -2200,14 +2215,14 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } } if (!__pyx_t_5) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; @@ -2216,32 +2231,32 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { - __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 69, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_t_7); __pyx_t_7 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 69, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 73, __pyx_L1_error) __pyx_t_10 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xacc.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_xacc = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xacc.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 69, __pyx_L1_error) + __PYX_ERR(0, 73, __pyx_L1_error) } else {__pyx_pybuffernd_xacc.diminfo[0].strides = __pyx_pybuffernd_xacc.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xacc.diminfo[0].shape = __pyx_pybuffernd_xacc.rcbuffer->pybuffer.shape[0]; } } @@ -2249,19 +2264,19 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p __pyx_v_xacc = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":70 + /* "src/_ccomp.pyx":74 * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] xacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] yacc = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] force_arr = np.zeros(pairs) */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 70, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 70, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 70, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { @@ -2274,14 +2289,14 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } } if (!__pyx_t_7) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 70, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 70, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; @@ -2290,32 +2305,32 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 70, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 70, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = NULL; __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_6); __pyx_t_6 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 70, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 70, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 74, __pyx_L1_error) __pyx_t_11 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_yacc.rcbuffer->pybuffer, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_yacc = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_yacc.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 70, __pyx_L1_error) + __PYX_ERR(0, 74, __pyx_L1_error) } else {__pyx_pybuffernd_yacc.diminfo[0].strides = __pyx_pybuffernd_yacc.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_yacc.diminfo[0].shape = __pyx_pybuffernd_yacc.rcbuffer->pybuffer.shape[0]; } } @@ -2323,16 +2338,16 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p __pyx_v_yacc = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":71 + /* "src/_ccomp.pyx":75 * cdef np.ndarray[DTYPE_t, ndim=1] xacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] yacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] force_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 71, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 71, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; @@ -2346,13 +2361,13 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } } if (!__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -2360,31 +2375,31 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 71, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_INCREF(__pyx_v_pairs); __Pyx_GIVEREF(__pyx_v_pairs); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_pairs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 71, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 75, __pyx_L1_error) __pyx_t_12 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_distances_arr.rcbuffer->pybuffer, (PyObject*)__pyx_t_12, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_distances_arr = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 71, __pyx_L1_error) + __PYX_ERR(0, 75, __pyx_L1_error) } else {__pyx_pybuffernd_distances_arr.diminfo[0].strides = __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_distances_arr.diminfo[0].shape = __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.shape[0]; } } @@ -2392,16 +2407,16 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p __pyx_v_distances_arr = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":72 + /* "src/_ccomp.pyx":76 * cdef np.ndarray[DTYPE_t, ndim=1] yacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] force_arr = np.zeros(pairs) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) * cdef double cut = cut_off */ - __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 72, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 72, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; @@ -2415,13 +2430,13 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } } if (!__pyx_t_5) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -2429,31 +2444,31 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 72, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_INCREF(__pyx_v_pairs); __Pyx_GIVEREF(__pyx_v_pairs); PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_pairs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 72, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 76, __pyx_L1_error) __pyx_t_13 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_force_arr.rcbuffer->pybuffer, (PyObject*)__pyx_t_13, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_force_arr = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_force_arr.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 72, __pyx_L1_error) + __PYX_ERR(0, 76, __pyx_L1_error) } else {__pyx_pybuffernd_force_arr.diminfo[0].strides = __pyx_pybuffernd_force_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_force_arr.diminfo[0].shape = __pyx_pybuffernd_force_arr.rcbuffer->pybuffer.shape[0]; } } @@ -2461,16 +2476,16 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p __pyx_v_force_arr = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":73 + /* "src/_ccomp.pyx":77 * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] force_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) # <<<<<<<<<<<<<< * cdef double cut = cut_off * cdef double ac = a */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -2484,13 +2499,13 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } } if (!__pyx_t_6) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -2498,31 +2513,31 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_INCREF(__pyx_v_pairs); __Pyx_GIVEREF(__pyx_v_pairs); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_pairs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 73, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 77, __pyx_L1_error) __pyx_t_14 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_energy_arr.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_energy_arr = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 73, __pyx_L1_error) + __PYX_ERR(0, 77, __pyx_L1_error) } else {__pyx_pybuffernd_energy_arr.diminfo[0].strides = __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_energy_arr.diminfo[0].shape = __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.shape[0]; } } @@ -2530,47 +2545,47 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p __pyx_v_energy_arr = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":74 + /* "src/_ccomp.pyx":78 * cdef np.ndarray[DTYPE_t, ndim=1] force_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) * cdef double cut = cut_off # <<<<<<<<<<<<<< * cdef double ac = a * cdef double bc = b */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 74, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 78, __pyx_L1_error) __pyx_v_cut = __pyx_t_4; - /* "src/_ccomp.pyx":75 + /* "src/_ccomp.pyx":79 * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) * cdef double cut = cut_off * cdef double ac = a # <<<<<<<<<<<<<< * cdef double bc = b * cdef double massc = mass */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 75, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 79, __pyx_L1_error) __pyx_v_ac = __pyx_t_4; - /* "src/_ccomp.pyx":76 + /* "src/_ccomp.pyx":80 * cdef double cut = cut_off * cdef double ac = a * cdef double bc = b # <<<<<<<<<<<<<< * cdef double massc = mass * */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_b); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 76, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_b); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 80, __pyx_L1_error) __pyx_v_bc = __pyx_t_4; - /* "src/_ccomp.pyx":77 + /* "src/_ccomp.pyx":81 * cdef double ac = a * cdef double bc = b * cdef double massc = mass # <<<<<<<<<<<<<< * * for i in range(0, len_particles): */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_mass); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 77, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_mass); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 81, __pyx_L1_error) __pyx_v_massc = __pyx_t_4; - /* "src/_ccomp.pyx":79 + /* "src/_ccomp.pyx":83 * cdef double massc = mass * * for i in range(0, len_particles): # <<<<<<<<<<<<<< @@ -2582,19 +2597,19 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) { __pyx_v_i = __pyx_t_16; - /* "src/_ccomp.pyx":80 + /* "src/_ccomp.pyx":84 * * for i in range(0, len_particles): * xpos[i] = particles['xposition'][i] # <<<<<<<<<<<<<< * ypos[i] = particles['yposition'][i] * xacc[i] = 0 */ - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 80, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 80, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_17 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 80, __pyx_L1_error) + __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_17 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_18 = __pyx_v_i; __pyx_t_19 = -1; @@ -2604,23 +2619,23 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_xpos.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 80, __pyx_L1_error) + __PYX_ERR(0, 84, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_xpos.diminfo[0].strides) = __pyx_t_17; - /* "src/_ccomp.pyx":81 + /* "src/_ccomp.pyx":85 * for i in range(0, len_particles): * xpos[i] = particles['xposition'][i] * ypos[i] = particles['yposition'][i] # <<<<<<<<<<<<<< * xacc[i] = 0 * yacc[i] = 0 */ - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 81, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 85, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 81, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 85, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_17 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 81, __pyx_L1_error) + __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_17 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 85, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_20 = __pyx_v_i; __pyx_t_19 = -1; @@ -2630,11 +2645,11 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } else if (unlikely(__pyx_t_20 >= __pyx_pybuffernd_ypos.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 81, __pyx_L1_error) + __PYX_ERR(0, 85, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_ypos.diminfo[0].strides) = __pyx_t_17; - /* "src/_ccomp.pyx":82 + /* "src/_ccomp.pyx":86 * xpos[i] = particles['xposition'][i] * ypos[i] = particles['yposition'][i] * xacc[i] = 0 # <<<<<<<<<<<<<< @@ -2649,11 +2664,11 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_xacc.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 82, __pyx_L1_error) + __PYX_ERR(0, 86, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xacc.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_xacc.diminfo[0].strides) = 0.0; - /* "src/_ccomp.pyx":83 + /* "src/_ccomp.pyx":87 * ypos[i] = particles['yposition'][i] * xacc[i] = 0 * yacc[i] = 0 # <<<<<<<<<<<<<< @@ -2668,12 +2683,12 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_yacc.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 83, __pyx_L1_error) + __PYX_ERR(0, 87, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yacc.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_yacc.diminfo[0].strides) = 0.0; } - /* "src/_ccomp.pyx":85 + /* "src/_ccomp.pyx":89 * yacc[i] = 0 * * compute_accelerations(len_particles, xpos.data, # <<<<<<<<<<<<<< @@ -2682,7 +2697,7 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p */ compute_accelerations(__pyx_v_len_particles, ((double const *)__pyx_v_xpos->data), ((double const *)__pyx_v_ypos->data), ((double *)__pyx_v_xacc->data), ((double *)__pyx_v_yacc->data), ((double *)__pyx_v_distances_arr->data), __pyx_v_box_l, ((double *)__pyx_v_force_arr->data), ((double *)__pyx_v_energy_arr->data), __pyx_v_cut, __pyx_v_ac, __pyx_v_bc, __pyx_v_massc); - /* "src/_ccomp.pyx":91 + /* "src/_ccomp.pyx":95 * energy_arr.data, cut, ac, bc, massc) * * for i in range(0, len_particles): # <<<<<<<<<<<<<< @@ -2694,7 +2709,7 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) { __pyx_v_i = __pyx_t_16; - /* "src/_ccomp.pyx":92 + /* "src/_ccomp.pyx":96 * * for i in range(0, len_particles): * particles['xacceleration'][i] = xacc[i] # <<<<<<<<<<<<<< @@ -2709,17 +2724,17 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_xacc.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 92, __pyx_L1_error) + __PYX_ERR(0, 96, __pyx_L1_error) } - __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xacc.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_xacc.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 92, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xacc.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_xacc.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xacceleration); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 92, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xacceleration); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 92, __pyx_L1_error) + if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":93 + /* "src/_ccomp.pyx":97 * for i in range(0, len_particles): * particles['xacceleration'][i] = xacc[i] * particles['yacceleration'][i] = yacc[i] # <<<<<<<<<<<<<< @@ -2734,18 +2749,18 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_yacc.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 93, __pyx_L1_error) + __PYX_ERR(0, 97, __pyx_L1_error) } - __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yacc.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_yacc.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 93, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yacc.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_yacc.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 97, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yacceleration); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 93, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yacceleration); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 97, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 93, __pyx_L1_error) + if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 97, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - /* "src/_ccomp.pyx":96 + /* "src/_ccomp.pyx":100 * * * return particles, distances_arr, force_arr, energy_arr # <<<<<<<<<<<<<< @@ -2753,7 +2768,7 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p * def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 96, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_particles); __Pyx_GIVEREF(__pyx_v_particles); @@ -2771,10 +2786,10 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p __pyx_t_2 = 0; goto __pyx_L0; - /* "src/_ccomp.pyx":27 + /* "src/_ccomp.pyx":31 * ctypedef np.float64_t DTYPE_t * - * def compute_forces(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, # <<<<<<<<<<<<<< + * def compute_force(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, # <<<<<<<<<<<<<< * mass=39.948): * """Calculates the forces and therefore the accelerations on each of the */ @@ -2798,7 +2813,7 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_yacc.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ypos.rcbuffer->pybuffer); __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("pylj.comp.compute_forces", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("pylj.comp.compute_force", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; goto __pyx_L2; __pyx_L0:; @@ -2823,7 +2838,7 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_forces(CYTHON_UNUSED PyObject *__p return __pyx_r; } -/* "src/_ccomp.pyx":98 +/* "src/_ccomp.pyx":102 * return particles, distances_arr, force_arr, energy_arr * * def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): # <<<<<<<<<<<<<< @@ -2875,13 +2890,13 @@ static PyObject *__pyx_pw_4pylj_4comp_3compute_energy(PyObject *__pyx_self, PyOb case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_box_length)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("compute_energy", 0, 3, 5, 1); __PYX_ERR(0, 98, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("compute_energy", 0, 3, 5, 1); __PYX_ERR(0, 102, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cut_off)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("compute_energy", 0, 3, 5, 2); __PYX_ERR(0, 98, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("compute_energy", 0, 3, 5, 2); __PYX_ERR(0, 102, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: @@ -2897,7 +2912,7 @@ static PyObject *__pyx_pw_4pylj_4comp_3compute_energy(PyObject *__pyx_self, PyOb } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "compute_energy") < 0)) __PYX_ERR(0, 98, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "compute_energy") < 0)) __PYX_ERR(0, 102, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -2920,7 +2935,7 @@ static PyObject *__pyx_pw_4pylj_4comp_3compute_energy(PyObject *__pyx_self, PyOb } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("compute_energy", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 98, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("compute_energy", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 102, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pylj.comp.compute_energy", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -2990,57 +3005,57 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_pybuffernd_energy_arr.data = NULL; __pyx_pybuffernd_energy_arr.rcbuffer = &__pyx_pybuffer_energy_arr; - /* "src/_ccomp.pyx":129 + /* "src/_ccomp.pyx":133 * Current energies between pairs of particles in the simulation. * """ * cdef int len_particles = particles['xposition'].size # <<<<<<<<<<<<<< * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length */ - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 129, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 129, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 129, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_len_particles = __pyx_t_3; - /* "src/_ccomp.pyx":130 + /* "src/_ccomp.pyx":134 * """ * cdef int len_particles = particles['xposition'].size * pairs = int((len_particles - 1) * len_particles / 2) # <<<<<<<<<<<<<< * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) */ - __pyx_t_2 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 130, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_pairs = __pyx_t_2; __pyx_t_2 = 0; - /* "src/_ccomp.pyx":131 + /* "src/_ccomp.pyx":135 * cdef int len_particles = particles['xposition'].size * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 131, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 135, __pyx_L1_error) __pyx_v_box_l = __pyx_t_4; - /* "src/_ccomp.pyx":132 + /* "src/_ccomp.pyx":136 * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { @@ -3053,14 +3068,14 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } } if (!__pyx_t_6) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 136, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 136, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -3069,32 +3084,32 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 136, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 132, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 136, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xpos.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_xpos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 132, __pyx_L1_error) + __PYX_ERR(0, 136, __pyx_L1_error) } else {__pyx_pybuffernd_xpos.diminfo[0].strides = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xpos.diminfo[0].shape = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.shape[0]; } } @@ -3102,19 +3117,19 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_v_xpos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":133 + /* "src/_ccomp.pyx":137 * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) */ - __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 133, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 133, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 133, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { @@ -3127,14 +3142,14 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } } if (!__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 133, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 133, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -3143,32 +3158,32 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 133, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 133, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 133, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 133, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 137, __pyx_L1_error) __pyx_t_9 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ypos.rcbuffer->pybuffer, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_ypos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 133, __pyx_L1_error) + __PYX_ERR(0, 137, __pyx_L1_error) } else {__pyx_pybuffernd_ypos.diminfo[0].strides = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ypos.diminfo[0].shape = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.shape[0]; } } @@ -3176,16 +3191,16 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_v_ypos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":134 + /* "src/_ccomp.pyx":138 * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) * cdef double cut = cut_off */ - __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 134, __pyx_L1_error) + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 134, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; @@ -3199,13 +3214,13 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } } if (!__pyx_t_7) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 134, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 134, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -3213,31 +3228,31 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 134, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 134, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = NULL; __Pyx_INCREF(__pyx_v_pairs); __Pyx_GIVEREF(__pyx_v_pairs); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_pairs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 134, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 134, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 138, __pyx_L1_error) __pyx_t_10 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_distances_arr.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_distances_arr = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 134, __pyx_L1_error) + __PYX_ERR(0, 138, __pyx_L1_error) } else {__pyx_pybuffernd_distances_arr.diminfo[0].strides = __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_distances_arr.diminfo[0].shape = __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.shape[0]; } } @@ -3245,16 +3260,16 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_v_distances_arr = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":135 + /* "src/_ccomp.pyx":139 * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) # <<<<<<<<<<<<<< * cdef double cut = cut_off * cdef double ac = a */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 135, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 135, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -3268,13 +3283,13 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } } if (!__pyx_t_6) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 135, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 135, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -3282,31 +3297,31 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 135, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 135, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_INCREF(__pyx_v_pairs); __Pyx_GIVEREF(__pyx_v_pairs); PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_pairs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 135, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 135, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 139, __pyx_L1_error) __pyx_t_11 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_energy_arr.rcbuffer->pybuffer, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_energy_arr = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 135, __pyx_L1_error) + __PYX_ERR(0, 139, __pyx_L1_error) } else {__pyx_pybuffernd_energy_arr.diminfo[0].strides = __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_energy_arr.diminfo[0].shape = __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.shape[0]; } } @@ -3314,37 +3329,37 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_v_energy_arr = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":136 + /* "src/_ccomp.pyx":140 * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) * cdef double cut = cut_off # <<<<<<<<<<<<<< * cdef double ac = a * cdef double bc = b */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 136, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 140, __pyx_L1_error) __pyx_v_cut = __pyx_t_4; - /* "src/_ccomp.pyx":137 + /* "src/_ccomp.pyx":141 * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) * cdef double cut = cut_off * cdef double ac = a # <<<<<<<<<<<<<< * cdef double bc = b * */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 137, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L1_error) __pyx_v_ac = __pyx_t_4; - /* "src/_ccomp.pyx":138 + /* "src/_ccomp.pyx":142 * cdef double cut = cut_off * cdef double ac = a * cdef double bc = b # <<<<<<<<<<<<<< * * */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_b); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 138, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_b); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 142, __pyx_L1_error) __pyx_v_bc = __pyx_t_4; - /* "src/_ccomp.pyx":141 + /* "src/_ccomp.pyx":145 * * * for i in range(0, len_particles): # <<<<<<<<<<<<<< @@ -3356,19 +3371,19 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) { __pyx_v_i = __pyx_t_13; - /* "src/_ccomp.pyx":142 + /* "src/_ccomp.pyx":146 * * for i in range(0, len_particles): * xpos[i] = particles['xposition'][i] # <<<<<<<<<<<<<< * ypos[i] = particles['yposition'][i] * */ - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 142, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 142, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_14 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 142, __pyx_L1_error) + __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_14 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 146, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_15 = __pyx_v_i; __pyx_t_16 = -1; @@ -3378,23 +3393,23 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_xpos.diminfo[0].shape)) __pyx_t_16 = 0; if (unlikely(__pyx_t_16 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_16); - __PYX_ERR(0, 142, __pyx_L1_error) + __PYX_ERR(0, 146, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_xpos.diminfo[0].strides) = __pyx_t_14; - /* "src/_ccomp.pyx":143 + /* "src/_ccomp.pyx":147 * for i in range(0, len_particles): * xpos[i] = particles['xposition'][i] * ypos[i] = particles['yposition'][i] # <<<<<<<<<<<<<< * * */ - __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 143, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_14 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 143, __pyx_L1_error) + __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_14 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_17 = __pyx_v_i; __pyx_t_16 = -1; @@ -3404,12 +3419,12 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_ypos.diminfo[0].shape)) __pyx_t_16 = 0; if (unlikely(__pyx_t_16 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_16); - __PYX_ERR(0, 143, __pyx_L1_error) + __PYX_ERR(0, 147, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_ypos.diminfo[0].strides) = __pyx_t_14; } - /* "src/_ccomp.pyx":146 + /* "src/_ccomp.pyx":150 * * * compute_energies(len_particles, xpos.data, # <<<<<<<<<<<<<< @@ -3418,7 +3433,7 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ */ compute_energies(__pyx_v_len_particles, ((double const *)__pyx_v_xpos->data), ((double const *)__pyx_v_ypos->data), ((double *)__pyx_v_distances_arr->data), __pyx_v_box_l, ((double *)__pyx_v_energy_arr->data), __pyx_v_cut, __pyx_v_ac, __pyx_v_bc); - /* "src/_ccomp.pyx":150 + /* "src/_ccomp.pyx":154 * box_l, energy_arr.data, cut, ac, bc) * * return distances_arr, energy_arr # <<<<<<<<<<<<<< @@ -3426,7 +3441,7 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ * def calculate_pressure(particles, box_length, temperature, cut_off, */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 150, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_distances_arr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_distances_arr)); @@ -3438,7 +3453,7 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_t_2 = 0; goto __pyx_L0; - /* "src/_ccomp.pyx":98 + /* "src/_ccomp.pyx":102 * return particles, distances_arr, force_arr, energy_arr * * def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): # <<<<<<<<<<<<<< @@ -3481,7 +3496,7 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ return __pyx_r; } -/* "src/_ccomp.pyx":152 +/* "src/_ccomp.pyx":156 * return distances_arr, energy_arr * * def calculate_pressure(particles, box_length, temperature, cut_off, # <<<<<<<<<<<<<< @@ -3536,19 +3551,19 @@ static PyObject *__pyx_pw_4pylj_4comp_5calculate_pressure(PyObject *__pyx_self, case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_box_length)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("calculate_pressure", 0, 4, 6, 1); __PYX_ERR(0, 152, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("calculate_pressure", 0, 4, 6, 1); __PYX_ERR(0, 156, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_temperature)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("calculate_pressure", 0, 4, 6, 2); __PYX_ERR(0, 152, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("calculate_pressure", 0, 4, 6, 2); __PYX_ERR(0, 156, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cut_off)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("calculate_pressure", 0, 4, 6, 3); __PYX_ERR(0, 152, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("calculate_pressure", 0, 4, 6, 3); __PYX_ERR(0, 156, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: @@ -3564,7 +3579,7 @@ static PyObject *__pyx_pw_4pylj_4comp_5calculate_pressure(PyObject *__pyx_self, } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculate_pressure") < 0)) __PYX_ERR(0, 152, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculate_pressure") < 0)) __PYX_ERR(0, 156, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -3589,7 +3604,7 @@ static PyObject *__pyx_pw_4pylj_4comp_5calculate_pressure(PyObject *__pyx_self, } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("calculate_pressure", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 152, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("calculate_pressure", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 156, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pylj.comp.calculate_pressure", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -3644,35 +3659,35 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject __pyx_pybuffernd_ypos.data = NULL; __pyx_pybuffernd_ypos.rcbuffer = &__pyx_pybuffer_ypos; - /* "src/_ccomp.pyx":185 + /* "src/_ccomp.pyx":189 * Instantaneous pressure of the simulation. * """ * cdef int number_of_particles = particles['xposition'].size # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(number_of_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(number_of_particles) */ - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 185, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 185, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 185, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 189, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_number_of_particles = __pyx_t_3; - /* "src/_ccomp.pyx":186 + /* "src/_ccomp.pyx":190 * """ * cdef int number_of_particles = particles['xposition'].size * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(number_of_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(number_of_particles) * cdef double box_l = box_length */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 186, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 186, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_number_of_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 186, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_number_of_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -3685,14 +3700,14 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject } } if (!__pyx_t_5) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 186, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 186, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -3701,32 +3716,32 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 186, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 186, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 186, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 186, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 190, __pyx_L1_error) __pyx_t_7 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xpos.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_xpos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 186, __pyx_L1_error) + __PYX_ERR(0, 190, __pyx_L1_error) } else {__pyx_pybuffernd_xpos.diminfo[0].strides = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xpos.diminfo[0].shape = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.shape[0]; } } @@ -3734,19 +3749,19 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject __pyx_v_xpos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":187 + /* "src/_ccomp.pyx":191 * cdef int number_of_particles = particles['xposition'].size * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(number_of_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(number_of_particles) # <<<<<<<<<<<<<< * cdef double box_l = box_length * cdef double pressure = 0. */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 187, __pyx_L1_error) + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 187, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_number_of_particles); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 187, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_number_of_particles); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { @@ -3759,14 +3774,14 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject } } if (!__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 187, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 187, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -3775,32 +3790,32 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 187, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 187, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 187, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 187, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 191, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ypos.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_ypos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 187, __pyx_L1_error) + __PYX_ERR(0, 191, __pyx_L1_error) } else {__pyx_pybuffernd_ypos.diminfo[0].strides = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ypos.diminfo[0].shape = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.shape[0]; } } @@ -3808,17 +3823,17 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject __pyx_v_ypos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":188 + /* "src/_ccomp.pyx":192 * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(number_of_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(number_of_particles) * cdef double box_l = box_length # <<<<<<<<<<<<<< * cdef double pressure = 0. * cdef double temp = temperature */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 188, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 192, __pyx_L1_error) __pyx_v_box_l = __pyx_t_9; - /* "src/_ccomp.pyx":189 + /* "src/_ccomp.pyx":193 * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(number_of_particles) * cdef double box_l = box_length * cdef double pressure = 0. # <<<<<<<<<<<<<< @@ -3827,47 +3842,47 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject */ __pyx_v_pressure = 0.; - /* "src/_ccomp.pyx":190 + /* "src/_ccomp.pyx":194 * cdef double box_l = box_length * cdef double pressure = 0. * cdef double temp = temperature # <<<<<<<<<<<<<< * cdef double cut = cut_off * cdef double ac = a */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_temperature); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 190, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_temperature); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 194, __pyx_L1_error) __pyx_v_temp = __pyx_t_9; - /* "src/_ccomp.pyx":191 + /* "src/_ccomp.pyx":195 * cdef double pressure = 0. * cdef double temp = temperature * cdef double cut = cut_off # <<<<<<<<<<<<<< * cdef double ac = a * cdef double bc = b */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 195, __pyx_L1_error) __pyx_v_cut = __pyx_t_9; - /* "src/_ccomp.pyx":192 + /* "src/_ccomp.pyx":196 * cdef double temp = temperature * cdef double cut = cut_off * cdef double ac = a # <<<<<<<<<<<<<< * cdef double bc = b * */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 192, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 196, __pyx_L1_error) __pyx_v_ac = __pyx_t_9; - /* "src/_ccomp.pyx":193 + /* "src/_ccomp.pyx":197 * cdef double cut = cut_off * cdef double ac = a * cdef double bc = b # <<<<<<<<<<<<<< * * */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_b); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 193, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_b); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 197, __pyx_L1_error) __pyx_v_bc = __pyx_t_9; - /* "src/_ccomp.pyx":196 + /* "src/_ccomp.pyx":200 * * * for i in range(0, number_of_particles): # <<<<<<<<<<<<<< @@ -3879,19 +3894,19 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) { __pyx_v_i = __pyx_t_11; - /* "src/_ccomp.pyx":197 + /* "src/_ccomp.pyx":201 * * for i in range(0, number_of_particles): * xpos[i] = particles['xposition'][i] # <<<<<<<<<<<<<< * ypos[i] = particles['yposition'][i] * */ - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 201, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_13 = __pyx_v_i; __pyx_t_14 = -1; @@ -3901,23 +3916,23 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject } else if (unlikely(__pyx_t_13 >= __pyx_pybuffernd_xpos.diminfo[0].shape)) __pyx_t_14 = 0; if (unlikely(__pyx_t_14 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 197, __pyx_L1_error) + __PYX_ERR(0, 201, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_xpos.diminfo[0].strides) = __pyx_t_12; - /* "src/_ccomp.pyx":198 + /* "src/_ccomp.pyx":202 * for i in range(0, number_of_particles): * xpos[i] = particles['xposition'][i] * ypos[i] = particles['yposition'][i] # <<<<<<<<<<<<<< * * pressure = compute_pressure(number_of_particles, xpos.data, */ - __pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 198, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 198, __pyx_L1_error) + __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_15 = __pyx_v_i; __pyx_t_14 = -1; @@ -3927,21 +3942,21 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_ypos.diminfo[0].shape)) __pyx_t_14 = 0; if (unlikely(__pyx_t_14 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 198, __pyx_L1_error) + __PYX_ERR(0, 202, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_ypos.diminfo[0].strides) = __pyx_t_12; } - /* "src/_ccomp.pyx":201 + /* "src/_ccomp.pyx":205 * * pressure = compute_pressure(number_of_particles, xpos.data, * ypos.data, box_l, temperature, # <<<<<<<<<<<<<< * cut, ac, bc) * */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_temperature); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 201, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_temperature); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 205, __pyx_L1_error) - /* "src/_ccomp.pyx":200 + /* "src/_ccomp.pyx":204 * ypos[i] = particles['yposition'][i] * * pressure = compute_pressure(number_of_particles, xpos.data, # <<<<<<<<<<<<<< @@ -3950,7 +3965,7 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject */ __pyx_v_pressure = compute_pressure(__pyx_v_number_of_particles, ((double const *)__pyx_v_xpos->data), ((double const *)__pyx_v_ypos->data), __pyx_v_box_l, __pyx_t_9, __pyx_v_cut, __pyx_v_ac, __pyx_v_bc); - /* "src/_ccomp.pyx":204 + /* "src/_ccomp.pyx":208 * cut, ac, bc) * * return pressure # <<<<<<<<<<<<<< @@ -3958,13 +3973,13 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject * def heat_bath(particles, temperature_sample, bath_temp): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_pressure); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 204, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_pressure); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "src/_ccomp.pyx":152 + /* "src/_ccomp.pyx":156 * return distances_arr, energy_arr * * def calculate_pressure(particles, box_length, temperature, cut_off, # <<<<<<<<<<<<<< @@ -4000,7 +4015,7 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject return __pyx_r; } -/* "src/_ccomp.pyx":206 +/* "src/_ccomp.pyx":210 * return pressure * * def heat_bath(particles, temperature_sample, bath_temp): # <<<<<<<<<<<<<< @@ -4044,17 +4059,17 @@ static PyObject *__pyx_pw_4pylj_4comp_7heat_bath(PyObject *__pyx_self, PyObject case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_temperature_sample)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, 1); __PYX_ERR(0, 206, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, 1); __PYX_ERR(0, 210, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bath_temp)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, 2); __PYX_ERR(0, 206, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, 2); __PYX_ERR(0, 210, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "heat_bath") < 0)) __PYX_ERR(0, 206, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "heat_bath") < 0)) __PYX_ERR(0, 210, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; @@ -4069,7 +4084,7 @@ static PyObject *__pyx_pw_4pylj_4comp_7heat_bath(PyObject *__pyx_self, PyObject } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 206, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 210, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pylj.comp.heat_bath", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -4122,35 +4137,35 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s __pyx_pybuffernd_yvel.data = NULL; __pyx_pybuffernd_yvel.rcbuffer = &__pyx_pybuffer_yvel; - /* "src/_ccomp.pyx":229 + /* "src/_ccomp.pyx":233 * Information about the particles with new, rescaled velocities. * """ * cdef int len_particles = particles['xposition'].size # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xvel = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] yvel = np.zeros(len_particles) */ - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 229, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 229, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 233, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_len_particles = __pyx_t_3; - /* "src/_ccomp.pyx":230 + /* "src/_ccomp.pyx":234 * """ * cdef int len_particles = particles['xposition'].size * cdef np.ndarray[DTYPE_t, ndim=1] xvel = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] yvel = np.zeros(len_particles) * cdef double average_temp = np.average(temperature_sample) */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 230, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 230, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 230, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -4163,14 +4178,14 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s } } if (!__pyx_t_5) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 230, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 230, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -4179,32 +4194,32 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 230, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 230, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 230, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 230, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 234, __pyx_L1_error) __pyx_t_7 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xvel.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_xvel = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xvel.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 230, __pyx_L1_error) + __PYX_ERR(0, 234, __pyx_L1_error) } else {__pyx_pybuffernd_xvel.diminfo[0].strides = __pyx_pybuffernd_xvel.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xvel.diminfo[0].shape = __pyx_pybuffernd_xvel.rcbuffer->pybuffer.shape[0]; } } @@ -4212,19 +4227,19 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_xvel = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":231 + /* "src/_ccomp.pyx":235 * cdef int len_particles = particles['xposition'].size * cdef np.ndarray[DTYPE_t, ndim=1] xvel = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] yvel = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef double average_temp = np.average(temperature_sample) * cdef double temperature = bath_temp */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 231, __pyx_L1_error) + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 231, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 231, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { @@ -4237,277 +4252,943 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s } } if (!__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 231, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 231, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else + #endif + { + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_4); + __pyx_t_4 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 235, __pyx_L1_error) + __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_yvel.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { + __pyx_v_yvel = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_yvel.rcbuffer->pybuffer.buf = NULL; + __PYX_ERR(0, 235, __pyx_L1_error) + } else {__pyx_pybuffernd_yvel.diminfo[0].strides = __pyx_pybuffernd_yvel.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_yvel.diminfo[0].shape = __pyx_pybuffernd_yvel.rcbuffer->pybuffer.shape[0]; + } + } + __pyx_t_8 = 0; + __pyx_v_yvel = ((PyArrayObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "src/_ccomp.pyx":236 + * cdef np.ndarray[DTYPE_t, ndim=1] xvel = np.zeros(len_particles) + * cdef np.ndarray[DTYPE_t, ndim=1] yvel = np.zeros(len_particles) + * cdef double average_temp = np.average(temperature_sample) # <<<<<<<<<<<<<< + * cdef double temperature = bath_temp + * + */ + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_average); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + if (!__pyx_t_6) { + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_temperature_sample); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } else { + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_temperature_sample}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 236, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_temperature_sample}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 236, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + { + __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __pyx_t_6 = NULL; + __Pyx_INCREF(__pyx_v_temperature_sample); + __Pyx_GIVEREF(__pyx_v_temperature_sample); + PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_temperature_sample); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 236, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_average_temp = __pyx_t_9; + + /* "src/_ccomp.pyx":237 + * cdef np.ndarray[DTYPE_t, ndim=1] yvel = np.zeros(len_particles) + * cdef double average_temp = np.average(temperature_sample) + * cdef double temperature = bath_temp # <<<<<<<<<<<<<< + * + * for i in range(0, len_particles): + */ + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_bath_temp); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 237, __pyx_L1_error) + __pyx_v_temperature = __pyx_t_9; + + /* "src/_ccomp.pyx":239 + * cdef double temperature = bath_temp + * + * for i in range(0, len_particles): # <<<<<<<<<<<<<< + * xvel[i] = particles['xvelocity'][i] + * yvel[i] = particles['yvelocity'][i] + */ + __pyx_t_3 = __pyx_v_len_particles; + __pyx_t_10 = __pyx_t_3; + for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) { + __pyx_v_i = __pyx_t_11; + + /* "src/_ccomp.pyx":240 + * + * for i in range(0, len_particles): + * xvel[i] = particles['xvelocity'][i] # <<<<<<<<<<<<<< + * yvel[i] = particles['yvelocity'][i] + * + */ + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xvelocity); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 240, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_13 = __pyx_v_i; + __pyx_t_14 = -1; + if (__pyx_t_13 < 0) { + __pyx_t_13 += __pyx_pybuffernd_xvel.diminfo[0].shape; + if (unlikely(__pyx_t_13 < 0)) __pyx_t_14 = 0; + } else if (unlikely(__pyx_t_13 >= __pyx_pybuffernd_xvel.diminfo[0].shape)) __pyx_t_14 = 0; + if (unlikely(__pyx_t_14 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_14); + __PYX_ERR(0, 240, __pyx_L1_error) + } + *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xvel.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_xvel.diminfo[0].strides) = __pyx_t_12; + + /* "src/_ccomp.pyx":241 + * for i in range(0, len_particles): + * xvel[i] = particles['xvelocity'][i] + * yvel[i] = particles['yvelocity'][i] # <<<<<<<<<<<<<< + * + * scale_velocities(len_particles, xvel.data, yvel.data, + */ + __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 241, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_15 = __pyx_v_i; + __pyx_t_14 = -1; + if (__pyx_t_15 < 0) { + __pyx_t_15 += __pyx_pybuffernd_yvel.diminfo[0].shape; + if (unlikely(__pyx_t_15 < 0)) __pyx_t_14 = 0; + } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_yvel.diminfo[0].shape)) __pyx_t_14 = 0; + if (unlikely(__pyx_t_14 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_14); + __PYX_ERR(0, 241, __pyx_L1_error) + } + *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yvel.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_yvel.diminfo[0].strides) = __pyx_t_12; + } + + /* "src/_ccomp.pyx":243 + * yvel[i] = particles['yvelocity'][i] + * + * scale_velocities(len_particles, xvel.data, yvel.data, # <<<<<<<<<<<<<< + * average_temp, temperature) + * + */ + scale_velocities(__pyx_v_len_particles, ((double *)__pyx_v_xvel->data), ((double *)__pyx_v_yvel->data), __pyx_v_average_temp, __pyx_v_temperature); + + /* "src/_ccomp.pyx":246 + * average_temp, temperature) + * + * for i in range(0, len_particles): # <<<<<<<<<<<<<< + * particles['xvelocity'][i] = xvel[i] + * particles['yvelocity'][i] = yvel[i] + */ + __pyx_t_3 = __pyx_v_len_particles; + __pyx_t_10 = __pyx_t_3; + for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) { + __pyx_v_i = __pyx_t_11; + + /* "src/_ccomp.pyx":247 + * + * for i in range(0, len_particles): + * particles['xvelocity'][i] = xvel[i] # <<<<<<<<<<<<<< + * particles['yvelocity'][i] = yvel[i] + * + */ + __pyx_t_16 = __pyx_v_i; + __pyx_t_14 = -1; + if (__pyx_t_16 < 0) { + __pyx_t_16 += __pyx_pybuffernd_xvel.diminfo[0].shape; + if (unlikely(__pyx_t_16 < 0)) __pyx_t_14 = 0; + } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_xvel.diminfo[0].shape)) __pyx_t_14 = 0; + if (unlikely(__pyx_t_14 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_14); + __PYX_ERR(0, 247, __pyx_L1_error) + } + __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xvel.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_xvel.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 247, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 247, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 247, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "src/_ccomp.pyx":248 + * for i in range(0, len_particles): + * particles['xvelocity'][i] = xvel[i] + * particles['yvelocity'][i] = yvel[i] # <<<<<<<<<<<<<< + * + * return particles + */ + __pyx_t_17 = __pyx_v_i; + __pyx_t_14 = -1; + if (__pyx_t_17 < 0) { + __pyx_t_17 += __pyx_pybuffernd_yvel.diminfo[0].shape; + if (unlikely(__pyx_t_17 < 0)) __pyx_t_14 = 0; + } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_yvel.diminfo[0].shape)) __pyx_t_14 = 0; + if (unlikely(__pyx_t_14 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_14); + __PYX_ERR(0, 248, __pyx_L1_error) + } + __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yvel.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_yvel.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 248, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + + /* "src/_ccomp.pyx":250 + * particles['yvelocity'][i] = yvel[i] + * + * return particles # <<<<<<<<<<<<<< + * + * def dist(xpos, ypos, box_length): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_particles); + __pyx_r = __pyx_v_particles; + goto __pyx_L0; + + /* "src/_ccomp.pyx":210 + * return pressure + * + * def heat_bath(particles, temperature_sample, bath_temp): # <<<<<<<<<<<<<< + * r"""Rescales the velocities of the particles in the system to control the + * temperature of the simulation. Thereby allowing for an NVT ensemble. The + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); + __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_xvel.rcbuffer->pybuffer); + __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_yvel.rcbuffer->pybuffer); + __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} + __Pyx_AddTraceback("pylj.comp.heat_bath", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + goto __pyx_L2; + __pyx_L0:; + __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_xvel.rcbuffer->pybuffer); + __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_yvel.rcbuffer->pybuffer); + __pyx_L2:; + __Pyx_XDECREF((PyObject *)__pyx_v_xvel); + __Pyx_XDECREF((PyObject *)__pyx_v_yvel); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "src/_ccomp.pyx":252 + * return particles + * + * def dist(xpos, ypos, box_length): # <<<<<<<<<<<<<< + * """Returns the distance array for the set of particles. + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_4pylj_4comp_9dist(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_4pylj_4comp_8dist[] = "Returns the distance array for the set of particles.\n\n Parameters\n ----------\n xpos: float, array_like (N)\n Array of length N, where N is the number of particles, providing the\n x-dimension positions of the particles.\n ypos: float, array_like (N)\n Array of length N, where N is the number of particles, providing the\n y-dimension positions of the particles.\n box_length: float\n The box length of the simulation cell.\n\n Returns\n -------\n distances float, array_like ((N - 1) * N / 2))\n The pairs of distances between the particles.\n xdistances float, array_like ((N - 1) * N / 2))\n The pairs of distances between the particles, in only the x-dimension.\n ydistances float, array_like ((N - 1) * N / 2))\n The pairs of distances between the particles, in only the y-dimension.\n "; +static PyMethodDef __pyx_mdef_4pylj_4comp_9dist = {"dist", (PyCFunction)__pyx_pw_4pylj_4comp_9dist, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4pylj_4comp_8dist}; +static PyObject *__pyx_pw_4pylj_4comp_9dist(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_xpos = 0; + PyObject *__pyx_v_ypos = 0; + PyObject *__pyx_v_box_length = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("dist (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_xpos,&__pyx_n_s_ypos,&__pyx_n_s_box_length,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_xpos)) != 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_ypos)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("dist", 1, 3, 3, 1); __PYX_ERR(0, 252, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_box_length)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("dist", 1, 3, 3, 2); __PYX_ERR(0, 252, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dist") < 0)) __PYX_ERR(0, 252, __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_xpos = values[0]; + __pyx_v_ypos = values[1]; + __pyx_v_box_length = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("dist", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 252, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("pylj.comp.dist", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_4pylj_4comp_8dist(__pyx_self, __pyx_v_xpos, __pyx_v_ypos, __pyx_v_box_length); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_xpos, PyObject *__pyx_v_ypos, PyObject *__pyx_v_box_length) { + int __pyx_v_len_particles; + PyArrayObject *__pyx_v_xpositions = 0; + PyArrayObject *__pyx_v_ypositions = 0; + double __pyx_v_box_l; + PyArrayObject *__pyx_v_distances = 0; + PyArrayObject *__pyx_v_xdistances = 0; + PyArrayObject *__pyx_v_ydistances = 0; + long __pyx_v_i; + __Pyx_LocalBuf_ND __pyx_pybuffernd_distances; + __Pyx_Buffer __pyx_pybuffer_distances; + __Pyx_LocalBuf_ND __pyx_pybuffernd_xdistances; + __Pyx_Buffer __pyx_pybuffer_xdistances; + __Pyx_LocalBuf_ND __pyx_pybuffernd_xpositions; + __Pyx_Buffer __pyx_pybuffer_xpositions; + __Pyx_LocalBuf_ND __pyx_pybuffernd_ydistances; + __Pyx_Buffer __pyx_pybuffer_ydistances; + __Pyx_LocalBuf_ND __pyx_pybuffernd_ypositions; + __Pyx_Buffer __pyx_pybuffer_ypositions; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyArrayObject *__pyx_t_7 = NULL; + PyArrayObject *__pyx_t_8 = NULL; + double __pyx_t_9; + PyArrayObject *__pyx_t_10 = NULL; + PyArrayObject *__pyx_t_11 = NULL; + PyArrayObject *__pyx_t_12 = NULL; + int __pyx_t_13; + long __pyx_t_14; + __pyx_t_4pylj_4comp_DTYPE_t __pyx_t_15; + Py_ssize_t __pyx_t_16; + int __pyx_t_17; + Py_ssize_t __pyx_t_18; + __Pyx_RefNannySetupContext("dist", 0); + __pyx_pybuffer_xpositions.pybuffer.buf = NULL; + __pyx_pybuffer_xpositions.refcount = 0; + __pyx_pybuffernd_xpositions.data = NULL; + __pyx_pybuffernd_xpositions.rcbuffer = &__pyx_pybuffer_xpositions; + __pyx_pybuffer_ypositions.pybuffer.buf = NULL; + __pyx_pybuffer_ypositions.refcount = 0; + __pyx_pybuffernd_ypositions.data = NULL; + __pyx_pybuffernd_ypositions.rcbuffer = &__pyx_pybuffer_ypositions; + __pyx_pybuffer_distances.pybuffer.buf = NULL; + __pyx_pybuffer_distances.refcount = 0; + __pyx_pybuffernd_distances.data = NULL; + __pyx_pybuffernd_distances.rcbuffer = &__pyx_pybuffer_distances; + __pyx_pybuffer_xdistances.pybuffer.buf = NULL; + __pyx_pybuffer_xdistances.refcount = 0; + __pyx_pybuffernd_xdistances.data = NULL; + __pyx_pybuffernd_xdistances.rcbuffer = &__pyx_pybuffer_xdistances; + __pyx_pybuffer_ydistances.pybuffer.buf = NULL; + __pyx_pybuffer_ydistances.refcount = 0; + __pyx_pybuffernd_ydistances.data = NULL; + __pyx_pybuffernd_ydistances.rcbuffer = &__pyx_pybuffer_ydistances; + + /* "src/_ccomp.pyx":275 + * The pairs of distances between the particles, in only the y-dimension. + * """ + * cdef int len_particles = int(xpos.size) # <<<<<<<<<<<<<< + * cdef np.ndarray[DTYPE_t, ndim=1] xpositions = np.zeros(len_particles) + * cdef np.ndarray[DTYPE_t, ndim=1] ypositions = np.zeros(len_particles) + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_xpos, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 275, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_len_particles = __pyx_t_3; + + /* "src/_ccomp.pyx":276 + * """ + * cdef int len_particles = int(xpos.size) + * cdef np.ndarray[DTYPE_t, ndim=1] xpositions = np.zeros(len_particles) # <<<<<<<<<<<<<< + * cdef np.ndarray[DTYPE_t, ndim=1] ypositions = np.zeros(len_particles) + * cdef double box_l = box_length + */ + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __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); + } + } + if (!__pyx_t_5) { + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 276, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else { + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 276, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 276, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else + #endif + { + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 276, __pyx_L1_error) + __pyx_t_7 = ((PyArrayObject *)__pyx_t_2); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xpositions.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { + __pyx_v_xpositions = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xpositions.rcbuffer->pybuffer.buf = NULL; + __PYX_ERR(0, 276, __pyx_L1_error) + } else {__pyx_pybuffernd_xpositions.diminfo[0].strides = __pyx_pybuffernd_xpositions.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xpositions.diminfo[0].shape = __pyx_pybuffernd_xpositions.rcbuffer->pybuffer.shape[0]; + } + } + __pyx_t_7 = 0; + __pyx_v_xpositions = ((PyArrayObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "src/_ccomp.pyx":277 + * cdef int len_particles = int(xpos.size) + * cdef np.ndarray[DTYPE_t, ndim=1] xpositions = np.zeros(len_particles) + * cdef np.ndarray[DTYPE_t, ndim=1] ypositions = np.zeros(len_particles) # <<<<<<<<<<<<<< + * cdef double box_l = box_length + * cdef np.ndarray[DTYPE_t, ndim=1] distances = np.zeros(int((len_particles - 1) * len_particles / 2)) + */ + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); + } + } + if (!__pyx_t_1) { + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 277, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else { + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 277, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 277, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else + #endif + { + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_4); + __pyx_t_4 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 277, __pyx_L1_error) + __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ypositions.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { + __pyx_v_ypositions = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_ypositions.rcbuffer->pybuffer.buf = NULL; + __PYX_ERR(0, 277, __pyx_L1_error) + } else {__pyx_pybuffernd_ypositions.diminfo[0].strides = __pyx_pybuffernd_ypositions.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ypositions.diminfo[0].shape = __pyx_pybuffernd_ypositions.rcbuffer->pybuffer.shape[0]; + } + } + __pyx_t_8 = 0; + __pyx_v_ypositions = ((PyArrayObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "src/_ccomp.pyx":278 + * cdef np.ndarray[DTYPE_t, ndim=1] xpositions = np.zeros(len_particles) + * cdef np.ndarray[DTYPE_t, ndim=1] ypositions = np.zeros(len_particles) + * cdef double box_l = box_length # <<<<<<<<<<<<<< + * cdef np.ndarray[DTYPE_t, ndim=1] distances = np.zeros(int((len_particles - 1) * len_particles / 2)) + * cdef np.ndarray[DTYPE_t, ndim=1] xdistances = np.zeros(int((len_particles - 1) * len_particles / 2)) + */ + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 278, __pyx_L1_error) + __pyx_v_box_l = __pyx_t_9; + + /* "src/_ccomp.pyx":279 + * cdef np.ndarray[DTYPE_t, ndim=1] ypositions = np.zeros(len_particles) + * cdef double box_l = box_length + * cdef np.ndarray[DTYPE_t, ndim=1] distances = np.zeros(int((len_particles - 1) * len_particles / 2)) # <<<<<<<<<<<<<< + * cdef np.ndarray[DTYPE_t, ndim=1] xdistances = np.zeros(int((len_particles - 1) * len_particles / 2)) + * cdef np.ndarray[DTYPE_t, ndim=1] ydistances = np.zeros(int((len_particles - 1) * len_particles / 2)) + */ + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + if (!__pyx_t_4) { + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 279, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else { + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 279, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { - PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 231, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 279, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 231, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; - __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_4); - __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 231, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = NULL; + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_t_6); + __pyx_t_6 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } } - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 231, __pyx_L1_error) - __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 279, __pyx_L1_error) + __pyx_t_10 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_yvel.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { - __pyx_v_yvel = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_yvel.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 231, __pyx_L1_error) - } else {__pyx_pybuffernd_yvel.diminfo[0].strides = __pyx_pybuffernd_yvel.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_yvel.diminfo[0].shape = __pyx_pybuffernd_yvel.rcbuffer->pybuffer.shape[0]; + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_distances.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { + __pyx_v_distances = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_distances.rcbuffer->pybuffer.buf = NULL; + __PYX_ERR(0, 279, __pyx_L1_error) + } else {__pyx_pybuffernd_distances.diminfo[0].strides = __pyx_pybuffernd_distances.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_distances.diminfo[0].shape = __pyx_pybuffernd_distances.rcbuffer->pybuffer.shape[0]; } } - __pyx_t_8 = 0; - __pyx_v_yvel = ((PyArrayObject *)__pyx_t_2); + __pyx_t_10 = 0; + __pyx_v_distances = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":232 - * cdef np.ndarray[DTYPE_t, ndim=1] xvel = np.zeros(len_particles) - * cdef np.ndarray[DTYPE_t, ndim=1] yvel = np.zeros(len_particles) - * cdef double average_temp = np.average(temperature_sample) # <<<<<<<<<<<<<< - * cdef double temperature = bath_temp + /* "src/_ccomp.pyx":280 + * cdef double box_l = box_length + * cdef np.ndarray[DTYPE_t, ndim=1] distances = np.zeros(int((len_particles - 1) * len_particles / 2)) + * cdef np.ndarray[DTYPE_t, ndim=1] xdistances = np.zeros(int((len_particles - 1) * len_particles / 2)) # <<<<<<<<<<<<<< + * cdef np.ndarray[DTYPE_t, ndim=1] ydistances = np.zeros(int((len_particles - 1) * len_particles / 2)) * */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 232, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_average); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 232, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); + __Pyx_DECREF_SET(__pyx_t_1, function); } } if (!__pyx_t_6) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_temperature_sample); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 232, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_5)) { - PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_temperature_sample}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 232, __pyx_L1_error) + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { - PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_temperature_sample}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 232, __pyx_L1_error) + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { - __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 232, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __pyx_t_6 = NULL; - __Pyx_INCREF(__pyx_v_temperature_sample); - __Pyx_GIVEREF(__pyx_v_temperature_sample); - PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_temperature_sample); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 232, __pyx_L1_error) + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_t_5); + __pyx_t_5 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 232, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_average_temp = __pyx_t_9; - - /* "src/_ccomp.pyx":233 - * cdef np.ndarray[DTYPE_t, ndim=1] yvel = np.zeros(len_particles) - * cdef double average_temp = np.average(temperature_sample) - * cdef double temperature = bath_temp # <<<<<<<<<<<<<< - * - * for i in range(0, len_particles): - */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_bath_temp); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 233, __pyx_L1_error) - __pyx_v_temperature = __pyx_t_9; - - /* "src/_ccomp.pyx":235 - * cdef double temperature = bath_temp - * - * for i in range(0, len_particles): # <<<<<<<<<<<<<< - * xvel[i] = particles['xvelocity'][i] - * yvel[i] = particles['yvelocity'][i] - */ - __pyx_t_3 = __pyx_v_len_particles; - __pyx_t_10 = __pyx_t_3; - for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) { - __pyx_v_i = __pyx_t_11; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 280, __pyx_L1_error) + __pyx_t_11 = ((PyArrayObject *)__pyx_t_2); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xdistances.rcbuffer->pybuffer, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { + __pyx_v_xdistances = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xdistances.rcbuffer->pybuffer.buf = NULL; + __PYX_ERR(0, 280, __pyx_L1_error) + } else {__pyx_pybuffernd_xdistances.diminfo[0].strides = __pyx_pybuffernd_xdistances.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xdistances.diminfo[0].shape = __pyx_pybuffernd_xdistances.rcbuffer->pybuffer.shape[0]; + } + } + __pyx_t_11 = 0; + __pyx_v_xdistances = ((PyArrayObject *)__pyx_t_2); + __pyx_t_2 = 0; - /* "src/_ccomp.pyx":236 + /* "src/_ccomp.pyx":281 + * cdef np.ndarray[DTYPE_t, ndim=1] distances = np.zeros(int((len_particles - 1) * len_particles / 2)) + * cdef np.ndarray[DTYPE_t, ndim=1] xdistances = np.zeros(int((len_particles - 1) * len_particles / 2)) + * cdef np.ndarray[DTYPE_t, ndim=1] ydistances = np.zeros(int((len_particles - 1) * len_particles / 2)) # <<<<<<<<<<<<<< * - * for i in range(0, len_particles): - * xvel[i] = particles['xvelocity'][i] # <<<<<<<<<<<<<< - * yvel[i] = particles['yvelocity'][i] * */ - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xvelocity); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 236, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 236, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 236, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_13 = __pyx_v_i; - __pyx_t_14 = -1; - if (__pyx_t_13 < 0) { - __pyx_t_13 += __pyx_pybuffernd_xvel.diminfo[0].shape; - if (unlikely(__pyx_t_13 < 0)) __pyx_t_14 = 0; - } else if (unlikely(__pyx_t_13 >= __pyx_pybuffernd_xvel.diminfo[0].shape)) __pyx_t_14 = 0; - if (unlikely(__pyx_t_14 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 236, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __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_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xvel.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_xvel.diminfo[0].strides) = __pyx_t_12; - - /* "src/_ccomp.pyx":237 - * for i in range(0, len_particles): - * xvel[i] = particles['xvelocity'][i] - * yvel[i] = particles['yvelocity'][i] # <<<<<<<<<<<<<< - * - * scale_velocities(len_particles, xvel.data, yvel.data, - */ - __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 237, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 237, __pyx_L1_error) + } + if (!__pyx_t_5) { + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 237, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_15 = __pyx_v_i; - __pyx_t_14 = -1; - if (__pyx_t_15 < 0) { - __pyx_t_15 += __pyx_pybuffernd_yvel.diminfo[0].shape; - if (unlikely(__pyx_t_15 < 0)) __pyx_t_14 = 0; - } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_yvel.diminfo[0].shape)) __pyx_t_14 = 0; - if (unlikely(__pyx_t_14 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 237, __pyx_L1_error) + } else { + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else + #endif + { + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 281, __pyx_L1_error) + __pyx_t_12 = ((PyArrayObject *)__pyx_t_2); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ydistances.rcbuffer->pybuffer, (PyObject*)__pyx_t_12, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { + __pyx_v_ydistances = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_ydistances.rcbuffer->pybuffer.buf = NULL; + __PYX_ERR(0, 281, __pyx_L1_error) + } else {__pyx_pybuffernd_ydistances.diminfo[0].strides = __pyx_pybuffernd_ydistances.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ydistances.diminfo[0].shape = __pyx_pybuffernd_ydistances.rcbuffer->pybuffer.shape[0]; } - *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yvel.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_yvel.diminfo[0].strides) = __pyx_t_12; } + __pyx_t_12 = 0; + __pyx_v_ydistances = ((PyArrayObject *)__pyx_t_2); + __pyx_t_2 = 0; - /* "src/_ccomp.pyx":239 - * yvel[i] = particles['yvelocity'][i] - * - * scale_velocities(len_particles, xvel.data, yvel.data, # <<<<<<<<<<<<<< - * average_temp, temperature) + /* "src/_ccomp.pyx":284 * - */ - scale_velocities(__pyx_v_len_particles, ((double *)__pyx_v_xvel->data), ((double *)__pyx_v_yvel->data), __pyx_v_average_temp, __pyx_v_temperature); - - /* "src/_ccomp.pyx":242 - * average_temp, temperature) * * for i in range(0, len_particles): # <<<<<<<<<<<<<< - * particles['xvelocity'][i] = xvel[i] - * particles['yvelocity'][i] = yvel[i] + * xpositions[i] = xpos[i] + * ypositions[i] = ypos[i] */ __pyx_t_3 = __pyx_v_len_particles; - __pyx_t_10 = __pyx_t_3; - for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) { - __pyx_v_i = __pyx_t_11; + __pyx_t_13 = __pyx_t_3; + for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) { + __pyx_v_i = __pyx_t_14; - /* "src/_ccomp.pyx":243 + /* "src/_ccomp.pyx":285 * * for i in range(0, len_particles): - * particles['xvelocity'][i] = xvel[i] # <<<<<<<<<<<<<< - * particles['yvelocity'][i] = yvel[i] + * xpositions[i] = xpos[i] # <<<<<<<<<<<<<< + * ypositions[i] = ypos[i] * */ + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_xpos, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_15 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 285, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_16 = __pyx_v_i; - __pyx_t_14 = -1; + __pyx_t_17 = -1; if (__pyx_t_16 < 0) { - __pyx_t_16 += __pyx_pybuffernd_xvel.diminfo[0].shape; - if (unlikely(__pyx_t_16 < 0)) __pyx_t_14 = 0; - } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_xvel.diminfo[0].shape)) __pyx_t_14 = 0; - if (unlikely(__pyx_t_14 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 243, __pyx_L1_error) + __pyx_t_16 += __pyx_pybuffernd_xpositions.diminfo[0].shape; + if (unlikely(__pyx_t_16 < 0)) __pyx_t_17 = 0; + } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_xpositions.diminfo[0].shape)) __pyx_t_17 = 0; + if (unlikely(__pyx_t_17 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_17); + __PYX_ERR(0, 285, __pyx_L1_error) } - __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xvel.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_xvel.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 243, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 243, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xpositions.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_xpositions.diminfo[0].strides) = __pyx_t_15; - /* "src/_ccomp.pyx":244 + /* "src/_ccomp.pyx":286 * for i in range(0, len_particles): - * particles['xvelocity'][i] = xvel[i] - * particles['yvelocity'][i] = yvel[i] # <<<<<<<<<<<<<< + * xpositions[i] = xpos[i] + * ypositions[i] = ypos[i] # <<<<<<<<<<<<<< * - * return particles + * get_distances(len_particles, xpositions.data, ypositions.data, */ - __pyx_t_17 = __pyx_v_i; - __pyx_t_14 = -1; - if (__pyx_t_17 < 0) { - __pyx_t_17 += __pyx_pybuffernd_yvel.diminfo[0].shape; - if (unlikely(__pyx_t_17 < 0)) __pyx_t_14 = 0; - } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_yvel.diminfo[0].shape)) __pyx_t_14 = 0; - if (unlikely(__pyx_t_14 != -1)) { - __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 244, __pyx_L1_error) - } - __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yvel.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_yvel.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 244, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_ypos, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 244, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 244, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_15 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_18 = __pyx_v_i; + __pyx_t_17 = -1; + if (__pyx_t_18 < 0) { + __pyx_t_18 += __pyx_pybuffernd_ypositions.diminfo[0].shape; + if (unlikely(__pyx_t_18 < 0)) __pyx_t_17 = 0; + } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_ypositions.diminfo[0].shape)) __pyx_t_17 = 0; + if (unlikely(__pyx_t_17 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_17); + __PYX_ERR(0, 286, __pyx_L1_error) + } + *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_ypositions.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_ypositions.diminfo[0].strides) = __pyx_t_15; } - /* "src/_ccomp.pyx":246 - * particles['yvelocity'][i] = yvel[i] + /* "src/_ccomp.pyx":288 + * ypositions[i] = ypos[i] * - * return particles # <<<<<<<<<<<<<< + * get_distances(len_particles, xpositions.data, ypositions.data, # <<<<<<<<<<<<<< + * box_l, distances.data, xdistances.data, ydistances.data) + * + */ + get_distances(__pyx_v_len_particles, ((double *)__pyx_v_xpositions->data), ((double *)__pyx_v_ypositions->data), __pyx_v_box_l, ((double *)__pyx_v_distances->data), ((double *)__pyx_v_xdistances->data), ((double *)__pyx_v_ydistances->data)); + + /* "src/_ccomp.pyx":291 + * box_l, distances.data, xdistances.data, ydistances.data) + * + * return distances, xdistances, ydistances # <<<<<<<<<<<<<< */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_particles); - __pyx_r = __pyx_v_particles; + __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(((PyObject *)__pyx_v_distances)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_distances)); + PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_distances)); + __Pyx_INCREF(((PyObject *)__pyx_v_xdistances)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_xdistances)); + PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_xdistances)); + __Pyx_INCREF(((PyObject *)__pyx_v_ydistances)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_ydistances)); + PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_ydistances)); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; goto __pyx_L0; - /* "src/_ccomp.pyx":206 - * return pressure + /* "src/_ccomp.pyx":252 + * return particles + * + * def dist(xpos, ypos, box_length): # <<<<<<<<<<<<<< + * """Returns the distance array for the set of particles. * - * def heat_bath(particles, temperature_sample, bath_temp): # <<<<<<<<<<<<<< - * r"""Rescales the velocities of the particles in the system to control the - * temperature of the simulation. Thereby allowing for an NVT ensemble. The */ /* function exit code */ @@ -4521,18 +5202,27 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_xvel.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_yvel.rcbuffer->pybuffer); + __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_distances.rcbuffer->pybuffer); + __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_xdistances.rcbuffer->pybuffer); + __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_xpositions.rcbuffer->pybuffer); + __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ydistances.rcbuffer->pybuffer); + __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ypositions.rcbuffer->pybuffer); __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("pylj.comp.heat_bath", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("pylj.comp.dist", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; goto __pyx_L2; __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_xvel.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_yvel.rcbuffer->pybuffer); + __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_distances.rcbuffer->pybuffer); + __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_xdistances.rcbuffer->pybuffer); + __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_xpositions.rcbuffer->pybuffer); + __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ydistances.rcbuffer->pybuffer); + __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ypositions.rcbuffer->pybuffer); __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_xvel); - __Pyx_XDECREF((PyObject *)__pyx_v_yvel); + __Pyx_XDECREF((PyObject *)__pyx_v_xpositions); + __Pyx_XDECREF((PyObject *)__pyx_v_ypositions); + __Pyx_XDECREF((PyObject *)__pyx_v_distances); + __Pyx_XDECREF((PyObject *)__pyx_v_xdistances); + __Pyx_XDECREF((PyObject *)__pyx_v_ydistances); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -7056,9 +7746,11 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_calculate_pressure, __pyx_k_calculate_pressure, sizeof(__pyx_k_calculate_pressure), 0, 0, 1, 1}, {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, {&__pyx_n_s_compute_energy, __pyx_k_compute_energy, sizeof(__pyx_k_compute_energy), 0, 0, 1, 1}, - {&__pyx_n_s_compute_forces, __pyx_k_compute_forces, sizeof(__pyx_k_compute_forces), 0, 0, 1, 1}, + {&__pyx_n_s_compute_force, __pyx_k_compute_force, sizeof(__pyx_k_compute_force), 0, 0, 1, 1}, {&__pyx_n_s_cut, __pyx_k_cut, sizeof(__pyx_k_cut), 0, 0, 1, 1}, {&__pyx_n_s_cut_off, __pyx_k_cut_off, sizeof(__pyx_k_cut_off), 0, 0, 1, 1}, + {&__pyx_n_s_dist, __pyx_k_dist, sizeof(__pyx_k_dist), 0, 0, 1, 1}, + {&__pyx_n_s_distances, __pyx_k_distances, sizeof(__pyx_k_distances), 0, 0, 1, 1}, {&__pyx_n_s_distances_arr, __pyx_k_distances_arr, sizeof(__pyx_k_distances_arr), 0, 0, 1, 1}, {&__pyx_n_s_energy_arr, __pyx_k_energy_arr, sizeof(__pyx_k_energy_arr), 0, 0, 1, 1}, {&__pyx_n_s_float64, __pyx_k_float64, sizeof(__pyx_k_float64), 0, 0, 1, 1}, @@ -7091,21 +7783,25 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, {&__pyx_n_s_xacc, __pyx_k_xacc, sizeof(__pyx_k_xacc), 0, 0, 1, 1}, {&__pyx_n_s_xacceleration, __pyx_k_xacceleration, sizeof(__pyx_k_xacceleration), 0, 0, 1, 1}, + {&__pyx_n_s_xdistances, __pyx_k_xdistances, sizeof(__pyx_k_xdistances), 0, 0, 1, 1}, {&__pyx_n_s_xpos, __pyx_k_xpos, sizeof(__pyx_k_xpos), 0, 0, 1, 1}, {&__pyx_n_s_xposition, __pyx_k_xposition, sizeof(__pyx_k_xposition), 0, 0, 1, 1}, + {&__pyx_n_s_xpositions, __pyx_k_xpositions, sizeof(__pyx_k_xpositions), 0, 0, 1, 1}, {&__pyx_n_s_xvel, __pyx_k_xvel, sizeof(__pyx_k_xvel), 0, 0, 1, 1}, {&__pyx_n_s_xvelocity, __pyx_k_xvelocity, sizeof(__pyx_k_xvelocity), 0, 0, 1, 1}, {&__pyx_n_s_yacc, __pyx_k_yacc, sizeof(__pyx_k_yacc), 0, 0, 1, 1}, {&__pyx_n_s_yacceleration, __pyx_k_yacceleration, sizeof(__pyx_k_yacceleration), 0, 0, 1, 1}, + {&__pyx_n_s_ydistances, __pyx_k_ydistances, sizeof(__pyx_k_ydistances), 0, 0, 1, 1}, {&__pyx_n_s_ypos, __pyx_k_ypos, sizeof(__pyx_k_ypos), 0, 0, 1, 1}, {&__pyx_n_s_yposition, __pyx_k_yposition, sizeof(__pyx_k_yposition), 0, 0, 1, 1}, + {&__pyx_n_s_ypositions, __pyx_k_ypositions, sizeof(__pyx_k_ypositions), 0, 0, 1, 1}, {&__pyx_n_s_yvel, __pyx_k_yvel, sizeof(__pyx_k_yvel), 0, 0, 1, 1}, {&__pyx_n_s_yvelocity, __pyx_k_yvelocity, sizeof(__pyx_k_yvelocity), 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 int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 79, __pyx_L1_error) + __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 83, __pyx_L1_error) __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 229, __pyx_L1_error) __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 810, __pyx_L1_error) __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 1000, __pyx_L1_error) @@ -7215,53 +7911,65 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__9); __Pyx_GIVEREF(__pyx_tuple__9); - /* "src/_ccomp.pyx":27 + /* "src/_ccomp.pyx":31 * ctypedef np.float64_t DTYPE_t * - * def compute_forces(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, # <<<<<<<<<<<<<< + * def compute_force(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, # <<<<<<<<<<<<<< * mass=39.948): * """Calculates the forces and therefore the accelerations on each of the */ - __pyx_tuple__10 = PyTuple_Pack(21, __pyx_n_s_particles, __pyx_n_s_box_length, __pyx_n_s_cut_off, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_mass, __pyx_n_s_len_particles, __pyx_n_s_pairs, __pyx_n_s_box_l, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_xacc, __pyx_n_s_yacc, __pyx_n_s_distances_arr, __pyx_n_s_force_arr, __pyx_n_s_energy_arr, __pyx_n_s_cut, __pyx_n_s_ac, __pyx_n_s_bc, __pyx_n_s_massc, __pyx_n_s_i); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 27, __pyx_L1_error) + __pyx_tuple__10 = PyTuple_Pack(21, __pyx_n_s_particles, __pyx_n_s_box_length, __pyx_n_s_cut_off, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_mass, __pyx_n_s_len_particles, __pyx_n_s_pairs, __pyx_n_s_box_l, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_xacc, __pyx_n_s_yacc, __pyx_n_s_distances_arr, __pyx_n_s_force_arr, __pyx_n_s_energy_arr, __pyx_n_s_cut, __pyx_n_s_ac, __pyx_n_s_bc, __pyx_n_s_massc, __pyx_n_s_i); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__10); __Pyx_GIVEREF(__pyx_tuple__10); - __pyx_codeobj__11 = (PyObject*)__Pyx_PyCode_New(6, 0, 21, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__10, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_compute_forces, 27, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__11)) __PYX_ERR(0, 27, __pyx_L1_error) + __pyx_codeobj__11 = (PyObject*)__Pyx_PyCode_New(6, 0, 21, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__10, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_compute_force, 31, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__11)) __PYX_ERR(0, 31, __pyx_L1_error) - /* "src/_ccomp.pyx":98 + /* "src/_ccomp.pyx":102 * return particles, distances_arr, force_arr, energy_arr * * def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): # <<<<<<<<<<<<<< * """Calculates the total energy of the simulation. This uses a * 12-6 Lennard-Jones potential model for Argon with values: */ - __pyx_tuple__12 = PyTuple_Pack(16, __pyx_n_s_particles, __pyx_n_s_box_length, __pyx_n_s_cut_off, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_len_particles, __pyx_n_s_pairs, __pyx_n_s_box_l, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_distances_arr, __pyx_n_s_energy_arr, __pyx_n_s_cut, __pyx_n_s_ac, __pyx_n_s_bc, __pyx_n_s_i); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 98, __pyx_L1_error) + __pyx_tuple__12 = PyTuple_Pack(16, __pyx_n_s_particles, __pyx_n_s_box_length, __pyx_n_s_cut_off, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_len_particles, __pyx_n_s_pairs, __pyx_n_s_box_l, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_distances_arr, __pyx_n_s_energy_arr, __pyx_n_s_cut, __pyx_n_s_ac, __pyx_n_s_bc, __pyx_n_s_i); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__12); __Pyx_GIVEREF(__pyx_tuple__12); - __pyx_codeobj__13 = (PyObject*)__Pyx_PyCode_New(5, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__12, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_compute_energy, 98, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__13)) __PYX_ERR(0, 98, __pyx_L1_error) + __pyx_codeobj__13 = (PyObject*)__Pyx_PyCode_New(5, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__12, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_compute_energy, 102, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__13)) __PYX_ERR(0, 102, __pyx_L1_error) - /* "src/_ccomp.pyx":152 + /* "src/_ccomp.pyx":156 * return distances_arr, energy_arr * * def calculate_pressure(particles, box_length, temperature, cut_off, # <<<<<<<<<<<<<< * a=1.363e-134, b=9.273e-78): * r"""Calculates the instantaneous pressure of the simulation cell, found */ - __pyx_tuple__14 = PyTuple_Pack(16, __pyx_n_s_particles, __pyx_n_s_box_length, __pyx_n_s_temperature, __pyx_n_s_cut_off, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_number_of_particles, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_box_l, __pyx_n_s_pressure, __pyx_n_s_temp, __pyx_n_s_cut, __pyx_n_s_ac, __pyx_n_s_bc, __pyx_n_s_i); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 152, __pyx_L1_error) + __pyx_tuple__14 = PyTuple_Pack(16, __pyx_n_s_particles, __pyx_n_s_box_length, __pyx_n_s_temperature, __pyx_n_s_cut_off, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_number_of_particles, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_box_l, __pyx_n_s_pressure, __pyx_n_s_temp, __pyx_n_s_cut, __pyx_n_s_ac, __pyx_n_s_bc, __pyx_n_s_i); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 156, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__14); __Pyx_GIVEREF(__pyx_tuple__14); - __pyx_codeobj__15 = (PyObject*)__Pyx_PyCode_New(6, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__14, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_calculate_pressure, 152, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__15)) __PYX_ERR(0, 152, __pyx_L1_error) + __pyx_codeobj__15 = (PyObject*)__Pyx_PyCode_New(6, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__14, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_calculate_pressure, 156, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__15)) __PYX_ERR(0, 156, __pyx_L1_error) - /* "src/_ccomp.pyx":206 + /* "src/_ccomp.pyx":210 * return pressure * * def heat_bath(particles, temperature_sample, bath_temp): # <<<<<<<<<<<<<< * r"""Rescales the velocities of the particles in the system to control the * temperature of the simulation. Thereby allowing for an NVT ensemble. The */ - __pyx_tuple__16 = PyTuple_Pack(9, __pyx_n_s_particles, __pyx_n_s_temperature_sample, __pyx_n_s_bath_temp, __pyx_n_s_len_particles, __pyx_n_s_xvel, __pyx_n_s_yvel, __pyx_n_s_average_temp, __pyx_n_s_temperature, __pyx_n_s_i); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 206, __pyx_L1_error) + __pyx_tuple__16 = PyTuple_Pack(9, __pyx_n_s_particles, __pyx_n_s_temperature_sample, __pyx_n_s_bath_temp, __pyx_n_s_len_particles, __pyx_n_s_xvel, __pyx_n_s_yvel, __pyx_n_s_average_temp, __pyx_n_s_temperature, __pyx_n_s_i); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 210, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__16); __Pyx_GIVEREF(__pyx_tuple__16); - __pyx_codeobj__17 = (PyObject*)__Pyx_PyCode_New(3, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__16, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_heat_bath, 206, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__17)) __PYX_ERR(0, 206, __pyx_L1_error) + __pyx_codeobj__17 = (PyObject*)__Pyx_PyCode_New(3, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__16, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_heat_bath, 210, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__17)) __PYX_ERR(0, 210, __pyx_L1_error) + + /* "src/_ccomp.pyx":252 + * return particles + * + * def dist(xpos, ypos, box_length): # <<<<<<<<<<<<<< + * """Returns the distance array for the set of particles. + * + */ + __pyx_tuple__18 = PyTuple_Pack(11, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_box_length, __pyx_n_s_len_particles, __pyx_n_s_xpositions, __pyx_n_s_ypositions, __pyx_n_s_box_l, __pyx_n_s_distances, __pyx_n_s_xdistances, __pyx_n_s_ydistances, __pyx_n_s_i); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 252, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__18); + __Pyx_GIVEREF(__pyx_tuple__18); + __pyx_codeobj__19 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__18, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_dist, 252, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__19)) __PYX_ERR(0, 252, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; @@ -7543,67 +8251,79 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "src/_ccomp.pyx":24 + /* "src/_ccomp.pyx":28 * * * DTYPE = np.float64 # <<<<<<<<<<<<<< * ctypedef np.float64_t DTYPE_t * */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_float64); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_float64); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_DTYPE, __pyx_t_2) < 0) __PYX_ERR(0, 24, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DTYPE, __pyx_t_2) < 0) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":27 + /* "src/_ccomp.pyx":31 * ctypedef np.float64_t DTYPE_t * - * def compute_forces(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, # <<<<<<<<<<<<<< + * def compute_force(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, # <<<<<<<<<<<<<< * mass=39.948): * """Calculates the forces and therefore the accelerations on each of the */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_1compute_forces, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27, __pyx_L1_error) + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_1compute_force, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_compute_forces, __pyx_t_2) < 0) __PYX_ERR(0, 27, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_compute_force, __pyx_t_2) < 0) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":98 + /* "src/_ccomp.pyx":102 * return particles, distances_arr, force_arr, energy_arr * * def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): # <<<<<<<<<<<<<< * """Calculates the total energy of the simulation. This uses a * 12-6 Lennard-Jones potential model for Argon with values: */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_3compute_energy, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 98, __pyx_L1_error) + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_3compute_energy, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_compute_energy, __pyx_t_2) < 0) __PYX_ERR(0, 98, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_compute_energy, __pyx_t_2) < 0) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":152 + /* "src/_ccomp.pyx":156 * return distances_arr, energy_arr * * def calculate_pressure(particles, box_length, temperature, cut_off, # <<<<<<<<<<<<<< * a=1.363e-134, b=9.273e-78): * r"""Calculates the instantaneous pressure of the simulation cell, found */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_5calculate_pressure, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 152, __pyx_L1_error) + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_5calculate_pressure, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 156, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculate_pressure, __pyx_t_2) < 0) __PYX_ERR(0, 152, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculate_pressure, __pyx_t_2) < 0) __PYX_ERR(0, 156, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":206 + /* "src/_ccomp.pyx":210 * return pressure * * def heat_bath(particles, temperature_sample, bath_temp): # <<<<<<<<<<<<<< * r"""Rescales the velocities of the particles in the system to control the * temperature of the simulation. Thereby allowing for an NVT ensemble. The */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_7heat_bath, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 206, __pyx_L1_error) + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_7heat_bath, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_heat_bath, __pyx_t_2) < 0) __PYX_ERR(0, 210, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "src/_ccomp.pyx":252 + * return particles + * + * def dist(xpos, ypos, box_length): # <<<<<<<<<<<<<< + * """Returns the distance array for the set of particles. + * + */ + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_9dist, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_heat_bath, __pyx_t_2) < 0) __PYX_ERR(0, 206, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_dist, __pyx_t_2) < 0) __PYX_ERR(0, 252, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "src/_ccomp.pyx":1 diff --git a/src/_ccomp.pyx b/src/_ccomp.pyx index d4ee8bd..7cb6407 100644 --- a/src/_ccomp.pyx +++ b/src/_ccomp.pyx @@ -20,11 +20,15 @@ cdef extern from "comp.h": void scale_velocities(int len_particles, double *xvel, double *yvel, double average_temp, double tempature) + void get_distances(int len_particles, double *xpositions, double *ypositions, + double box_l, double *distances, double *xdistances, + double *ydistances) + DTYPE = np.float64 ctypedef np.float64_t DTYPE_t -def compute_forces(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, +def compute_force(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, mass=39.948): """Calculates the forces and therefore the accelerations on each of the particles in the simulation. This uses a 12-6 Lennard-Jones potential @@ -244,3 +248,44 @@ def heat_bath(particles, temperature_sample, bath_temp): particles['yvelocity'][i] = yvel[i] return particles + +def dist(xpos, ypos, box_length): + """Returns the distance array for the set of particles. + + Parameters + ---------- + xpos: float, array_like (N) + Array of length N, where N is the number of particles, providing the + x-dimension positions of the particles. + ypos: float, array_like (N) + Array of length N, where N is the number of particles, providing the + y-dimension positions of the particles. + box_length: float + The box length of the simulation cell. + + Returns + ------- + distances float, array_like ((N - 1) * N / 2)) + The pairs of distances between the particles. + xdistances float, array_like ((N - 1) * N / 2)) + The pairs of distances between the particles, in only the x-dimension. + ydistances float, array_like ((N - 1) * N / 2)) + The pairs of distances between the particles, in only the y-dimension. + """ + cdef int len_particles = int(xpos.size) + cdef np.ndarray[DTYPE_t, ndim=1] xpositions = np.zeros(len_particles) + cdef np.ndarray[DTYPE_t, ndim=1] ypositions = np.zeros(len_particles) + cdef double box_l = box_length + cdef np.ndarray[DTYPE_t, ndim=1] distances = np.zeros(int((len_particles - 1) * len_particles / 2)) + cdef np.ndarray[DTYPE_t, ndim=1] xdistances = np.zeros(int((len_particles - 1) * len_particles / 2)) + cdef np.ndarray[DTYPE_t, ndim=1] ydistances = np.zeros(int((len_particles - 1) * len_particles / 2)) + + + for i in range(0, len_particles): + xpositions[i] = xpos[i] + ypositions[i] = ypos[i] + + get_distances(len_particles, xpositions.data, ypositions.data, + box_l, distances.data, xdistances.data, ydistances.data) + + return distances, xdistances, ydistances diff --git a/src/comp.cpp b/src/comp.cpp index 95d6345..082db40 100644 --- a/src/comp.cpp +++ b/src/comp.cpp @@ -178,3 +178,34 @@ double lennard_jones_energy(double A, double B, double inv_dr_1) double e = (A * (inv_dr_6 * inv_dr_6) - B * inv_dr_6); return e; } + +void get_distances(int len_particles, double *xpositions, double *ypositions, + double box_l, double *distances, double *xdistances, + double *ydistances) +{ + double dx, dy, dr; + int k = 0; + int i = 0; + for (i = 0; i < len_particles - 1; i++) + { + int j = 0; + for (j = i + 1; j < len_particles; j++) + { + dx = xpositions[i] - xpositions[j]; + dy = ypositions[i] - ypositions[j]; + if (fabs(dx) > 0.5 * box_l) + { + dx *= 1 - box_l / fabs(dx); + } + if (fabs(dy) > 0.5 * box_l) + { + dy *= 1 - box_l / fabs(dy); + } + dr = sqrt(dx * dx + dy * dy); + distances[k] = dr; + xdistances[k] = dx; + ydistances[k] = dy; + k += 1; + } + } +} diff --git a/src/comp.h b/src/comp.h index 25bdede..bd76c1b 100644 --- a/src/comp.h +++ b/src/comp.h @@ -18,3 +18,7 @@ void scale_velocities(int len_particles, double *xvel, double *yvel, double lennard_jones_force(double A, double B, double dr); double lennard_jones_energy(double A, double B, double dr); + +void get_distances(int len_particles, double *xpositions, double *ypositions, + double box_l, double *distances, double *xdistances, + double *ydistances); From 4bdb4bab9e12c05eedc6572ad1ae8b64f3081adc Mon Sep 17 00:00:00 2001 From: arm61 Date: Sun, 26 Aug 2018 13:27:45 +0100 Subject: [PATCH 06/14] adding information about deprecated function --- pylj/comp.cpython-36m-x86_64-linux-gnu.so | Bin 543040 -> 545416 bytes src/_ccomp.cpp | 1056 ++++++++++++--------- src/_ccomp.pyx | 7 + 3 files changed, 634 insertions(+), 429 deletions(-) diff --git a/pylj/comp.cpython-36m-x86_64-linux-gnu.so b/pylj/comp.cpython-36m-x86_64-linux-gnu.so index ec2eac9084d718474db8418d69ebc44bb86d3b60..8a9c4aa13a094dc72af28f8fe30338df127d4cfd 100755 GIT binary patch literal 545416 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

R#X+`zLWz8WcOeS*S#XC8z1E94ca%^5<1M%b!;* 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 literal 543040 zcma%k349b)^8W-GjRJO1qVYfn4H~>i#JGteYXS*$bb{fMcqSNvLAeYQ!2^h!8O=D3 z#$#7Jc4c+f#Z^~yR|HfD0tP%IUMMR@yt<7DqH?*K|My$(^-QNFpWlCWO~0yFuU=KX zdiBn37M2D_^-4+cIlqH^zxNSZe6GS2>5QVHRGsqqihOy#L-04#ce2p>6FI+4ymYtX z?L2+HfDjRTF#fY1R{7S$g9Pt98&4I`=Q~|Lb-7*uSuXX@s$A-yRXOLGMgshtrz3T5 z;P~GLRqQvH2!IOU6Np z(0S_WMYjRSV)p1U6Ma7{ul#lM$G6}9VENrQJT~{3C;oZ(F@I%A=1<0dG}9sYuN9`m zqhH1uX$LLwNBc8x8veT$|BWbp|J%KN(+BSychQ$t>A8PhH>#}f%Fpk)x&E}aa|+fT zdhzo3_lJLUUFGrXY719=^X`tr=lvo5zjJ@Rbv=sq_!|SGIJ$Ntf?x;2zXAmhgzrS* z1K}4yu>;{B>4ASk4}6yOAm^by;EQ^wcV`ds*Ytqj(u16@!Lbgc*Tp^XxvmF!YJ0%% zMJGNG|6mXD+}8vCXgJk@_>6;{PwLj-3V6N;`G@sj=j)2fWM#z{zvv8kI{o(f9k=XkL!W|)jjYzu?Kt}+V_Y9wBv_8)caNs z@;};xAD+^K|8(?V=PP>P|3MG@|ImZ|AM3$Bf9pZt6+Q5O7yJ)opMUgFZ)XpBwe?`n z$-oEjpZ9lE5Av+<0Y9JzdA{m_{`el`tnb18m-j&b`yT3j3<@16Zrt62Jh%2hKc)xz z<{td{=^o^t*8_d12Y)bopg*$*eZTI(--h?VXI~HcruM);vj@F)_s}jyJ4Tl{3-LLV#qrmvR)L%U-HGb*UioR1le1Au~ zkWY23LR_Hv_%X{%^JVy~wn2)4{yPJ9?hpK8Ef0#z?<~!~<#NU6b&Y3R9pO9Fw5mdV{d^Bk(}HXK*INFxYK1R_9Q;*kJ{?sGKUkrCzN)IL zXUv*eH77K=K2%lZtC}`*TF6&56%Suk*@W_{DYf;rS5KQ0s;!?;K63i3nY9xpUp2i} zuaX~luQ@{)0L^#IXDXJo~HKJka)LL>= z3Ain|&w&efH^;=85TNGT+9|Y4#SNqCQBBpD+PO$isGnR@JA%eH(QQ~T>F8{O3h{M~ z8#Bw@9JE2gt47it6wC7384v`-^&61j<% z*WIzaHdHrjimI00HU_aq>sfVa&bc*k%?3DQ?abQxtEbh@nO1S(l=0bB6;q~+ U+ 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 3 +static PyObject* __pyx_print = 0; +static PyObject* __pyx_print_kwargs = 0; +#endif + /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); @@ -1541,6 +1548,9 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value); +/* PrintOne.proto */ +static int __Pyx_PrintOne(PyObject* stream, PyObject *o); + /* CIntFromPy.proto */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); @@ -1629,7 +1639,9 @@ static const char __pyx_k_ac[] = "ac"; static const char __pyx_k_bc[] = "bc"; static const char __pyx_k_np[] = "np"; static const char __pyx_k_cut[] = "cut"; +static const char __pyx_k_end[] = "end"; static const char __pyx_k_dist[] = "dist"; +static const char __pyx_k_file[] = "file"; static const char __pyx_k_main[] = "__main__"; static const char __pyx_k_mass[] = "mass"; static const char __pyx_k_size[] = "size"; @@ -1646,6 +1658,7 @@ static const char __pyx_k_box_l[] = "box_l"; static const char __pyx_k_massc[] = "massc"; static const char __pyx_k_numpy[] = "numpy"; static const char __pyx_k_pairs[] = "pairs"; +static const char __pyx_k_print[] = "print"; static const char __pyx_k_range[] = "range"; static const char __pyx_k_zeros[] = "zeros"; static const char __pyx_k_import[] = "__import__"; @@ -1690,15 +1703,21 @@ static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multia static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)"; static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; +static const char __pyx_k_This_function_is_deprecated_plea[] = "This function is deprecated, please use pairwise.compute_force, if you have the compiled dist function, it is just as fast. "; static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; +static const char __pyx_k_This_function_is_deprecated_plea_2[] = "This function is deprecated, please use pairwise.compute_energy, if you have the compiled dist function, it is just as fast. "; +static const char __pyx_k_This_function_is_deprecated_plea_3[] = "This function is deprecated, please use pairwise.calculate_pressure, if you have the compiled dist function, it is just as fast. "; static PyObject *__pyx_n_s_DTYPE; static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; static PyObject *__pyx_n_s_ImportError; static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; static PyObject *__pyx_n_s_RuntimeError; +static PyObject *__pyx_kp_s_This_function_is_deprecated_plea; +static PyObject *__pyx_kp_s_This_function_is_deprecated_plea_2; +static PyObject *__pyx_kp_s_This_function_is_deprecated_plea_3; static PyObject *__pyx_n_s_ValueError; static PyObject *__pyx_n_s_a; static PyObject *__pyx_n_s_ac; @@ -1718,7 +1737,9 @@ static PyObject *__pyx_n_s_cut_off; static PyObject *__pyx_n_s_dist; static PyObject *__pyx_n_s_distances; static PyObject *__pyx_n_s_distances_arr; +static PyObject *__pyx_n_s_end; static PyObject *__pyx_n_s_energy_arr; +static PyObject *__pyx_n_s_file; static PyObject *__pyx_n_s_float64; static PyObject *__pyx_n_s_force_arr; static PyObject *__pyx_n_s_heat_bath; @@ -1738,6 +1759,7 @@ static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; static PyObject *__pyx_n_s_pairs; static PyObject *__pyx_n_s_particles; static PyObject *__pyx_n_s_pressure; +static PyObject *__pyx_n_s_print; static PyObject *__pyx_n_s_pylj_comp; static PyObject *__pyx_n_s_range; static PyObject *__pyx_n_s_size; @@ -2007,54 +2029,63 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py /* "src/_ccomp.pyx":68 * Current energies between pairs of particles in the simulation. * """ + * print("This function is deprecated, please use pairwise.compute_force, if " # <<<<<<<<<<<<<< + * "you have the compiled dist function, it is just as fast. ") + * cdef int len_particles = particles['xposition'].size + */ + if (__Pyx_PrintOne(0, __pyx_kp_s_This_function_is_deprecated_plea) < 0) __PYX_ERR(0, 68, __pyx_L1_error) + + /* "src/_ccomp.pyx":70 + * print("This function is deprecated, please use pairwise.compute_force, if " + * "you have the compiled dist function, it is just as fast. ") * cdef int len_particles = particles['xposition'].size # <<<<<<<<<<<<<< * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length */ - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 68, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 68, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_len_particles = __pyx_t_3; - /* "src/_ccomp.pyx":69 - * """ + /* "src/_ccomp.pyx":71 + * "you have the compiled dist function, it is just as fast. ") * cdef int len_particles = particles['xposition'].size * pairs = int((len_particles - 1) * len_particles / 2) # <<<<<<<<<<<<<< * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) */ - __pyx_t_2 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_pairs = __pyx_t_2; __pyx_t_2 = 0; - /* "src/_ccomp.pyx":70 + /* "src/_ccomp.pyx":72 * cdef int len_particles = particles['xposition'].size * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 70, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 72, __pyx_L1_error) __pyx_v_box_l = __pyx_t_4; - /* "src/_ccomp.pyx":71 + /* "src/_ccomp.pyx":73 * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] xacc = np.zeros(len_particles) */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 71, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 71, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 71, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { @@ -2067,14 +2098,14 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } } if (!__pyx_t_6) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -2083,32 +2114,32 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 71, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 71, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 73, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xpos.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_xpos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 71, __pyx_L1_error) + __PYX_ERR(0, 73, __pyx_L1_error) } else {__pyx_pybuffernd_xpos.diminfo[0].strides = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xpos.diminfo[0].shape = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.shape[0]; } } @@ -2116,19 +2147,19 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py __pyx_v_xpos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":72 + /* "src/_ccomp.pyx":74 * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] yacc = np.zeros(len_particles) */ - __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 72, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 72, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 72, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { @@ -2141,14 +2172,14 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } } if (!__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -2157,32 +2188,32 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 72, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 72, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 74, __pyx_L1_error) __pyx_t_9 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ypos.rcbuffer->pybuffer, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_ypos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 72, __pyx_L1_error) + __PYX_ERR(0, 74, __pyx_L1_error) } else {__pyx_pybuffernd_ypos.diminfo[0].strides = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ypos.diminfo[0].shape = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.shape[0]; } } @@ -2190,19 +2221,19 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py __pyx_v_ypos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":73 + /* "src/_ccomp.pyx":75 * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] xacc = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] yacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) */ - __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { @@ -2215,14 +2246,14 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } } if (!__pyx_t_5) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; @@ -2231,32 +2262,32 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { - __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_t_7); __pyx_t_7 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 73, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 75, __pyx_L1_error) __pyx_t_10 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xacc.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_xacc = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xacc.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 73, __pyx_L1_error) + __PYX_ERR(0, 75, __pyx_L1_error) } else {__pyx_pybuffernd_xacc.diminfo[0].strides = __pyx_pybuffernd_xacc.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xacc.diminfo[0].shape = __pyx_pybuffernd_xacc.rcbuffer->pybuffer.shape[0]; } } @@ -2264,19 +2295,19 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py __pyx_v_xacc = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":74 + /* "src/_ccomp.pyx":76 * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] xacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] yacc = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] force_arr = np.zeros(pairs) */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 74, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 74, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { @@ -2289,14 +2320,14 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } } if (!__pyx_t_7) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; @@ -2305,32 +2336,32 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 74, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = NULL; __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_6); __pyx_t_6 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 74, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 76, __pyx_L1_error) __pyx_t_11 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_yacc.rcbuffer->pybuffer, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_yacc = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_yacc.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 74, __pyx_L1_error) + __PYX_ERR(0, 76, __pyx_L1_error) } else {__pyx_pybuffernd_yacc.diminfo[0].strides = __pyx_pybuffernd_yacc.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_yacc.diminfo[0].shape = __pyx_pybuffernd_yacc.rcbuffer->pybuffer.shape[0]; } } @@ -2338,16 +2369,16 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py __pyx_v_yacc = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":75 + /* "src/_ccomp.pyx":77 * cdef np.ndarray[DTYPE_t, ndim=1] xacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] yacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] force_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 75, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 75, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; @@ -2361,13 +2392,13 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } } if (!__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -2375,31 +2406,31 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 75, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_INCREF(__pyx_v_pairs); __Pyx_GIVEREF(__pyx_v_pairs); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_pairs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 75, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 77, __pyx_L1_error) __pyx_t_12 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_distances_arr.rcbuffer->pybuffer, (PyObject*)__pyx_t_12, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_distances_arr = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 75, __pyx_L1_error) + __PYX_ERR(0, 77, __pyx_L1_error) } else {__pyx_pybuffernd_distances_arr.diminfo[0].strides = __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_distances_arr.diminfo[0].shape = __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.shape[0]; } } @@ -2407,16 +2438,16 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py __pyx_v_distances_arr = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":76 + /* "src/_ccomp.pyx":78 * cdef np.ndarray[DTYPE_t, ndim=1] yacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] force_arr = np.zeros(pairs) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) * cdef double cut = cut_off */ - __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 76, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 76, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; @@ -2430,13 +2461,13 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } } if (!__pyx_t_5) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -2444,31 +2475,31 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 76, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_INCREF(__pyx_v_pairs); __Pyx_GIVEREF(__pyx_v_pairs); PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_pairs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 76, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 78, __pyx_L1_error) __pyx_t_13 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_force_arr.rcbuffer->pybuffer, (PyObject*)__pyx_t_13, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_force_arr = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_force_arr.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 76, __pyx_L1_error) + __PYX_ERR(0, 78, __pyx_L1_error) } else {__pyx_pybuffernd_force_arr.diminfo[0].strides = __pyx_pybuffernd_force_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_force_arr.diminfo[0].shape = __pyx_pybuffernd_force_arr.rcbuffer->pybuffer.shape[0]; } } @@ -2476,16 +2507,16 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py __pyx_v_force_arr = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":77 + /* "src/_ccomp.pyx":79 * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] force_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) # <<<<<<<<<<<<<< * cdef double cut = cut_off * cdef double ac = a */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 77, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 77, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -2499,13 +2530,13 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } } if (!__pyx_t_6) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -2513,31 +2544,31 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 77, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_INCREF(__pyx_v_pairs); __Pyx_GIVEREF(__pyx_v_pairs); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_pairs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 77, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 79, __pyx_L1_error) __pyx_t_14 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_energy_arr.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_energy_arr = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 77, __pyx_L1_error) + __PYX_ERR(0, 79, __pyx_L1_error) } else {__pyx_pybuffernd_energy_arr.diminfo[0].strides = __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_energy_arr.diminfo[0].shape = __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.shape[0]; } } @@ -2545,47 +2576,47 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py __pyx_v_energy_arr = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":78 + /* "src/_ccomp.pyx":80 * cdef np.ndarray[DTYPE_t, ndim=1] force_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) * cdef double cut = cut_off # <<<<<<<<<<<<<< * cdef double ac = a * cdef double bc = b */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 78, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 80, __pyx_L1_error) __pyx_v_cut = __pyx_t_4; - /* "src/_ccomp.pyx":79 + /* "src/_ccomp.pyx":81 * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) * cdef double cut = cut_off * cdef double ac = a # <<<<<<<<<<<<<< * cdef double bc = b * cdef double massc = mass */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 79, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 81, __pyx_L1_error) __pyx_v_ac = __pyx_t_4; - /* "src/_ccomp.pyx":80 + /* "src/_ccomp.pyx":82 * cdef double cut = cut_off * cdef double ac = a * cdef double bc = b # <<<<<<<<<<<<<< * cdef double massc = mass * */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_b); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 80, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_b); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L1_error) __pyx_v_bc = __pyx_t_4; - /* "src/_ccomp.pyx":81 + /* "src/_ccomp.pyx":83 * cdef double ac = a * cdef double bc = b * cdef double massc = mass # <<<<<<<<<<<<<< * * for i in range(0, len_particles): */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_mass); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 81, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_mass); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 83, __pyx_L1_error) __pyx_v_massc = __pyx_t_4; - /* "src/_ccomp.pyx":83 + /* "src/_ccomp.pyx":85 * cdef double massc = mass * * for i in range(0, len_particles): # <<<<<<<<<<<<<< @@ -2597,19 +2628,19 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) { __pyx_v_i = __pyx_t_16; - /* "src/_ccomp.pyx":84 + /* "src/_ccomp.pyx":86 * * for i in range(0, len_particles): * xpos[i] = particles['xposition'][i] # <<<<<<<<<<<<<< * ypos[i] = particles['yposition'][i] * xacc[i] = 0 */ - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 84, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 84, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_17 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 84, __pyx_L1_error) + __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_17 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 86, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_18 = __pyx_v_i; __pyx_t_19 = -1; @@ -2619,23 +2650,23 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_xpos.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 84, __pyx_L1_error) + __PYX_ERR(0, 86, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_xpos.diminfo[0].strides) = __pyx_t_17; - /* "src/_ccomp.pyx":85 + /* "src/_ccomp.pyx":87 * for i in range(0, len_particles): * xpos[i] = particles['xposition'][i] * ypos[i] = particles['yposition'][i] # <<<<<<<<<<<<<< * xacc[i] = 0 * yacc[i] = 0 */ - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 85, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 85, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_17 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 85, __pyx_L1_error) + __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_17 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_20 = __pyx_v_i; __pyx_t_19 = -1; @@ -2645,11 +2676,11 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } else if (unlikely(__pyx_t_20 >= __pyx_pybuffernd_ypos.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 85, __pyx_L1_error) + __PYX_ERR(0, 87, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_ypos.diminfo[0].strides) = __pyx_t_17; - /* "src/_ccomp.pyx":86 + /* "src/_ccomp.pyx":88 * xpos[i] = particles['xposition'][i] * ypos[i] = particles['yposition'][i] * xacc[i] = 0 # <<<<<<<<<<<<<< @@ -2664,11 +2695,11 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_xacc.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 86, __pyx_L1_error) + __PYX_ERR(0, 88, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xacc.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_xacc.diminfo[0].strides) = 0.0; - /* "src/_ccomp.pyx":87 + /* "src/_ccomp.pyx":89 * ypos[i] = particles['yposition'][i] * xacc[i] = 0 * yacc[i] = 0 # <<<<<<<<<<<<<< @@ -2683,12 +2714,12 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_yacc.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 87, __pyx_L1_error) + __PYX_ERR(0, 89, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yacc.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_yacc.diminfo[0].strides) = 0.0; } - /* "src/_ccomp.pyx":89 + /* "src/_ccomp.pyx":91 * yacc[i] = 0 * * compute_accelerations(len_particles, xpos.data, # <<<<<<<<<<<<<< @@ -2697,7 +2728,7 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py */ compute_accelerations(__pyx_v_len_particles, ((double const *)__pyx_v_xpos->data), ((double const *)__pyx_v_ypos->data), ((double *)__pyx_v_xacc->data), ((double *)__pyx_v_yacc->data), ((double *)__pyx_v_distances_arr->data), __pyx_v_box_l, ((double *)__pyx_v_force_arr->data), ((double *)__pyx_v_energy_arr->data), __pyx_v_cut, __pyx_v_ac, __pyx_v_bc, __pyx_v_massc); - /* "src/_ccomp.pyx":95 + /* "src/_ccomp.pyx":97 * energy_arr.data, cut, ac, bc, massc) * * for i in range(0, len_particles): # <<<<<<<<<<<<<< @@ -2709,7 +2740,7 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) { __pyx_v_i = __pyx_t_16; - /* "src/_ccomp.pyx":96 + /* "src/_ccomp.pyx":98 * * for i in range(0, len_particles): * particles['xacceleration'][i] = xacc[i] # <<<<<<<<<<<<<< @@ -2724,17 +2755,17 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_xacc.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 96, __pyx_L1_error) + __PYX_ERR(0, 98, __pyx_L1_error) } - __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xacc.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_xacc.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 96, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xacc.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_xacc.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xacceleration); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 96, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xacceleration); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 96, __pyx_L1_error) + if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 98, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":97 + /* "src/_ccomp.pyx":99 * for i in range(0, len_particles): * particles['xacceleration'][i] = xacc[i] * particles['yacceleration'][i] = yacc[i] # <<<<<<<<<<<<<< @@ -2749,18 +2780,18 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_yacc.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 97, __pyx_L1_error) + __PYX_ERR(0, 99, __pyx_L1_error) } - __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yacc.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_yacc.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 97, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yacc.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_yacc.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 99, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yacceleration); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 97, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yacceleration); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 99, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 97, __pyx_L1_error) + if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 99, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - /* "src/_ccomp.pyx":100 + /* "src/_ccomp.pyx":102 * * * return particles, distances_arr, force_arr, energy_arr # <<<<<<<<<<<<<< @@ -2768,7 +2799,7 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py * def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 100, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_particles); __Pyx_GIVEREF(__pyx_v_particles); @@ -2838,7 +2869,7 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py return __pyx_r; } -/* "src/_ccomp.pyx":102 +/* "src/_ccomp.pyx":104 * return particles, distances_arr, force_arr, energy_arr * * def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): # <<<<<<<<<<<<<< @@ -2890,13 +2921,13 @@ static PyObject *__pyx_pw_4pylj_4comp_3compute_energy(PyObject *__pyx_self, PyOb case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_box_length)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("compute_energy", 0, 3, 5, 1); __PYX_ERR(0, 102, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("compute_energy", 0, 3, 5, 1); __PYX_ERR(0, 104, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cut_off)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("compute_energy", 0, 3, 5, 2); __PYX_ERR(0, 102, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("compute_energy", 0, 3, 5, 2); __PYX_ERR(0, 104, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: @@ -2912,7 +2943,7 @@ static PyObject *__pyx_pw_4pylj_4comp_3compute_energy(PyObject *__pyx_self, PyOb } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "compute_energy") < 0)) __PYX_ERR(0, 102, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "compute_energy") < 0)) __PYX_ERR(0, 104, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -2935,7 +2966,7 @@ static PyObject *__pyx_pw_4pylj_4comp_3compute_energy(PyObject *__pyx_self, PyOb } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("compute_energy", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 102, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("compute_energy", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 104, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pylj.comp.compute_energy", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -3005,57 +3036,66 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_pybuffernd_energy_arr.data = NULL; __pyx_pybuffernd_energy_arr.rcbuffer = &__pyx_pybuffer_energy_arr; - /* "src/_ccomp.pyx":133 + /* "src/_ccomp.pyx":135 * Current energies between pairs of particles in the simulation. * """ + * print("This function is deprecated, please use pairwise.compute_energy, " # <<<<<<<<<<<<<< + * "if you have the compiled dist function, it is just as fast. ") + * cdef int len_particles = particles['xposition'].size + */ + if (__Pyx_PrintOne(0, __pyx_kp_s_This_function_is_deprecated_plea_2) < 0) __PYX_ERR(0, 135, __pyx_L1_error) + + /* "src/_ccomp.pyx":137 + * print("This function is deprecated, please use pairwise.compute_energy, " + * "if you have the compiled dist function, it is just as fast. ") * cdef int len_particles = particles['xposition'].size # <<<<<<<<<<<<<< * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length */ - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 133, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 133, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 133, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_len_particles = __pyx_t_3; - /* "src/_ccomp.pyx":134 - * """ + /* "src/_ccomp.pyx":138 + * "if you have the compiled dist function, it is just as fast. ") * cdef int len_particles = particles['xposition'].size * pairs = int((len_particles - 1) * len_particles / 2) # <<<<<<<<<<<<<< * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) */ - __pyx_t_2 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 134, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_pairs = __pyx_t_2; __pyx_t_2 = 0; - /* "src/_ccomp.pyx":135 + /* "src/_ccomp.pyx":139 * cdef int len_particles = particles['xposition'].size * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 135, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 139, __pyx_L1_error) __pyx_v_box_l = __pyx_t_4; - /* "src/_ccomp.pyx":136 + /* "src/_ccomp.pyx":140 * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 136, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 136, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 136, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { @@ -3068,14 +3108,14 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } } if (!__pyx_t_6) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 136, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 136, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -3084,32 +3124,32 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 136, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 136, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 136, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 136, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 140, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xpos.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_xpos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 136, __pyx_L1_error) + __PYX_ERR(0, 140, __pyx_L1_error) } else {__pyx_pybuffernd_xpos.diminfo[0].strides = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xpos.diminfo[0].shape = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.shape[0]; } } @@ -3117,19 +3157,19 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_v_xpos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":137 + /* "src/_ccomp.pyx":141 * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) */ - __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 137, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 137, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 137, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { @@ -3142,14 +3182,14 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } } if (!__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -3158,32 +3198,32 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 137, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 137, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 141, __pyx_L1_error) __pyx_t_9 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ypos.rcbuffer->pybuffer, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_ypos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 137, __pyx_L1_error) + __PYX_ERR(0, 141, __pyx_L1_error) } else {__pyx_pybuffernd_ypos.diminfo[0].strides = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ypos.diminfo[0].shape = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.shape[0]; } } @@ -3191,16 +3231,16 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_v_ypos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":138 + /* "src/_ccomp.pyx":142 * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) * cdef double cut = cut_off */ - __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 138, __pyx_L1_error) + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 138, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; @@ -3214,13 +3254,13 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } } if (!__pyx_t_7) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 138, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 138, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -3228,31 +3268,31 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 138, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 138, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = NULL; __Pyx_INCREF(__pyx_v_pairs); __Pyx_GIVEREF(__pyx_v_pairs); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_pairs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 138, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 138, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 142, __pyx_L1_error) __pyx_t_10 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_distances_arr.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_distances_arr = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 138, __pyx_L1_error) + __PYX_ERR(0, 142, __pyx_L1_error) } else {__pyx_pybuffernd_distances_arr.diminfo[0].strides = __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_distances_arr.diminfo[0].shape = __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.shape[0]; } } @@ -3260,16 +3300,16 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_v_distances_arr = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":139 + /* "src/_ccomp.pyx":143 * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) # <<<<<<<<<<<<<< * cdef double cut = cut_off * cdef double ac = a */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 139, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 139, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -3283,13 +3323,13 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } } if (!__pyx_t_6) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -3297,31 +3337,31 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 139, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_INCREF(__pyx_v_pairs); __Pyx_GIVEREF(__pyx_v_pairs); PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_pairs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 139, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 143, __pyx_L1_error) __pyx_t_11 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_energy_arr.rcbuffer->pybuffer, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_energy_arr = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 139, __pyx_L1_error) + __PYX_ERR(0, 143, __pyx_L1_error) } else {__pyx_pybuffernd_energy_arr.diminfo[0].strides = __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_energy_arr.diminfo[0].shape = __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.shape[0]; } } @@ -3329,37 +3369,37 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_v_energy_arr = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":140 + /* "src/_ccomp.pyx":144 * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) * cdef double cut = cut_off # <<<<<<<<<<<<<< * cdef double ac = a * cdef double bc = b */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 144, __pyx_L1_error) __pyx_v_cut = __pyx_t_4; - /* "src/_ccomp.pyx":141 + /* "src/_ccomp.pyx":145 * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) * cdef double cut = cut_off * cdef double ac = a # <<<<<<<<<<<<<< * cdef double bc = b * */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 145, __pyx_L1_error) __pyx_v_ac = __pyx_t_4; - /* "src/_ccomp.pyx":142 + /* "src/_ccomp.pyx":146 * cdef double cut = cut_off * cdef double ac = a * cdef double bc = b # <<<<<<<<<<<<<< * * */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_b); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 142, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_b); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 146, __pyx_L1_error) __pyx_v_bc = __pyx_t_4; - /* "src/_ccomp.pyx":145 + /* "src/_ccomp.pyx":149 * * * for i in range(0, len_particles): # <<<<<<<<<<<<<< @@ -3371,19 +3411,19 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) { __pyx_v_i = __pyx_t_13; - /* "src/_ccomp.pyx":146 + /* "src/_ccomp.pyx":150 * * for i in range(0, len_particles): * xpos[i] = particles['xposition'][i] # <<<<<<<<<<<<<< * ypos[i] = particles['yposition'][i] * */ - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 146, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 146, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_14 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 146, __pyx_L1_error) + __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_14 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 150, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_15 = __pyx_v_i; __pyx_t_16 = -1; @@ -3393,23 +3433,23 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_xpos.diminfo[0].shape)) __pyx_t_16 = 0; if (unlikely(__pyx_t_16 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_16); - __PYX_ERR(0, 146, __pyx_L1_error) + __PYX_ERR(0, 150, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_xpos.diminfo[0].strides) = __pyx_t_14; - /* "src/_ccomp.pyx":147 + /* "src/_ccomp.pyx":151 * for i in range(0, len_particles): * xpos[i] = particles['xposition'][i] * ypos[i] = particles['yposition'][i] # <<<<<<<<<<<<<< * * */ - __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 147, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 147, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_14 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 147, __pyx_L1_error) + __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_14 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_17 = __pyx_v_i; __pyx_t_16 = -1; @@ -3419,12 +3459,12 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_ypos.diminfo[0].shape)) __pyx_t_16 = 0; if (unlikely(__pyx_t_16 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_16); - __PYX_ERR(0, 147, __pyx_L1_error) + __PYX_ERR(0, 151, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_ypos.diminfo[0].strides) = __pyx_t_14; } - /* "src/_ccomp.pyx":150 + /* "src/_ccomp.pyx":154 * * * compute_energies(len_particles, xpos.data, # <<<<<<<<<<<<<< @@ -3433,7 +3473,7 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ */ compute_energies(__pyx_v_len_particles, ((double const *)__pyx_v_xpos->data), ((double const *)__pyx_v_ypos->data), ((double *)__pyx_v_distances_arr->data), __pyx_v_box_l, ((double *)__pyx_v_energy_arr->data), __pyx_v_cut, __pyx_v_ac, __pyx_v_bc); - /* "src/_ccomp.pyx":154 + /* "src/_ccomp.pyx":158 * box_l, energy_arr.data, cut, ac, bc) * * return distances_arr, energy_arr # <<<<<<<<<<<<<< @@ -3441,7 +3481,7 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ * def calculate_pressure(particles, box_length, temperature, cut_off, */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 154, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_distances_arr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_distances_arr)); @@ -3453,7 +3493,7 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_t_2 = 0; goto __pyx_L0; - /* "src/_ccomp.pyx":102 + /* "src/_ccomp.pyx":104 * return particles, distances_arr, force_arr, energy_arr * * def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): # <<<<<<<<<<<<<< @@ -3496,7 +3536,7 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ return __pyx_r; } -/* "src/_ccomp.pyx":156 +/* "src/_ccomp.pyx":160 * return distances_arr, energy_arr * * def calculate_pressure(particles, box_length, temperature, cut_off, # <<<<<<<<<<<<<< @@ -3551,19 +3591,19 @@ static PyObject *__pyx_pw_4pylj_4comp_5calculate_pressure(PyObject *__pyx_self, case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_box_length)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("calculate_pressure", 0, 4, 6, 1); __PYX_ERR(0, 156, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("calculate_pressure", 0, 4, 6, 1); __PYX_ERR(0, 160, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_temperature)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("calculate_pressure", 0, 4, 6, 2); __PYX_ERR(0, 156, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("calculate_pressure", 0, 4, 6, 2); __PYX_ERR(0, 160, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cut_off)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("calculate_pressure", 0, 4, 6, 3); __PYX_ERR(0, 156, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("calculate_pressure", 0, 4, 6, 3); __PYX_ERR(0, 160, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: @@ -3579,7 +3619,7 @@ static PyObject *__pyx_pw_4pylj_4comp_5calculate_pressure(PyObject *__pyx_self, } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculate_pressure") < 0)) __PYX_ERR(0, 156, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculate_pressure") < 0)) __PYX_ERR(0, 160, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -3604,7 +3644,7 @@ static PyObject *__pyx_pw_4pylj_4comp_5calculate_pressure(PyObject *__pyx_self, } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("calculate_pressure", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 156, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("calculate_pressure", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 160, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pylj.comp.calculate_pressure", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -3659,35 +3699,44 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject __pyx_pybuffernd_ypos.data = NULL; __pyx_pybuffernd_ypos.rcbuffer = &__pyx_pybuffer_ypos; - /* "src/_ccomp.pyx":189 + /* "src/_ccomp.pyx":193 * Instantaneous pressure of the simulation. * """ + * print("This function is deprecated, please use " # <<<<<<<<<<<<<< + * "pairwise.calculate_pressure, if you have the compiled dist " + * "function, it is just as fast. ") + */ + if (__Pyx_PrintOne(0, __pyx_kp_s_This_function_is_deprecated_plea_3) < 0) __PYX_ERR(0, 193, __pyx_L1_error) + + /* "src/_ccomp.pyx":196 + * "pairwise.calculate_pressure, if you have the compiled dist " + * "function, it is just as fast. ") * cdef int number_of_particles = particles['xposition'].size # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(number_of_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(number_of_particles) */ - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 189, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 189, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 189, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 196, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_number_of_particles = __pyx_t_3; - /* "src/_ccomp.pyx":190 - * """ + /* "src/_ccomp.pyx":197 + * "function, it is just as fast. ") * cdef int number_of_particles = particles['xposition'].size * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(number_of_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(number_of_particles) * cdef double box_l = box_length */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 190, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 190, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_number_of_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 190, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_number_of_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -3700,14 +3749,14 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject } } if (!__pyx_t_5) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 190, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 190, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -3716,32 +3765,32 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 190, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 190, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 190, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 190, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 197, __pyx_L1_error) __pyx_t_7 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xpos.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_xpos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 190, __pyx_L1_error) + __PYX_ERR(0, 197, __pyx_L1_error) } else {__pyx_pybuffernd_xpos.diminfo[0].strides = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xpos.diminfo[0].shape = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.shape[0]; } } @@ -3749,19 +3798,19 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject __pyx_v_xpos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":191 + /* "src/_ccomp.pyx":198 * cdef int number_of_particles = particles['xposition'].size * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(number_of_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(number_of_particles) # <<<<<<<<<<<<<< * cdef double box_l = box_length * cdef double pressure = 0. */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_number_of_particles); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_number_of_particles); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { @@ -3774,14 +3823,14 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject } } if (!__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -3790,32 +3839,32 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 191, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 198, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ypos.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_ypos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 191, __pyx_L1_error) + __PYX_ERR(0, 198, __pyx_L1_error) } else {__pyx_pybuffernd_ypos.diminfo[0].strides = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ypos.diminfo[0].shape = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.shape[0]; } } @@ -3823,17 +3872,17 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject __pyx_v_ypos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":192 + /* "src/_ccomp.pyx":199 * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(number_of_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(number_of_particles) * cdef double box_l = box_length # <<<<<<<<<<<<<< * cdef double pressure = 0. * cdef double temp = temperature */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 192, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 199, __pyx_L1_error) __pyx_v_box_l = __pyx_t_9; - /* "src/_ccomp.pyx":193 + /* "src/_ccomp.pyx":200 * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(number_of_particles) * cdef double box_l = box_length * cdef double pressure = 0. # <<<<<<<<<<<<<< @@ -3842,47 +3891,47 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject */ __pyx_v_pressure = 0.; - /* "src/_ccomp.pyx":194 + /* "src/_ccomp.pyx":201 * cdef double box_l = box_length * cdef double pressure = 0. * cdef double temp = temperature # <<<<<<<<<<<<<< * cdef double cut = cut_off * cdef double ac = a */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_temperature); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 194, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_temperature); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 201, __pyx_L1_error) __pyx_v_temp = __pyx_t_9; - /* "src/_ccomp.pyx":195 + /* "src/_ccomp.pyx":202 * cdef double pressure = 0. * cdef double temp = temperature * cdef double cut = cut_off # <<<<<<<<<<<<<< * cdef double ac = a * cdef double bc = b */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 195, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 202, __pyx_L1_error) __pyx_v_cut = __pyx_t_9; - /* "src/_ccomp.pyx":196 + /* "src/_ccomp.pyx":203 * cdef double temp = temperature * cdef double cut = cut_off * cdef double ac = a # <<<<<<<<<<<<<< * cdef double bc = b * */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 196, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L1_error) __pyx_v_ac = __pyx_t_9; - /* "src/_ccomp.pyx":197 + /* "src/_ccomp.pyx":204 * cdef double cut = cut_off * cdef double ac = a * cdef double bc = b # <<<<<<<<<<<<<< * * */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_b); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_b); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 204, __pyx_L1_error) __pyx_v_bc = __pyx_t_9; - /* "src/_ccomp.pyx":200 + /* "src/_ccomp.pyx":207 * * * for i in range(0, number_of_particles): # <<<<<<<<<<<<<< @@ -3894,19 +3943,19 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) { __pyx_v_i = __pyx_t_11; - /* "src/_ccomp.pyx":201 + /* "src/_ccomp.pyx":208 * * for i in range(0, number_of_particles): * xpos[i] = particles['xposition'][i] # <<<<<<<<<<<<<< * ypos[i] = particles['yposition'][i] * */ - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 201, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 201, __pyx_L1_error) + __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 208, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_13 = __pyx_v_i; __pyx_t_14 = -1; @@ -3916,23 +3965,23 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject } else if (unlikely(__pyx_t_13 >= __pyx_pybuffernd_xpos.diminfo[0].shape)) __pyx_t_14 = 0; if (unlikely(__pyx_t_14 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 201, __pyx_L1_error) + __PYX_ERR(0, 208, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_xpos.diminfo[0].strides) = __pyx_t_12; - /* "src/_ccomp.pyx":202 + /* "src/_ccomp.pyx":209 * for i in range(0, number_of_particles): * xpos[i] = particles['xposition'][i] * ypos[i] = particles['yposition'][i] # <<<<<<<<<<<<<< * * pressure = compute_pressure(number_of_particles, xpos.data, */ - __pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 202, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 202, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 202, __pyx_L1_error) + __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 209, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_15 = __pyx_v_i; __pyx_t_14 = -1; @@ -3942,21 +3991,21 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_ypos.diminfo[0].shape)) __pyx_t_14 = 0; if (unlikely(__pyx_t_14 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 202, __pyx_L1_error) + __PYX_ERR(0, 209, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_ypos.diminfo[0].strides) = __pyx_t_12; } - /* "src/_ccomp.pyx":205 + /* "src/_ccomp.pyx":212 * * pressure = compute_pressure(number_of_particles, xpos.data, * ypos.data, box_l, temperature, # <<<<<<<<<<<<<< * cut, ac, bc) * */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_temperature); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 205, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_temperature); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 212, __pyx_L1_error) - /* "src/_ccomp.pyx":204 + /* "src/_ccomp.pyx":211 * ypos[i] = particles['yposition'][i] * * pressure = compute_pressure(number_of_particles, xpos.data, # <<<<<<<<<<<<<< @@ -3965,7 +4014,7 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject */ __pyx_v_pressure = compute_pressure(__pyx_v_number_of_particles, ((double const *)__pyx_v_xpos->data), ((double const *)__pyx_v_ypos->data), __pyx_v_box_l, __pyx_t_9, __pyx_v_cut, __pyx_v_ac, __pyx_v_bc); - /* "src/_ccomp.pyx":208 + /* "src/_ccomp.pyx":215 * cut, ac, bc) * * return pressure # <<<<<<<<<<<<<< @@ -3973,13 +4022,13 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject * def heat_bath(particles, temperature_sample, bath_temp): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_pressure); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 208, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_pressure); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "src/_ccomp.pyx":156 + /* "src/_ccomp.pyx":160 * return distances_arr, energy_arr * * def calculate_pressure(particles, box_length, temperature, cut_off, # <<<<<<<<<<<<<< @@ -4015,7 +4064,7 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject return __pyx_r; } -/* "src/_ccomp.pyx":210 +/* "src/_ccomp.pyx":217 * return pressure * * def heat_bath(particles, temperature_sample, bath_temp): # <<<<<<<<<<<<<< @@ -4059,17 +4108,17 @@ static PyObject *__pyx_pw_4pylj_4comp_7heat_bath(PyObject *__pyx_self, PyObject case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_temperature_sample)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, 1); __PYX_ERR(0, 210, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, 1); __PYX_ERR(0, 217, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bath_temp)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, 2); __PYX_ERR(0, 210, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, 2); __PYX_ERR(0, 217, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "heat_bath") < 0)) __PYX_ERR(0, 210, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "heat_bath") < 0)) __PYX_ERR(0, 217, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; @@ -4084,7 +4133,7 @@ static PyObject *__pyx_pw_4pylj_4comp_7heat_bath(PyObject *__pyx_self, PyObject } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 210, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 217, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pylj.comp.heat_bath", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -4137,35 +4186,35 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s __pyx_pybuffernd_yvel.data = NULL; __pyx_pybuffernd_yvel.rcbuffer = &__pyx_pybuffer_yvel; - /* "src/_ccomp.pyx":233 + /* "src/_ccomp.pyx":240 * Information about the particles with new, rescaled velocities. * """ * cdef int len_particles = particles['xposition'].size # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xvel = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] yvel = np.zeros(len_particles) */ - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 233, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 233, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 233, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 240, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_len_particles = __pyx_t_3; - /* "src/_ccomp.pyx":234 + /* "src/_ccomp.pyx":241 * """ * cdef int len_particles = particles['xposition'].size * cdef np.ndarray[DTYPE_t, ndim=1] xvel = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] yvel = np.zeros(len_particles) * cdef double average_temp = np.average(temperature_sample) */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 234, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -4178,14 +4227,14 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s } } if (!__pyx_t_5) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 241, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 241, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -4194,32 +4243,32 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 241, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 234, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 234, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 241, __pyx_L1_error) __pyx_t_7 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xvel.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_xvel = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xvel.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 234, __pyx_L1_error) + __PYX_ERR(0, 241, __pyx_L1_error) } else {__pyx_pybuffernd_xvel.diminfo[0].strides = __pyx_pybuffernd_xvel.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xvel.diminfo[0].shape = __pyx_pybuffernd_xvel.rcbuffer->pybuffer.shape[0]; } } @@ -4227,19 +4276,19 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_xvel = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":235 + /* "src/_ccomp.pyx":242 * cdef int len_particles = particles['xposition'].size * cdef np.ndarray[DTYPE_t, ndim=1] xvel = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] yvel = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef double average_temp = np.average(temperature_sample) * cdef double temperature = bath_temp */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 235, __pyx_L1_error) + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 235, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 235, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { @@ -4252,14 +4301,14 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s } } if (!__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -4268,32 +4317,32 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 235, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 235, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 242, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_yvel.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_yvel = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_yvel.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 235, __pyx_L1_error) + __PYX_ERR(0, 242, __pyx_L1_error) } else {__pyx_pybuffernd_yvel.diminfo[0].strides = __pyx_pybuffernd_yvel.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_yvel.diminfo[0].shape = __pyx_pybuffernd_yvel.rcbuffer->pybuffer.shape[0]; } } @@ -4301,16 +4350,16 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_yvel = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":236 + /* "src/_ccomp.pyx":243 * cdef np.ndarray[DTYPE_t, ndim=1] xvel = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] yvel = np.zeros(len_particles) * cdef double average_temp = np.average(temperature_sample) # <<<<<<<<<<<<<< * cdef double temperature = bath_temp * */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 236, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_average); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 236, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_average); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -4324,13 +4373,13 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s } } if (!__pyx_t_6) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_temperature_sample); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 236, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_temperature_sample); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_temperature_sample}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 236, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -4338,39 +4387,39 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_temperature_sample}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 236, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 236, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_INCREF(__pyx_v_temperature_sample); __Pyx_GIVEREF(__pyx_v_temperature_sample); PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_temperature_sample); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 236, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 236, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_average_temp = __pyx_t_9; - /* "src/_ccomp.pyx":237 + /* "src/_ccomp.pyx":244 * cdef np.ndarray[DTYPE_t, ndim=1] yvel = np.zeros(len_particles) * cdef double average_temp = np.average(temperature_sample) * cdef double temperature = bath_temp # <<<<<<<<<<<<<< * * for i in range(0, len_particles): */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_bath_temp); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 237, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_bath_temp); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 244, __pyx_L1_error) __pyx_v_temperature = __pyx_t_9; - /* "src/_ccomp.pyx":239 + /* "src/_ccomp.pyx":246 * cdef double temperature = bath_temp * * for i in range(0, len_particles): # <<<<<<<<<<<<<< @@ -4382,19 +4431,19 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) { __pyx_v_i = __pyx_t_11; - /* "src/_ccomp.pyx":240 + /* "src/_ccomp.pyx":247 * * for i in range(0, len_particles): * xvel[i] = particles['xvelocity'][i] # <<<<<<<<<<<<<< * yvel[i] = particles['yvelocity'][i] * */ - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xvelocity); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 240, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xvelocity); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 240, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 240, __pyx_L1_error) + __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 247, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_13 = __pyx_v_i; __pyx_t_14 = -1; @@ -4404,23 +4453,23 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s } else if (unlikely(__pyx_t_13 >= __pyx_pybuffernd_xvel.diminfo[0].shape)) __pyx_t_14 = 0; if (unlikely(__pyx_t_14 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 240, __pyx_L1_error) + __PYX_ERR(0, 247, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xvel.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_xvel.diminfo[0].strides) = __pyx_t_12; - /* "src/_ccomp.pyx":241 + /* "src/_ccomp.pyx":248 * for i in range(0, len_particles): * xvel[i] = particles['xvelocity'][i] * yvel[i] = particles['yvelocity'][i] # <<<<<<<<<<<<<< * * scale_velocities(len_particles, xvel.data, yvel.data, */ - __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 241, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 241, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 241, __pyx_L1_error) + __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 248, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_15 = __pyx_v_i; __pyx_t_14 = -1; @@ -4430,12 +4479,12 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_yvel.diminfo[0].shape)) __pyx_t_14 = 0; if (unlikely(__pyx_t_14 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 241, __pyx_L1_error) + __PYX_ERR(0, 248, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yvel.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_yvel.diminfo[0].strides) = __pyx_t_12; } - /* "src/_ccomp.pyx":243 + /* "src/_ccomp.pyx":250 * yvel[i] = particles['yvelocity'][i] * * scale_velocities(len_particles, xvel.data, yvel.data, # <<<<<<<<<<<<<< @@ -4444,7 +4493,7 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s */ scale_velocities(__pyx_v_len_particles, ((double *)__pyx_v_xvel->data), ((double *)__pyx_v_yvel->data), __pyx_v_average_temp, __pyx_v_temperature); - /* "src/_ccomp.pyx":246 + /* "src/_ccomp.pyx":253 * average_temp, temperature) * * for i in range(0, len_particles): # <<<<<<<<<<<<<< @@ -4456,7 +4505,7 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) { __pyx_v_i = __pyx_t_11; - /* "src/_ccomp.pyx":247 + /* "src/_ccomp.pyx":254 * * for i in range(0, len_particles): * particles['xvelocity'][i] = xvel[i] # <<<<<<<<<<<<<< @@ -4471,17 +4520,17 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_xvel.diminfo[0].shape)) __pyx_t_14 = 0; if (unlikely(__pyx_t_14 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 247, __pyx_L1_error) + __PYX_ERR(0, 254, __pyx_L1_error) } - __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xvel.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_xvel.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 247, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xvel.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_xvel.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 247, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 247, __pyx_L1_error) + if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 254, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":248 + /* "src/_ccomp.pyx":255 * for i in range(0, len_particles): * particles['xvelocity'][i] = xvel[i] * particles['yvelocity'][i] = yvel[i] # <<<<<<<<<<<<<< @@ -4496,18 +4545,18 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_yvel.diminfo[0].shape)) __pyx_t_14 = 0; if (unlikely(__pyx_t_14 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 248, __pyx_L1_error) + __PYX_ERR(0, 255, __pyx_L1_error) } - __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yvel.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_yvel.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 248, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yvel.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_yvel.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 248, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 248, __pyx_L1_error) + if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 255, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - /* "src/_ccomp.pyx":250 + /* "src/_ccomp.pyx":257 * particles['yvelocity'][i] = yvel[i] * * return particles # <<<<<<<<<<<<<< @@ -4519,7 +4568,7 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s __pyx_r = __pyx_v_particles; goto __pyx_L0; - /* "src/_ccomp.pyx":210 + /* "src/_ccomp.pyx":217 * return pressure * * def heat_bath(particles, temperature_sample, bath_temp): # <<<<<<<<<<<<<< @@ -4555,7 +4604,7 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } -/* "src/_ccomp.pyx":252 +/* "src/_ccomp.pyx":259 * return particles * * def dist(xpos, ypos, box_length): # <<<<<<<<<<<<<< @@ -4599,17 +4648,17 @@ static PyObject *__pyx_pw_4pylj_4comp_9dist(PyObject *__pyx_self, PyObject *__py case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ypos)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("dist", 1, 3, 3, 1); __PYX_ERR(0, 252, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("dist", 1, 3, 3, 1); __PYX_ERR(0, 259, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_box_length)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("dist", 1, 3, 3, 2); __PYX_ERR(0, 252, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("dist", 1, 3, 3, 2); __PYX_ERR(0, 259, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dist") < 0)) __PYX_ERR(0, 252, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dist") < 0)) __PYX_ERR(0, 259, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; @@ -4624,7 +4673,7 @@ static PyObject *__pyx_pw_4pylj_4comp_9dist(PyObject *__pyx_self, PyObject *__py } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("dist", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 252, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("dist", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 259, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pylj.comp.dist", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -4698,35 +4747,35 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, __pyx_pybuffernd_ydistances.data = NULL; __pyx_pybuffernd_ydistances.rcbuffer = &__pyx_pybuffer_ydistances; - /* "src/_ccomp.pyx":275 + /* "src/_ccomp.pyx":282 * The pairs of distances between the particles, in only the y-dimension. * """ * cdef int len_particles = int(xpos.size) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xpositions = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypositions = np.zeros(len_particles) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_xpos, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 275, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_xpos, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 275, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 275, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 282, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_len_particles = __pyx_t_3; - /* "src/_ccomp.pyx":276 + /* "src/_ccomp.pyx":283 * """ * cdef int len_particles = int(xpos.size) * cdef np.ndarray[DTYPE_t, ndim=1] xpositions = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] ypositions = np.zeros(len_particles) * cdef double box_l = box_length */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 276, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 276, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 276, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -4739,14 +4788,14 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, } } if (!__pyx_t_5) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 276, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 276, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -4755,32 +4804,32 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 276, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 276, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 276, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 276, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 283, __pyx_L1_error) __pyx_t_7 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xpositions.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_xpositions = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xpositions.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 276, __pyx_L1_error) + __PYX_ERR(0, 283, __pyx_L1_error) } else {__pyx_pybuffernd_xpositions.diminfo[0].strides = __pyx_pybuffernd_xpositions.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xpositions.diminfo[0].shape = __pyx_pybuffernd_xpositions.rcbuffer->pybuffer.shape[0]; } } @@ -4788,19 +4837,19 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, __pyx_v_xpositions = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":277 + /* "src/_ccomp.pyx":284 * cdef int len_particles = int(xpos.size) * cdef np.ndarray[DTYPE_t, ndim=1] xpositions = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypositions = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] distances = np.zeros(int((len_particles - 1) * len_particles / 2)) */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 277, __pyx_L1_error) + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 277, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 277, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { @@ -4813,14 +4862,14 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, } } if (!__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 277, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 277, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -4829,32 +4878,32 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 277, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 277, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 277, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 277, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 284, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ypositions.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_ypositions = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_ypositions.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 277, __pyx_L1_error) + __PYX_ERR(0, 284, __pyx_L1_error) } else {__pyx_pybuffernd_ypositions.diminfo[0].strides = __pyx_pybuffernd_ypositions.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ypositions.diminfo[0].shape = __pyx_pybuffernd_ypositions.rcbuffer->pybuffer.shape[0]; } } @@ -4862,29 +4911,29 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, __pyx_v_ypositions = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":278 + /* "src/_ccomp.pyx":285 * cdef np.ndarray[DTYPE_t, ndim=1] xpositions = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypositions = np.zeros(len_particles) * cdef double box_l = box_length # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] distances = np.zeros(int((len_particles - 1) * len_particles / 2)) * cdef np.ndarray[DTYPE_t, ndim=1] xdistances = np.zeros(int((len_particles - 1) * len_particles / 2)) */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 278, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 285, __pyx_L1_error) __pyx_v_box_l = __pyx_t_9; - /* "src/_ccomp.pyx":279 + /* "src/_ccomp.pyx":286 * cdef np.ndarray[DTYPE_t, ndim=1] ypositions = np.zeros(len_particles) * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] distances = np.zeros(int((len_particles - 1) * len_particles / 2)) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xdistances = np.zeros(int((len_particles - 1) * len_particles / 2)) * cdef np.ndarray[DTYPE_t, ndim=1] ydistances = np.zeros(int((len_particles - 1) * len_particles / 2)) */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 279, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 279, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 279, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { @@ -4897,14 +4946,14 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, } } if (!__pyx_t_4) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 279, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 279, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; @@ -4913,32 +4962,32 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 279, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { - __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 279, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = NULL; __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_t_6); __pyx_t_6 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 279, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 279, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 286, __pyx_L1_error) __pyx_t_10 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_distances.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_distances = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_distances.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 279, __pyx_L1_error) + __PYX_ERR(0, 286, __pyx_L1_error) } else {__pyx_pybuffernd_distances.diminfo[0].strides = __pyx_pybuffernd_distances.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_distances.diminfo[0].shape = __pyx_pybuffernd_distances.rcbuffer->pybuffer.shape[0]; } } @@ -4946,19 +4995,19 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, __pyx_v_distances = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":280 + /* "src/_ccomp.pyx":287 * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] distances = np.zeros(int((len_particles - 1) * len_particles / 2)) * cdef np.ndarray[DTYPE_t, ndim=1] xdistances = np.zeros(int((len_particles - 1) * len_particles / 2)) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] ydistances = np.zeros(int((len_particles - 1) * len_particles / 2)) * */ - __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 280, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 280, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 280, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { @@ -4971,14 +5020,14 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, } } if (!__pyx_t_6) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -4987,32 +5036,32 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { - __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 280, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 280, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 287, __pyx_L1_error) __pyx_t_11 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xdistances.rcbuffer->pybuffer, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_xdistances = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xdistances.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 280, __pyx_L1_error) + __PYX_ERR(0, 287, __pyx_L1_error) } else {__pyx_pybuffernd_xdistances.diminfo[0].strides = __pyx_pybuffernd_xdistances.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xdistances.diminfo[0].shape = __pyx_pybuffernd_xdistances.rcbuffer->pybuffer.shape[0]; } } @@ -5020,19 +5069,19 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, __pyx_v_xdistances = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":281 + /* "src/_ccomp.pyx":288 * cdef np.ndarray[DTYPE_t, ndim=1] distances = np.zeros(int((len_particles - 1) * len_particles / 2)) * cdef np.ndarray[DTYPE_t, ndim=1] xdistances = np.zeros(int((len_particles - 1) * len_particles / 2)) * cdef np.ndarray[DTYPE_t, ndim=1] ydistances = np.zeros(int((len_particles - 1) * len_particles / 2)) # <<<<<<<<<<<<<< * * */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 281, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 281, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 281, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -5045,14 +5094,14 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, } } if (!__pyx_t_5) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 288, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 288, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -5061,32 +5110,32 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 288, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 281, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 281, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 288, __pyx_L1_error) __pyx_t_12 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ydistances.rcbuffer->pybuffer, (PyObject*)__pyx_t_12, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_ydistances = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_ydistances.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 281, __pyx_L1_error) + __PYX_ERR(0, 288, __pyx_L1_error) } else {__pyx_pybuffernd_ydistances.diminfo[0].strides = __pyx_pybuffernd_ydistances.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ydistances.diminfo[0].shape = __pyx_pybuffernd_ydistances.rcbuffer->pybuffer.shape[0]; } } @@ -5094,7 +5143,7 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, __pyx_v_ydistances = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":284 + /* "src/_ccomp.pyx":291 * * * for i in range(0, len_particles): # <<<<<<<<<<<<<< @@ -5106,16 +5155,16 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) { __pyx_v_i = __pyx_t_14; - /* "src/_ccomp.pyx":285 + /* "src/_ccomp.pyx":292 * * for i in range(0, len_particles): * xpositions[i] = xpos[i] # <<<<<<<<<<<<<< * ypositions[i] = ypos[i] * */ - __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_xpos, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 285, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_xpos, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_15 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 285, __pyx_L1_error) + __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_15 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 292, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_16 = __pyx_v_i; __pyx_t_17 = -1; @@ -5125,20 +5174,20 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_xpositions.diminfo[0].shape)) __pyx_t_17 = 0; if (unlikely(__pyx_t_17 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_17); - __PYX_ERR(0, 285, __pyx_L1_error) + __PYX_ERR(0, 292, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xpositions.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_xpositions.diminfo[0].strides) = __pyx_t_15; - /* "src/_ccomp.pyx":286 + /* "src/_ccomp.pyx":293 * for i in range(0, len_particles): * xpositions[i] = xpos[i] * ypositions[i] = ypos[i] # <<<<<<<<<<<<<< * * get_distances(len_particles, xpositions.data, ypositions.data, */ - __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_ypos, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 286, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_ypos, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_15 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 286, __pyx_L1_error) + __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_15 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 293, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_18 = __pyx_v_i; __pyx_t_17 = -1; @@ -5148,12 +5197,12 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_ypositions.diminfo[0].shape)) __pyx_t_17 = 0; if (unlikely(__pyx_t_17 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_17); - __PYX_ERR(0, 286, __pyx_L1_error) + __PYX_ERR(0, 293, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_ypositions.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_ypositions.diminfo[0].strides) = __pyx_t_15; } - /* "src/_ccomp.pyx":288 + /* "src/_ccomp.pyx":295 * ypositions[i] = ypos[i] * * get_distances(len_particles, xpositions.data, ypositions.data, # <<<<<<<<<<<<<< @@ -5162,13 +5211,13 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, */ get_distances(__pyx_v_len_particles, ((double *)__pyx_v_xpositions->data), ((double *)__pyx_v_ypositions->data), __pyx_v_box_l, ((double *)__pyx_v_distances->data), ((double *)__pyx_v_xdistances->data), ((double *)__pyx_v_ydistances->data)); - /* "src/_ccomp.pyx":291 + /* "src/_ccomp.pyx":298 * box_l, distances.data, xdistances.data, ydistances.data) * * return distances, xdistances, ydistances # <<<<<<<<<<<<<< */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 291, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_distances)); __Pyx_GIVEREF(((PyObject *)__pyx_v_distances)); @@ -5183,7 +5232,7 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_2 = 0; goto __pyx_L0; - /* "src/_ccomp.pyx":252 + /* "src/_ccomp.pyx":259 * return particles * * def dist(xpos, ypos, box_length): # <<<<<<<<<<<<<< @@ -7733,6 +7782,9 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, + {&__pyx_kp_s_This_function_is_deprecated_plea, __pyx_k_This_function_is_deprecated_plea, sizeof(__pyx_k_This_function_is_deprecated_plea), 0, 0, 1, 0}, + {&__pyx_kp_s_This_function_is_deprecated_plea_2, __pyx_k_This_function_is_deprecated_plea_2, sizeof(__pyx_k_This_function_is_deprecated_plea_2), 0, 0, 1, 0}, + {&__pyx_kp_s_This_function_is_deprecated_plea_3, __pyx_k_This_function_is_deprecated_plea_3, sizeof(__pyx_k_This_function_is_deprecated_plea_3), 0, 0, 1, 0}, {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, {&__pyx_n_s_a, __pyx_k_a, sizeof(__pyx_k_a), 0, 0, 1, 1}, {&__pyx_n_s_ac, __pyx_k_ac, sizeof(__pyx_k_ac), 0, 0, 1, 1}, @@ -7752,7 +7804,9 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_dist, __pyx_k_dist, sizeof(__pyx_k_dist), 0, 0, 1, 1}, {&__pyx_n_s_distances, __pyx_k_distances, sizeof(__pyx_k_distances), 0, 0, 1, 1}, {&__pyx_n_s_distances_arr, __pyx_k_distances_arr, sizeof(__pyx_k_distances_arr), 0, 0, 1, 1}, + {&__pyx_n_s_end, __pyx_k_end, sizeof(__pyx_k_end), 0, 0, 1, 1}, {&__pyx_n_s_energy_arr, __pyx_k_energy_arr, sizeof(__pyx_k_energy_arr), 0, 0, 1, 1}, + {&__pyx_n_s_file, __pyx_k_file, sizeof(__pyx_k_file), 0, 0, 1, 1}, {&__pyx_n_s_float64, __pyx_k_float64, sizeof(__pyx_k_float64), 0, 0, 1, 1}, {&__pyx_n_s_force_arr, __pyx_k_force_arr, sizeof(__pyx_k_force_arr), 0, 0, 1, 1}, {&__pyx_n_s_heat_bath, __pyx_k_heat_bath, sizeof(__pyx_k_heat_bath), 0, 0, 1, 1}, @@ -7772,6 +7826,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_pairs, __pyx_k_pairs, sizeof(__pyx_k_pairs), 0, 0, 1, 1}, {&__pyx_n_s_particles, __pyx_k_particles, sizeof(__pyx_k_particles), 0, 0, 1, 1}, {&__pyx_n_s_pressure, __pyx_k_pressure, sizeof(__pyx_k_pressure), 0, 0, 1, 1}, + {&__pyx_n_s_print, __pyx_k_print, sizeof(__pyx_k_print), 0, 0, 1, 1}, {&__pyx_n_s_pylj_comp, __pyx_k_pylj_comp, sizeof(__pyx_k_pylj_comp), 0, 0, 1, 1}, {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, {&__pyx_n_s_size, __pyx_k_size, sizeof(__pyx_k_size), 0, 0, 1, 1}, @@ -7801,7 +7856,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {0, 0, 0, 0, 0, 0, 0} }; static int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 83, __pyx_L1_error) + __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 85, __pyx_L1_error) __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 229, __pyx_L1_error) __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 810, __pyx_L1_error) __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 1000, __pyx_L1_error) @@ -7923,53 +7978,53 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_GIVEREF(__pyx_tuple__10); __pyx_codeobj__11 = (PyObject*)__Pyx_PyCode_New(6, 0, 21, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__10, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_compute_force, 31, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__11)) __PYX_ERR(0, 31, __pyx_L1_error) - /* "src/_ccomp.pyx":102 + /* "src/_ccomp.pyx":104 * return particles, distances_arr, force_arr, energy_arr * * def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): # <<<<<<<<<<<<<< * """Calculates the total energy of the simulation. This uses a * 12-6 Lennard-Jones potential model for Argon with values: */ - __pyx_tuple__12 = PyTuple_Pack(16, __pyx_n_s_particles, __pyx_n_s_box_length, __pyx_n_s_cut_off, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_len_particles, __pyx_n_s_pairs, __pyx_n_s_box_l, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_distances_arr, __pyx_n_s_energy_arr, __pyx_n_s_cut, __pyx_n_s_ac, __pyx_n_s_bc, __pyx_n_s_i); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 102, __pyx_L1_error) + __pyx_tuple__12 = PyTuple_Pack(16, __pyx_n_s_particles, __pyx_n_s_box_length, __pyx_n_s_cut_off, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_len_particles, __pyx_n_s_pairs, __pyx_n_s_box_l, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_distances_arr, __pyx_n_s_energy_arr, __pyx_n_s_cut, __pyx_n_s_ac, __pyx_n_s_bc, __pyx_n_s_i); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 104, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__12); __Pyx_GIVEREF(__pyx_tuple__12); - __pyx_codeobj__13 = (PyObject*)__Pyx_PyCode_New(5, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__12, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_compute_energy, 102, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__13)) __PYX_ERR(0, 102, __pyx_L1_error) + __pyx_codeobj__13 = (PyObject*)__Pyx_PyCode_New(5, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__12, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_compute_energy, 104, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__13)) __PYX_ERR(0, 104, __pyx_L1_error) - /* "src/_ccomp.pyx":156 + /* "src/_ccomp.pyx":160 * return distances_arr, energy_arr * * def calculate_pressure(particles, box_length, temperature, cut_off, # <<<<<<<<<<<<<< * a=1.363e-134, b=9.273e-78): * r"""Calculates the instantaneous pressure of the simulation cell, found */ - __pyx_tuple__14 = PyTuple_Pack(16, __pyx_n_s_particles, __pyx_n_s_box_length, __pyx_n_s_temperature, __pyx_n_s_cut_off, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_number_of_particles, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_box_l, __pyx_n_s_pressure, __pyx_n_s_temp, __pyx_n_s_cut, __pyx_n_s_ac, __pyx_n_s_bc, __pyx_n_s_i); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 156, __pyx_L1_error) + __pyx_tuple__14 = PyTuple_Pack(16, __pyx_n_s_particles, __pyx_n_s_box_length, __pyx_n_s_temperature, __pyx_n_s_cut_off, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_number_of_particles, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_box_l, __pyx_n_s_pressure, __pyx_n_s_temp, __pyx_n_s_cut, __pyx_n_s_ac, __pyx_n_s_bc, __pyx_n_s_i); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 160, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__14); __Pyx_GIVEREF(__pyx_tuple__14); - __pyx_codeobj__15 = (PyObject*)__Pyx_PyCode_New(6, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__14, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_calculate_pressure, 156, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__15)) __PYX_ERR(0, 156, __pyx_L1_error) + __pyx_codeobj__15 = (PyObject*)__Pyx_PyCode_New(6, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__14, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_calculate_pressure, 160, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__15)) __PYX_ERR(0, 160, __pyx_L1_error) - /* "src/_ccomp.pyx":210 + /* "src/_ccomp.pyx":217 * return pressure * * def heat_bath(particles, temperature_sample, bath_temp): # <<<<<<<<<<<<<< * r"""Rescales the velocities of the particles in the system to control the * temperature of the simulation. Thereby allowing for an NVT ensemble. The */ - __pyx_tuple__16 = PyTuple_Pack(9, __pyx_n_s_particles, __pyx_n_s_temperature_sample, __pyx_n_s_bath_temp, __pyx_n_s_len_particles, __pyx_n_s_xvel, __pyx_n_s_yvel, __pyx_n_s_average_temp, __pyx_n_s_temperature, __pyx_n_s_i); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 210, __pyx_L1_error) + __pyx_tuple__16 = PyTuple_Pack(9, __pyx_n_s_particles, __pyx_n_s_temperature_sample, __pyx_n_s_bath_temp, __pyx_n_s_len_particles, __pyx_n_s_xvel, __pyx_n_s_yvel, __pyx_n_s_average_temp, __pyx_n_s_temperature, __pyx_n_s_i); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__16); __Pyx_GIVEREF(__pyx_tuple__16); - __pyx_codeobj__17 = (PyObject*)__Pyx_PyCode_New(3, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__16, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_heat_bath, 210, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__17)) __PYX_ERR(0, 210, __pyx_L1_error) + __pyx_codeobj__17 = (PyObject*)__Pyx_PyCode_New(3, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__16, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_heat_bath, 217, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__17)) __PYX_ERR(0, 217, __pyx_L1_error) - /* "src/_ccomp.pyx":252 + /* "src/_ccomp.pyx":259 * return particles * * def dist(xpos, ypos, box_length): # <<<<<<<<<<<<<< * """Returns the distance array for the set of particles. * */ - __pyx_tuple__18 = PyTuple_Pack(11, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_box_length, __pyx_n_s_len_particles, __pyx_n_s_xpositions, __pyx_n_s_ypositions, __pyx_n_s_box_l, __pyx_n_s_distances, __pyx_n_s_xdistances, __pyx_n_s_ydistances, __pyx_n_s_i); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 252, __pyx_L1_error) + __pyx_tuple__18 = PyTuple_Pack(11, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_box_length, __pyx_n_s_len_particles, __pyx_n_s_xpositions, __pyx_n_s_ypositions, __pyx_n_s_box_l, __pyx_n_s_distances, __pyx_n_s_xdistances, __pyx_n_s_ydistances, __pyx_n_s_i); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__18); __Pyx_GIVEREF(__pyx_tuple__18); - __pyx_codeobj__19 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__18, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_dist, 252, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__19)) __PYX_ERR(0, 252, __pyx_L1_error) + __pyx_codeobj__19 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__18, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_dist, 259, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__19)) __PYX_ERR(0, 259, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; @@ -8278,52 +8333,52 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_compute_force, __pyx_t_2) < 0) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":102 + /* "src/_ccomp.pyx":104 * return particles, distances_arr, force_arr, energy_arr * * def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): # <<<<<<<<<<<<<< * """Calculates the total energy of the simulation. This uses a * 12-6 Lennard-Jones potential model for Argon with values: */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_3compute_energy, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error) + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_3compute_energy, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_compute_energy, __pyx_t_2) < 0) __PYX_ERR(0, 102, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_compute_energy, __pyx_t_2) < 0) __PYX_ERR(0, 104, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":156 + /* "src/_ccomp.pyx":160 * return distances_arr, energy_arr * * def calculate_pressure(particles, box_length, temperature, cut_off, # <<<<<<<<<<<<<< * a=1.363e-134, b=9.273e-78): * r"""Calculates the instantaneous pressure of the simulation cell, found */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_5calculate_pressure, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 156, __pyx_L1_error) + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_5calculate_pressure, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculate_pressure, __pyx_t_2) < 0) __PYX_ERR(0, 156, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculate_pressure, __pyx_t_2) < 0) __PYX_ERR(0, 160, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":210 + /* "src/_ccomp.pyx":217 * return pressure * * def heat_bath(particles, temperature_sample, bath_temp): # <<<<<<<<<<<<<< * r"""Rescales the velocities of the particles in the system to control the * temperature of the simulation. Thereby allowing for an NVT ensemble. The */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_7heat_bath, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 210, __pyx_L1_error) + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_7heat_bath, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_heat_bath, __pyx_t_2) < 0) __PYX_ERR(0, 210, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_heat_bath, __pyx_t_2) < 0) __PYX_ERR(0, 217, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":252 + /* "src/_ccomp.pyx":259 * return particles * * def dist(xpos, ypos, box_length): # <<<<<<<<<<<<<< * """Returns the distance array for the set of particles. * */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_9dist, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 252, __pyx_L1_error) + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_9dist, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_dist, __pyx_t_2) < 0) __PYX_ERR(0, 252, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_dist, __pyx_t_2) < 0) __PYX_ERR(0, 259, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "src/_ccomp.pyx":1 @@ -10177,7 +10232,113 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { #endif - /* CIntFromPyVerify */ + /* Print */ + #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION < 3 +static PyObject *__Pyx_GetStdout(void) { + PyObject *f = PySys_GetObject((char *)"stdout"); + if (!f) { + PyErr_SetString(PyExc_RuntimeError, "lost sys.stdout"); + } + return f; +} +static int __Pyx_Print(PyObject* f, PyObject *arg_tuple, int newline) { + int i; + if (!f) { + if (!(f = __Pyx_GetStdout())) + return -1; + } + Py_INCREF(f); + for (i=0; i < PyTuple_GET_SIZE(arg_tuple); i++) { + PyObject* v; + if (PyFile_SoftSpace(f, 1)) { + if (PyFile_WriteString(" ", f) < 0) + goto error; + } + v = PyTuple_GET_ITEM(arg_tuple, i); + if (PyFile_WriteObject(v, f, Py_PRINT_RAW) < 0) + goto error; + if (PyString_Check(v)) { + char *s = PyString_AsString(v); + Py_ssize_t len = PyString_Size(v); + if (len > 0) { + switch (s[len-1]) { + case ' ': break; + case '\f': case '\r': case '\n': case '\t': case '\v': + PyFile_SoftSpace(f, 0); + break; + default: break; + } + } + } + } + if (newline) { + if (PyFile_WriteString("\n", f) < 0) + goto error; + PyFile_SoftSpace(f, 0); + } + Py_DECREF(f); + return 0; +error: + Py_DECREF(f); + return -1; +} +#else +static int __Pyx_Print(PyObject* stream, PyObject *arg_tuple, int newline) { + PyObject* kwargs = 0; + PyObject* result = 0; + PyObject* end_string; + if (unlikely(!__pyx_print)) { + __pyx_print = PyObject_GetAttr(__pyx_b, __pyx_n_s_print); + if (!__pyx_print) + return -1; + } + if (stream) { + kwargs = PyDict_New(); + if (unlikely(!kwargs)) + return -1; + if (unlikely(PyDict_SetItem(kwargs, __pyx_n_s_file, stream) < 0)) + goto bad; + if (!newline) { + end_string = PyUnicode_FromStringAndSize(" ", 1); + if (unlikely(!end_string)) + goto bad; + if (PyDict_SetItem(kwargs, __pyx_n_s_end, end_string) < 0) { + Py_DECREF(end_string); + goto bad; + } + Py_DECREF(end_string); + } + } else if (!newline) { + if (unlikely(!__pyx_print_kwargs)) { + __pyx_print_kwargs = PyDict_New(); + if (unlikely(!__pyx_print_kwargs)) + return -1; + end_string = PyUnicode_FromStringAndSize(" ", 1); + if (unlikely(!end_string)) + return -1; + if (PyDict_SetItem(__pyx_print_kwargs, __pyx_n_s_end, end_string) < 0) { + Py_DECREF(end_string); + return -1; + } + Py_DECREF(end_string); + } + kwargs = __pyx_print_kwargs; + } + result = PyObject_Call(__pyx_print, arg_tuple, kwargs); + if (unlikely(kwargs) && (kwargs != __pyx_print_kwargs)) + Py_DECREF(kwargs); + if (!result) + return -1; + Py_DECREF(result); + return 0; +bad: + if (kwargs != __pyx_print_kwargs) + Py_XDECREF(kwargs); + return -1; +} +#endif + +/* 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)\ @@ -10602,6 +10763,43 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { } } +/* PrintOne */ + #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION < 3 +static int __Pyx_PrintOne(PyObject* f, PyObject *o) { + if (!f) { + if (!(f = __Pyx_GetStdout())) + return -1; + } + Py_INCREF(f); + if (PyFile_SoftSpace(f, 0)) { + if (PyFile_WriteString(" ", f) < 0) + goto error; + } + if (PyFile_WriteObject(o, f, Py_PRINT_RAW) < 0) + goto error; + if (PyFile_WriteString("\n", f) < 0) + goto error; + Py_DECREF(f); + return 0; +error: + Py_DECREF(f); + return -1; + /* the line below is just to avoid C compiler + * warnings about unused functions */ + return __Pyx_Print(f, NULL, 0); +} +#else +static int __Pyx_PrintOne(PyObject* stream, PyObject *o) { + int res; + PyObject* arg_tuple = PyTuple_Pack(1, o); + if (unlikely(!arg_tuple)) + return -1; + res = __Pyx_Print(stream, arg_tuple, 1); + Py_DECREF(arg_tuple); + return res; +} +#endif + /* CIntFromPy */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { const int neg_one = (int) -1, const_zero = (int) 0; diff --git a/src/_ccomp.pyx b/src/_ccomp.pyx index 7cb6407..5cbc6a8 100644 --- a/src/_ccomp.pyx +++ b/src/_ccomp.pyx @@ -65,6 +65,8 @@ def compute_force(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, float, array_like Current energies between pairs of particles in the simulation. """ + print("This function is deprecated, please use pairwise.compute_force, if " + "you have the compiled dist function, it is just as fast. ") cdef int len_particles = particles['xposition'].size pairs = int((len_particles - 1) * len_particles / 2) cdef double box_l = box_length @@ -130,6 +132,8 @@ def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): float, array_like Current energies between pairs of particles in the simulation. """ + print("This function is deprecated, please use pairwise.compute_energy, " + "if you have the compiled dist function, it is just as fast. ") cdef int len_particles = particles['xposition'].size pairs = int((len_particles - 1) * len_particles / 2) cdef double box_l = box_length @@ -186,6 +190,9 @@ def calculate_pressure(particles, box_length, temperature, cut_off, float: Instantaneous pressure of the simulation. """ + print("This function is deprecated, please use " + "pairwise.calculate_pressure, if you have the compiled dist " + "function, it is just as fast. ") cdef int number_of_particles = particles['xposition'].size cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(number_of_particles) cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(number_of_particles) From d6248729446e2253284f6c0c04d46fe081ca9ef4 Mon Sep 17 00:00:00 2001 From: arm61 Date: Sun, 26 Aug 2018 13:29:36 +0100 Subject: [PATCH 07/14] test for initialize --- pylj/tests/test_mc.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pylj/tests/test_mc.py b/pylj/tests/test_mc.py index e239d08..879127c 100644 --- a/pylj/tests/test_mc.py +++ b/pylj/tests/test_mc.py @@ -12,6 +12,14 @@ def test_initialise_square(self): assert_almost_equal(a.particles['xposition']*1e10, [2, 2]) assert_almost_equal(a.particles['yposition']*1e10, [2, 6]) + def test_initialize_square(self): + a = mc.initialize(2, 300, 8, 'square') + assert_equal(a.number_of_particles, 2) + assert_almost_equal(a.box_length, 8e-10) + assert_almost_equal(a.init_temp, 300) + assert_almost_equal(a.particles['xposition']*1e10, [2, 2]) + assert_almost_equal(a.particles['yposition']*1e10, [2, 6]) + def test_sample(self): a = mc.initialise(2, 300, 8, 'square') a = mc.sample(300, a) From a16ac8e6756fb8b58f876845d512288d3da1a616 Mon Sep 17 00:00:00 2001 From: arm61 Date: Sun, 26 Aug 2018 13:31:34 +0100 Subject: [PATCH 08/14] readd tests for pairwise lj function --- pylj/tests/test_pairwise.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pylj/tests/test_pairwise.py b/pylj/tests/test_pairwise.py index c893996..5e066ec 100644 --- a/pylj/tests/test_pairwise.py +++ b/pylj/tests/test_pairwise.py @@ -5,6 +5,14 @@ class TestPairwise(unittest.TestCase): + def test_lennard_jones_energy(self): + a = pairwise.lennard_jones_energy(1, 1., 2) + assert_almost_equal(a, -0.015380859) + + def test_lennard_jones_force(self): + a = pairwise.lennard_jones_force(1, 1, 2.) + assert_almost_equal(a, -0.045410156) + def test_update_accelerations(self): part_dt = util.particle_dt() particles = np.zeros(2, dtype=part_dt) From e280a98de16af77c763d73345ce4a93564c8b34d Mon Sep 17 00:00:00 2001 From: arm61 Date: Sun, 26 Aug 2018 13:41:50 +0100 Subject: [PATCH 09/14] fixing loop import problems --- pylj/md.py | 22 ++++++++++++++++++++++ pylj/util.py | 22 ++++++++++------------ 2 files changed, 32 insertions(+), 12 deletions(-) diff --git a/pylj/md.py b/pylj/md.py index d830b02..71d4930 100644 --- a/pylj/md.py +++ b/pylj/md.py @@ -1,5 +1,6 @@ import numpy as np from pylj import pairwise as heavy +from pylj import forcefields as ff def initialise(number_of_particles, temperature, box_length, init_conf, @@ -269,3 +270,24 @@ def calculate_temperature(particles): k += mass_of_argon * v * v / (boltzmann_constant * 2 * particles['xposition'].size) return k + + +def compute_force(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, + mass=39.948, forcefield=ff.lennard_jones): + part, dist, forces, energies = heavy.compute_force(particles, box_length, + cut_off, a=a, b=b, + mass=mass) + return part, dist, forces, energies + + +def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, + forcefield=ff.lennard_jones): + dist, energies = heavy.compute_energy(particles, box_length, cut_off, a=a, + b=b) + return dist, energies + + +def heat_bath(particles, temperature_sample, bath_temperature): + particles = heavy.heat_bath(particles, temperature_sample, + bath_temperature) + return particles diff --git a/pylj/util.py b/pylj/util.py index 792e6f8..c1519d6 100644 --- a/pylj/util.py +++ b/pylj/util.py @@ -2,7 +2,6 @@ import numpy as np import webbrowser from pylj import md, mc -from pylj import pairwise as heavy class System: @@ -123,10 +122,10 @@ def compute_force(self): a = self.a b = self.b mass = self.mass - part, dist, forces, energies = heavy.compute_force(self.particles, - self.box_length, - self.cut_off, a=a, - b=b, mass=mass) + part, dist, forces, energies = md.compute_force(self.particles, + self.box_length, + self.cut_off, a=a, b=b, + mass=mass) self.particles = part self.distances = dist self.forces = forces @@ -139,10 +138,10 @@ def compute_energy(self): """ a = self.a b = self.b - self.distances, self.energies = heavy.compute_energy(self.particles, - self.box_length, - self.cut_off, a=a, - b=b) + self.distances, self.energies = md.compute_energy(self.particles, + self.box_length, + self.cut_off, a=a, + b=b) def integrate(self, method): """Maps the chosen integration method. @@ -170,9 +169,8 @@ def heat_bath(self, bath_temperature): target_temperature: float The target temperature for the simulation. """ - self.particles = heavy.heat_bath(self.particles, - self.temperature_sample, - bath_temperature) + self.particles = md.heat_bath(self.particles, self.temperature_sample, + bath_temperature) def mc_sample(self): """Maps to the mc.sample function. From 7f83dc405e28008fc535a25aa8d54ed6acde0699 Mon Sep 17 00:00:00 2001 From: arm61 Date: Sun, 26 Aug 2018 13:47:36 +0100 Subject: [PATCH 10/14] moved pbc into pairwise --- pylj/pairwise.py | 24 +++++++++++++++++++++--- pylj/tests/test_pairwise.py | 6 ++++++ pylj/tests/test_util.py | 6 ------ pylj/util.py | 19 ------------------- 4 files changed, 27 insertions(+), 28 deletions(-) diff --git a/pylj/pairwise.py b/pylj/pairwise.py index 90b0f55..09727d9 100644 --- a/pylj/pairwise.py +++ b/pylj/pairwise.py @@ -1,6 +1,5 @@ from __future__ import division import numpy as np -from pylj import util from pylj import forcefields as ff try: from pylj import comp as heavy @@ -345,11 +344,30 @@ def dist(xposition, yposition, box_length): for j in range(i+1, xposition.size): dx = xposition[i] - xposition[j] dy = yposition[i] - yposition[j] - dx = util.pbc_correction(dx, box_length) - dy = util.pbc_correction(dy, box_length) + dx = pbc_correction(dx, box_length) + dy = pbc_correction(dy, box_length) dr = separation(dx, dy) drr[k] = dr dxr[k] = dx dyr[k] = dy k += 1 return drr, dxr, dyr + + +def pbc_correction(position, cell): + """Correct for the periodic boundary condition. + + Parameters + ---------- + position: float + Particle position. + cell: float + Cell vector. + + Returns + ------- + float: + Corrected particle position.""" + if np.abs(position) > 0.5 * cell: + position *= 1 - cell / np.abs(position) + return position diff --git a/pylj/tests/test_pairwise.py b/pylj/tests/test_pairwise.py index 5e066ec..4d51a73 100644 --- a/pylj/tests/test_pairwise.py +++ b/pylj/tests/test_pairwise.py @@ -63,3 +63,9 @@ def test_calculate_pressure(self): particles['xposition'][1] = 5e-10 pressure = pairwise.calculate_pressure(particles, 30, 300, 15) assert_almost_equal(pressure*1e24, 7.07368869) + + def test_pbc_correction(self): + a = util.pbc_correction(1, 10) + assert_almost_equal(a, 1) + b = util.pbc_correction(11, 10) + assert_almost_equal(b, 1) diff --git a/pylj/tests/test_util.py b/pylj/tests/test_util.py index 1065926..1887374 100644 --- a/pylj/tests/test_util.py +++ b/pylj/tests/test_util.py @@ -54,9 +54,3 @@ def test_system_init_conf(self): self.assertTrue('The initial configuration type horseradish is not ' 'recognised. Available options are: square or ' 'random' in str(context.exception)) - - def test_pbc_correction(self): - a = util.pbc_correction(1, 10) - assert_almost_equal(a, 1) - b = util.pbc_correction(11, 10) - assert_almost_equal(b, 1) diff --git a/pylj/util.py b/pylj/util.py index c1519d6..6643191 100644 --- a/pylj/util.py +++ b/pylj/util.py @@ -207,25 +207,6 @@ def reject(self): self.random_particle) -def pbc_correction(position, cell): - """Correct for the periodic boundary condition. - - Parameters - ---------- - position: float - Particle position. - cell: float - Cell vector. - - Returns - ------- - float: - Corrected particle position.""" - if np.abs(position) > 0.5 * cell: - position *= 1 - cell / np.abs(position) - return position - - def __cite__(): # pragma: no cover """This function will launch the Zenodo website for the latest release of pylj.""" From 6c8c951559f6b4faf784808e26367d2f6674ffcd Mon Sep 17 00:00:00 2001 From: arm61 Date: Sun, 26 Aug 2018 13:52:29 +0100 Subject: [PATCH 11/14] change util to pairwise and make the dr a float --- pylj/tests/test_pairwise.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pylj/tests/test_pairwise.py b/pylj/tests/test_pairwise.py index 4d51a73..9c18478 100644 --- a/pylj/tests/test_pairwise.py +++ b/pylj/tests/test_pairwise.py @@ -6,11 +6,11 @@ class TestPairwise(unittest.TestCase): def test_lennard_jones_energy(self): - a = pairwise.lennard_jones_energy(1, 1., 2) + a = pairwise.lennard_jones_energy(1., 1., 2.) assert_almost_equal(a, -0.015380859) def test_lennard_jones_force(self): - a = pairwise.lennard_jones_force(1, 1, 2.) + a = pairwise.lennard_jones_force(1., 1., 2.) assert_almost_equal(a, -0.045410156) def test_update_accelerations(self): @@ -65,7 +65,7 @@ def test_calculate_pressure(self): assert_almost_equal(pressure*1e24, 7.07368869) def test_pbc_correction(self): - a = util.pbc_correction(1, 10) + a = pairwise.pbc_correction(1, 10) assert_almost_equal(a, 1) - b = util.pbc_correction(11, 10) + b = pairwise.pbc_correction(11, 10) assert_almost_equal(b, 1) From b5e462c488a1f14db15c2eaa9f35b13fef32e6cd Mon Sep 17 00:00:00 2001 From: arm61 Date: Sun, 26 Aug 2018 14:02:38 +0100 Subject: [PATCH 12/14] allow any number of constants --- pylj/forcefields.py | 15 +++++---- pylj/pairwise.py | 59 +++++++++++++++++----------------- pylj/tests/test_forcefields.py | 4 +-- 3 files changed, 40 insertions(+), 38 deletions(-) diff --git a/pylj/forcefields.py b/pylj/forcefields.py index 3a4e777..5136692 100644 --- a/pylj/forcefields.py +++ b/pylj/forcefields.py @@ -1,17 +1,16 @@ import numpy as np -def lennard_jones(dr, A, B, force=False): +def lennard_jones(dr, constants, force=False): """Calculate the energy of a pair of particles at a given distance. Parameters ---------- dr: float The distances between the pairs of particles. - A: float - The value of the A parameter for the Lennard-Jones potential. - B: float - The value of the B parameter for the Lennard-Jones potential. + constants: float, array_like + An array of lenght two consisting of the A and B parameters for the + 12-6 Lennard-Jones function. force: bool (optional) If true, the negative first derivative will be found. @@ -21,6 +20,8 @@ def lennard_jones(dr, A, B, force=False): The potential energy or force between the particles. """ if force: - return 12 * A * np.power(dr, -13) - 6 * B * np.power(dr, -7) + return 12 * constants[0] * np.power(dr, -13) - (6 * constants[1] * + np.power(dr, -7)) else: - return A * np.power(dr, -12) - B * np.power(dr, -6) + return constants[0] * np.power(dr, -12) - (constants[1] * + np.power(dr, -6)) diff --git a/pylj/pairwise.py b/pylj/pairwise.py index 09727d9..21fc5bf 100644 --- a/pylj/pairwise.py +++ b/pylj/pairwise.py @@ -8,8 +8,9 @@ from pylj import pairwise as heavy -def compute_force(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, - mass=39.948, forcefield=ff.lennard_jones): +def compute_force(particles, box_length, cut_off, + constants=[1.363e-134, 9.273e-78], + forcefield=ff.lennard_jones, mass=39.948): r"""Calculates the forces and therefore the accelerations on each of the particles in the simulation. This uses a 12-6 Lennard-Jones potential model for Argon the values are: @@ -26,11 +27,11 @@ def compute_force(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, cut_off: float The distance greater than which the forces between particles is taken as zero. - a: float (optional) - The A component of the 12-6 potential model (units of - Jm:math:`^{-12}`). - b: float (optional) - The B component of the 12-6 potential model (units of Jm:math:`^{-6}`). + constants: float, array_like (optional) + The constants associated with the particular forcefield used, e.g. for + the function forcefields.lennard_jones, theses are [A, B] + forcefield: function (optional) + The particular forcefield to be used to find the energy and forces. mass: float (optional) The mass of the particle being simulated (units of atomic mass units). @@ -52,15 +53,13 @@ def compute_force(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, forces = np.zeros(pairs) distances = np.zeros(pairs) energies = np.zeros(pairs) - A = a # joules / metre ^ {12} - B = b # joules / meter ^ {6} atomic_mass_unit = 1.660539e-27 # kilograms mass_amu = mass # amu mass_kg = mass_amu * atomic_mass_unit # kilograms distances, dx, dy = heavy.dist(particles['xposition'], particles['yposition'], box_length) - forces = forcefield(distances, A, B, force=True) - energies = forcefield(distances, A, B) + forces = forcefield(distances, constants, force=True) + energies = forcefield(distances, constants) forces[np.where(distances > cut_off)] = 0. energies[np.where(distances > cut_off)] = 0. particles = update_accelerations(particles, forces, mass_kg, dx, dy, @@ -192,7 +191,8 @@ def lennard_jones_force(A, B, dr): return 12 * A * np.power(dr, -13) - 6 * B * np.power(dr, -7) -def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, +def compute_energy(particles, box_length, cut_off, + constants=[1.363e-134, 9.273e-78], forcefield=ff.lennard_jones): r"""Calculates the total energy of the simulation. This uses a 12-6 Lennard-Jones potential model for Argon with values: @@ -209,11 +209,13 @@ def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, cut_off: float The distance greater than which the energies between particles is taken as zero. - a: float (optional) - The A component of the 12-6 potential model (units of - Jm:math:`^{-12}`). - b: float (optional) - The B component of the 12-6 potential model (units of Jm:math:`^{-6}`). + constants: float, array_like (optional) + The constants associated with the particular forcefield used, e.g. for + the function forcefields.lennard_jones, theses are [A, B] + forcefield: function (optional) + The particular forcefield to be used to find the energy and forces. + mass: float (optional) + The mass of the particle being simulated (units of atomic mass units). Returns ------- @@ -228,17 +230,16 @@ def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, particles['xacceleration'].size / 2) distances = np.zeros(pairs) energies = np.zeros(pairs) - A = a # joules / metre ^ {12} - B = b # joules / meter ^ {6} distances, dx, dy = heavy.dist(particles['xposition'], particles['yposition'], box_length) - energies = forcefield(distances, A, B) + energies = forcefield(distances, constants) energies[np.where(distances > cut_off)] = 0. return distances, energies def calculate_pressure(particles, box_length, temperature, cut_off, - a=1.363e-134, b=9.273e-78, forcefield=ff.lennard_jones): + constants=[1.363e-134, 9.273e-78], + forcefield=ff.lennard_jones): r"""Calculates the instantaneous pressure of the simulation cell, found with the following relationship: @@ -257,22 +258,22 @@ def calculate_pressure(particles, box_length, temperature, cut_off, cut_off: float The distance greater than which the forces between particles is taken as zero. - a: float (optional) - The A component of the 12-6 potential model (units of - Jm:math:`^{-12}`). - b: float (optional) - The B component of the 12-6 potential model (units of Jm:math:`^{-6}`). + constants: float, array_like (optional) + The constants associated with the particular forcefield used, e.g. for + the function forcefields.lennard_jones, theses are [A, B] + forcefield: function (optional) + The particular forcefield to be used to find the energy and forces. + mass: float (optional) + The mass of the particle being simulated (units of atomic mass units). Returns ------- float: Instantaneous pressure of the simulation. """ - A = 1.363e-134 # joules / metre ^ {12} - B = 9.273e-78 # joules / meter ^ {6} distances, dx, dy = heavy.dist(particles['xposition'], particles['yposition'], box_length) - forces = forcefield(distances, A, B, force=True) + forces = forcefield(distances, constants, force=True) forces[np.where(distances > cut_off)] = 0. pres = np.sum(forces * distances) boltzmann_constant = 1.3806e-23 # joules / kelvin diff --git a/pylj/tests/test_forcefields.py b/pylj/tests/test_forcefields.py index 5894e26..833ab02 100644 --- a/pylj/tests/test_forcefields.py +++ b/pylj/tests/test_forcefields.py @@ -5,9 +5,9 @@ class TestForcefields(unittest.TestCase): def test_lennard_jones_energy(self): - a = forcefields.lennard_jones(2., 1, 1.) + a = forcefields.lennard_jones(2., [1., 1.]) assert_almost_equal(a, -0.015380859) def test_lennard_jones_force(self): - a = forcefields.lennard_jones(2., 1, 1, force=True) + a = forcefields.lennard_jones(2., [1., 1.], force=True) assert_almost_equal(a, -0.045410156) From 936f2ce0fb5be57ec55dbc961132afe7a7080ae3 Mon Sep 17 00:00:00 2001 From: arm61 Date: Sun, 26 Aug 2018 14:13:46 +0100 Subject: [PATCH 13/14] adapting forcefields doc --- pylj/forcefields.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pylj/forcefields.py b/pylj/forcefields.py index 5136692..02aa771 100644 --- a/pylj/forcefields.py +++ b/pylj/forcefields.py @@ -6,8 +6,8 @@ def lennard_jones(dr, constants, force=False): Parameters ---------- - dr: float - The distances between the pairs of particles. + dr: float, array_like + The distances between the all pairs of particles. constants: float, array_like An array of lenght two consisting of the A and B parameters for the 12-6 Lennard-Jones function. From 78234a7459d7f2a55d7da0f741551acabb2d6971 Mon Sep 17 00:00:00 2001 From: arm61 Date: Sun, 26 Aug 2018 14:22:08 +0100 Subject: [PATCH 14/14] getting the examples running and ensuring backwords compatibiilty --- pylj/comp.cpython-36m-x86_64-linux-gnu.so | Bin 545416 -> 548384 bytes pylj/md.py | 21 +- pylj/util.py | 18 +- src/_ccomp.cpp | 1270 +++++++++++---------- src/_ccomp.pyx | 45 +- 5 files changed, 694 insertions(+), 660 deletions(-) diff --git a/pylj/comp.cpython-36m-x86_64-linux-gnu.so b/pylj/comp.cpython-36m-x86_64-linux-gnu.so index 8a9c4aa13a094dc72af28f8fe30338df127d4cfd..e5c911d06d22a82d433c44e05a08e6d7fc0a7713 100755 GIT binary patch literal 548384 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%0AwV-G)8vt-pT}A0^;k`)r}Fiy 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 z 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 z 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 BMMD4p literal 545416 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

=O*mWf*S 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%0Deg3zAM*!^a4{dU# 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

R#X+`zLWz8WcOeS*S#XC8z1E94ca%^5<1M%b!;* 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 diff --git a/pylj/md.py b/pylj/md.py index 71d4930..85a813f 100644 --- a/pylj/md.py +++ b/pylj/md.py @@ -124,7 +124,7 @@ def sample(particles, box_length, initial_particles, system): temperature_new) pressure_new = heavy.calculate_pressure(particles, box_length, temperature_new, system.cut_off, - system.a, system.b) + system.constants) msd_new = calculate_msd(particles, initial_particles, box_length) system.pressure_sample = np.append(system.pressure_sample, pressure_new) system.force_sample = np.append(system.force_sample, @@ -272,18 +272,23 @@ def calculate_temperature(particles): return k -def compute_force(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, - mass=39.948, forcefield=ff.lennard_jones): +def compute_force(particles, box_length, cut_off, + constants=[1.363e-134, 9.273e-78], mass=39.948, + forcefield=ff.lennard_jones): part, dist, forces, energies = heavy.compute_force(particles, box_length, - cut_off, a=a, b=b, - mass=mass) + cut_off, + constants=constants, + mass=mass, + forcefield=forcefield) return part, dist, forces, energies -def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, +def compute_energy(particles, box_length, cut_off, + constants=[1.363e-134, 9.273e-78], forcefield=ff.lennard_jones): - dist, energies = heavy.compute_energy(particles, box_length, cut_off, a=a, - b=b) + dist, energies = heavy.compute_energy(particles, box_length, cut_off, + constants=constants, + forcefield=forcefield) return dist, energies diff --git a/pylj/util.py b/pylj/util.py index 6643191..18e8ec7 100644 --- a/pylj/util.py +++ b/pylj/util.py @@ -29,11 +29,10 @@ class System: """ def __init__(self, number_of_particles, temperature, box_length, init_conf='square', timestep_length=1e-14, - cut_off=15, a=1.363e-134, b=9.273e-78, mass=39.948): + cut_off=15, constants=[1.363e-134, 9.273e-78], mass=39.948): self.number_of_particles = number_of_particles self.init_temp = temperature - self.a = a - self.b = b + self.constants = constants self.mass = mass if box_length <= 600: self.box_length = box_length * 1e-10 @@ -119,12 +118,12 @@ def compute_force(self): """Maps to the compute_force function in either the comp (if Cython is installed) or the pairwise module and allows for a cleaner interface. """ - a = self.a - b = self.b + constants = self.constants mass = self.mass part, dist, forces, energies = md.compute_force(self.particles, self.box_length, - self.cut_off, a=a, b=b, + self.cut_off, + constants = constants, mass=mass) self.particles = part self.distances = dist @@ -136,12 +135,11 @@ def compute_energy(self): is installed) or the pairwise module and allows for a cleaner interface. """ - a = self.a - b = self.b + constants = self.constants self.distances, self.energies = md.compute_energy(self.particles, self.box_length, - self.cut_off, a=a, - b=b) + self.cut_off, + constants=constants) def integrate(self, method): """Maps the chosen integration method. diff --git a/src/_ccomp.cpp b/src/_ccomp.cpp index 5daffa4..e01f71f 100644 --- a/src/_ccomp.cpp +++ b/src/_ccomp.cpp @@ -1041,7 +1041,7 @@ typedef npy_longdouble __pyx_t_5numpy_longdouble_t; * DTYPE = np.float64 * ctypedef np.float64_t DTYPE_t # <<<<<<<<<<<<<< * - * def compute_force(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, + * def compute_force(particles, box_length, cut_off, */ typedef __pyx_t_5numpy_float64_t __pyx_t_4pylj_4comp_DTYPE_t; /* Declarations.proto */ @@ -1632,8 +1632,6 @@ static PyObject *__pyx_builtin_range; static PyObject *__pyx_builtin_ValueError; static PyObject *__pyx_builtin_RuntimeError; static PyObject *__pyx_builtin_ImportError; -static const char __pyx_k_a[] = "a"; -static const char __pyx_k_b[] = "b"; static const char __pyx_k_i[] = "i"; static const char __pyx_k_ac[] = "ac"; static const char __pyx_k_bc[] = "bc"; @@ -1667,6 +1665,7 @@ static const char __pyx_k_cut_off[] = "cut_off"; static const char __pyx_k_float64[] = "float64"; static const char __pyx_k_pressure[] = "pressure"; static const char __pyx_k_bath_temp[] = "bath_temp"; +static const char __pyx_k_constants[] = "constants"; static const char __pyx_k_distances[] = "distances"; static const char __pyx_k_force_arr[] = "force_arr"; static const char __pyx_k_heat_bath[] = "heat_bath"; @@ -1719,11 +1718,9 @@ static PyObject *__pyx_kp_s_This_function_is_deprecated_plea; static PyObject *__pyx_kp_s_This_function_is_deprecated_plea_2; static PyObject *__pyx_kp_s_This_function_is_deprecated_plea_3; static PyObject *__pyx_n_s_ValueError; -static PyObject *__pyx_n_s_a; static PyObject *__pyx_n_s_ac; static PyObject *__pyx_n_s_average; static PyObject *__pyx_n_s_average_temp; -static PyObject *__pyx_n_s_b; static PyObject *__pyx_n_s_bath_temp; static PyObject *__pyx_n_s_bc; static PyObject *__pyx_n_s_box_l; @@ -1732,6 +1729,7 @@ static PyObject *__pyx_n_s_calculate_pressure; static PyObject *__pyx_n_s_cline_in_traceback; static PyObject *__pyx_n_s_compute_energy; static PyObject *__pyx_n_s_compute_force; +static PyObject *__pyx_n_s_constants; static PyObject *__pyx_n_s_cut; static PyObject *__pyx_n_s_cut_off; static PyObject *__pyx_n_s_dist; @@ -1786,9 +1784,9 @@ static PyObject *__pyx_n_s_ypositions; static PyObject *__pyx_n_s_yvel; static PyObject *__pyx_n_s_yvelocity; static PyObject *__pyx_n_s_zeros; -static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_mass); /* proto */ -static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_a, PyObject *__pyx_v_b); /* proto */ -static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_temperature, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_a, PyObject *__pyx_v_b); /* proto */ +static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_constants, PyObject *__pyx_v_mass); /* proto */ +static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_constants); /* proto */ +static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_temperature, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_constants); /* proto */ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_temperature_sample, PyObject *__pyx_v_bath_temp); /* proto */ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_xpos, PyObject *__pyx_v_ypos, PyObject *__pyx_v_box_length); /* proto */ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ @@ -1796,9 +1794,9 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s static PyObject *__pyx_float_39_948; static PyObject *__pyx_float_9_273eneg_78; static PyObject *__pyx_float_1_363eneg_134; -static PyObject *__pyx_tuple_; -static PyObject *__pyx_tuple__2; -static PyObject *__pyx_tuple__3; +static PyObject *__pyx_k_; +static PyObject *__pyx_k__2; +static PyObject *__pyx_k__3; static PyObject *__pyx_tuple__4; static PyObject *__pyx_tuple__5; static PyObject *__pyx_tuple__6; @@ -1806,51 +1804,50 @@ static PyObject *__pyx_tuple__7; static PyObject *__pyx_tuple__8; static PyObject *__pyx_tuple__9; static PyObject *__pyx_tuple__10; +static PyObject *__pyx_tuple__11; static PyObject *__pyx_tuple__12; -static PyObject *__pyx_tuple__14; -static PyObject *__pyx_tuple__16; -static PyObject *__pyx_tuple__18; -static PyObject *__pyx_codeobj__11; -static PyObject *__pyx_codeobj__13; -static PyObject *__pyx_codeobj__15; -static PyObject *__pyx_codeobj__17; -static PyObject *__pyx_codeobj__19; +static PyObject *__pyx_tuple__13; +static PyObject *__pyx_tuple__15; +static PyObject *__pyx_tuple__17; +static PyObject *__pyx_tuple__19; +static PyObject *__pyx_tuple__21; +static PyObject *__pyx_codeobj__14; +static PyObject *__pyx_codeobj__16; +static PyObject *__pyx_codeobj__18; +static PyObject *__pyx_codeobj__20; +static PyObject *__pyx_codeobj__22; /* Late includes */ /* "src/_ccomp.pyx":31 * ctypedef np.float64_t DTYPE_t * - * def compute_force(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, # <<<<<<<<<<<<<< - * mass=39.948): + * def compute_force(particles, box_length, cut_off, # <<<<<<<<<<<<<< + * constants=[1.363e-134, 9.273e-78], mass=39.948): * """Calculates the forces and therefore the accelerations on each of the */ /* Python wrapper */ static PyObject *__pyx_pw_4pylj_4comp_1compute_force(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_4pylj_4comp_compute_force[] = "Calculates the forces and therefore the accelerations on each of the\n particles in the simulation. This uses a 12-6 Lennard-Jones potential\n model for Argon with values:\n\n - A = 1.363e-134 J m :math:`^{12}`\n - B = 9.273e-78 J m :math:`^6`\n\n Parameters\n ----------\n particles: util.particle_dt, array_like\n Information about the particles.\n box_length: float\n Length of a single dimension of the simulation square, in Angstrom.\n cut_off: float\n The distance greater than which the forces between particles is taken\n as zero.\n a: float (optional)\n The A component of the 12-6 potential model (units of\n Jm:math:`^{-12}`).\n b: float (optional)\n The B component of the 12-6 potential model (units of Jm:math:`^{-6}`).\n mass: float (optional)\n The mass of the particle being simulated (units of atomic mass units).\n\n Returns\n -------\n util.particle_dt, array_like\n Information about particles, with updated accelerations and forces.\n float, array_like\n Current distances between pairs of particles in the simulation.\n float, array_like\n Current forces between pairs of particles in the simulation.\n float, array_like\n Current energies between pairs of particles in the simulation.\n "; +static char __pyx_doc_4pylj_4comp_compute_force[] = "Calculates the forces and therefore the accelerations on each of the\n particles in the simulation. This uses a 12-6 Lennard-Jones potential\n model for Argon with values:\n\n - A = 1.363e-134 J m :math:`^{12}`\n - B = 9.273e-78 J m :math:`^6`\n\n Parameters\n ----------\n particles: util.particle_dt, array_like\n Information about the particles.\n box_length: float\n Length of a single dimension of the simulation square, in Angstrom.\n cut_off: float\n The distance greater than which the forces between particles is taken\n as zero.\n constants: float, array_like (optional)\n The constants associated with the particular forcefield used, e.g. for\n the function forcefields.lennard_jones, theses are [A, B].\n mass: float (optional)\n The mass of the particle being simulated (units of atomic mass units).\n\n Returns\n -------\n util.particle_dt, array_like\n Information about particles, with updated accelerations and forces.\n float, array_like\n Current distances between pairs of particles in the simulation.\n float, array_like\n Current forces between pairs of particles in the simulation.\n float, array_like\n Current energies between pairs of particles in the simulation.\n "; static PyMethodDef __pyx_mdef_4pylj_4comp_1compute_force = {"compute_force", (PyCFunction)__pyx_pw_4pylj_4comp_1compute_force, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4pylj_4comp_compute_force}; static PyObject *__pyx_pw_4pylj_4comp_1compute_force(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_particles = 0; PyObject *__pyx_v_box_length = 0; PyObject *__pyx_v_cut_off = 0; - PyObject *__pyx_v_a = 0; - PyObject *__pyx_v_b = 0; + PyObject *__pyx_v_constants = 0; PyObject *__pyx_v_mass = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("compute_force (wrapper)", 0); { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_particles,&__pyx_n_s_box_length,&__pyx_n_s_cut_off,&__pyx_n_s_a,&__pyx_n_s_b,&__pyx_n_s_mass,0}; - PyObject* values[6] = {0,0,0,0,0,0}; - values[3] = ((PyObject *)__pyx_float_1_363eneg_134); - values[4] = ((PyObject *)__pyx_float_9_273eneg_78); - values[5] = ((PyObject *)__pyx_float_39_948); + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_particles,&__pyx_n_s_box_length,&__pyx_n_s_cut_off,&__pyx_n_s_constants,&__pyx_n_s_mass,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[3] = __pyx_k_; + values[4] = ((PyObject *)__pyx_float_39_948); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { - case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); @@ -1873,31 +1870,25 @@ static PyObject *__pyx_pw_4pylj_4comp_1compute_force(PyObject *__pyx_self, PyObj case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_box_length)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("compute_force", 0, 3, 6, 1); __PYX_ERR(0, 31, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("compute_force", 0, 3, 5, 1); __PYX_ERR(0, 31, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cut_off)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("compute_force", 0, 3, 6, 2); __PYX_ERR(0, 31, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("compute_force", 0, 3, 5, 2); __PYX_ERR(0, 31, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { - PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a); + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_constants); 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_b); - if (value) { values[4] = value; kw_args--; } - } - CYTHON_FALLTHROUGH; - case 5: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mass); - if (value) { values[5] = value; kw_args--; } + if (value) { values[4] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { @@ -1905,8 +1896,6 @@ static PyObject *__pyx_pw_4pylj_4comp_1compute_force(PyObject *__pyx_self, PyObj } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { - case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); @@ -1921,26 +1910,25 @@ static PyObject *__pyx_pw_4pylj_4comp_1compute_force(PyObject *__pyx_self, PyObj __pyx_v_particles = values[0]; __pyx_v_box_length = values[1]; __pyx_v_cut_off = values[2]; - __pyx_v_a = values[3]; - __pyx_v_b = values[4]; - __pyx_v_mass = values[5]; + __pyx_v_constants = values[3]; + __pyx_v_mass = values[4]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("compute_force", 0, 3, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 31, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("compute_force", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 31, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pylj.comp.compute_force", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_4pylj_4comp_compute_force(__pyx_self, __pyx_v_particles, __pyx_v_box_length, __pyx_v_cut_off, __pyx_v_a, __pyx_v_b, __pyx_v_mass); + __pyx_r = __pyx_pf_4pylj_4comp_compute_force(__pyx_self, __pyx_v_particles, __pyx_v_box_length, __pyx_v_cut_off, __pyx_v_constants, __pyx_v_mass); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_mass) { +static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_constants, PyObject *__pyx_v_mass) { int __pyx_v_len_particles; PyObject *__pyx_v_pairs = NULL; double __pyx_v_box_l; @@ -2026,66 +2014,66 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py __pyx_pybuffernd_energy_arr.data = NULL; __pyx_pybuffernd_energy_arr.rcbuffer = &__pyx_pybuffer_energy_arr; - /* "src/_ccomp.pyx":68 + /* "src/_ccomp.pyx":66 * Current energies between pairs of particles in the simulation. * """ * print("This function is deprecated, please use pairwise.compute_force, if " # <<<<<<<<<<<<<< * "you have the compiled dist function, it is just as fast. ") * cdef int len_particles = particles['xposition'].size */ - if (__Pyx_PrintOne(0, __pyx_kp_s_This_function_is_deprecated_plea) < 0) __PYX_ERR(0, 68, __pyx_L1_error) + if (__Pyx_PrintOne(0, __pyx_kp_s_This_function_is_deprecated_plea) < 0) __PYX_ERR(0, 66, __pyx_L1_error) - /* "src/_ccomp.pyx":70 + /* "src/_ccomp.pyx":68 * print("This function is deprecated, please use pairwise.compute_force, if " * "you have the compiled dist function, it is just as fast. ") * cdef int len_particles = particles['xposition'].size # <<<<<<<<<<<<<< * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length */ - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 70, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 70, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 70, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_len_particles = __pyx_t_3; - /* "src/_ccomp.pyx":71 + /* "src/_ccomp.pyx":69 * "you have the compiled dist function, it is just as fast. ") * cdef int len_particles = particles['xposition'].size * pairs = int((len_particles - 1) * len_particles / 2) # <<<<<<<<<<<<<< * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) */ - __pyx_t_2 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_pairs = __pyx_t_2; __pyx_t_2 = 0; - /* "src/_ccomp.pyx":72 + /* "src/_ccomp.pyx":70 * cdef int len_particles = particles['xposition'].size * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 72, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 70, __pyx_L1_error) __pyx_v_box_l = __pyx_t_4; - /* "src/_ccomp.pyx":73 + /* "src/_ccomp.pyx":71 * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] xacc = np.zeros(len_particles) */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { @@ -2098,14 +2086,14 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } } if (!__pyx_t_6) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -2114,32 +2102,32 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 73, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 71, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xpos.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_xpos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 73, __pyx_L1_error) + __PYX_ERR(0, 71, __pyx_L1_error) } else {__pyx_pybuffernd_xpos.diminfo[0].strides = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xpos.diminfo[0].shape = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.shape[0]; } } @@ -2147,19 +2135,19 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py __pyx_v_xpos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":74 + /* "src/_ccomp.pyx":72 * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] yacc = np.zeros(len_particles) */ - __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 74, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 74, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 74, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { @@ -2172,14 +2160,14 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } } if (!__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -2188,32 +2176,32 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 74, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 74, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 72, __pyx_L1_error) __pyx_t_9 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ypos.rcbuffer->pybuffer, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_ypos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 74, __pyx_L1_error) + __PYX_ERR(0, 72, __pyx_L1_error) } else {__pyx_pybuffernd_ypos.diminfo[0].strides = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ypos.diminfo[0].shape = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.shape[0]; } } @@ -2221,19 +2209,19 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py __pyx_v_ypos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":75 + /* "src/_ccomp.pyx":73 * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] xacc = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] yacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) */ - __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 75, __pyx_L1_error) + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 75, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 75, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { @@ -2246,14 +2234,14 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } } if (!__pyx_t_5) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; @@ -2262,32 +2250,32 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { - __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 75, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_t_7); __pyx_t_7 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 75, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 73, __pyx_L1_error) __pyx_t_10 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xacc.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_xacc = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xacc.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 75, __pyx_L1_error) + __PYX_ERR(0, 73, __pyx_L1_error) } else {__pyx_pybuffernd_xacc.diminfo[0].strides = __pyx_pybuffernd_xacc.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xacc.diminfo[0].shape = __pyx_pybuffernd_xacc.rcbuffer->pybuffer.shape[0]; } } @@ -2295,19 +2283,19 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py __pyx_v_xacc = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":76 + /* "src/_ccomp.pyx":74 * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] xacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] yacc = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] force_arr = np.zeros(pairs) */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 76, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 76, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 76, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { @@ -2320,14 +2308,14 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } } if (!__pyx_t_7) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; @@ -2336,32 +2324,32 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 76, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = NULL; __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_6); __pyx_t_6 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 76, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 74, __pyx_L1_error) __pyx_t_11 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_yacc.rcbuffer->pybuffer, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_yacc = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_yacc.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 76, __pyx_L1_error) + __PYX_ERR(0, 74, __pyx_L1_error) } else {__pyx_pybuffernd_yacc.diminfo[0].strides = __pyx_pybuffernd_yacc.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_yacc.diminfo[0].shape = __pyx_pybuffernd_yacc.rcbuffer->pybuffer.shape[0]; } } @@ -2369,16 +2357,16 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py __pyx_v_yacc = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":77 + /* "src/_ccomp.pyx":75 * cdef np.ndarray[DTYPE_t, ndim=1] xacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] yacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] force_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 77, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 77, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; @@ -2392,13 +2380,13 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } } if (!__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -2406,31 +2394,31 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 77, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_INCREF(__pyx_v_pairs); __Pyx_GIVEREF(__pyx_v_pairs); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_pairs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 77, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 75, __pyx_L1_error) __pyx_t_12 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_distances_arr.rcbuffer->pybuffer, (PyObject*)__pyx_t_12, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_distances_arr = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 77, __pyx_L1_error) + __PYX_ERR(0, 75, __pyx_L1_error) } else {__pyx_pybuffernd_distances_arr.diminfo[0].strides = __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_distances_arr.diminfo[0].shape = __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.shape[0]; } } @@ -2438,16 +2426,16 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py __pyx_v_distances_arr = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":78 + /* "src/_ccomp.pyx":76 * cdef np.ndarray[DTYPE_t, ndim=1] yacc = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] force_arr = np.zeros(pairs) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) * cdef double cut = cut_off */ - __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 78, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 78, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; @@ -2461,13 +2449,13 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } } if (!__pyx_t_5) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -2475,31 +2463,31 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_INCREF(__pyx_v_pairs); __Pyx_GIVEREF(__pyx_v_pairs); PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_pairs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 78, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 76, __pyx_L1_error) __pyx_t_13 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_force_arr.rcbuffer->pybuffer, (PyObject*)__pyx_t_13, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_force_arr = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_force_arr.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 78, __pyx_L1_error) + __PYX_ERR(0, 76, __pyx_L1_error) } else {__pyx_pybuffernd_force_arr.diminfo[0].strides = __pyx_pybuffernd_force_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_force_arr.diminfo[0].shape = __pyx_pybuffernd_force_arr.rcbuffer->pybuffer.shape[0]; } } @@ -2507,16 +2495,16 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py __pyx_v_force_arr = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":79 + /* "src/_ccomp.pyx":77 * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] force_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) # <<<<<<<<<<<<<< * cdef double cut = cut_off - * cdef double ac = a + * cdef double ac = constants[0] */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 79, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 79, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -2530,13 +2518,13 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } } if (!__pyx_t_6) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -2544,31 +2532,31 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 79, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_INCREF(__pyx_v_pairs); __Pyx_GIVEREF(__pyx_v_pairs); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_pairs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 79, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 77, __pyx_L1_error) __pyx_t_14 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_energy_arr.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_energy_arr = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 79, __pyx_L1_error) + __PYX_ERR(0, 77, __pyx_L1_error) } else {__pyx_pybuffernd_energy_arr.diminfo[0].strides = __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_energy_arr.diminfo[0].shape = __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.shape[0]; } } @@ -2576,47 +2564,53 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py __pyx_v_energy_arr = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":80 + /* "src/_ccomp.pyx":78 * cdef np.ndarray[DTYPE_t, ndim=1] force_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) * cdef double cut = cut_off # <<<<<<<<<<<<<< - * cdef double ac = a - * cdef double bc = b + * cdef double ac = constants[0] + * cdef double bc = constants[1] */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 80, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 78, __pyx_L1_error) __pyx_v_cut = __pyx_t_4; - /* "src/_ccomp.pyx":81 + /* "src/_ccomp.pyx":79 * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) * cdef double cut = cut_off - * cdef double ac = a # <<<<<<<<<<<<<< - * cdef double bc = b + * cdef double ac = constants[0] # <<<<<<<<<<<<<< + * cdef double bc = constants[1] * cdef double massc = mass */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 81, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_constants, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 79, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_ac = __pyx_t_4; - /* "src/_ccomp.pyx":82 + /* "src/_ccomp.pyx":80 * cdef double cut = cut_off - * cdef double ac = a - * cdef double bc = b # <<<<<<<<<<<<<< + * cdef double ac = constants[0] + * cdef double bc = constants[1] # <<<<<<<<<<<<<< * cdef double massc = mass * */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_b); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_constants, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 80, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 80, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_bc = __pyx_t_4; - /* "src/_ccomp.pyx":83 - * cdef double ac = a - * cdef double bc = b + /* "src/_ccomp.pyx":81 + * cdef double ac = constants[0] + * cdef double bc = constants[1] * cdef double massc = mass # <<<<<<<<<<<<<< * * for i in range(0, len_particles): */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_mass); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 83, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_mass); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 81, __pyx_L1_error) __pyx_v_massc = __pyx_t_4; - /* "src/_ccomp.pyx":85 + /* "src/_ccomp.pyx":83 * cdef double massc = mass * * for i in range(0, len_particles): # <<<<<<<<<<<<<< @@ -2628,19 +2622,19 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) { __pyx_v_i = __pyx_t_16; - /* "src/_ccomp.pyx":86 + /* "src/_ccomp.pyx":84 * * for i in range(0, len_particles): * xpos[i] = particles['xposition'][i] # <<<<<<<<<<<<<< * ypos[i] = particles['yposition'][i] * xacc[i] = 0 */ - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 86, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 86, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_17 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 86, __pyx_L1_error) + __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_17 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_18 = __pyx_v_i; __pyx_t_19 = -1; @@ -2650,23 +2644,23 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_xpos.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 86, __pyx_L1_error) + __PYX_ERR(0, 84, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_xpos.diminfo[0].strides) = __pyx_t_17; - /* "src/_ccomp.pyx":87 + /* "src/_ccomp.pyx":85 * for i in range(0, len_particles): * xpos[i] = particles['xposition'][i] * ypos[i] = particles['yposition'][i] # <<<<<<<<<<<<<< * xacc[i] = 0 * yacc[i] = 0 */ - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 85, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 87, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 85, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_17 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 87, __pyx_L1_error) + __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_17 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 85, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_20 = __pyx_v_i; __pyx_t_19 = -1; @@ -2676,11 +2670,11 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } else if (unlikely(__pyx_t_20 >= __pyx_pybuffernd_ypos.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 87, __pyx_L1_error) + __PYX_ERR(0, 85, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_ypos.diminfo[0].strides) = __pyx_t_17; - /* "src/_ccomp.pyx":88 + /* "src/_ccomp.pyx":86 * xpos[i] = particles['xposition'][i] * ypos[i] = particles['yposition'][i] * xacc[i] = 0 # <<<<<<<<<<<<<< @@ -2695,11 +2689,11 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_xacc.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 88, __pyx_L1_error) + __PYX_ERR(0, 86, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xacc.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_xacc.diminfo[0].strides) = 0.0; - /* "src/_ccomp.pyx":89 + /* "src/_ccomp.pyx":87 * ypos[i] = particles['yposition'][i] * xacc[i] = 0 * yacc[i] = 0 # <<<<<<<<<<<<<< @@ -2714,12 +2708,12 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_yacc.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 89, __pyx_L1_error) + __PYX_ERR(0, 87, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yacc.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_yacc.diminfo[0].strides) = 0.0; } - /* "src/_ccomp.pyx":91 + /* "src/_ccomp.pyx":89 * yacc[i] = 0 * * compute_accelerations(len_particles, xpos.data, # <<<<<<<<<<<<<< @@ -2728,7 +2722,7 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py */ compute_accelerations(__pyx_v_len_particles, ((double const *)__pyx_v_xpos->data), ((double const *)__pyx_v_ypos->data), ((double *)__pyx_v_xacc->data), ((double *)__pyx_v_yacc->data), ((double *)__pyx_v_distances_arr->data), __pyx_v_box_l, ((double *)__pyx_v_force_arr->data), ((double *)__pyx_v_energy_arr->data), __pyx_v_cut, __pyx_v_ac, __pyx_v_bc, __pyx_v_massc); - /* "src/_ccomp.pyx":97 + /* "src/_ccomp.pyx":95 * energy_arr.data, cut, ac, bc, massc) * * for i in range(0, len_particles): # <<<<<<<<<<<<<< @@ -2740,7 +2734,7 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) { __pyx_v_i = __pyx_t_16; - /* "src/_ccomp.pyx":98 + /* "src/_ccomp.pyx":96 * * for i in range(0, len_particles): * particles['xacceleration'][i] = xacc[i] # <<<<<<<<<<<<<< @@ -2755,17 +2749,17 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_xacc.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 98, __pyx_L1_error) + __PYX_ERR(0, 96, __pyx_L1_error) } - __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xacc.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_xacc.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 98, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xacc.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_xacc.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xacceleration); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 98, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xacceleration); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 98, __pyx_L1_error) + if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":99 + /* "src/_ccomp.pyx":97 * for i in range(0, len_particles): * particles['xacceleration'][i] = xacc[i] * particles['yacceleration'][i] = yacc[i] # <<<<<<<<<<<<<< @@ -2780,26 +2774,26 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_yacc.diminfo[0].shape)) __pyx_t_19 = 0; if (unlikely(__pyx_t_19 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_19); - __PYX_ERR(0, 99, __pyx_L1_error) + __PYX_ERR(0, 97, __pyx_L1_error) } - __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yacc.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_yacc.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 99, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yacc.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_yacc.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 97, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yacceleration); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 99, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yacceleration); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 97, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 99, __pyx_L1_error) + if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 97, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - /* "src/_ccomp.pyx":102 + /* "src/_ccomp.pyx":100 * * * return particles, distances_arr, force_arr, energy_arr # <<<<<<<<<<<<<< * - * def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): + * def compute_energy(particles, box_length, cut_off, */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_particles); __Pyx_GIVEREF(__pyx_v_particles); @@ -2820,8 +2814,8 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py /* "src/_ccomp.pyx":31 * ctypedef np.float64_t DTYPE_t * - * def compute_force(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, # <<<<<<<<<<<<<< - * mass=39.948): + * def compute_force(particles, box_length, cut_off, # <<<<<<<<<<<<<< + * constants=[1.363e-134, 9.273e-78], mass=39.948): * """Calculates the forces and therefore the accelerations on each of the */ @@ -2869,38 +2863,34 @@ static PyObject *__pyx_pf_4pylj_4comp_compute_force(CYTHON_UNUSED PyObject *__py return __pyx_r; } -/* "src/_ccomp.pyx":104 +/* "src/_ccomp.pyx":102 * return particles, distances_arr, force_arr, energy_arr * - * def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): # <<<<<<<<<<<<<< + * def compute_energy(particles, box_length, cut_off, # <<<<<<<<<<<<<< + * constants=[1.363e-134, 9.273e-78]): * """Calculates the total energy of the simulation. This uses a - * 12-6 Lennard-Jones potential model for Argon with values: */ /* Python wrapper */ static PyObject *__pyx_pw_4pylj_4comp_3compute_energy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_4pylj_4comp_2compute_energy[] = "Calculates the total energy of the simulation. This uses a\n 12-6 Lennard-Jones potential model for Argon with values:\n\n - A = 1.363e-134 J m :math:`^{12}`\n - B = 9.273e-78 J m :math:`^6`\n\n Parameters\n ----------\n particles: util.particle_dt, array_like\n Information about the particles.\n box_length: float\n Length of a single dimension of the simulation square, in Angstrom.\n cut_off: float\n The distance greater than which the energies between particles is\n taken as zero.\n a: float (optional)\n The A component of the 12-6 potential model (units of\n Jm:math:`^{-12}`).\n b: float (optional)\n The B component of the 12-6 potential model (units of Jm:math:`^{-6}`).\n\n Returns\n -------\n util.particle_dt, array_like\n Information about particles, with updated accelerations and forces.\n float, array_like\n Current distances between pairs of particles in the simulation.\n float, array_like\n Current energies between pairs of particles in the simulation.\n "; +static char __pyx_doc_4pylj_4comp_2compute_energy[] = "Calculates the total energy of the simulation. This uses a\n 12-6 Lennard-Jones potential model for Argon with values:\n\n - A = 1.363e-134 J m :math:`^{12}`\n - B = 9.273e-78 J m :math:`^6`\n\n Parameters\n ----------\n particles: util.particle_dt, array_like\n Information about the particles.\n box_length: float\n Length of a single dimension of the simulation square, in Angstrom.\n cut_off: float\n The distance greater than which the energies between particles is\n taken as zero.\n constants: float, array_like (optional)\n The constants associated with the particular forcefield used, e.g. for\n the function forcefields.lennard_jones, theses are [A, B].\n\n Returns\n -------\n util.particle_dt, array_like\n Information about particles, with updated accelerations and forces.\n float, array_like\n Current distances between pairs of particles in the simulation.\n float, array_like\n Current energies between pairs of particles in the simulation.\n "; static PyMethodDef __pyx_mdef_4pylj_4comp_3compute_energy = {"compute_energy", (PyCFunction)__pyx_pw_4pylj_4comp_3compute_energy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4pylj_4comp_2compute_energy}; static PyObject *__pyx_pw_4pylj_4comp_3compute_energy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_particles = 0; PyObject *__pyx_v_box_length = 0; PyObject *__pyx_v_cut_off = 0; - PyObject *__pyx_v_a = 0; - PyObject *__pyx_v_b = 0; + PyObject *__pyx_v_constants = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("compute_energy (wrapper)", 0); { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_particles,&__pyx_n_s_box_length,&__pyx_n_s_cut_off,&__pyx_n_s_a,&__pyx_n_s_b,0}; - PyObject* values[5] = {0,0,0,0,0}; - values[3] = ((PyObject *)__pyx_float_1_363eneg_134); - values[4] = ((PyObject *)__pyx_float_9_273eneg_78); + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_particles,&__pyx_n_s_box_length,&__pyx_n_s_cut_off,&__pyx_n_s_constants,0}; + PyObject* values[4] = {0,0,0,0}; + values[3] = __pyx_k__2; 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); @@ -2921,34 +2911,26 @@ static PyObject *__pyx_pw_4pylj_4comp_3compute_energy(PyObject *__pyx_self, PyOb case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_box_length)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("compute_energy", 0, 3, 5, 1); __PYX_ERR(0, 104, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("compute_energy", 0, 3, 4, 1); __PYX_ERR(0, 102, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cut_off)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("compute_energy", 0, 3, 5, 2); __PYX_ERR(0, 104, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("compute_energy", 0, 3, 4, 2); __PYX_ERR(0, 102, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { - PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a); + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_constants); 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_b); - if (value) { values[4] = value; kw_args--; } - } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "compute_energy") < 0)) __PYX_ERR(0, 104, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "compute_energy") < 0)) __PYX_ERR(0, 102, __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); @@ -2961,25 +2943,24 @@ static PyObject *__pyx_pw_4pylj_4comp_3compute_energy(PyObject *__pyx_self, PyOb __pyx_v_particles = values[0]; __pyx_v_box_length = values[1]; __pyx_v_cut_off = values[2]; - __pyx_v_a = values[3]; - __pyx_v_b = values[4]; + __pyx_v_constants = values[3]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("compute_energy", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 104, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("compute_energy", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 102, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pylj.comp.compute_energy", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_4pylj_4comp_2compute_energy(__pyx_self, __pyx_v_particles, __pyx_v_box_length, __pyx_v_cut_off, __pyx_v_a, __pyx_v_b); + __pyx_r = __pyx_pf_4pylj_4comp_2compute_energy(__pyx_self, __pyx_v_particles, __pyx_v_box_length, __pyx_v_cut_off, __pyx_v_constants); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_a, PyObject *__pyx_v_b) { +static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_constants) { int __pyx_v_len_particles; PyObject *__pyx_v_pairs = NULL; double __pyx_v_box_l; @@ -3036,66 +3017,66 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_pybuffernd_energy_arr.data = NULL; __pyx_pybuffernd_energy_arr.rcbuffer = &__pyx_pybuffer_energy_arr; - /* "src/_ccomp.pyx":135 + /* "src/_ccomp.pyx":132 * Current energies between pairs of particles in the simulation. * """ * print("This function is deprecated, please use pairwise.compute_energy, " # <<<<<<<<<<<<<< * "if you have the compiled dist function, it is just as fast. ") * cdef int len_particles = particles['xposition'].size */ - if (__Pyx_PrintOne(0, __pyx_kp_s_This_function_is_deprecated_plea_2) < 0) __PYX_ERR(0, 135, __pyx_L1_error) + if (__Pyx_PrintOne(0, __pyx_kp_s_This_function_is_deprecated_plea_2) < 0) __PYX_ERR(0, 132, __pyx_L1_error) - /* "src/_ccomp.pyx":137 + /* "src/_ccomp.pyx":134 * print("This function is deprecated, please use pairwise.compute_energy, " * "if you have the compiled dist function, it is just as fast. ") * cdef int len_particles = particles['xposition'].size # <<<<<<<<<<<<<< * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length */ - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 137, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 137, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_len_particles = __pyx_t_3; - /* "src/_ccomp.pyx":138 + /* "src/_ccomp.pyx":135 * "if you have the compiled dist function, it is just as fast. ") * cdef int len_particles = particles['xposition'].size * pairs = int((len_particles - 1) * len_particles / 2) # <<<<<<<<<<<<<< * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) */ - __pyx_t_2 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 138, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_pairs = __pyx_t_2; __pyx_t_2 = 0; - /* "src/_ccomp.pyx":139 + /* "src/_ccomp.pyx":136 * cdef int len_particles = particles['xposition'].size * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 139, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 136, __pyx_L1_error) __pyx_v_box_l = __pyx_t_4; - /* "src/_ccomp.pyx":140 + /* "src/_ccomp.pyx":137 * pairs = int((len_particles - 1) * len_particles / 2) * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { @@ -3108,14 +3089,14 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } } if (!__pyx_t_6) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -3124,32 +3105,32 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 140, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 137, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xpos.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_xpos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 140, __pyx_L1_error) + __PYX_ERR(0, 137, __pyx_L1_error) } else {__pyx_pybuffernd_xpos.diminfo[0].strides = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xpos.diminfo[0].shape = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.shape[0]; } } @@ -3157,19 +3138,19 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_v_xpos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":141 + /* "src/_ccomp.pyx":138 * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) */ - __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 141, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 141, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 141, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { @@ -3182,14 +3163,14 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } } if (!__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -3198,32 +3179,32 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 141, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 141, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 138, __pyx_L1_error) __pyx_t_9 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ypos.rcbuffer->pybuffer, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_ypos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 141, __pyx_L1_error) + __PYX_ERR(0, 138, __pyx_L1_error) } else {__pyx_pybuffernd_ypos.diminfo[0].strides = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ypos.diminfo[0].shape = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.shape[0]; } } @@ -3231,16 +3212,16 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_v_ypos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":142 + /* "src/_ccomp.pyx":139 * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) * cdef double cut = cut_off */ - __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 142, __pyx_L1_error) + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 142, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; @@ -3254,13 +3235,13 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } } if (!__pyx_t_7) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 142, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 142, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -3268,31 +3249,31 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 142, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 142, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = NULL; __Pyx_INCREF(__pyx_v_pairs); __Pyx_GIVEREF(__pyx_v_pairs); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_pairs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 142, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 142, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 139, __pyx_L1_error) __pyx_t_10 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_distances_arr.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_distances_arr = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 142, __pyx_L1_error) + __PYX_ERR(0, 139, __pyx_L1_error) } else {__pyx_pybuffernd_distances_arr.diminfo[0].strides = __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_distances_arr.diminfo[0].shape = __pyx_pybuffernd_distances_arr.rcbuffer->pybuffer.shape[0]; } } @@ -3300,16 +3281,16 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_v_distances_arr = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":143 + /* "src/_ccomp.pyx":140 * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) # <<<<<<<<<<<<<< * cdef double cut = cut_off - * cdef double ac = a + * cdef double ac = constants[0] */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 143, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 143, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -3323,13 +3304,13 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } } if (!__pyx_t_6) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -3337,31 +3318,31 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pairs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 143, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_INCREF(__pyx_v_pairs); __Pyx_GIVEREF(__pyx_v_pairs); PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_pairs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 143, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 140, __pyx_L1_error) __pyx_t_11 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_energy_arr.rcbuffer->pybuffer, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_energy_arr = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 143, __pyx_L1_error) + __PYX_ERR(0, 140, __pyx_L1_error) } else {__pyx_pybuffernd_energy_arr.diminfo[0].strides = __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_energy_arr.diminfo[0].shape = __pyx_pybuffernd_energy_arr.rcbuffer->pybuffer.shape[0]; } } @@ -3369,37 +3350,43 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_v_energy_arr = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":144 + /* "src/_ccomp.pyx":141 * cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) * cdef double cut = cut_off # <<<<<<<<<<<<<< - * cdef double ac = a - * cdef double bc = b + * cdef double ac = constants[0] + * cdef double bc = constants[1] */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 144, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L1_error) __pyx_v_cut = __pyx_t_4; - /* "src/_ccomp.pyx":145 + /* "src/_ccomp.pyx":142 * cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) * cdef double cut = cut_off - * cdef double ac = a # <<<<<<<<<<<<<< - * cdef double bc = b + * cdef double ac = constants[0] # <<<<<<<<<<<<<< + * cdef double bc = constants[1] * */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 145, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_constants, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 142, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_ac = __pyx_t_4; - /* "src/_ccomp.pyx":146 + /* "src/_ccomp.pyx":143 * cdef double cut = cut_off - * cdef double ac = a - * cdef double bc = b # <<<<<<<<<<<<<< + * cdef double ac = constants[0] + * cdef double bc = constants[1] # <<<<<<<<<<<<<< * * */ - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_b); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 146, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_constants, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 143, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_bc = __pyx_t_4; - /* "src/_ccomp.pyx":149 + /* "src/_ccomp.pyx":146 * * * for i in range(0, len_particles): # <<<<<<<<<<<<<< @@ -3411,19 +3398,19 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) { __pyx_v_i = __pyx_t_13; - /* "src/_ccomp.pyx":150 + /* "src/_ccomp.pyx":147 * * for i in range(0, len_particles): * xpos[i] = particles['xposition'][i] # <<<<<<<<<<<<<< * ypos[i] = particles['yposition'][i] * */ - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 150, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 150, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_14 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 150, __pyx_L1_error) + __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_14 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_15 = __pyx_v_i; __pyx_t_16 = -1; @@ -3433,23 +3420,23 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_xpos.diminfo[0].shape)) __pyx_t_16 = 0; if (unlikely(__pyx_t_16 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_16); - __PYX_ERR(0, 150, __pyx_L1_error) + __PYX_ERR(0, 147, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_xpos.diminfo[0].strides) = __pyx_t_14; - /* "src/_ccomp.pyx":151 + /* "src/_ccomp.pyx":148 * for i in range(0, len_particles): * xpos[i] = particles['xposition'][i] * ypos[i] = particles['yposition'][i] # <<<<<<<<<<<<<< * * */ - __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 151, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 151, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_14 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 151, __pyx_L1_error) + __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_14 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_17 = __pyx_v_i; __pyx_t_16 = -1; @@ -3459,12 +3446,12 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_ypos.diminfo[0].shape)) __pyx_t_16 = 0; if (unlikely(__pyx_t_16 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_16); - __PYX_ERR(0, 151, __pyx_L1_error) + __PYX_ERR(0, 148, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_ypos.diminfo[0].strides) = __pyx_t_14; } - /* "src/_ccomp.pyx":154 + /* "src/_ccomp.pyx":151 * * * compute_energies(len_particles, xpos.data, # <<<<<<<<<<<<<< @@ -3473,7 +3460,7 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ */ compute_energies(__pyx_v_len_particles, ((double const *)__pyx_v_xpos->data), ((double const *)__pyx_v_ypos->data), ((double *)__pyx_v_distances_arr->data), __pyx_v_box_l, ((double *)__pyx_v_energy_arr->data), __pyx_v_cut, __pyx_v_ac, __pyx_v_bc); - /* "src/_ccomp.pyx":158 + /* "src/_ccomp.pyx":155 * box_l, energy_arr.data, cut, ac, bc) * * return distances_arr, energy_arr # <<<<<<<<<<<<<< @@ -3481,7 +3468,7 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ * def calculate_pressure(particles, box_length, temperature, cut_off, */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 158, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_distances_arr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_distances_arr)); @@ -3493,12 +3480,12 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ __pyx_t_2 = 0; goto __pyx_L0; - /* "src/_ccomp.pyx":104 + /* "src/_ccomp.pyx":102 * return particles, distances_arr, force_arr, energy_arr * - * def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): # <<<<<<<<<<<<<< + * def compute_energy(particles, box_length, cut_off, # <<<<<<<<<<<<<< + * constants=[1.363e-134, 9.273e-78]): * """Calculates the total energy of the simulation. This uses a - * 12-6 Lennard-Jones potential model for Argon with values: */ /* function exit code */ @@ -3536,39 +3523,35 @@ static PyObject *__pyx_pf_4pylj_4comp_2compute_energy(CYTHON_UNUSED PyObject *__ return __pyx_r; } -/* "src/_ccomp.pyx":160 +/* "src/_ccomp.pyx":157 * return distances_arr, energy_arr * * def calculate_pressure(particles, box_length, temperature, cut_off, # <<<<<<<<<<<<<< - * a=1.363e-134, b=9.273e-78): + * constants=[1.363e-134, 9.273e-78]): * r"""Calculates the instantaneous pressure of the simulation cell, found */ /* Python wrapper */ static PyObject *__pyx_pw_4pylj_4comp_5calculate_pressure(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_4pylj_4comp_4calculate_pressure[] = "Calculates the instantaneous pressure of the simulation cell, found\n with the following relationship:\n\n .. math::\n p = \\langle \\rho k_b T \\rangle + \\bigg\\langle\n \\frac{1}{3V}\\sum_{i}\\sum_{j 0) { - PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a); + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_constants); if (value) { values[4] = value; kw_args--; } } - CYTHON_FALLTHROUGH; - case 5: - if (kw_args > 0) { - PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b); - if (value) { values[5] = value; kw_args--; } - } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculate_pressure") < 0)) __PYX_ERR(0, 160, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculate_pressure") < 0)) __PYX_ERR(0, 157, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { - case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); @@ -3639,25 +3614,24 @@ static PyObject *__pyx_pw_4pylj_4comp_5calculate_pressure(PyObject *__pyx_self, __pyx_v_box_length = values[1]; __pyx_v_temperature = values[2]; __pyx_v_cut_off = values[3]; - __pyx_v_a = values[4]; - __pyx_v_b = values[5]; + __pyx_v_constants = values[4]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("calculate_pressure", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 160, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("calculate_pressure", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 157, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pylj.comp.calculate_pressure", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_4pylj_4comp_4calculate_pressure(__pyx_self, __pyx_v_particles, __pyx_v_box_length, __pyx_v_temperature, __pyx_v_cut_off, __pyx_v_a, __pyx_v_b); + __pyx_r = __pyx_pf_4pylj_4comp_4calculate_pressure(__pyx_self, __pyx_v_particles, __pyx_v_box_length, __pyx_v_temperature, __pyx_v_cut_off, __pyx_v_constants); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_temperature, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_a, PyObject *__pyx_v_b) { +static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_particles, PyObject *__pyx_v_box_length, PyObject *__pyx_v_temperature, PyObject *__pyx_v_cut_off, PyObject *__pyx_v_constants) { int __pyx_v_number_of_particles; PyArrayObject *__pyx_v_xpos = 0; PyArrayObject *__pyx_v_ypos = 0; @@ -3699,44 +3673,44 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject __pyx_pybuffernd_ypos.data = NULL; __pyx_pybuffernd_ypos.rcbuffer = &__pyx_pybuffer_ypos; - /* "src/_ccomp.pyx":193 + /* "src/_ccomp.pyx":188 * Instantaneous pressure of the simulation. * """ * print("This function is deprecated, please use " # <<<<<<<<<<<<<< * "pairwise.calculate_pressure, if you have the compiled dist " * "function, it is just as fast. ") */ - if (__Pyx_PrintOne(0, __pyx_kp_s_This_function_is_deprecated_plea_3) < 0) __PYX_ERR(0, 193, __pyx_L1_error) + if (__Pyx_PrintOne(0, __pyx_kp_s_This_function_is_deprecated_plea_3) < 0) __PYX_ERR(0, 188, __pyx_L1_error) - /* "src/_ccomp.pyx":196 + /* "src/_ccomp.pyx":191 * "pairwise.calculate_pressure, if you have the compiled dist " * "function, it is just as fast. ") * cdef int number_of_particles = particles['xposition'].size # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(number_of_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(number_of_particles) */ - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 196, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 196, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 196, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_number_of_particles = __pyx_t_3; - /* "src/_ccomp.pyx":197 + /* "src/_ccomp.pyx":192 * "function, it is just as fast. ") * cdef int number_of_particles = particles['xposition'].size * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(number_of_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(number_of_particles) * cdef double box_l = box_length */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_number_of_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_number_of_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -3749,14 +3723,14 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject } } if (!__pyx_t_5) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -3765,32 +3739,32 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 197, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 192, __pyx_L1_error) __pyx_t_7 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xpos.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_xpos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 197, __pyx_L1_error) + __PYX_ERR(0, 192, __pyx_L1_error) } else {__pyx_pybuffernd_xpos.diminfo[0].strides = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xpos.diminfo[0].shape = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.shape[0]; } } @@ -3798,19 +3772,19 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject __pyx_v_xpos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":198 + /* "src/_ccomp.pyx":193 * cdef int number_of_particles = particles['xposition'].size * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(number_of_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(number_of_particles) # <<<<<<<<<<<<<< * cdef double box_l = box_length * cdef double pressure = 0. */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 198, __pyx_L1_error) + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 198, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_number_of_particles); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 198, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_number_of_particles); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { @@ -3823,14 +3797,14 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject } } if (!__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -3839,32 +3813,32 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 198, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 198, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 193, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ypos.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_ypos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 198, __pyx_L1_error) + __PYX_ERR(0, 193, __pyx_L1_error) } else {__pyx_pybuffernd_ypos.diminfo[0].strides = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ypos.diminfo[0].shape = __pyx_pybuffernd_ypos.rcbuffer->pybuffer.shape[0]; } } @@ -3872,17 +3846,17 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject __pyx_v_ypos = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":199 + /* "src/_ccomp.pyx":194 * cdef np.ndarray[DTYPE_t, ndim=1] xpos = np.zeros(number_of_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(number_of_particles) * cdef double box_l = box_length # <<<<<<<<<<<<<< * cdef double pressure = 0. * cdef double temp = temperature */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 199, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 194, __pyx_L1_error) __pyx_v_box_l = __pyx_t_9; - /* "src/_ccomp.pyx":200 + /* "src/_ccomp.pyx":195 * cdef np.ndarray[DTYPE_t, ndim=1] ypos = np.zeros(number_of_particles) * cdef double box_l = box_length * cdef double pressure = 0. # <<<<<<<<<<<<<< @@ -3891,47 +3865,53 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject */ __pyx_v_pressure = 0.; - /* "src/_ccomp.pyx":201 + /* "src/_ccomp.pyx":196 * cdef double box_l = box_length * cdef double pressure = 0. * cdef double temp = temperature # <<<<<<<<<<<<<< * cdef double cut = cut_off - * cdef double ac = a + * cdef double ac = constants[0] */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_temperature); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 201, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_temperature); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 196, __pyx_L1_error) __pyx_v_temp = __pyx_t_9; - /* "src/_ccomp.pyx":202 + /* "src/_ccomp.pyx":197 * cdef double pressure = 0. * cdef double temp = temperature * cdef double cut = cut_off # <<<<<<<<<<<<<< - * cdef double ac = a - * cdef double bc = b + * cdef double ac = constants[0] + * cdef double bc = constants[1] */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 202, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_cut_off); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 197, __pyx_L1_error) __pyx_v_cut = __pyx_t_9; - /* "src/_ccomp.pyx":203 + /* "src/_ccomp.pyx":198 * cdef double temp = temperature * cdef double cut = cut_off - * cdef double ac = a # <<<<<<<<<<<<<< - * cdef double bc = b + * cdef double ac = constants[0] # <<<<<<<<<<<<<< + * cdef double bc = constants[1] * */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_constants, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 198, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_ac = __pyx_t_9; - /* "src/_ccomp.pyx":204 + /* "src/_ccomp.pyx":199 * cdef double cut = cut_off - * cdef double ac = a - * cdef double bc = b # <<<<<<<<<<<<<< + * cdef double ac = constants[0] + * cdef double bc = constants[1] # <<<<<<<<<<<<<< * * */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_b); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 204, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_constants, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 199, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_bc = __pyx_t_9; - /* "src/_ccomp.pyx":207 + /* "src/_ccomp.pyx":202 * * * for i in range(0, number_of_particles): # <<<<<<<<<<<<<< @@ -3943,19 +3923,19 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) { __pyx_v_i = __pyx_t_11; - /* "src/_ccomp.pyx":208 + /* "src/_ccomp.pyx":203 * * for i in range(0, number_of_particles): * xpos[i] = particles['xposition'][i] # <<<<<<<<<<<<<< * ypos[i] = particles['yposition'][i] * */ - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 208, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 208, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 208, __pyx_L1_error) + __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_13 = __pyx_v_i; __pyx_t_14 = -1; @@ -3965,23 +3945,23 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject } else if (unlikely(__pyx_t_13 >= __pyx_pybuffernd_xpos.diminfo[0].shape)) __pyx_t_14 = 0; if (unlikely(__pyx_t_14 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 208, __pyx_L1_error) + __PYX_ERR(0, 203, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_xpos.diminfo[0].strides) = __pyx_t_12; - /* "src/_ccomp.pyx":209 + /* "src/_ccomp.pyx":204 * for i in range(0, number_of_particles): * xpos[i] = particles['xposition'][i] * ypos[i] = particles['yposition'][i] # <<<<<<<<<<<<<< * * pressure = compute_pressure(number_of_particles, xpos.data, */ - __pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 209, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yposition); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 209, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 209, __pyx_L1_error) + __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 204, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_15 = __pyx_v_i; __pyx_t_14 = -1; @@ -3991,21 +3971,21 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_ypos.diminfo[0].shape)) __pyx_t_14 = 0; if (unlikely(__pyx_t_14 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 209, __pyx_L1_error) + __PYX_ERR(0, 204, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_ypos.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_ypos.diminfo[0].strides) = __pyx_t_12; } - /* "src/_ccomp.pyx":212 + /* "src/_ccomp.pyx":207 * * pressure = compute_pressure(number_of_particles, xpos.data, * ypos.data, box_l, temperature, # <<<<<<<<<<<<<< * cut, ac, bc) * */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_temperature); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 212, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_temperature); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 207, __pyx_L1_error) - /* "src/_ccomp.pyx":211 + /* "src/_ccomp.pyx":206 * ypos[i] = particles['yposition'][i] * * pressure = compute_pressure(number_of_particles, xpos.data, # <<<<<<<<<<<<<< @@ -4014,7 +3994,7 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject */ __pyx_v_pressure = compute_pressure(__pyx_v_number_of_particles, ((double const *)__pyx_v_xpos->data), ((double const *)__pyx_v_ypos->data), __pyx_v_box_l, __pyx_t_9, __pyx_v_cut, __pyx_v_ac, __pyx_v_bc); - /* "src/_ccomp.pyx":215 + /* "src/_ccomp.pyx":210 * cut, ac, bc) * * return pressure # <<<<<<<<<<<<<< @@ -4022,17 +4002,17 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject * def heat_bath(particles, temperature_sample, bath_temp): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_pressure); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 215, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_pressure); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "src/_ccomp.pyx":160 + /* "src/_ccomp.pyx":157 * return distances_arr, energy_arr * * def calculate_pressure(particles, box_length, temperature, cut_off, # <<<<<<<<<<<<<< - * a=1.363e-134, b=9.273e-78): + * constants=[1.363e-134, 9.273e-78]): * r"""Calculates the instantaneous pressure of the simulation cell, found */ @@ -4064,7 +4044,7 @@ static PyObject *__pyx_pf_4pylj_4comp_4calculate_pressure(CYTHON_UNUSED PyObject return __pyx_r; } -/* "src/_ccomp.pyx":217 +/* "src/_ccomp.pyx":212 * return pressure * * def heat_bath(particles, temperature_sample, bath_temp): # <<<<<<<<<<<<<< @@ -4108,17 +4088,17 @@ static PyObject *__pyx_pw_4pylj_4comp_7heat_bath(PyObject *__pyx_self, PyObject case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_temperature_sample)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, 1); __PYX_ERR(0, 217, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, 1); __PYX_ERR(0, 212, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bath_temp)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, 2); __PYX_ERR(0, 217, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, 2); __PYX_ERR(0, 212, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "heat_bath") < 0)) __PYX_ERR(0, 217, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "heat_bath") < 0)) __PYX_ERR(0, 212, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; @@ -4133,7 +4113,7 @@ static PyObject *__pyx_pw_4pylj_4comp_7heat_bath(PyObject *__pyx_self, PyObject } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 217, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("heat_bath", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 212, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pylj.comp.heat_bath", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -4186,35 +4166,35 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s __pyx_pybuffernd_yvel.data = NULL; __pyx_pybuffernd_yvel.rcbuffer = &__pyx_pybuffer_yvel; - /* "src/_ccomp.pyx":240 + /* "src/_ccomp.pyx":235 * Information about the particles with new, rescaled velocities. * """ * cdef int len_particles = particles['xposition'].size # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xvel = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] yvel = np.zeros(len_particles) */ - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 240, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xposition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 240, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 240, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_len_particles = __pyx_t_3; - /* "src/_ccomp.pyx":241 + /* "src/_ccomp.pyx":236 * """ * cdef int len_particles = particles['xposition'].size * cdef np.ndarray[DTYPE_t, ndim=1] xvel = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] yvel = np.zeros(len_particles) * cdef double average_temp = np.average(temperature_sample) */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 241, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 241, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 241, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -4227,14 +4207,14 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s } } if (!__pyx_t_5) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 241, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 236, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 241, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 236, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -4243,32 +4223,32 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 241, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 236, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 241, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 241, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 241, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 236, __pyx_L1_error) __pyx_t_7 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xvel.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_xvel = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xvel.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 241, __pyx_L1_error) + __PYX_ERR(0, 236, __pyx_L1_error) } else {__pyx_pybuffernd_xvel.diminfo[0].strides = __pyx_pybuffernd_xvel.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xvel.diminfo[0].shape = __pyx_pybuffernd_xvel.rcbuffer->pybuffer.shape[0]; } } @@ -4276,19 +4256,19 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_xvel = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":242 + /* "src/_ccomp.pyx":237 * cdef int len_particles = particles['xposition'].size * cdef np.ndarray[DTYPE_t, ndim=1] xvel = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] yvel = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef double average_temp = np.average(temperature_sample) * cdef double temperature = bath_temp */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 242, __pyx_L1_error) + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 242, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 242, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { @@ -4301,14 +4281,14 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s } } if (!__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 242, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 242, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -4317,32 +4297,32 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 242, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 242, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 242, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 242, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 237, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_yvel.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_yvel = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_yvel.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 242, __pyx_L1_error) + __PYX_ERR(0, 237, __pyx_L1_error) } else {__pyx_pybuffernd_yvel.diminfo[0].strides = __pyx_pybuffernd_yvel.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_yvel.diminfo[0].shape = __pyx_pybuffernd_yvel.rcbuffer->pybuffer.shape[0]; } } @@ -4350,16 +4330,16 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_yvel = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":243 + /* "src/_ccomp.pyx":238 * cdef np.ndarray[DTYPE_t, ndim=1] xvel = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] yvel = np.zeros(len_particles) * cdef double average_temp = np.average(temperature_sample) # <<<<<<<<<<<<<< * cdef double temperature = bath_temp * */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 243, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_average); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 243, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_average); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -4373,13 +4353,13 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s } } if (!__pyx_t_6) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_temperature_sample); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_temperature_sample); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_temperature_sample}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -4387,39 +4367,39 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_temperature_sample}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 243, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_INCREF(__pyx_v_temperature_sample); __Pyx_GIVEREF(__pyx_v_temperature_sample); PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_temperature_sample); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 243, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_average_temp = __pyx_t_9; - /* "src/_ccomp.pyx":244 + /* "src/_ccomp.pyx":239 * cdef np.ndarray[DTYPE_t, ndim=1] yvel = np.zeros(len_particles) * cdef double average_temp = np.average(temperature_sample) * cdef double temperature = bath_temp # <<<<<<<<<<<<<< * * for i in range(0, len_particles): */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_bath_temp); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 244, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_bath_temp); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 239, __pyx_L1_error) __pyx_v_temperature = __pyx_t_9; - /* "src/_ccomp.pyx":246 + /* "src/_ccomp.pyx":241 * cdef double temperature = bath_temp * * for i in range(0, len_particles): # <<<<<<<<<<<<<< @@ -4431,19 +4411,19 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) { __pyx_v_i = __pyx_t_11; - /* "src/_ccomp.pyx":247 + /* "src/_ccomp.pyx":242 * * for i in range(0, len_particles): * xvel[i] = particles['xvelocity'][i] # <<<<<<<<<<<<<< * yvel[i] = particles['yvelocity'][i] * */ - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xvelocity); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 247, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xvelocity); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 247, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 247, __pyx_L1_error) + __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_13 = __pyx_v_i; __pyx_t_14 = -1; @@ -4453,23 +4433,23 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s } else if (unlikely(__pyx_t_13 >= __pyx_pybuffernd_xvel.diminfo[0].shape)) __pyx_t_14 = 0; if (unlikely(__pyx_t_14 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 247, __pyx_L1_error) + __PYX_ERR(0, 242, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xvel.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_xvel.diminfo[0].strides) = __pyx_t_12; - /* "src/_ccomp.pyx":248 + /* "src/_ccomp.pyx":243 * for i in range(0, len_particles): * xvel[i] = particles['xvelocity'][i] * yvel[i] = particles['yvelocity'][i] # <<<<<<<<<<<<<< * * scale_velocities(len_particles, xvel.data, yvel.data, */ - __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 248, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 248, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 248, __pyx_L1_error) + __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_12 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_15 = __pyx_v_i; __pyx_t_14 = -1; @@ -4479,12 +4459,12 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_yvel.diminfo[0].shape)) __pyx_t_14 = 0; if (unlikely(__pyx_t_14 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 248, __pyx_L1_error) + __PYX_ERR(0, 243, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yvel.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_yvel.diminfo[0].strides) = __pyx_t_12; } - /* "src/_ccomp.pyx":250 + /* "src/_ccomp.pyx":245 * yvel[i] = particles['yvelocity'][i] * * scale_velocities(len_particles, xvel.data, yvel.data, # <<<<<<<<<<<<<< @@ -4493,7 +4473,7 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s */ scale_velocities(__pyx_v_len_particles, ((double *)__pyx_v_xvel->data), ((double *)__pyx_v_yvel->data), __pyx_v_average_temp, __pyx_v_temperature); - /* "src/_ccomp.pyx":253 + /* "src/_ccomp.pyx":248 * average_temp, temperature) * * for i in range(0, len_particles): # <<<<<<<<<<<<<< @@ -4505,7 +4485,7 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) { __pyx_v_i = __pyx_t_11; - /* "src/_ccomp.pyx":254 + /* "src/_ccomp.pyx":249 * * for i in range(0, len_particles): * particles['xvelocity'][i] = xvel[i] # <<<<<<<<<<<<<< @@ -4520,17 +4500,17 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_xvel.diminfo[0].shape)) __pyx_t_14 = 0; if (unlikely(__pyx_t_14 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 254, __pyx_L1_error) + __PYX_ERR(0, 249, __pyx_L1_error) } - __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xvel.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_xvel.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 254, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xvel.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_xvel.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 254, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_xvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 254, __pyx_L1_error) + if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":255 + /* "src/_ccomp.pyx":250 * for i in range(0, len_particles): * particles['xvelocity'][i] = xvel[i] * particles['yvelocity'][i] = yvel[i] # <<<<<<<<<<<<<< @@ -4545,18 +4525,18 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_yvel.diminfo[0].shape)) __pyx_t_14 = 0; if (unlikely(__pyx_t_14 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_14); - __PYX_ERR(0, 255, __pyx_L1_error) + __PYX_ERR(0, 250, __pyx_L1_error) } - __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yvel.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_yvel.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 255, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble((*__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_yvel.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_yvel.diminfo[0].strides))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 255, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_particles, __pyx_n_s_yvelocity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 255, __pyx_L1_error) + if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 250, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - /* "src/_ccomp.pyx":257 + /* "src/_ccomp.pyx":252 * particles['yvelocity'][i] = yvel[i] * * return particles # <<<<<<<<<<<<<< @@ -4568,7 +4548,7 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s __pyx_r = __pyx_v_particles; goto __pyx_L0; - /* "src/_ccomp.pyx":217 + /* "src/_ccomp.pyx":212 * return pressure * * def heat_bath(particles, temperature_sample, bath_temp): # <<<<<<<<<<<<<< @@ -4604,7 +4584,7 @@ static PyObject *__pyx_pf_4pylj_4comp_6heat_bath(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } -/* "src/_ccomp.pyx":259 +/* "src/_ccomp.pyx":254 * return particles * * def dist(xpos, ypos, box_length): # <<<<<<<<<<<<<< @@ -4648,17 +4628,17 @@ static PyObject *__pyx_pw_4pylj_4comp_9dist(PyObject *__pyx_self, PyObject *__py case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ypos)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("dist", 1, 3, 3, 1); __PYX_ERR(0, 259, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("dist", 1, 3, 3, 1); __PYX_ERR(0, 254, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_box_length)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("dist", 1, 3, 3, 2); __PYX_ERR(0, 259, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("dist", 1, 3, 3, 2); __PYX_ERR(0, 254, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dist") < 0)) __PYX_ERR(0, 259, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dist") < 0)) __PYX_ERR(0, 254, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; @@ -4673,7 +4653,7 @@ static PyObject *__pyx_pw_4pylj_4comp_9dist(PyObject *__pyx_self, PyObject *__py } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("dist", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 259, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("dist", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 254, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pylj.comp.dist", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -4747,35 +4727,35 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, __pyx_pybuffernd_ydistances.data = NULL; __pyx_pybuffernd_ydistances.rcbuffer = &__pyx_pybuffer_ydistances; - /* "src/_ccomp.pyx":282 + /* "src/_ccomp.pyx":277 * The pairs of distances between the particles, in only the y-dimension. * """ * cdef int len_particles = int(xpos.size) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xpositions = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypositions = np.zeros(len_particles) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_xpos, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 282, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_xpos, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 282, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 282, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_len_particles = __pyx_t_3; - /* "src/_ccomp.pyx":283 + /* "src/_ccomp.pyx":278 * """ * cdef int len_particles = int(xpos.size) * cdef np.ndarray[DTYPE_t, ndim=1] xpositions = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] ypositions = np.zeros(len_particles) * cdef double box_l = box_length */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 283, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 283, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 283, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -4788,14 +4768,14 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, } } if (!__pyx_t_5) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 283, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 283, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -4804,32 +4784,32 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 283, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 283, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 283, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 283, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 278, __pyx_L1_error) __pyx_t_7 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xpositions.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_xpositions = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xpositions.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 283, __pyx_L1_error) + __PYX_ERR(0, 278, __pyx_L1_error) } else {__pyx_pybuffernd_xpositions.diminfo[0].strides = __pyx_pybuffernd_xpositions.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xpositions.diminfo[0].shape = __pyx_pybuffernd_xpositions.rcbuffer->pybuffer.shape[0]; } } @@ -4837,19 +4817,19 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, __pyx_v_xpositions = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":284 + /* "src/_ccomp.pyx":279 * cdef int len_particles = int(xpos.size) * cdef np.ndarray[DTYPE_t, ndim=1] xpositions = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypositions = np.zeros(len_particles) # <<<<<<<<<<<<<< * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] distances = np.zeros(int((len_particles - 1) * len_particles / 2)) */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 284, __pyx_L1_error) + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 284, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 284, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_len_particles); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { @@ -4862,14 +4842,14 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, } } if (!__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 284, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 279, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 284, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 279, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -4878,32 +4858,32 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 284, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 279, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 284, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 284, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 284, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 279, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ypositions.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_ypositions = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_ypositions.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 284, __pyx_L1_error) + __PYX_ERR(0, 279, __pyx_L1_error) } else {__pyx_pybuffernd_ypositions.diminfo[0].strides = __pyx_pybuffernd_ypositions.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ypositions.diminfo[0].shape = __pyx_pybuffernd_ypositions.rcbuffer->pybuffer.shape[0]; } } @@ -4911,29 +4891,29 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, __pyx_v_ypositions = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":285 + /* "src/_ccomp.pyx":280 * cdef np.ndarray[DTYPE_t, ndim=1] xpositions = np.zeros(len_particles) * cdef np.ndarray[DTYPE_t, ndim=1] ypositions = np.zeros(len_particles) * cdef double box_l = box_length # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] distances = np.zeros(int((len_particles - 1) * len_particles / 2)) * cdef np.ndarray[DTYPE_t, ndim=1] xdistances = np.zeros(int((len_particles - 1) * len_particles / 2)) */ - __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 285, __pyx_L1_error) + __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_box_length); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 280, __pyx_L1_error) __pyx_v_box_l = __pyx_t_9; - /* "src/_ccomp.pyx":286 + /* "src/_ccomp.pyx":281 * cdef np.ndarray[DTYPE_t, ndim=1] ypositions = np.zeros(len_particles) * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] distances = np.zeros(int((len_particles - 1) * len_particles / 2)) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] xdistances = np.zeros(int((len_particles - 1) * len_particles / 2)) * cdef np.ndarray[DTYPE_t, ndim=1] ydistances = np.zeros(int((len_particles - 1) * len_particles / 2)) */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 286, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 286, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 286, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { @@ -4946,14 +4926,14 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, } } if (!__pyx_t_4) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 286, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 286, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; @@ -4962,32 +4942,32 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 286, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { - __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 286, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = NULL; __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_t_6); __pyx_t_6 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 286, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 286, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 281, __pyx_L1_error) __pyx_t_10 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_distances.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_distances = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_distances.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 286, __pyx_L1_error) + __PYX_ERR(0, 281, __pyx_L1_error) } else {__pyx_pybuffernd_distances.diminfo[0].strides = __pyx_pybuffernd_distances.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_distances.diminfo[0].shape = __pyx_pybuffernd_distances.rcbuffer->pybuffer.shape[0]; } } @@ -4995,19 +4975,19 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, __pyx_v_distances = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":287 + /* "src/_ccomp.pyx":282 * cdef double box_l = box_length * cdef np.ndarray[DTYPE_t, ndim=1] distances = np.zeros(int((len_particles - 1) * len_particles / 2)) * cdef np.ndarray[DTYPE_t, ndim=1] xdistances = np.zeros(int((len_particles - 1) * len_particles / 2)) # <<<<<<<<<<<<<< * cdef np.ndarray[DTYPE_t, ndim=1] ydistances = np.zeros(int((len_particles - 1) * len_particles / 2)) * */ - __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 287, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 287, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 287, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { @@ -5020,14 +5000,14 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, } } if (!__pyx_t_6) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 287, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 282, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 287, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 282, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -5036,32 +5016,32 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 287, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 282, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { - __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 287, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 287, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 287, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 282, __pyx_L1_error) __pyx_t_11 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xdistances.rcbuffer->pybuffer, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_xdistances = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_xdistances.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 287, __pyx_L1_error) + __PYX_ERR(0, 282, __pyx_L1_error) } else {__pyx_pybuffernd_xdistances.diminfo[0].strides = __pyx_pybuffernd_xdistances.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xdistances.diminfo[0].shape = __pyx_pybuffernd_xdistances.rcbuffer->pybuffer.shape[0]; } } @@ -5069,19 +5049,19 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, __pyx_v_xdistances = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":288 + /* "src/_ccomp.pyx":283 * cdef np.ndarray[DTYPE_t, ndim=1] distances = np.zeros(int((len_particles - 1) * len_particles / 2)) * cdef np.ndarray[DTYPE_t, ndim=1] xdistances = np.zeros(int((len_particles - 1) * len_particles / 2)) * cdef np.ndarray[DTYPE_t, ndim=1] ydistances = np.zeros(int((len_particles - 1) * len_particles / 2)) # <<<<<<<<<<<<<< * * */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 288, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 288, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 288, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_FromDouble((((double)((__pyx_v_len_particles - 1) * __pyx_v_len_particles)) / 2.0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -5094,14 +5074,14 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, } } if (!__pyx_t_5) { - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 288, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 288, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -5110,32 +5090,32 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 288, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 288, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 288, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 288, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 283, __pyx_L1_error) __pyx_t_12 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ydistances.rcbuffer->pybuffer, (PyObject*)__pyx_t_12, &__Pyx_TypeInfo_nn___pyx_t_4pylj_4comp_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_ydistances = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_ydistances.rcbuffer->pybuffer.buf = NULL; - __PYX_ERR(0, 288, __pyx_L1_error) + __PYX_ERR(0, 283, __pyx_L1_error) } else {__pyx_pybuffernd_ydistances.diminfo[0].strides = __pyx_pybuffernd_ydistances.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ydistances.diminfo[0].shape = __pyx_pybuffernd_ydistances.rcbuffer->pybuffer.shape[0]; } } @@ -5143,7 +5123,7 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, __pyx_v_ydistances = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":291 + /* "src/_ccomp.pyx":286 * * * for i in range(0, len_particles): # <<<<<<<<<<<<<< @@ -5155,16 +5135,16 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) { __pyx_v_i = __pyx_t_14; - /* "src/_ccomp.pyx":292 + /* "src/_ccomp.pyx":287 * * for i in range(0, len_particles): * xpositions[i] = xpos[i] # <<<<<<<<<<<<<< * ypositions[i] = ypos[i] * */ - __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_xpos, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 292, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_xpos, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_15 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 292, __pyx_L1_error) + __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_15 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_16 = __pyx_v_i; __pyx_t_17 = -1; @@ -5174,20 +5154,20 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_xpositions.diminfo[0].shape)) __pyx_t_17 = 0; if (unlikely(__pyx_t_17 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_17); - __PYX_ERR(0, 292, __pyx_L1_error) + __PYX_ERR(0, 287, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_xpositions.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_xpositions.diminfo[0].strides) = __pyx_t_15; - /* "src/_ccomp.pyx":293 + /* "src/_ccomp.pyx":288 * for i in range(0, len_particles): * xpositions[i] = xpos[i] * ypositions[i] = ypos[i] # <<<<<<<<<<<<<< * * get_distances(len_particles, xpositions.data, ypositions.data, */ - __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_ypos, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 293, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_ypos, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_15 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 293, __pyx_L1_error) + __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_15 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 288, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_18 = __pyx_v_i; __pyx_t_17 = -1; @@ -5197,12 +5177,12 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_ypositions.diminfo[0].shape)) __pyx_t_17 = 0; if (unlikely(__pyx_t_17 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_17); - __PYX_ERR(0, 293, __pyx_L1_error) + __PYX_ERR(0, 288, __pyx_L1_error) } *__Pyx_BufPtrStrided1d(__pyx_t_4pylj_4comp_DTYPE_t *, __pyx_pybuffernd_ypositions.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_ypositions.diminfo[0].strides) = __pyx_t_15; } - /* "src/_ccomp.pyx":295 + /* "src/_ccomp.pyx":290 * ypositions[i] = ypos[i] * * get_distances(len_particles, xpositions.data, ypositions.data, # <<<<<<<<<<<<<< @@ -5211,13 +5191,13 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, */ get_distances(__pyx_v_len_particles, ((double *)__pyx_v_xpositions->data), ((double *)__pyx_v_ypositions->data), __pyx_v_box_l, ((double *)__pyx_v_distances->data), ((double *)__pyx_v_xdistances->data), ((double *)__pyx_v_ydistances->data)); - /* "src/_ccomp.pyx":298 + /* "src/_ccomp.pyx":293 * box_l, distances.data, xdistances.data, ydistances.data) * * return distances, xdistances, ydistances # <<<<<<<<<<<<<< */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 298, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_distances)); __Pyx_GIVEREF(((PyObject *)__pyx_v_distances)); @@ -5232,7 +5212,7 @@ static PyObject *__pyx_pf_4pylj_4comp_8dist(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_2 = 0; goto __pyx_L0; - /* "src/_ccomp.pyx":259 + /* "src/_ccomp.pyx":254 * return particles * * def dist(xpos, ypos, box_length): # <<<<<<<<<<<<<< @@ -5393,7 +5373,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) */ - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 229, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -5449,7 +5429,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P * * info.buf = PyArray_DATA(self) */ - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 233, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -5706,7 +5686,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" */ - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 263, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -6586,7 +6566,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx * * if ((child.byteorder == c'>' and little_endian) or */ - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 810, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -6654,7 +6634,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx * # One could encode it in the format string and have Cython * # complain instead, BUT: < and > in format strings also imply */ - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 814, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -6763,7 +6743,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx * * # Until ticket #99 is fixed, use integers to avoid warnings */ - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 834, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -7437,7 +7417,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { * * cdef inline int import_umath() except -1: */ - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1000, __pyx_L5_except_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1000, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -7566,7 +7546,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { * * cdef inline int import_ufunc() except -1: */ - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1006, __pyx_L5_except_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1006, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -7692,7 +7672,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< */ - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1012, __pyx_L5_except_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1012, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -7786,11 +7766,9 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_kp_s_This_function_is_deprecated_plea_2, __pyx_k_This_function_is_deprecated_plea_2, sizeof(__pyx_k_This_function_is_deprecated_plea_2), 0, 0, 1, 0}, {&__pyx_kp_s_This_function_is_deprecated_plea_3, __pyx_k_This_function_is_deprecated_plea_3, sizeof(__pyx_k_This_function_is_deprecated_plea_3), 0, 0, 1, 0}, {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_a, __pyx_k_a, sizeof(__pyx_k_a), 0, 0, 1, 1}, {&__pyx_n_s_ac, __pyx_k_ac, sizeof(__pyx_k_ac), 0, 0, 1, 1}, {&__pyx_n_s_average, __pyx_k_average, sizeof(__pyx_k_average), 0, 0, 1, 1}, {&__pyx_n_s_average_temp, __pyx_k_average_temp, sizeof(__pyx_k_average_temp), 0, 0, 1, 1}, - {&__pyx_n_s_b, __pyx_k_b, sizeof(__pyx_k_b), 0, 0, 1, 1}, {&__pyx_n_s_bath_temp, __pyx_k_bath_temp, sizeof(__pyx_k_bath_temp), 0, 0, 1, 1}, {&__pyx_n_s_bc, __pyx_k_bc, sizeof(__pyx_k_bc), 0, 0, 1, 1}, {&__pyx_n_s_box_l, __pyx_k_box_l, sizeof(__pyx_k_box_l), 0, 0, 1, 1}, @@ -7799,6 +7777,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, {&__pyx_n_s_compute_energy, __pyx_k_compute_energy, sizeof(__pyx_k_compute_energy), 0, 0, 1, 1}, {&__pyx_n_s_compute_force, __pyx_k_compute_force, sizeof(__pyx_k_compute_force), 0, 0, 1, 1}, + {&__pyx_n_s_constants, __pyx_k_constants, sizeof(__pyx_k_constants), 0, 0, 1, 1}, {&__pyx_n_s_cut, __pyx_k_cut, sizeof(__pyx_k_cut), 0, 0, 1, 1}, {&__pyx_n_s_cut_off, __pyx_k_cut_off, sizeof(__pyx_k_cut_off), 0, 0, 1, 1}, {&__pyx_n_s_dist, __pyx_k_dist, sizeof(__pyx_k_dist), 0, 0, 1, 1}, @@ -7856,7 +7835,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {0, 0, 0, 0, 0, 0, 0} }; static int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 85, __pyx_L1_error) + __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 83, __pyx_L1_error) __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 229, __pyx_L1_error) __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 810, __pyx_L1_error) __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 1000, __pyx_L1_error) @@ -7876,9 +7855,9 @@ static int __Pyx_InitCachedConstants(void) { * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) */ - __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple_)) __PYX_ERR(1, 229, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple_); - __Pyx_GIVEREF(__pyx_tuple_); + __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(1, 229, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__4); + __Pyx_GIVEREF(__pyx_tuple__4); /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":233 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) @@ -7887,9 +7866,9 @@ static int __Pyx_InitCachedConstants(void) { * * info.buf = PyArray_DATA(self) */ - __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(1, 233, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__2); - __Pyx_GIVEREF(__pyx_tuple__2); + __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(1, 233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__5); + __Pyx_GIVEREF(__pyx_tuple__5); /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":263 * if ((descr.byteorder == c'>' and little_endian) or @@ -7898,9 +7877,9 @@ static int __Pyx_InitCachedConstants(void) { * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" */ - __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(1, 263, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__3); - __Pyx_GIVEREF(__pyx_tuple__3); + __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(1, 263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__6); + __Pyx_GIVEREF(__pyx_tuple__6); /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":810 * @@ -7909,9 +7888,9 @@ static int __Pyx_InitCachedConstants(void) { * * if ((child.byteorder == c'>' and little_endian) or */ - __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(1, 810, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__4); - __Pyx_GIVEREF(__pyx_tuple__4); + __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(1, 810, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__7); + __Pyx_GIVEREF(__pyx_tuple__7); /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":814 * if ((child.byteorder == c'>' and little_endian) or @@ -7920,9 +7899,9 @@ static int __Pyx_InitCachedConstants(void) { * # One could encode it in the format string and have Cython * # complain instead, BUT: < and > in format strings also imply */ - __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(1, 814, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__5); - __Pyx_GIVEREF(__pyx_tuple__5); + __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 814, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__8); + __Pyx_GIVEREF(__pyx_tuple__8); /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":834 * t = child.type_num @@ -7931,9 +7910,9 @@ static int __Pyx_InitCachedConstants(void) { * * # Until ticket #99 is fixed, use integers to avoid warnings */ - __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(1, 834, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__6); - __Pyx_GIVEREF(__pyx_tuple__6); + __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 834, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__9); + __Pyx_GIVEREF(__pyx_tuple__9); /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1000 * _import_array() @@ -7942,9 +7921,9 @@ static int __Pyx_InitCachedConstants(void) { * * cdef inline int import_umath() except -1: */ - __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(1, 1000, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__7); - __Pyx_GIVEREF(__pyx_tuple__7); + __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(1, 1000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__10); + __Pyx_GIVEREF(__pyx_tuple__10); /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1006 * _import_umath() @@ -7953,78 +7932,78 @@ static int __Pyx_InitCachedConstants(void) { * * cdef inline int import_ufunc() except -1: */ - __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 1006, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__8); - __Pyx_GIVEREF(__pyx_tuple__8); + __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(1, 1006, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__11); + __Pyx_GIVEREF(__pyx_tuple__11); /* "../../../../miniconda3/envs/pylj/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1012 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< */ - __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 1012, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__9); - __Pyx_GIVEREF(__pyx_tuple__9); + __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(1, 1012, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__12); + __Pyx_GIVEREF(__pyx_tuple__12); /* "src/_ccomp.pyx":31 * ctypedef np.float64_t DTYPE_t * - * def compute_force(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, # <<<<<<<<<<<<<< - * mass=39.948): + * def compute_force(particles, box_length, cut_off, # <<<<<<<<<<<<<< + * constants=[1.363e-134, 9.273e-78], mass=39.948): * """Calculates the forces and therefore the accelerations on each of the */ - __pyx_tuple__10 = PyTuple_Pack(21, __pyx_n_s_particles, __pyx_n_s_box_length, __pyx_n_s_cut_off, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_mass, __pyx_n_s_len_particles, __pyx_n_s_pairs, __pyx_n_s_box_l, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_xacc, __pyx_n_s_yacc, __pyx_n_s_distances_arr, __pyx_n_s_force_arr, __pyx_n_s_energy_arr, __pyx_n_s_cut, __pyx_n_s_ac, __pyx_n_s_bc, __pyx_n_s_massc, __pyx_n_s_i); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 31, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__10); - __Pyx_GIVEREF(__pyx_tuple__10); - __pyx_codeobj__11 = (PyObject*)__Pyx_PyCode_New(6, 0, 21, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__10, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_compute_force, 31, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__11)) __PYX_ERR(0, 31, __pyx_L1_error) + __pyx_tuple__13 = PyTuple_Pack(20, __pyx_n_s_particles, __pyx_n_s_box_length, __pyx_n_s_cut_off, __pyx_n_s_constants, __pyx_n_s_mass, __pyx_n_s_len_particles, __pyx_n_s_pairs, __pyx_n_s_box_l, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_xacc, __pyx_n_s_yacc, __pyx_n_s_distances_arr, __pyx_n_s_force_arr, __pyx_n_s_energy_arr, __pyx_n_s_cut, __pyx_n_s_ac, __pyx_n_s_bc, __pyx_n_s_massc, __pyx_n_s_i); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__13); + __Pyx_GIVEREF(__pyx_tuple__13); + __pyx_codeobj__14 = (PyObject*)__Pyx_PyCode_New(5, 0, 20, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_compute_force, 31, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__14)) __PYX_ERR(0, 31, __pyx_L1_error) - /* "src/_ccomp.pyx":104 + /* "src/_ccomp.pyx":102 * return particles, distances_arr, force_arr, energy_arr * - * def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): # <<<<<<<<<<<<<< + * def compute_energy(particles, box_length, cut_off, # <<<<<<<<<<<<<< + * constants=[1.363e-134, 9.273e-78]): * """Calculates the total energy of the simulation. This uses a - * 12-6 Lennard-Jones potential model for Argon with values: */ - __pyx_tuple__12 = PyTuple_Pack(16, __pyx_n_s_particles, __pyx_n_s_box_length, __pyx_n_s_cut_off, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_len_particles, __pyx_n_s_pairs, __pyx_n_s_box_l, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_distances_arr, __pyx_n_s_energy_arr, __pyx_n_s_cut, __pyx_n_s_ac, __pyx_n_s_bc, __pyx_n_s_i); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 104, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__12); - __Pyx_GIVEREF(__pyx_tuple__12); - __pyx_codeobj__13 = (PyObject*)__Pyx_PyCode_New(5, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__12, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_compute_energy, 104, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__13)) __PYX_ERR(0, 104, __pyx_L1_error) + __pyx_tuple__15 = PyTuple_Pack(15, __pyx_n_s_particles, __pyx_n_s_box_length, __pyx_n_s_cut_off, __pyx_n_s_constants, __pyx_n_s_len_particles, __pyx_n_s_pairs, __pyx_n_s_box_l, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_distances_arr, __pyx_n_s_energy_arr, __pyx_n_s_cut, __pyx_n_s_ac, __pyx_n_s_bc, __pyx_n_s_i); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(0, 102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__15); + __Pyx_GIVEREF(__pyx_tuple__15); + __pyx_codeobj__16 = (PyObject*)__Pyx_PyCode_New(4, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__15, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_compute_energy, 102, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__16)) __PYX_ERR(0, 102, __pyx_L1_error) - /* "src/_ccomp.pyx":160 + /* "src/_ccomp.pyx":157 * return distances_arr, energy_arr * * def calculate_pressure(particles, box_length, temperature, cut_off, # <<<<<<<<<<<<<< - * a=1.363e-134, b=9.273e-78): + * constants=[1.363e-134, 9.273e-78]): * r"""Calculates the instantaneous pressure of the simulation cell, found */ - __pyx_tuple__14 = PyTuple_Pack(16, __pyx_n_s_particles, __pyx_n_s_box_length, __pyx_n_s_temperature, __pyx_n_s_cut_off, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_number_of_particles, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_box_l, __pyx_n_s_pressure, __pyx_n_s_temp, __pyx_n_s_cut, __pyx_n_s_ac, __pyx_n_s_bc, __pyx_n_s_i); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 160, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__14); - __Pyx_GIVEREF(__pyx_tuple__14); - __pyx_codeobj__15 = (PyObject*)__Pyx_PyCode_New(6, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__14, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_calculate_pressure, 160, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__15)) __PYX_ERR(0, 160, __pyx_L1_error) + __pyx_tuple__17 = PyTuple_Pack(15, __pyx_n_s_particles, __pyx_n_s_box_length, __pyx_n_s_temperature, __pyx_n_s_cut_off, __pyx_n_s_constants, __pyx_n_s_number_of_particles, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_box_l, __pyx_n_s_pressure, __pyx_n_s_temp, __pyx_n_s_cut, __pyx_n_s_ac, __pyx_n_s_bc, __pyx_n_s_i); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(0, 157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__17); + __Pyx_GIVEREF(__pyx_tuple__17); + __pyx_codeobj__18 = (PyObject*)__Pyx_PyCode_New(5, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_calculate_pressure, 157, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__18)) __PYX_ERR(0, 157, __pyx_L1_error) - /* "src/_ccomp.pyx":217 + /* "src/_ccomp.pyx":212 * return pressure * * def heat_bath(particles, temperature_sample, bath_temp): # <<<<<<<<<<<<<< * r"""Rescales the velocities of the particles in the system to control the * temperature of the simulation. Thereby allowing for an NVT ensemble. The */ - __pyx_tuple__16 = PyTuple_Pack(9, __pyx_n_s_particles, __pyx_n_s_temperature_sample, __pyx_n_s_bath_temp, __pyx_n_s_len_particles, __pyx_n_s_xvel, __pyx_n_s_yvel, __pyx_n_s_average_temp, __pyx_n_s_temperature, __pyx_n_s_i); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 217, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__16); - __Pyx_GIVEREF(__pyx_tuple__16); - __pyx_codeobj__17 = (PyObject*)__Pyx_PyCode_New(3, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__16, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_heat_bath, 217, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__17)) __PYX_ERR(0, 217, __pyx_L1_error) + __pyx_tuple__19 = PyTuple_Pack(9, __pyx_n_s_particles, __pyx_n_s_temperature_sample, __pyx_n_s_bath_temp, __pyx_n_s_len_particles, __pyx_n_s_xvel, __pyx_n_s_yvel, __pyx_n_s_average_temp, __pyx_n_s_temperature, __pyx_n_s_i); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__19); + __Pyx_GIVEREF(__pyx_tuple__19); + __pyx_codeobj__20 = (PyObject*)__Pyx_PyCode_New(3, 0, 9, 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_src__ccomp_pyx, __pyx_n_s_heat_bath, 212, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__20)) __PYX_ERR(0, 212, __pyx_L1_error) - /* "src/_ccomp.pyx":259 + /* "src/_ccomp.pyx":254 * return particles * * def dist(xpos, ypos, box_length): # <<<<<<<<<<<<<< * """Returns the distance array for the set of particles. * */ - __pyx_tuple__18 = PyTuple_Pack(11, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_box_length, __pyx_n_s_len_particles, __pyx_n_s_xpositions, __pyx_n_s_ypositions, __pyx_n_s_box_l, __pyx_n_s_distances, __pyx_n_s_xdistances, __pyx_n_s_ydistances, __pyx_n_s_i); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 259, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__18); - __Pyx_GIVEREF(__pyx_tuple__18); - __pyx_codeobj__19 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__18, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_dist, 259, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__19)) __PYX_ERR(0, 259, __pyx_L1_error) + __pyx_tuple__21 = PyTuple_Pack(11, __pyx_n_s_xpos, __pyx_n_s_ypos, __pyx_n_s_box_length, __pyx_n_s_len_particles, __pyx_n_s_xpositions, __pyx_n_s_ypositions, __pyx_n_s_box_l, __pyx_n_s_distances, __pyx_n_s_xdistances, __pyx_n_s_ydistances, __pyx_n_s_i); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__21); + __Pyx_GIVEREF(__pyx_tuple__21); + __pyx_codeobj__22 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src__ccomp_pyx, __pyx_n_s_dist, 254, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__22)) __PYX_ERR(0, 254, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; @@ -8321,11 +8300,30 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_DTYPE, __pyx_t_2) < 0) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "src/_ccomp.pyx":32 + * + * def compute_force(particles, box_length, cut_off, + * constants=[1.363e-134, 9.273e-78], mass=39.948): # <<<<<<<<<<<<<< + * """Calculates the forces and therefore the accelerations on each of the + * particles in the simulation. This uses a 12-6 Lennard-Jones potential + */ + __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_float_1_363eneg_134); + __Pyx_GIVEREF(__pyx_float_1_363eneg_134); + PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_1_363eneg_134); + __Pyx_INCREF(__pyx_float_9_273eneg_78); + __Pyx_GIVEREF(__pyx_float_9_273eneg_78); + PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_9_273eneg_78); + __pyx_k_ = __pyx_t_2; + __Pyx_GIVEREF(__pyx_t_2); + __pyx_t_2 = 0; + /* "src/_ccomp.pyx":31 * ctypedef np.float64_t DTYPE_t * - * def compute_force(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, # <<<<<<<<<<<<<< - * mass=39.948): + * def compute_force(particles, box_length, cut_off, # <<<<<<<<<<<<<< + * constants=[1.363e-134, 9.273e-78], mass=39.948): * """Calculates the forces and therefore the accelerations on each of the */ __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_1compute_force, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 31, __pyx_L1_error) @@ -8333,52 +8331,90 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_compute_force, __pyx_t_2) < 0) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":104 - * return particles, distances_arr, force_arr, energy_arr + /* "src/_ccomp.pyx":103 * - * def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): # <<<<<<<<<<<<<< + * def compute_energy(particles, box_length, cut_off, + * constants=[1.363e-134, 9.273e-78]): # <<<<<<<<<<<<<< * """Calculates the total energy of the simulation. This uses a * 12-6 Lennard-Jones potential model for Argon with values: */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_3compute_energy, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 104, __pyx_L1_error) + __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_compute_energy, __pyx_t_2) < 0) __PYX_ERR(0, 104, __pyx_L1_error) + __Pyx_INCREF(__pyx_float_1_363eneg_134); + __Pyx_GIVEREF(__pyx_float_1_363eneg_134); + PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_1_363eneg_134); + __Pyx_INCREF(__pyx_float_9_273eneg_78); + __Pyx_GIVEREF(__pyx_float_9_273eneg_78); + PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_9_273eneg_78); + __pyx_k__2 = __pyx_t_2; + __Pyx_GIVEREF(__pyx_t_2); + __pyx_t_2 = 0; + + /* "src/_ccomp.pyx":102 + * return particles, distances_arr, force_arr, energy_arr + * + * def compute_energy(particles, box_length, cut_off, # <<<<<<<<<<<<<< + * constants=[1.363e-134, 9.273e-78]): + * """Calculates the total energy of the simulation. This uses a + */ + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_3compute_energy, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_compute_energy, __pyx_t_2) < 0) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":160 + /* "src/_ccomp.pyx":158 + * + * def calculate_pressure(particles, box_length, temperature, cut_off, + * constants=[1.363e-134, 9.273e-78]): # <<<<<<<<<<<<<< + * r"""Calculates the instantaneous pressure of the simulation cell, found + * with the following relationship: + */ + __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_float_1_363eneg_134); + __Pyx_GIVEREF(__pyx_float_1_363eneg_134); + PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_1_363eneg_134); + __Pyx_INCREF(__pyx_float_9_273eneg_78); + __Pyx_GIVEREF(__pyx_float_9_273eneg_78); + PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_9_273eneg_78); + __pyx_k__3 = __pyx_t_2; + __Pyx_GIVEREF(__pyx_t_2); + __pyx_t_2 = 0; + + /* "src/_ccomp.pyx":157 * return distances_arr, energy_arr * * def calculate_pressure(particles, box_length, temperature, cut_off, # <<<<<<<<<<<<<< - * a=1.363e-134, b=9.273e-78): + * constants=[1.363e-134, 9.273e-78]): * r"""Calculates the instantaneous pressure of the simulation cell, found */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_5calculate_pressure, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 160, __pyx_L1_error) + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_5calculate_pressure, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculate_pressure, __pyx_t_2) < 0) __PYX_ERR(0, 160, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculate_pressure, __pyx_t_2) < 0) __PYX_ERR(0, 157, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":217 + /* "src/_ccomp.pyx":212 * return pressure * * def heat_bath(particles, temperature_sample, bath_temp): # <<<<<<<<<<<<<< * r"""Rescales the velocities of the particles in the system to control the * temperature of the simulation. Thereby allowing for an NVT ensemble. The */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_7heat_bath, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 217, __pyx_L1_error) + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_7heat_bath, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_heat_bath, __pyx_t_2) < 0) __PYX_ERR(0, 217, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_heat_bath, __pyx_t_2) < 0) __PYX_ERR(0, 212, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "src/_ccomp.pyx":259 + /* "src/_ccomp.pyx":254 * return particles * * def dist(xpos, ypos, box_length): # <<<<<<<<<<<<<< * """Returns the distance array for the set of particles. * */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_9dist, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 259, __pyx_L1_error) + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pylj_4comp_9dist, NULL, __pyx_n_s_pylj_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_dist, __pyx_t_2) < 0) __PYX_ERR(0, 259, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_dist, __pyx_t_2) < 0) __PYX_ERR(0, 254, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "src/_ccomp.pyx":1 diff --git a/src/_ccomp.pyx b/src/_ccomp.pyx index 5cbc6a8..8393e81 100644 --- a/src/_ccomp.pyx +++ b/src/_ccomp.pyx @@ -28,8 +28,8 @@ cdef extern from "comp.h": DTYPE = np.float64 ctypedef np.float64_t DTYPE_t -def compute_force(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, - mass=39.948): +def compute_force(particles, box_length, cut_off, + constants=[1.363e-134, 9.273e-78], mass=39.948): """Calculates the forces and therefore the accelerations on each of the particles in the simulation. This uses a 12-6 Lennard-Jones potential model for Argon with values: @@ -46,11 +46,9 @@ def compute_force(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, cut_off: float The distance greater than which the forces between particles is taken as zero. - a: float (optional) - The A component of the 12-6 potential model (units of - Jm:math:`^{-12}`). - b: float (optional) - The B component of the 12-6 potential model (units of Jm:math:`^{-6}`). + constants: float, array_like (optional) + The constants associated with the particular forcefield used, e.g. for + the function forcefields.lennard_jones, theses are [A, B]. mass: float (optional) The mass of the particle being simulated (units of atomic mass units). @@ -78,8 +76,8 @@ def compute_force(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, cdef np.ndarray[DTYPE_t, ndim=1] force_arr = np.zeros(pairs) cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) cdef double cut = cut_off - cdef double ac = a - cdef double bc = b + cdef double ac = constants[0] + cdef double bc = constants[1] cdef double massc = mass for i in range(0, len_particles): @@ -101,7 +99,8 @@ def compute_force(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78, return particles, distances_arr, force_arr, energy_arr -def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): +def compute_energy(particles, box_length, cut_off, + constants=[1.363e-134, 9.273e-78]): """Calculates the total energy of the simulation. This uses a 12-6 Lennard-Jones potential model for Argon with values: @@ -117,11 +116,9 @@ def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): cut_off: float The distance greater than which the energies between particles is taken as zero. - a: float (optional) - The A component of the 12-6 potential model (units of - Jm:math:`^{-12}`). - b: float (optional) - The B component of the 12-6 potential model (units of Jm:math:`^{-6}`). + constants: float, array_like (optional) + The constants associated with the particular forcefield used, e.g. for + the function forcefields.lennard_jones, theses are [A, B]. Returns ------- @@ -142,8 +139,8 @@ def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): cdef np.ndarray[DTYPE_t, ndim=1] distances_arr = np.zeros(pairs) cdef np.ndarray[DTYPE_t, ndim=1] energy_arr = np.zeros(pairs) cdef double cut = cut_off - cdef double ac = a - cdef double bc = b + cdef double ac = constants[0] + cdef double bc = constants[1] for i in range(0, len_particles): @@ -158,7 +155,7 @@ def compute_energy(particles, box_length, cut_off, a=1.363e-134, b=9.273e-78): return distances_arr, energy_arr def calculate_pressure(particles, box_length, temperature, cut_off, - a=1.363e-134, b=9.273e-78): + constants=[1.363e-134, 9.273e-78]): r"""Calculates the instantaneous pressure of the simulation cell, found with the following relationship: @@ -178,11 +175,9 @@ def calculate_pressure(particles, box_length, temperature, cut_off, cut_off: float The distance greater than which the forces between particles is taken as zero. - a: float (optional) - The A component of the 12-6 potential model (units of - Jm:math:`^{-12}`). - b: float (optional) - The B component of the 12-6 potential model (units of Jm:math:`^{-6}`). + constants: float, array_like (optional) + The constants associated with the particular forcefield used, e.g. for + the function forcefields.lennard_jones, theses are [A, B]. Returns @@ -200,8 +195,8 @@ def calculate_pressure(particles, box_length, temperature, cut_off, cdef double pressure = 0. cdef double temp = temperature cdef double cut = cut_off - cdef double ac = a - cdef double bc = b + cdef double ac = constants[0] + cdef double bc = constants[1] for i in range(0, number_of_particles):

=O*mWf*S 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%0Deg3zAM*!^a4{dU# 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