In [1]:
%pylab inline
%load_ext cython
#import cmath
import numpy as np


Populating the interactive namespace from numpy and matplotlib

In [2]:
px = 0.8
py = 1.2
pz = 1
dx = 0
dy = 0
dz = 1
r = 0.5
cx = 1
cy = 1
cz = 1
d1 = -(cx*dx + cy*dy + cz*dz - dx*px - dy*py - dz*pz 
      + sqrt(2*cx*cy*dx*dy - (cy**2 + cz**2)*dx**2 - (cx**2 + cz**2)*dy**2 
             - (cx**2 + cy**2)*dz**2 - (dy**2 + dz**2)*px**2 - (dx**2 + dz**2)*py**2 
             - (dx**2 + dy**2)*pz**2 + (dx**2 + dy**2 + dz**2)*r**2 + 2*(cx*cz*dx + cy*cz*dy)*dz 
             - 2*(cy*dx*dy - cx*dy**2 + cz*dx*dz - cx*dz**2)*px + 2*(cy*dx**2 - cx*dx*dy - cz*dy*dz + cy*dz**2 + dx*dy*px)*py 
             + 2*(cz*dx**2 + cz*dy**2 + dx*dz*px + dy*dz*py - (cx*dx + cy*dy)*dz)*pz))/(dx**2 + dy**2 + dz**2)
d2 = -(cx*dx + cy*dy + cz*dz - dx*px - dy*py - dz*pz 
       - sqrt(2*cx*cy*dx*dy - (cy**2 + cz**2)*dx**2 - (cx**2 + cz**2)*dy**2 
              - (cx**2 + cy**2)*dz**2 - (dy**2 + dz**2)*px**2 - (dx**2 + dz**2)*py**2 
              - (dx**2 + dy**2)*pz**2 + (dx**2 + dy**2 + dz**2)*r**2 + 2*(cx*cz*dx + cy*cz*dy)*dz 
              - 2*(cy*dx*dy - cx*dy**2 + cz*dx*dz - cx*dz**2)*px + 2*(cy*dx**2 - cx*dx*dy - cz*dy*dz + cy*dz**2 + dx*dy*px)*py 
              + 2*(cz*dx**2 + cz*dy**2 + dx*dz*px + dy*dz*py - (cx*dx + cy*dy)*dz)*pz))/(dx**2 + dy**2 + dz**2)
print(d1,d2)


-0.412310562562 0.412310562562

In [8]:
%%cython --annotate
cimport numpy as np

cdef float px = 1.489575
cdef float py = -0.333571
cdef float pz = 1.599638
cdef float dx = 0.422606
cdef float dy = -0.768113
cdef float dz = -0.481048
cdef float r = 0.141421
cdef float cx = 1.4
cdef float cy = -0.4
cdef float cz = 1.600000
cdef float d1 = -(cx*dx + cy*dy + cz*dz - dx*px - dy*py - dz*pz 
      + (2*cx*cy*dx*dy - (cy**2 + cz**2)*dx**2 - (cx**2 + cz**2)*dy**2 
             - (cx**2 + cy**2)*dz**2 - (dy**2 + dz**2)*px**2 - (dx**2 + dz**2)*py**2 
             - (dx**2 + dy**2)*pz**2 + (dx**2 + dy**2 + dz**2)*r**2 + 2*(cx*cz*dx + cy*cz*dy)*dz 
             - 2*(cy*dx*dy - cx*dy**2 + cz*dx*dz - cx*dz**2)*px + 2*(cy*dx**2 - cx*dx*dy - cz*dy*dz + cy*dz**2 + dx*dy*px)*py 
             + 2*(cz*dx**2 + cz*dy**2 + dx*dz*px + dy*dz*py - (cx*dx + cy*dy)*dz)*pz)**0.5)/(dx**2 + dy**2 + dz**2)
cdef float d2 = -(cx*dx + cy*dy + cz*dz - dx*px - dy*py - dz*pz 
       - (2*cx*cy*dx*dy - (cy**2 + cz**2)*dx**2 - (cx**2 + cz**2)*dy**2 
              - (cx**2 + cy**2)*dz**2 - (dy**2 + dz**2)*px**2 - (dx**2 + dz**2)*py**2 
              - (dx**2 + dy**2)*pz**2 + (dx**2 + dy**2 + dz**2)*r**2 + 2*(cx*cz*dx + cy*cz*dy)*dz 
              - 2*(cy*dx*dy - cx*dy**2 + cz*dx*dz - cx*dz**2)*px + 2*(cy*dx**2 - cx*dx*dy - cz*dy*dz + cy*dz**2 + dx*dy*px)*py 
              + 2*(cz*dx**2 + cz*dy**2 + dx*dz*px + dy*dz*py - (cx*dx + cy*dy)*dz)*pz)**0.5)/(dx**2 + dy**2 + dz**2)
print(d1,d2)


-0.10092855989933014 0.07493677735328674
Out[8]:
Cython: _cython_magic_f2fa7ff190180214ff410b2e6b56d888.pyx

Generated by Cython 0.25.2

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

+01: cimport numpy as np
  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_4) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 02: 
+03: cdef float px = 1.489575
  __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_px = 1.489575;
+04: cdef float py = -0.333571
  __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_py = -0.333571;
+05: cdef float pz = 1.599638
  __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_pz = 1.599638;
+06: cdef float dx = 0.422606
  __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx = 0.422606;
+07: cdef float dy = -0.768113
  __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy = -0.768113;
+08: cdef float dz = -0.481048
  __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz = -0.481048;
+09: cdef float r = 0.141421
  __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_r = 0.141421;
+10: cdef float cx = 1.4
  __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cx = 1.4;
+11: cdef float cy = -0.4
  __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cy = -0.4;
+12: cdef float cz = 1.600000
  __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cz = 1.600000;
+13: cdef float d1 = -(cx*dx + cy*dy + cz*dz - dx*px - dy*py - dz*pz
  __pyx_t_1 = (-(((((((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cx * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx) + (__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cy * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy)) + (__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cz * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz)) - (__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_px)) - (__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_py)) - (__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_pz)) + pow(((double)(((((((((((((((2.0 * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cx) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cy) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy) - ((powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cy, 2.0) + powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cz, 2.0)) * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx, 2.0))) - ((powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cx, 2.0) + powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cz, 2.0)) * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy, 2.0))) - ((powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cx, 2.0) + powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cy, 2.0)) * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz, 2.0))) - ((powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy, 2.0) + powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz, 2.0)) * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_px, 2.0))) - ((powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx, 2.0) + powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz, 2.0)) * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_py, 2.0))) - ((powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx, 2.0) + powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy, 2.0)) * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_pz, 2.0))) + (((powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx, 2.0) + powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy, 2.0)) + powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz, 2.0)) * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_r, 2.0))) + ((2.0 * (((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cx * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cz) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx) + ((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cy * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cz) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy))) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz)) - ((2.0 * (((((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cy * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy) - (__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cx * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy, 2.0))) + ((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cz * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz)) - (__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cx * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz, 2.0)))) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_px)) + ((2.0 * (((((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cy * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx, 2.0)) - ((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cx * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy)) - ((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cz * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz)) + (__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cy * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz, 2.0))) + ((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_px))) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_py)) + ((2.0 * (((((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cz * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx, 2.0)) + (__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cz * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy, 2.0))) + ((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_px)) + ((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_py)) - (((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cx * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx) + (__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cy * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy)) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz))) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_pz))), 0.5)));
 14:       + (2*cx*cy*dx*dy - (cy**2 + cz**2)*dx**2 - (cx**2 + cz**2)*dy**2
 15:              - (cx**2 + cy**2)*dz**2 - (dy**2 + dz**2)*px**2 - (dx**2 + dz**2)*py**2
 16:              - (dx**2 + dy**2)*pz**2 + (dx**2 + dy**2 + dz**2)*r**2 + 2*(cx*cz*dx + cy*cz*dy)*dz
 17:              - 2*(cy*dx*dy - cx*dy**2 + cz*dx*dz - cx*dz**2)*px + 2*(cy*dx**2 - cx*dx*dy - cz*dy*dz + cy*dz**2 + dx*dy*px)*py
+18:              + 2*(cz*dx**2 + cz*dy**2 + dx*dz*px + dy*dz*py - (cx*dx + cy*dy)*dz)*pz)**0.5)/(dx**2 + dy**2 + dz**2)
  __pyx_t_2 = ((powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx, 2.0) + powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy, 2.0)) + powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz, 2.0));
  if (unlikely(__pyx_t_2 == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 18, __pyx_L1_error)
  }
  __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_d1 = (__pyx_t_1 / ((double)__pyx_t_2));
+19: cdef float d2 = -(cx*dx + cy*dy + cz*dz - dx*px - dy*py - dz*pz
  __pyx_t_1 = (-(((((((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cx * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx) + (__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cy * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy)) + (__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cz * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz)) - (__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_px)) - (__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_py)) - (__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_pz)) - pow(((double)(((((((((((((((2.0 * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cx) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cy) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy) - ((powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cy, 2.0) + powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cz, 2.0)) * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx, 2.0))) - ((powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cx, 2.0) + powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cz, 2.0)) * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy, 2.0))) - ((powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cx, 2.0) + powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cy, 2.0)) * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz, 2.0))) - ((powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy, 2.0) + powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz, 2.0)) * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_px, 2.0))) - ((powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx, 2.0) + powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz, 2.0)) * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_py, 2.0))) - ((powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx, 2.0) + powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy, 2.0)) * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_pz, 2.0))) + (((powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx, 2.0) + powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy, 2.0)) + powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz, 2.0)) * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_r, 2.0))) + ((2.0 * (((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cx * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cz) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx) + ((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cy * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cz) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy))) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz)) - ((2.0 * (((((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cy * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy) - (__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cx * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy, 2.0))) + ((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cz * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz)) - (__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cx * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz, 2.0)))) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_px)) + ((2.0 * (((((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cy * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx, 2.0)) - ((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cx * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy)) - ((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cz * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz)) + (__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cy * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz, 2.0))) + ((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_px))) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_py)) + ((2.0 * (((((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cz * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx, 2.0)) + (__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cz * powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy, 2.0))) + ((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_px)) + ((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_py)) - (((__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cx * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx) + (__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_cy * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy)) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz))) * __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_pz))), 0.5)));
 20:        - (2*cx*cy*dx*dy - (cy**2 + cz**2)*dx**2 - (cx**2 + cz**2)*dy**2
 21:               - (cx**2 + cy**2)*dz**2 - (dy**2 + dz**2)*px**2 - (dx**2 + dz**2)*py**2
 22:               - (dx**2 + dy**2)*pz**2 + (dx**2 + dy**2 + dz**2)*r**2 + 2*(cx*cz*dx + cy*cz*dy)*dz
 23:               - 2*(cy*dx*dy - cx*dy**2 + cz*dx*dz - cx*dz**2)*px + 2*(cy*dx**2 - cx*dx*dy - cz*dy*dz + cy*dz**2 + dx*dy*px)*py
+24:               + 2*(cz*dx**2 + cz*dy**2 + dx*dz*px + dy*dz*py - (cx*dx + cy*dy)*dz)*pz)**0.5)/(dx**2 + dy**2 + dz**2)
  __pyx_t_2 = ((powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dx, 2.0) + powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dy, 2.0)) + powf(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_dz, 2.0));
  if (unlikely(__pyx_t_2 == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 24, __pyx_L1_error)
  }
  __pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_d2 = (__pyx_t_1 / ((double)__pyx_t_2));
+25: print(d1,d2)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_d1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_46_cython_magic_f2fa7ff190180214ff410b2e6b56d888_d2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_print, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

In [ ]:


In [ ]: