Mercurial > touhou
annotate pytouhou/utils/vector.pxd @ 791:a29122662cde
utils: Simplify translate_2d and align Mat4 to 16 bytes
This lowers the amount of instructions from 61 to 32 on PowerPC with AltiVec,
and from 25 to 14 on amd64 with AVX2.
| author | Link Mauve <linkmauve@linkmauve.fr> |
|---|---|
| date | Sat, 17 Jan 2026 14:19:58 +0100 |
| parents | 7f016dfbdfb1 |
| children |
| rev | line source |
|---|---|
|
524
7f016dfbdfb1
Make vector a struct, allocate it directly on the stack, and thus pass it by copy, which is much less expensive than a python allocation.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
436
diff
changeset
|
1 cdef struct Vector: |
|
7f016dfbdfb1
Make vector a struct, allocate it directly on the stack, and thus pass it by copy, which is much less expensive than a python allocation.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
436
diff
changeset
|
2 float x, y, z |
|
436
cb5c68598ab0
Cythonize pytouhou.utils.maths and pytouhou.utils.vector.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
3 |
|
524
7f016dfbdfb1
Make vector a struct, allocate it directly on the stack, and thus pass it by copy, which is much less expensive than a python allocation.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
436
diff
changeset
|
4 cdef Vector sub(Vector vec1, Vector vec2) |
|
436
cb5c68598ab0
Cythonize pytouhou.utils.maths and pytouhou.utils.vector.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
5 cdef Vector cross(Vector vec1, Vector vec2) |
|
524
7f016dfbdfb1
Make vector a struct, allocate it directly on the stack, and thus pass it by copy, which is much less expensive than a python allocation.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
436
diff
changeset
|
6 cdef float dot(Vector vec1, Vector vec2) nogil |
|
436
cb5c68598ab0
Cythonize pytouhou.utils.maths and pytouhou.utils.vector.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
7 cdef Vector normalize(Vector vec) |
