Path: blob/main/doc/source/analyzing/_static/axes_calculator.pyx
928 views
import numpy as np1cimport numpy as np234cdef extern from "axes.h":5ctypedef struct ParticleCollection:6long npart7double *xpos8double *ypos9double *zpos1011void calculate_axes(ParticleCollection *part,12double *ax1, double *ax2, double *ax3)1314def examine_axes(np.ndarray[np.float64_t, ndim=1] xpos,15np.ndarray[np.float64_t, ndim=1] ypos,16np.ndarray[np.float64_t, ndim=1] zpos):17cdef double ax1[3]18cdef double ax2[3]19cdef double ax3[3]20cdef ParticleCollection particles21cdef int i2223particles.npart = len(xpos)24particles.xpos = <double *> xpos.data25particles.ypos = <double *> ypos.data26particles.zpos = <double *> zpos.data2728for i in range(particles.npart):29particles.xpos[i] = xpos[i]30particles.ypos[i] = ypos[i]31particles.zpos[i] = zpos[i]3233calculate_axes(&particles, ax1, ax2, ax3)3435return ( (ax1[0], ax1[1], ax1[2]),36(ax2[0], ax2[1], ax2[2]),37(ax3[0], ax3[1], ax3[2]) )383940