disable autotestdict in cython
[liba.git] / python / src / a / trajpoly5.pxi
blobfd03663e47238bc9d829c4768da763ad8cce4cad
1 from a.trajpoly5 cimport *
3 cdef class trajpoly5:
4     cdef a_trajpoly5 ctx
5     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):
6         a_trajpoly5_gen(&self.ctx, ts, p0, p1, v0, v1, a0, a1)
7     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):
8         a_trajpoly5_gen(&self.ctx, ts, p0, p1, v0, v1, a0, a1)
9         return self
10     def pos(self, dt):
11         cdef array x
12         cdef a_float *p
13         cdef Py_ssize_t i
14         cdef Py_ssize_t n
15         if PyObject_HasAttrString(dt, "__contains__"):
16             n = len(dt)
17             x = array_num(dt)
18             p = <a_float *>x.data.as_voidptr
19             for i in prange(n, nogil=True):
20                 p[i] = a_trajpoly5_pos(&self.ctx, p[i])
21             return x
22         return a_trajpoly5_pos(&self.ctx, dt)
23     def vel(self, dt):
24         cdef array x
25         cdef a_float *p
26         cdef Py_ssize_t i
27         cdef Py_ssize_t n
28         if PyObject_HasAttrString(dt, "__contains__"):
29             n = len(dt)
30             x = array_num(dt)
31             p = <a_float *>x.data.as_voidptr
32             for i in prange(n, nogil=True):
33                 p[i] = a_trajpoly5_vel(&self.ctx, p[i])
34             return x
35         return a_trajpoly5_vel(&self.ctx, dt)
36     def acc(self, dt):
37         cdef array x
38         cdef a_float *p
39         cdef Py_ssize_t i
40         cdef Py_ssize_t n
41         if PyObject_HasAttrString(dt, "__contains__"):
42             n = len(dt)
43             x = array_num(dt)
44             p = <a_float *>x.data.as_voidptr
45             for i in prange(n, nogil=True):
46                 p[i] = a_trajpoly5_acc(&self.ctx, p[i])
47             return x
48         return a_trajpoly5_acc(&self.ctx, dt)
49     property p:
50         def __get__(self):
51             return self.ctx.p
52     property v:
53         def __get__(self):
54             return self.ctx.v
55     property a:
56         def __get__(self):
57             return self.ctx.a