rename symbol q to symbol p
[liba.git] / python / src / a / trajpoly5.pxi
blobd2886010acaa81cdd4e12a4260a9fdafe8f6d6e5
1 from a.trajpoly5 cimport *
3 @cython.wraparound(False)
4 @cython.boundscheck(False)
5 @cython.auto_pickle(False)
6 cdef class trajpoly5:
7     cdef a_trajpoly5 ctx
8     def __init__(self, a_float ts, a_float p0, a_float p1, a_float v0 = 0, a_float v1 = 0, a_float a0 = 0, a_float a1 = 0):
9         a_trajpoly5_gen(&self.ctx, ts, p0, p1, v0, v1, a0, a1)
10     def gen(self, a_float ts, a_float p0, a_float p1, a_float v0 = 0, a_float v1 = 0, a_float a0 = 0, a_float a1 = 0):
11         a_trajpoly5_gen(&self.ctx, ts, p0, p1, v0, v1, a0, a1)
12         return self
13     cdef inline pos_n(self, array dt):
14         cdef Py_ssize_t i
15         cdef Py_ssize_t n = len(dt)
16         cdef a_float *p = <a_float *>dt.data.as_voidptr
17         for i in prange(n, nogil=True):
18             p[i] = a_trajpoly5_pos(&self.ctx, p[i])
19         return dt
20     def pos(self, dt):
21         if iterable(dt):
22             return self.pos_n(array_num(dt))
23         return a_trajpoly5_pos(&self.ctx, dt)
24     cdef inline vel_n(self, array dt):
25         cdef Py_ssize_t i
26         cdef Py_ssize_t n = len(dt)
27         cdef a_float *p = <a_float *>dt.data.as_voidptr
28         for i in prange(n, nogil=True):
29             p[i] = a_trajpoly5_vel(&self.ctx, p[i])
30         return dt
31     def vel(self, dt):
32         if iterable(dt):
33             return self.vel_n(array_num(dt))
34         return a_trajpoly5_vel(&self.ctx, dt)
35     cdef inline acc_n(self, array dt):
36         cdef Py_ssize_t i
37         cdef Py_ssize_t n = len(dt)
38         cdef a_float *p = <a_float *>dt.data.as_voidptr
39         for i in prange(n, nogil=True):
40             p[i] = a_trajpoly5_acc(&self.ctx, p[i])
41         return dt
42     def acc(self, dt):
43         if iterable(dt):
44             return self.acc_n(array_num(dt))
45         return a_trajpoly5_acc(&self.ctx, dt)
46     property p:
47         def __get__(self):
48             return self.ctx.p
49     property v:
50         def __get__(self):
51             return self.ctx.v
52     property a:
53         def __get__(self):
54             return self.ctx.a