#cython: language_level=3
#cython: binding=False
#cython: boundscheck=False
#cython: wraparound=False
#cython: nonecheck=False
#cython: cdivision=True
#cython: always_allow_keywords=True
#cython: optimize.use_switch=True
#cython: embedsignature=False

cimport cython


########## common_utils.pyx ##########
from libc.math cimport fabsl, isfinite

from cpython.float cimport PyFloat_CheckExact, PyFloat_AS_DOUBLE, PyFloat_Check, PyFloat_AsDouble
from cpython.long cimport PyLong_CheckExact, PyLong_AsLongLong, PyLong_AsDouble, PyLong_Check

ctypedef long long py_int
ctypedef long double py_float


DEF DEFAULT_RELATIVE_TOLERANCE = 1e-09
DEF DEFAULT_ABSOLUTE_TOLERANCE = 1e-15

cdef inline bint is_close(py_float a, py_float b, py_float rel_tol = DEFAULT_RELATIVE_TOLERANCE, py_float abs_tol = DEFAULT_ABSOLUTE_TOLERANCE) noexcept:
    cdef py_float diff = fabsl(a - b)
    if a == b:
        return True
    if not isfinite(a) or not isfinite(b):
        return False
    return diff <= fabsl(rel_tol * a) or diff <= fabsl(rel_tol * b) or diff <= fabsl(abs_tol)


cdef union _bitcaster:
    py_float f
    py_int i

cdef inline py_int bitcast_float(py_float f) noexcept:
    return _bitcaster(f=f).i

cdef inline py_int rotl_ratio(py_int num, int i, int total) noexcept:
    cdef int shift = (sizeof(py_int)*8) / total * i
    return (num << shift) | (num >> (sizeof(py_int)*8 - shift))


########## vector.pyx ##########
from libc.math cimport sqrt


# noinspection SpellCheckingInspection
@cython.auto_pickle(True)
@cython.freelist(4096)
@cython.no_gc
@cython.final
cdef class Vec2:
    """2D vector."""

    cdef public py_float x, y


    cdef inline void ___init___0(self) noexcept:
        """Create a zero vector."""
        self.x = self.y = 0.0

    cdef inline void ___init___1(self, py_float value) noexcept:
        """Create a vector with the same value for all elements."""
        self.x = self.y = value

    cdef inline void ___init___2(self, Vec2i vec) noexcept:
        """Convert a integer vector to a floating-point vector."""
        self.x = <py_float>vec.x
        self.y = <py_float>vec.y

    cdef inline void ___init___3(self, Vec2 xy) noexcept:
        """Create a 2D vector from a 2D vector."""
        self.x = xy.x
        self.y = xy.y
    
    cdef inline void ___init___4(self, py_float x, py_float y) noexcept:
        """Create a 2D vector from a number and a number."""
        self.x = x
        self.y = y

    def __init__(self, object p0=None, object p1=None, /) -> None:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            if (PyFloat_Check(p1) or PyLong_Check(p1)):
                self.___init___4(PyFloat_AsDouble(p0), PyFloat_AsDouble(p1))
                return
            elif p1 is None:
                self.___init___1(PyFloat_AsDouble(p0))
                return
            else:
                raise TypeError(f"The 3th parameter expected float | int | None, got {p1}")
        elif isinstance(p0, Vec2i):
            if p1 is None:
                self.___init___2(<Vec2i> p0)
                return
            else:
                raise TypeError(f"The 3th parameter expected float | int | None, got {p1}")
        elif isinstance(p0, Vec2):
            if p1 is None:
                self.___init___3(<Vec2> p0)
                return
            else:
                raise TypeError(f"The 3th parameter expected float | int | None, got {p1}")
        elif p0 is None:
            if p1 is None:
                self.___init___0()
                return
            else:
                raise TypeError(f"The 3th parameter expected float | int | None, got {p1}")
        else:
            raise TypeError(f"The 2th parameter expected float | int | Vec2i | Vec2 | None, got {p0}")


    def __repr__(self) -> str:
        return f"Vec2({self.x}, {self.y})"

    def __eq__(self, object other) -> bool:
        """Perform exact comparison.

        See Also: `Vec2.is_close()`
        """
        if not isinstance(other, Vec2):
            return False
        cdef Vec2 vec = <Vec2> other
        return self.x == vec.x and self.y == vec.y

    def __ne__(self, object other) -> bool:
        """Perform exact comparison.

        See Also: `Vec2.is_close()`
        """
        if not isinstance(other, Vec2):
            return True
        cdef Vec2 vec = <Vec2> other
        return self.x != vec.x or self.y != vec.y

    def is_close(self, Vec2 other, /, py_float rel_tol = DEFAULT_RELATIVE_TOLERANCE, py_float abs_tol = DEFAULT_ABSOLUTE_TOLERANCE) -> bool:
        """Determine if the two vectors are close enough.

        See Also: `math.is_close()`
        """
        return is_close(<py_float> self.x, <py_float> other.x, rel_tol, abs_tol) and is_close(<py_float> self.y, <py_float> other.y, rel_tol, abs_tol)

    def __bool__(self) -> bool:
        """If the vector is a zero vector."""
        return self.x == 0 and self.y == 0

    #TODO: Better hashing
    def __hash__(self) -> py_int:
        cdef py_int h = 0
        h ^= rotl_ratio(bitcast_float(self.x), 0, 2)
        h ^= rotl_ratio(bitcast_float(self.y), 1, 2)
        return h

    def __pos__(self) -> Vec2:
        """Return a copy of this vector."""
        cdef Vec2 vec = Vec2.__new__(Vec2)
        vec.x = self.x
        vec.y = self.y
        return vec

    def __neg__(self) -> Vec2:
        """Return the inverse vector."""
        cdef Vec2 vec = Vec2.__new__(Vec2)
        vec.x = -self.x
        vec.y = -self.y
        return vec

    cdef inline Vec2 ___add___0(self, Vec2 other):
        """Element-wise addition."""
        cdef Vec2 vec = Vec2.__new__(Vec2)
        vec.x = self.x + other.x
        vec.y = self.y + other.y
        return vec
    
    cdef inline Vec2 ___add___1(self, py_float other):
        """Element-wise addition with the same number for all elements."""
        cdef Vec2 vec = Vec2.__new__(Vec2)
        vec.x = self.x + other
        vec.y = self.y + other
        return vec
    
    def __add__(self, object p0, /) -> Vec2:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___add___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec2):
            return self.___add___0(<Vec2> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec2 | float | int, got {p0}")
    
    cdef inline Vec2 ___iadd___0(self, Vec2 other):
        #<RETURN_SELF>
        """Element-wise inplace addition."""
        self.x += other.x
        self.y += other.y
        return self
    
    cdef inline Vec2 ___iadd___1(self, py_float other):
        #<RETURN_SELF>
        """Element-wise inplace addition with the same number for all elements."""
        self.x += other
        self.y += other
        return self
    
    def __iadd__(self, object p0, /) -> Vec2:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___iadd___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec2):
            return self.___iadd___0(<Vec2> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec2 | float | int, got {p0}")

    cdef inline Vec2 ___sub___0(self, Vec2 other):
        """Element-wise subtraction."""
        cdef Vec2 vec = Vec2.__new__(Vec2)
        vec.x = self.x - other.x
        vec.y = self.y - other.y
        return vec
    
    cdef inline Vec2 ___sub___1(self, py_float other):
        """Element-wise subtraction with the same number for all elements."""
        cdef Vec2 vec = Vec2.__new__(Vec2)
        vec.x = self.x - other
        vec.y = self.y - other
        return vec
    
    def __sub__(self, object p0, /) -> Vec2:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___sub___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec2):
            return self.___sub___0(<Vec2> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec2 | float | int, got {p0}")
    
    cdef inline Vec2 ___isub___0(self, Vec2 other):
        #<RETURN_SELF>
        """Element-wise inplace subtraction."""
        self.x -= other.x
        self.y -= other.y
        return self
    
    cdef inline Vec2 ___isub___1(self, py_float other):
        #<RETURN_SELF>
        """Element-wise inplace subtraction with the same number for all elements."""
        self.x -= other
        self.y -= other
        return self
    
    def __isub__(self, object p0, /) -> Vec2:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___isub___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec2):
            return self.___isub___0(<Vec2> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec2 | float | int, got {p0}")

    cdef inline Vec2 ___mul___0(self, Vec2 other):
        """Element-wise multiplication."""
        cdef Vec2 vec = Vec2.__new__(Vec2)
        vec.x = self.x * other.x
        vec.y = self.y * other.y
        return vec
    
    cdef inline Vec2 ___mul___1(self, py_float other):
        """Element-wise multiplication with the same number for all elements."""
        cdef Vec2 vec = Vec2.__new__(Vec2)
        vec.x = self.x * other
        vec.y = self.y * other
        return vec
    
    def __mul__(self, object p0, /) -> Vec2:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___mul___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec2):
            return self.___mul___0(<Vec2> p0)
        elif isinstance(p0, Transform2D):
            return self.___mul___2(<Transform2D> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec2 | float | int | Transform2D, got {p0}")
    
    cdef inline Vec2 ___imul___0(self, Vec2 other):
        #<RETURN_SELF>
        """Element-wise inplace multiplication."""
        self.x *= other.x
        self.y *= other.y
        return self
    
    cdef inline Vec2 ___imul___1(self, py_float other):
        #<RETURN_SELF>
        """Element-wise inplace multiplication with the same number for all elements."""
        self.x *= other
        self.y *= other
        return self
    
    def __imul__(self, object p0, /) -> Vec2:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___imul___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec2):
            return self.___imul___0(<Vec2> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec2 | float | int, got {p0}")
    cdef inline Vec2 ___mul___2(self, Transform2D t):
        """Transform a copy of this vector using the *INVERSE* of the transform.
        Use `transform * vector` or `transform(vector)` for non-inverse transformation.
        
        See Also:
            `Transform2D.__mul__()`
            `Transform2D.__call__()`
        """
        cdef Vec2 vec = Vec2.__new__(Vec2)
        cdef py_float x = self.x - t.ox
        cdef py_float y = self.y - t.oy
        vec.x = t.xx * x + t.xy * y
        vec.y = t.yx * x + t.yy * y
        return vec

    cdef inline Vec2 ___truediv___0(self, Vec2 other):
        """Element-wise division."""
        cdef Vec2 vec = Vec2.__new__(Vec2)
        vec.x = self.x / other.x
        vec.y = self.y / other.y
        return vec
    
    cdef inline Vec2 ___truediv___1(self, py_float other):
        """Element-wise division with the same number for all elements."""
        cdef Vec2 vec = Vec2.__new__(Vec2)
        vec.x = self.x / other
        vec.y = self.y / other
        return vec
    
    def __truediv__(self, object p0, /) -> Vec2:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___truediv___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec2):
            return self.___truediv___0(<Vec2> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec2 | float | int, got {p0}")
    
    cdef inline Vec2 ___itruediv___0(self, Vec2 other):
        #<RETURN_SELF>
        """Element-wise inplace division."""
        self.x /= other.x
        self.y /= other.y
        return self
    
    cdef inline Vec2 ___itruediv___1(self, py_float other):
        #<RETURN_SELF>
        """Element-wise inplace division with the same number for all elements."""
        self.x /= other
        self.y /= other
        return self
    
    def __itruediv__(self, object p0, /) -> Vec2:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___itruediv___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec2):
            return self.___itruediv___0(<Vec2> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec2 | float | int, got {p0}")


    def __matmul__(self, Vec2 other) -> py_float:
        """Dot product."""
        return self.x * other.x + self.y * other.y


    def __len__(self) -> int:
        """The number of dimensions (elements) of this vector."""
        return 2

    def __getitem__(self, int key) -> py_float:
        """Get the n-th element of this vector."""
        if key == 0:
            return self.x
        elif key == 1:
            return self.y
        else:
            raise KeyError(f"Vec2 index out of range: {key}")

    def __setitem__(self, int key, py_float value) -> None:
        """Set the n-th element of this vector."""
        if key == 0:
            self.x = value
        elif key == 1:
            self.y = value
        else:
            raise KeyError(f"Vec2 index out of range: {key}")

    def __iter__(self) -> _Vec2iterator:
        """Create an iterator that yields all the elements of the vector in sequence.

        This creates a copy of all the elements of this vector,
        so modifying the vector won't affect already created iterators.
        """
        cdef _Vec2iterator iterator = _Vec2iterator.__new__(_Vec2iterator)
        iterator.x = self.x
        iterator.y = self.y
        # iterator.vec = self
        return iterator


    @property
    def length(self) -> py_float:
        """The (Euclidean) length of this vector."""
        return sqrtl(<py_float> (self.x * self.x) + <py_float> (self.y * self.y))

    @property
    def length_sqr(self) -> py_float:
        """The squared Euclidean length of this vector."""
        return self.x * self.x + self.y * self.y

    def __or__(self, Vec2 other) -> py_float:
        """The (Euclidean) distance between two vectors."""
        cdef py_float dx = self.x - other.x
        cdef py_float dy = self.y - other.y
        return sqrtl(<py_float> (dx * dx + dy * dy))

    def distance_to(self, Vec2 other, /) -> py_float:
        """The (Euclidean) distance between two vectors."""
        cdef py_float dx = self.x - other.x
        cdef py_float dy = self.y - other.y
        return sqrtl(<py_float> (dx * dx + dy * dy))

    def distance_sqr_to(self, Vec2 other, /) -> py_float:
        """The squared Euclidean distance between two vectors."""
        cdef py_float dx = self.x - other.x
        cdef py_float dy = self.y - other.y
        return <py_float> (dx * dx + dy * dy)

    @property
    def normalized(self) -> Vec2:
        """Get a normalized copy of this vector."""
        cdef py_float l = sqrtl(self.x * self.x + self.y * self.y)
        cdef Vec2 vec = Vec2.__new__(Vec2)
        vec.x = self.x / l
        vec.y = self.y / l
        return vec


    @property
    def xx(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        return vec
    
    @property
    def xy(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        return vec
    
    @xy.setter
    def xy(self, Vec2 vec) -> None:
        """Set the value of the X and Y elements of this vector to the value of the elements of the other vector, respectively."""
        self.x = vec.x
        self.y = vec.y
    
    @property
    def xo(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0.0
        return vec
    
    @property
    def xl(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1.0
        return vec
    
    @property
    def yx(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        return vec
    
    @yx.setter
    def yx(self, Vec2 vec) -> None:
        """Set the value of the Y and X elements of this vector to the value of the elements of the other vector, respectively."""
        self.y = vec.x
        self.x = vec.y
    
    @property
    def yy(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        return vec
    
    @property
    def yo(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0.0
        return vec
    
    @property
    def yl(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1.0
        return vec
    
    @property
    def ox(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being a zero, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        return vec
    
    @property
    def oy(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being a zero, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        return vec
    
    @property
    def lx(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being a one, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        return vec
    
    @property
    def ly(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being a one, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        return vec
    
    @property
    def xxx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def xxy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def xxo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0.0
        return vec
    
    @property
    def xxl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1.0
        return vec
    
    @property
    def xyx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def xyy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def xyo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0.0
        return vec
    
    @property
    def xyl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1.0
        return vec
    
    @property
    def xox(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.x
        return vec
    
    @property
    def xoy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.y
        return vec
    
    @property
    def xoo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 0.0
        return vec
    
    @property
    def xol(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 1.0
        return vec
    
    @property
    def xlx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.x
        return vec
    
    @property
    def xly(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.y
        return vec
    
    @property
    def xlo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 0.0
        return vec
    
    @property
    def xll(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 1.0
        return vec
    
    @property
    def yxx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def yxy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def yxo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0.0
        return vec
    
    @property
    def yxl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1.0
        return vec
    
    @property
    def yyx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def yyy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def yyo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0.0
        return vec
    
    @property
    def yyl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1.0
        return vec
    
    @property
    def yox(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.x
        return vec
    
    @property
    def yoy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.y
        return vec
    
    @property
    def yoo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 0.0
        return vec
    
    @property
    def yol(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 1.0
        return vec
    
    @property
    def ylx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.x
        return vec
    
    @property
    def yly(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.y
        return vec
    
    @property
    def ylo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 0.0
        return vec
    
    @property
    def yll(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 1.0
        return vec
    
    @property
    def oxx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the X element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def oxy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def oxo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the X element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 0.0
        return vec
    
    @property
    def oxl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the X element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 1.0
        return vec
    
    @property
    def oyx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def oyy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def oyo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Y element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 0.0
        return vec
    
    @property
    def oyl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Y element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 1.0
        return vec
    
    @property
    def oox(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, a zero, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.x
        return vec
    
    @property
    def ooy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, a zero, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.y
        return vec
    
    @property
    def olx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, a one, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.x
        return vec
    
    @property
    def oly(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, a one, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.y
        return vec
    
    @property
    def lxx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the X element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def lxy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the X element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def lxo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the X element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 0.0
        return vec
    
    @property
    def lxl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the X element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 1.0
        return vec
    
    @property
    def lyx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Y element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def lyy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def lyo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Y element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 0.0
        return vec
    
    @property
    def lyl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Y element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 1.0
        return vec
    
    @property
    def lox(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, a zero, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.x
        return vec
    
    @property
    def loy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, a zero, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.y
        return vec
    
    @property
    def llx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, a one, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.x
        return vec
    
    @property
    def lly(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, a one, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.y
        return vec
    
    @property
    def xxxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xxxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xxxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def xxxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def xxyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xxyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xxyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def xxyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def xxox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def xxoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def xxoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def xxol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def xxlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def xxly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def xxlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def xxll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def xyxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xyxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xyxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def xyxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def xyyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xyyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xyyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def xyyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def xyox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def xyoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def xyoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def xyol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def xylx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def xyly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def xylo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def xyll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def xoxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xoxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xoxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def xoxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def xoyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xoyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xoyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def xoyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def xoox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def xooy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def xooo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a zero, and a zero."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def xool(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a zero, and a one."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def xolx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def xoly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def xolo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a one, and a zero."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def xoll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a one, and a one."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def xlxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xlxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xlxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def xlxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def xlyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xlyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xlyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def xlyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def xlox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def xloy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def xloo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a zero, and a zero."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def xlol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a zero, and a one."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def xllx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def xlly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def xllo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a one, and a zero."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def xlll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a one, and a one."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def yxxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def yxxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def yxxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def yxxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def yxyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def yxyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def yxyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def yxyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def yxox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def yxoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def yxoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def yxol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def yxlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def yxly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def yxlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def yxll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def yyxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def yyxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def yyxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def yyxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def yyyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def yyyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def yyyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def yyyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def yyox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def yyoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def yyoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def yyol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def yylx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def yyly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def yylo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def yyll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def yoxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def yoxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def yoxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def yoxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def yoyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def yoyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def yoyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def yoyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def yoox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def yooy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def yooo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a zero, and a zero."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def yool(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a zero, and a one."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def yolx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def yoly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def yolo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a one, and a zero."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def yoll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a one, and a one."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def ylxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def ylxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def ylxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def ylxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def ylyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def ylyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def ylyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def ylyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def ylox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def yloy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def yloo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a zero, and a zero."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def ylol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a zero, and a one."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def yllx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def ylly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def yllo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a one, and a zero."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def ylll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a one, and a one."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def oxxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def oxxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def oxxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def oxxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the X element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def oxyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def oxyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def oxyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def oxyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def oxox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def oxoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def oxoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a zero, and a zero."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def oxol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a zero, and a one."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def oxlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a one, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def oxly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def oxlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a one, and a zero."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def oxll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a one, and a one."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def oyxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def oyxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def oyxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def oyxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def oyyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def oyyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def oyyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def oyyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def oyox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def oyoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def oyoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a zero, and a zero."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def oyol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a zero, and a one."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def oylx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def oyly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def oylo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a one, and a zero."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def oyll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a one, and a one."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def ooxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def ooxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def ooxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the X element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def ooxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the X element of this vector, and a one."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def ooyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def ooyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def ooyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Y element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def ooyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Y element of this vector, and a one."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def ooox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, a zero, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def oooy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, a zero, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def oolx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, a one, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def ooly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, a one, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def olxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the X element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def olxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def olxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the X element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def olxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the X element of this vector, and a one."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def olyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def olyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def olyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Y element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def olyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Y element of this vector, and a one."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def olox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, a zero, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def oloy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, a zero, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def ollx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, a one, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def olly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, a one, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def lxxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def lxxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def lxxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def lxxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the X element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def lxyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def lxyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def lxyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def lxyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def lxox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def lxoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def lxoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a zero, and a zero."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def lxol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a zero, and a one."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def lxlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a one, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def lxly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def lxlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a one, and a zero."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def lxll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a one, and a one."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def lyxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def lyxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def lyxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def lyxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def lyyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def lyyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def lyyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def lyyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def lyox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def lyoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def lyoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a zero, and a zero."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def lyol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a zero, and a one."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def lylx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def lyly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def lylo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a one, and a zero."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def lyll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a one, and a one."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def loxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def loxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def loxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the X element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def loxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the X element of this vector, and a one."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def loyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def loyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def loyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Y element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def loyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Y element of this vector, and a one."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def loox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, a zero, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def looy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, a zero, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def lolx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, a one, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def loly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, a one, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def llxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the X element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def llxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def llxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the X element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def llxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the X element of this vector, and a one."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def llyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def llyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def llyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Y element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def llyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Y element of this vector, and a one."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def llox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, a zero, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def lloy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, a zero, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def lllx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, a one, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def llly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, a one, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.y
        return vec


@cython.no_gc
@cython.final
@cython.freelist(8)
cdef class _Vec2iterator:
    """Internal iterator class for Vec2."""

    cdef public py_float x, y
    cdef short index


    def __next__(self) -> float:
        if self.index == 0:
            self.index += 1
            return self.x
        elif self.index == 1:
            self.index += 1
            return self.y
        raise StopIteration

    def __iter__(self) -> _Vec2iterator:
        #<RETURN_SELF>
        return self

    def __length_hint__(self) -> int:
        return 2


# noinspection SpellCheckingInspection
@cython.auto_pickle(True)
@cython.freelist(4096)
@cython.no_gc
@cython.final
cdef class Vec3:
    """3D vector."""

    cdef public py_float x, y, z


    cdef inline void ___init___0(self) noexcept:
        """Create a zero vector."""
        self.x = self.y = self.z = 0.0

    cdef inline void ___init___1(self, py_float value) noexcept:
        """Create a vector with the same value for all elements."""
        self.x = self.y = self.z = value

    cdef inline void ___init___2(self, Vec3i vec) noexcept:
        """Convert a integer vector to a floating-point vector."""
        self.x = <py_float>vec.x
        self.y = <py_float>vec.y
        self.z = <py_float>vec.z

    cdef inline void ___init___3(self, Vec3 xyz) noexcept:
        """Create a 3D vector from a 3D vector."""
        self.x = xyz.x
        self.y = xyz.y
        self.z = xyz.z
    
    cdef inline void ___init___4(self, py_float x, Vec2 yz) noexcept:
        """Create a 3D vector from a number and a 2D vector."""
        self.x = x
        self.y = yz.x
        self.z = yz.y
    
    cdef inline void ___init___5(self, Vec2 xy, py_float z) noexcept:
        """Create a 3D vector from a 2D vector and a number."""
        self.x = xy.x
        self.y = xy.y
        self.z = z
    
    cdef inline void ___init___6(self, py_float x, py_float y, py_float z) noexcept:
        """Create a 3D vector from a number, a number and a number."""
        self.x = x
        self.y = y
        self.z = z

    def __init__(self, object p0=None, object p1=None, object p2=None, /) -> None:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            if (PyFloat_Check(p1) or PyLong_Check(p1)):
                if (PyFloat_Check(p2) or PyLong_Check(p2)):
                    self.___init___6(PyFloat_AsDouble(p0), PyFloat_AsDouble(p1), PyFloat_AsDouble(p2))
                    return
                else:
                    raise TypeError(f"The 4th parameter expected float | int | None, got {p2}")
            elif isinstance(p1, Vec2):
                if p2 is None:
                    self.___init___4(PyFloat_AsDouble(p0), <Vec2> p1)
                    return
                else:
                    raise TypeError(f"The 4th parameter expected float | int | None, got {p2}")
            elif p1 is None:
                if p2 is None:
                    self.___init___1(PyFloat_AsDouble(p0))
                    return
                else:
                    raise TypeError(f"The 4th parameter expected float | int | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected Vec2 | float | int | None, got {p1}")
        elif isinstance(p0, Vec3i):
            if p1 is None:
                if p2 is None:
                    self.___init___2(<Vec3i> p0)
                    return
                else:
                    raise TypeError(f"The 4th parameter expected float | int | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected Vec2 | float | int | None, got {p1}")
        elif isinstance(p0, Vec3):
            if p1 is None:
                if p2 is None:
                    self.___init___3(<Vec3> p0)
                    return
                else:
                    raise TypeError(f"The 4th parameter expected float | int | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected Vec2 | float | int | None, got {p1}")
        elif isinstance(p0, Vec2):
            if (PyFloat_Check(p1) or PyLong_Check(p1)):
                if p2 is None:
                    self.___init___5(<Vec2> p0, PyFloat_AsDouble(p1))
                    return
                else:
                    raise TypeError(f"The 4th parameter expected float | int | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected Vec2 | float | int | None, got {p1}")
        elif p0 is None:
            if p1 is None:
                if p2 is None:
                    self.___init___0()
                    return
                else:
                    raise TypeError(f"The 4th parameter expected float | int | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected Vec2 | float | int | None, got {p1}")
        else:
            raise TypeError(f"The 2th parameter expected float | int | Vec3i | Vec3 | Vec2 | None, got {p0}")


    def __repr__(self) -> str:
        return f"Vec3({self.x}, {self.y}, {self.z})"

    def __eq__(self, object other) -> bool:
        """Perform exact comparison.

        See Also: `Vec3.is_close()`
        """
        if not isinstance(other, Vec3):
            return False
        cdef Vec3 vec = <Vec3> other
        return self.x == vec.x and self.y == vec.y and self.z == vec.z

    def __ne__(self, object other) -> bool:
        """Perform exact comparison.

        See Also: `Vec3.is_close()`
        """
        if not isinstance(other, Vec3):
            return True
        cdef Vec3 vec = <Vec3> other
        return self.x != vec.x or self.y != vec.y or self.z != vec.z

    def is_close(self, Vec3 other, /, py_float rel_tol = DEFAULT_RELATIVE_TOLERANCE, py_float abs_tol = DEFAULT_ABSOLUTE_TOLERANCE) -> bool:
        """Determine if the two vectors are close enough.

        See Also: `math.is_close()`
        """
        return is_close(<py_float> self.x, <py_float> other.x, rel_tol, abs_tol) and is_close(<py_float> self.y, <py_float> other.y, rel_tol, abs_tol) and is_close(<py_float> self.z, <py_float> other.z, rel_tol, abs_tol)

    def __bool__(self) -> bool:
        """If the vector is a zero vector."""
        return self.x == 0 and self.y == 0 and self.z == 0

    #TODO: Better hashing
    def __hash__(self) -> py_int:
        cdef py_int h = 0
        h ^= rotl_ratio(bitcast_float(self.x), 0, 3)
        h ^= rotl_ratio(bitcast_float(self.y), 1, 3)
        h ^= rotl_ratio(bitcast_float(self.z), 2, 3)
        return h

    def __pos__(self) -> Vec3:
        """Return a copy of this vector."""
        cdef Vec3 vec = Vec3.__new__(Vec3)
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        return vec

    def __neg__(self) -> Vec3:
        """Return the inverse vector."""
        cdef Vec3 vec = Vec3.__new__(Vec3)
        vec.x = -self.x
        vec.y = -self.y
        vec.z = -self.z
        return vec

    cdef inline Vec3 ___add___0(self, Vec3 other):
        """Element-wise addition."""
        cdef Vec3 vec = Vec3.__new__(Vec3)
        vec.x = self.x + other.x
        vec.y = self.y + other.y
        vec.z = self.z + other.z
        return vec
    
    cdef inline Vec3 ___add___1(self, py_float other):
        """Element-wise addition with the same number for all elements."""
        cdef Vec3 vec = Vec3.__new__(Vec3)
        vec.x = self.x + other
        vec.y = self.y + other
        vec.z = self.z + other
        return vec
    
    def __add__(self, object p0, /) -> Vec3:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___add___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec3):
            return self.___add___0(<Vec3> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec3 | float | int, got {p0}")
    
    cdef inline Vec3 ___iadd___0(self, Vec3 other):
        #<RETURN_SELF>
        """Element-wise inplace addition."""
        self.x += other.x
        self.y += other.y
        self.z += other.z
        return self
    
    cdef inline Vec3 ___iadd___1(self, py_float other):
        #<RETURN_SELF>
        """Element-wise inplace addition with the same number for all elements."""
        self.x += other
        self.y += other
        self.z += other
        return self
    
    def __iadd__(self, object p0, /) -> Vec3:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___iadd___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec3):
            return self.___iadd___0(<Vec3> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec3 | float | int, got {p0}")

    cdef inline Vec3 ___sub___0(self, Vec3 other):
        """Element-wise subtraction."""
        cdef Vec3 vec = Vec3.__new__(Vec3)
        vec.x = self.x - other.x
        vec.y = self.y - other.y
        vec.z = self.z - other.z
        return vec
    
    cdef inline Vec3 ___sub___1(self, py_float other):
        """Element-wise subtraction with the same number for all elements."""
        cdef Vec3 vec = Vec3.__new__(Vec3)
        vec.x = self.x - other
        vec.y = self.y - other
        vec.z = self.z - other
        return vec
    
    def __sub__(self, object p0, /) -> Vec3:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___sub___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec3):
            return self.___sub___0(<Vec3> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec3 | float | int, got {p0}")
    
    cdef inline Vec3 ___isub___0(self, Vec3 other):
        #<RETURN_SELF>
        """Element-wise inplace subtraction."""
        self.x -= other.x
        self.y -= other.y
        self.z -= other.z
        return self
    
    cdef inline Vec3 ___isub___1(self, py_float other):
        #<RETURN_SELF>
        """Element-wise inplace subtraction with the same number for all elements."""
        self.x -= other
        self.y -= other
        self.z -= other
        return self
    
    def __isub__(self, object p0, /) -> Vec3:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___isub___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec3):
            return self.___isub___0(<Vec3> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec3 | float | int, got {p0}")

    cdef inline Vec3 ___mul___0(self, Vec3 other):
        """Element-wise multiplication."""
        cdef Vec3 vec = Vec3.__new__(Vec3)
        vec.x = self.x * other.x
        vec.y = self.y * other.y
        vec.z = self.z * other.z
        return vec
    
    cdef inline Vec3 ___mul___1(self, py_float other):
        """Element-wise multiplication with the same number for all elements."""
        cdef Vec3 vec = Vec3.__new__(Vec3)
        vec.x = self.x * other
        vec.y = self.y * other
        vec.z = self.z * other
        return vec
    
    def __mul__(self, object p0, /) -> Vec3:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___mul___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec3):
            return self.___mul___0(<Vec3> p0)
        elif isinstance(p0, Transform3D):
            return self.___mul___2(<Transform3D> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec3 | float | int | Transform3D, got {p0}")
    
    cdef inline Vec3 ___imul___0(self, Vec3 other):
        #<RETURN_SELF>
        """Element-wise inplace multiplication."""
        self.x *= other.x
        self.y *= other.y
        self.z *= other.z
        return self
    
    cdef inline Vec3 ___imul___1(self, py_float other):
        #<RETURN_SELF>
        """Element-wise inplace multiplication with the same number for all elements."""
        self.x *= other
        self.y *= other
        self.z *= other
        return self
    
    def __imul__(self, object p0, /) -> Vec3:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___imul___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec3):
            return self.___imul___0(<Vec3> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec3 | float | int, got {p0}")
    cdef inline Vec3 ___mul___2(self, Transform3D t):
        """Transform a copy of this vector using the *INVERSE* of the transform.
        Use `transform * vector` or `transform(vector)` for non-inverse transformation.
        
        See Also:
            `Transform3D.__mul__()`
            `Transform3D.__call__()`
        """
        cdef Vec3 vec = Vec3.__new__(Vec3)
        cdef py_float x = self.x - t.ox
        cdef py_float y = self.y - t.oy
        cdef py_float z = self.z - t.oz
        vec.x = t.xx * x + t.xy * y + t.xz * z
        vec.y = t.yx * x + t.yy * y + t.yz * z
        vec.z = t.zx * x + t.zy * y + t.zz * z
        return vec

    cdef inline Vec3 ___truediv___0(self, Vec3 other):
        """Element-wise division."""
        cdef Vec3 vec = Vec3.__new__(Vec3)
        vec.x = self.x / other.x
        vec.y = self.y / other.y
        vec.z = self.z / other.z
        return vec
    
    cdef inline Vec3 ___truediv___1(self, py_float other):
        """Element-wise division with the same number for all elements."""
        cdef Vec3 vec = Vec3.__new__(Vec3)
        vec.x = self.x / other
        vec.y = self.y / other
        vec.z = self.z / other
        return vec
    
    def __truediv__(self, object p0, /) -> Vec3:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___truediv___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec3):
            return self.___truediv___0(<Vec3> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec3 | float | int, got {p0}")
    
    cdef inline Vec3 ___itruediv___0(self, Vec3 other):
        #<RETURN_SELF>
        """Element-wise inplace division."""
        self.x /= other.x
        self.y /= other.y
        self.z /= other.z
        return self
    
    cdef inline Vec3 ___itruediv___1(self, py_float other):
        #<RETURN_SELF>
        """Element-wise inplace division with the same number for all elements."""
        self.x /= other
        self.y /= other
        self.z /= other
        return self
    
    def __itruediv__(self, object p0, /) -> Vec3:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___itruediv___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec3):
            return self.___itruediv___0(<Vec3> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec3 | float | int, got {p0}")


    def __matmul__(self, Vec3 other) -> py_float:
        """Dot product."""
        return self.x * other.x + self.y * other.y + self.z * other.z

    def __xor__(self, Vec3 other) -> Vec3:
        """Cross product."""
        cdef Vec3 vec = Vec3.__new__(Vec3)
        vec.x = self.y * other.z - self.z * other.y
        vec.y = self.z * other.x - self.x * other.z
        vec.z = self.x * other.y - self.y * other.x
        return vec


    def __len__(self) -> int:
        """The number of dimensions (elements) of this vector."""
        return 3

    def __getitem__(self, int key) -> py_float:
        """Get the n-th element of this vector."""
        if key == 0:
            return self.x
        elif key == 1:
            return self.y
        elif key == 2:
            return self.z
        else:
            raise KeyError(f"Vec3 index out of range: {key}")

    def __setitem__(self, int key, py_float value) -> None:
        """Set the n-th element of this vector."""
        if key == 0:
            self.x = value
        elif key == 1:
            self.y = value
        elif key == 2:
            self.z = value
        else:
            raise KeyError(f"Vec3 index out of range: {key}")

    def __iter__(self) -> _Vec3iterator:
        """Create an iterator that yields all the elements of the vector in sequence.

        This creates a copy of all the elements of this vector,
        so modifying the vector won't affect already created iterators.
        """
        cdef _Vec3iterator iterator = _Vec3iterator.__new__(_Vec3iterator)
        iterator.x = self.x
        iterator.y = self.y
        iterator.z = self.z
        # iterator.vec = self
        return iterator


    @property
    def length(self) -> py_float:
        """The (Euclidean) length of this vector."""
        return sqrtl(<py_float> (self.x * self.x) + <py_float> (self.y * self.y) + <py_float> (self.z * self.z))

    @property
    def length_sqr(self) -> py_float:
        """The squared Euclidean length of this vector."""
        return self.x * self.x + self.y * self.y + self.z * self.z

    def __or__(self, Vec3 other) -> py_float:
        """The (Euclidean) distance between two vectors."""
        cdef py_float dx = self.x - other.x
        cdef py_float dy = self.y - other.y
        cdef py_float dz = self.z - other.z
        return sqrtl(<py_float> (dx * dx + dy * dy + dz * dz))

    def distance_to(self, Vec3 other, /) -> py_float:
        """The (Euclidean) distance between two vectors."""
        cdef py_float dx = self.x - other.x
        cdef py_float dy = self.y - other.y
        cdef py_float dz = self.z - other.z
        return sqrtl(<py_float> (dx * dx + dy * dy + dz * dz))

    def distance_sqr_to(self, Vec3 other, /) -> py_float:
        """The squared Euclidean distance between two vectors."""
        cdef py_float dx = self.x - other.x
        cdef py_float dy = self.y - other.y
        cdef py_float dz = self.z - other.z
        return <py_float> (dx * dx + dy * dy + dz * dz)

    @property
    def normalized(self) -> Vec3:
        """Get a normalized copy of this vector."""
        cdef py_float l = sqrtl(self.x * self.x + self.y * self.y + self.z * self.z)
        cdef Vec3 vec = Vec3.__new__(Vec3)
        vec.x = self.x / l
        vec.y = self.y / l
        vec.z = self.z / l
        return vec


    @property
    def xx(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        return vec
    
    @property
    def xy(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        return vec
    
    @property
    def xz(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        return vec
    
    @property
    def xo(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0.0
        return vec
    
    @property
    def xl(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1.0
        return vec
    
    @property
    def yx(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        return vec
    
    @property
    def yy(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        return vec
    
    @property
    def yz(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        return vec
    
    @property
    def yo(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0.0
        return vec
    
    @property
    def yl(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1.0
        return vec
    
    @property
    def zx(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        return vec
    
    @property
    def zy(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        return vec
    
    @property
    def zz(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        return vec
    
    @property
    def zo(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 0.0
        return vec
    
    @property
    def zl(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = 1.0
        return vec
    
    @property
    def ox(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being a zero, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        return vec
    
    @property
    def oy(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being a zero, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        return vec
    
    @property
    def oz(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being a zero, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        return vec
    
    @property
    def lx(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being a one, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        return vec
    
    @property
    def ly(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being a one, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        return vec
    
    @property
    def lz(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being a one, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        return vec
    
    @property
    def xxx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def xxy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def xxz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        return vec
    
    @property
    def xxo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0.0
        return vec
    
    @property
    def xxl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1.0
        return vec
    
    @property
    def xyx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def xyy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def xyz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        return vec
    
    @xyz.setter
    def xyz(self, Vec3 vec) -> None:
        """Set the value of the X, Y and Z elements of this vector to the value of the elements of the other vector, respectively."""
        self.x = vec.x
        self.y = vec.y
        self.z = vec.z
    
    @property
    def xyo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0.0
        return vec
    
    @property
    def xyl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1.0
        return vec
    
    @property
    def xzx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        return vec
    
    @property
    def xzy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        return vec
    
    @xzy.setter
    def xzy(self, Vec3 vec) -> None:
        """Set the value of the X, Z and Y elements of this vector to the value of the elements of the other vector, respectively."""
        self.x = vec.x
        self.z = vec.y
        self.y = vec.z
    
    @property
    def xzz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        return vec
    
    @property
    def xzo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0.0
        return vec
    
    @property
    def xzl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1.0
        return vec
    
    @property
    def xox(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.x
        return vec
    
    @property
    def xoy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.y
        return vec
    
    @property
    def xoz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.z
        return vec
    
    @property
    def xoo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 0.0
        return vec
    
    @property
    def xol(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 1.0
        return vec
    
    @property
    def xlx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.x
        return vec
    
    @property
    def xly(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.y
        return vec
    
    @property
    def xlz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.z
        return vec
    
    @property
    def xlo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 0.0
        return vec
    
    @property
    def xll(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 1.0
        return vec
    
    @property
    def yxx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def yxy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def yxz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        return vec
    
    @yxz.setter
    def yxz(self, Vec3 vec) -> None:
        """Set the value of the Y, X and Z elements of this vector to the value of the elements of the other vector, respectively."""
        self.y = vec.x
        self.x = vec.y
        self.z = vec.z
    
    @property
    def yxo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0.0
        return vec
    
    @property
    def yxl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1.0
        return vec
    
    @property
    def yyx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def yyy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def yyz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        return vec
    
    @property
    def yyo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0.0
        return vec
    
    @property
    def yyl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1.0
        return vec
    
    @property
    def yzx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        return vec
    
    @yzx.setter
    def yzx(self, Vec3 vec) -> None:
        """Set the value of the Y, Z and X elements of this vector to the value of the elements of the other vector, respectively."""
        self.y = vec.x
        self.z = vec.y
        self.x = vec.z
    
    @property
    def yzy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        return vec
    
    @property
    def yzz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        return vec
    
    @property
    def yzo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0.0
        return vec
    
    @property
    def yzl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1.0
        return vec
    
    @property
    def yox(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.x
        return vec
    
    @property
    def yoy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.y
        return vec
    
    @property
    def yoz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.z
        return vec
    
    @property
    def yoo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 0.0
        return vec
    
    @property
    def yol(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 1.0
        return vec
    
    @property
    def ylx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.x
        return vec
    
    @property
    def yly(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.y
        return vec
    
    @property
    def ylz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.z
        return vec
    
    @property
    def ylo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 0.0
        return vec
    
    @property
    def yll(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 1.0
        return vec
    
    @property
    def zxx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def zxy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @zxy.setter
    def zxy(self, Vec3 vec) -> None:
        """Set the value of the Z, X and Y elements of this vector to the value of the elements of the other vector, respectively."""
        self.z = vec.x
        self.x = vec.y
        self.y = vec.z
    
    @property
    def zxz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        return vec
    
    @property
    def zxo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0.0
        return vec
    
    @property
    def zxl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1.0
        return vec
    
    @property
    def zyx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @zyx.setter
    def zyx(self, Vec3 vec) -> None:
        """Set the value of the Z, Y and X elements of this vector to the value of the elements of the other vector, respectively."""
        self.z = vec.x
        self.y = vec.y
        self.x = vec.z
    
    @property
    def zyy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def zyz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        return vec
    
    @property
    def zyo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0.0
        return vec
    
    @property
    def zyl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1.0
        return vec
    
    @property
    def zzx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        return vec
    
    @property
    def zzy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        return vec
    
    @property
    def zzz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        return vec
    
    @property
    def zzo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0.0
        return vec
    
    @property
    def zzl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1.0
        return vec
    
    @property
    def zox(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.x
        return vec
    
    @property
    def zoy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.y
        return vec
    
    @property
    def zoz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.z
        return vec
    
    @property
    def zoo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, a zero, and a zero."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 0.0
        return vec
    
    @property
    def zol(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, a zero, and a one."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 1.0
        return vec
    
    @property
    def zlx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.x
        return vec
    
    @property
    def zly(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.y
        return vec
    
    @property
    def zlz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.z
        return vec
    
    @property
    def zlo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, a one, and a zero."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 0.0
        return vec
    
    @property
    def zll(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, a one, and a one."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 1.0
        return vec
    
    @property
    def oxx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the X element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def oxy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def oxz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.z
        return vec
    
    @property
    def oxo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the X element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 0.0
        return vec
    
    @property
    def oxl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the X element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 1.0
        return vec
    
    @property
    def oyx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def oyy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def oyz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.z
        return vec
    
    @property
    def oyo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Y element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 0.0
        return vec
    
    @property
    def oyl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Y element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 1.0
        return vec
    
    @property
    def ozx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.x
        return vec
    
    @property
    def ozy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.y
        return vec
    
    @property
    def ozz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.z
        return vec
    
    @property
    def ozo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Z element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 0.0
        return vec
    
    @property
    def ozl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Z element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 1.0
        return vec
    
    @property
    def oox(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, a zero, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.x
        return vec
    
    @property
    def ooy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, a zero, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.y
        return vec
    
    @property
    def ooz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, a zero, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.z
        return vec
    
    @property
    def olx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, a one, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.x
        return vec
    
    @property
    def oly(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, a one, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.y
        return vec
    
    @property
    def olz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, a one, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.z
        return vec
    
    @property
    def lxx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the X element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def lxy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the X element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def lxz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the X element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.z
        return vec
    
    @property
    def lxo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the X element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 0.0
        return vec
    
    @property
    def lxl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the X element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 1.0
        return vec
    
    @property
    def lyx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Y element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def lyy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def lyz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.z
        return vec
    
    @property
    def lyo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Y element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 0.0
        return vec
    
    @property
    def lyl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Y element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 1.0
        return vec
    
    @property
    def lzx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Z element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.x
        return vec
    
    @property
    def lzy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.y
        return vec
    
    @property
    def lzz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.z
        return vec
    
    @property
    def lzo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Z element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 0.0
        return vec
    
    @property
    def lzl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Z element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 1.0
        return vec
    
    @property
    def lox(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, a zero, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.x
        return vec
    
    @property
    def loy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, a zero, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.y
        return vec
    
    @property
    def loz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, a zero, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.z
        return vec
    
    @property
    def llx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, a one, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.x
        return vec
    
    @property
    def lly(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, a one, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.y
        return vec
    
    @property
    def llz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, a one, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.z
        return vec
    
    @property
    def xxxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xxxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xxxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def xxxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def xxxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def xxyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xxyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xxyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def xxyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def xxyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def xxzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def xxzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def xxzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def xxzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def xxzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def xxox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def xxoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def xxoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def xxoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def xxol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def xxlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def xxly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def xxlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def xxlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def xxll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def xyxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xyxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xyxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def xyxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def xyxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def xyyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xyyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xyyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def xyyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def xyyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def xyzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def xyzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def xyzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def xyzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def xyzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def xyox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def xyoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def xyoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def xyoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def xyol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def xylx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def xyly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def xylz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def xylo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def xyll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def xzxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xzxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xzxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def xzxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def xzxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def xzyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xzyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xzyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def xzyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def xzyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def xzzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def xzzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def xzzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def xzzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def xzzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def xzox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def xzoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def xzoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def xzoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def xzol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def xzlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def xzly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def xzlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def xzlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def xzll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def xoxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xoxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xoxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def xoxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def xoxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def xoyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xoyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xoyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def xoyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def xoyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def xozx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def xozy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def xozz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def xozo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def xozl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def xoox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def xooy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def xooz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def xooo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a zero, and a zero."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def xool(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a zero, and a one."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def xolx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def xoly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def xolz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def xolo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a one, and a zero."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def xoll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a one, and a one."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def xlxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xlxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xlxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def xlxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def xlxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def xlyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xlyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xlyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def xlyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def xlyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def xlzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def xlzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def xlzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def xlzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def xlzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def xlox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def xloy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def xloz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def xloo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a zero, and a zero."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def xlol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a zero, and a one."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def xllx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def xlly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def xllz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def xllo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a one, and a zero."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def xlll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a one, and a one."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def yxxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def yxxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def yxxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def yxxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def yxxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def yxyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def yxyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def yxyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def yxyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def yxyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def yxzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def yxzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def yxzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def yxzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def yxzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def yxox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def yxoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def yxoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def yxoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def yxol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def yxlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def yxly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def yxlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def yxlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def yxll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def yyxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def yyxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def yyxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def yyxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def yyxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def yyyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def yyyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def yyyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def yyyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def yyyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def yyzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def yyzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def yyzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def yyzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def yyzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def yyox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def yyoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def yyoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def yyoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def yyol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def yylx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def yyly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def yylz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def yylo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def yyll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def yzxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def yzxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def yzxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def yzxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def yzxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def yzyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def yzyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def yzyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def yzyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def yzyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def yzzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def yzzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def yzzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def yzzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def yzzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def yzox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def yzoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def yzoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def yzoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def yzol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def yzlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def yzly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def yzlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def yzlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def yzll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def yoxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def yoxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def yoxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def yoxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def yoxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def yoyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def yoyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def yoyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def yoyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def yoyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def yozx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def yozy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def yozz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def yozo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def yozl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def yoox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def yooy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def yooz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def yooo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a zero, and a zero."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def yool(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a zero, and a one."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def yolx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def yoly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def yolz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def yolo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a one, and a zero."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def yoll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a one, and a one."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def ylxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def ylxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def ylxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def ylxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def ylxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def ylyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def ylyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def ylyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def ylyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def ylyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def ylzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def ylzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def ylzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def ylzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def ylzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def ylox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def yloy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def yloz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def yloo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a zero, and a zero."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def ylol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a zero, and a one."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def yllx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def ylly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def yllz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def yllo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a one, and a zero."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def ylll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a one, and a one."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def zxxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def zxxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def zxxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def zxxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def zxxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def zxyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def zxyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def zxyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def zxyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def zxyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def zxzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def zxzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def zxzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def zxzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def zxzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def zxox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def zxoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def zxoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def zxoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, a zero, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def zxol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, a zero, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def zxlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def zxly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def zxlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def zxlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, a one, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def zxll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, a one, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def zyxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def zyxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def zyxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def zyxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def zyxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def zyyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def zyyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def zyyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def zyyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def zyyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def zyzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def zyzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def zyzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def zyzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def zyzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def zyox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def zyoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def zyoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def zyoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, a zero, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def zyol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, a zero, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def zylx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def zyly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def zylz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def zylo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, a one, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def zyll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, a one, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def zzxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def zzxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def zzxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def zzxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def zzxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def zzyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def zzyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def zzyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def zzyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def zzyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def zzzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def zzzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def zzzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def zzzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def zzzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def zzox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def zzoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def zzoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def zzoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, a zero, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def zzol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, a zero, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def zzlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def zzly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def zzlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def zzlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, a one, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def zzll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, a one, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def zoxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def zoxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def zoxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def zoxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def zoxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def zoyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def zoyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def zoyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def zoyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def zoyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def zozx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def zozy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def zozz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def zozo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def zozl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def zoox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def zooy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def zooz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def zooo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, a zero, and a zero."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def zool(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, a zero, and a one."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def zolx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def zoly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def zolz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def zolo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, a one, and a zero."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def zoll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, a one, and a one."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def zlxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def zlxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def zlxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def zlxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def zlxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def zlyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def zlyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def zlyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def zlyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def zlyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def zlzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def zlzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def zlzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def zlzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def zlzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def zlox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def zloy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def zloz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def zloo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, a zero, and a zero."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def zlol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, a zero, and a one."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def zllx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def zlly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def zllz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def zllo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, a one, and a zero."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def zlll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, a one, and a one."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def oxxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def oxxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def oxxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def oxxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def oxxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the X element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def oxyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def oxyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def oxyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def oxyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def oxyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def oxzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def oxzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def oxzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def oxzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def oxzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Z element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def oxox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def oxoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def oxoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def oxoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a zero, and a zero."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def oxol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a zero, and a one."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def oxlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a one, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def oxly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def oxlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a one, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def oxlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a one, and a zero."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def oxll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a one, and a one."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def oyxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def oyxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def oyxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def oyxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def oyxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def oyyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def oyyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def oyyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def oyyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def oyyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def oyzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def oyzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def oyzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def oyzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def oyzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def oyox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def oyoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def oyoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def oyoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a zero, and a zero."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def oyol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a zero, and a one."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def oylx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def oyly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def oylz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def oylo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a one, and a zero."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def oyll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a one, and a one."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def ozxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def ozxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def ozxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def ozxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def ozxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the X element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def ozyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def ozyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def ozyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def ozyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def ozyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def ozzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def ozzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def ozzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def ozzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def ozzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def ozox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def ozoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def ozoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def ozoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, a zero, and a zero."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def ozol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, a zero, and a one."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def ozlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, a one, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def ozly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def ozlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def ozlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, a one, and a zero."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def ozll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, a one, and a one."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def ooxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def ooxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def ooxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def ooxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the X element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def ooxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the X element of this vector, and a one."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def ooyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def ooyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def ooyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def ooyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Y element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def ooyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Y element of this vector, and a one."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def oozx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def oozy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def oozz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def oozo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Z element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def oozl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Z element of this vector, and a one."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def ooox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, a zero, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def oooy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, a zero, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def oooz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, a zero, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def oolx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, a one, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def ooly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, a one, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def oolz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, a one, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def olxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the X element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def olxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def olxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the X element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def olxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the X element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def olxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the X element of this vector, and a one."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def olyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def olyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def olyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def olyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Y element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def olyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Y element of this vector, and a one."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def olzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Z element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def olzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def olzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def olzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Z element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def olzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Z element of this vector, and a one."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def olox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, a zero, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def oloy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, a zero, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def oloz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, a zero, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def ollx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, a one, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def olly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, a one, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def ollz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, a one, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def lxxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def lxxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def lxxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def lxxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def lxxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the X element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def lxyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def lxyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def lxyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def lxyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def lxyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def lxzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def lxzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def lxzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def lxzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def lxzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Z element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def lxox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def lxoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def lxoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def lxoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a zero, and a zero."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def lxol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a zero, and a one."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def lxlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a one, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def lxly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def lxlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a one, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def lxlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a one, and a zero."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def lxll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a one, and a one."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def lyxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def lyxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def lyxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def lyxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def lyxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def lyyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def lyyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def lyyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def lyyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def lyyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def lyzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def lyzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def lyzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def lyzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def lyzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def lyox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def lyoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def lyoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def lyoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a zero, and a zero."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def lyol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a zero, and a one."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def lylx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def lyly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def lylz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def lylo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a one, and a zero."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def lyll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a one, and a one."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def lzxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def lzxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def lzxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def lzxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def lzxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the X element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def lzyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def lzyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def lzyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def lzyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def lzyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def lzzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def lzzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def lzzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def lzzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def lzzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def lzox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def lzoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def lzoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def lzoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, a zero, and a zero."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def lzol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, a zero, and a one."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def lzlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, a one, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def lzly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def lzlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def lzlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, a one, and a zero."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def lzll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, a one, and a one."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def loxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def loxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def loxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def loxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the X element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def loxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the X element of this vector, and a one."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def loyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def loyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def loyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def loyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Y element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def loyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Y element of this vector, and a one."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def lozx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def lozy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def lozz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def lozo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Z element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def lozl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Z element of this vector, and a one."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def loox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, a zero, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def looy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, a zero, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def looz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, a zero, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def lolx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, a one, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def loly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, a one, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def lolz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, a one, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def llxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the X element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def llxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def llxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the X element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def llxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the X element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def llxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the X element of this vector, and a one."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def llyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def llyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def llyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def llyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Y element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def llyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Y element of this vector, and a one."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def llzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Z element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def llzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def llzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def llzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Z element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def llzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Z element of this vector, and a one."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def llox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, a zero, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def lloy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, a zero, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def lloz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, a zero, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def lllx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, a one, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def llly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, a one, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def lllz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, a one, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.z
        return vec


@cython.no_gc
@cython.final
@cython.freelist(8)
cdef class _Vec3iterator:
    """Internal iterator class for Vec3."""

    cdef public py_float x, y, z
    cdef short index


    def __next__(self) -> float:
        if self.index == 0:
            self.index += 1
            return self.x
        elif self.index == 1:
            self.index += 1
            return self.y
        elif self.index == 2:
            self.index += 1
            return self.z
        raise StopIteration

    def __iter__(self) -> _Vec3iterator:
        #<RETURN_SELF>
        return self

    def __length_hint__(self) -> int:
        return 3


# noinspection SpellCheckingInspection
@cython.auto_pickle(True)
@cython.freelist(4096)
@cython.no_gc
@cython.final
cdef class Vec4:
    """4D vector."""

    cdef public py_float x, y, z, w


    cdef inline void ___init___0(self) noexcept:
        """Create a zero vector."""
        self.x = self.y = self.z = self.w = 0.0

    cdef inline void ___init___1(self, py_float value) noexcept:
        """Create a vector with the same value for all elements."""
        self.x = self.y = self.z = self.w = value

    cdef inline void ___init___2(self, Vec4i vec) noexcept:
        """Convert a integer vector to a floating-point vector."""
        self.x = <py_float>vec.x
        self.y = <py_float>vec.y
        self.z = <py_float>vec.z
        self.w = <py_float>vec.w

    cdef inline void ___init___3(self, Vec4 xyzw) noexcept:
        """Create a 4D vector from a 4D vector."""
        self.x = xyzw.x
        self.y = xyzw.y
        self.z = xyzw.z
        self.w = xyzw.w
    
    cdef inline void ___init___4(self, py_float x, Vec3 yzw) noexcept:
        """Create a 4D vector from a number and a 3D vector."""
        self.x = x
        self.y = yzw.x
        self.z = yzw.y
        self.w = yzw.z
    
    cdef inline void ___init___5(self, Vec2 xy, Vec2 zw) noexcept:
        """Create a 4D vector from a 2D vector and a 2D vector."""
        self.x = xy.x
        self.y = xy.y
        self.z = zw.x
        self.w = zw.y
    
    cdef inline void ___init___6(self, Vec3 xyz, py_float w) noexcept:
        """Create a 4D vector from a 3D vector and a number."""
        self.x = xyz.x
        self.y = xyz.y
        self.z = xyz.z
        self.w = w
    
    cdef inline void ___init___7(self, py_float x, py_float y, Vec2 zw) noexcept:
        """Create a 4D vector from a number, a number and a 2D vector."""
        self.x = x
        self.y = y
        self.z = zw.x
        self.w = zw.y
    
    cdef inline void ___init___8(self, py_float x, Vec2 yz, py_float w) noexcept:
        """Create a 4D vector from a number, a 2D vector and a number."""
        self.x = x
        self.y = yz.x
        self.z = yz.y
        self.w = w
    
    cdef inline void ___init___9(self, Vec2 xy, py_float z, py_float w) noexcept:
        """Create a 4D vector from a 2D vector, a number and a number."""
        self.x = xy.x
        self.y = xy.y
        self.z = z
        self.w = w
    
    cdef inline void ___init___10(self, py_float x, py_float y, py_float z, py_float w) noexcept:
        """Create a 4D vector from a number, a number, a number and a number."""
        self.x = x
        self.y = y
        self.z = z
        self.w = w

    def __init__(self, object p0=None, object p1=None, object p2=None, object p3=None, /) -> None:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            if (PyFloat_Check(p1) or PyLong_Check(p1)):
                if (PyFloat_Check(p2) or PyLong_Check(p2)):
                    if (PyFloat_Check(p3) or PyLong_Check(p3)):
                        self.___init___10(PyFloat_AsDouble(p0), PyFloat_AsDouble(p1), PyFloat_AsDouble(p2), PyFloat_AsDouble(p3))
                        return
                    else:
                        raise TypeError(f"The 5th parameter expected float | int | None, got {p3}")
                elif isinstance(p2, Vec2):
                    if p3 is None:
                        self.___init___7(PyFloat_AsDouble(p0), PyFloat_AsDouble(p1), <Vec2> p2)
                        return
                    else:
                        raise TypeError(f"The 5th parameter expected float | int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected Vec2 | float | int | None, got {p2}")
            elif isinstance(p1, Vec3):
                if p2 is None:
                    if p3 is None:
                        self.___init___4(PyFloat_AsDouble(p0), <Vec3> p1)
                        return
                    else:
                        raise TypeError(f"The 5th parameter expected float | int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected Vec2 | float | int | None, got {p2}")
            elif isinstance(p1, Vec2):
                if (PyFloat_Check(p2) or PyLong_Check(p2)):
                    if p3 is None:
                        self.___init___8(PyFloat_AsDouble(p0), <Vec2> p1, PyFloat_AsDouble(p2))
                        return
                    else:
                        raise TypeError(f"The 5th parameter expected float | int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected Vec2 | float | int | None, got {p2}")
            elif p1 is None:
                if p2 is None:
                    if p3 is None:
                        self.___init___1(PyFloat_AsDouble(p0))
                        return
                    else:
                        raise TypeError(f"The 5th parameter expected float | int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected Vec2 | float | int | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected Vec3 | Vec2 | float | int | None, got {p1}")
        elif isinstance(p0, Vec4i):
            if p1 is None:
                if p2 is None:
                    if p3 is None:
                        self.___init___2(<Vec4i> p0)
                        return
                    else:
                        raise TypeError(f"The 5th parameter expected float | int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected Vec2 | float | int | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected Vec3 | Vec2 | float | int | None, got {p1}")
        elif isinstance(p0, Vec4):
            if p1 is None:
                if p2 is None:
                    if p3 is None:
                        self.___init___3(<Vec4> p0)
                        return
                    else:
                        raise TypeError(f"The 5th parameter expected float | int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected Vec2 | float | int | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected Vec3 | Vec2 | float | int | None, got {p1}")
        elif isinstance(p0, Vec2):
            if (PyFloat_Check(p1) or PyLong_Check(p1)):
                if (PyFloat_Check(p2) or PyLong_Check(p2)):
                    if p3 is None:
                        self.___init___9(<Vec2> p0, PyFloat_AsDouble(p1), PyFloat_AsDouble(p2))
                        return
                    else:
                        raise TypeError(f"The 5th parameter expected float | int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected Vec2 | float | int | None, got {p2}")
            elif isinstance(p1, Vec2):
                if p2 is None:
                    if p3 is None:
                        self.___init___5(<Vec2> p0, <Vec2> p1)
                        return
                    else:
                        raise TypeError(f"The 5th parameter expected float | int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected Vec2 | float | int | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected Vec3 | Vec2 | float | int | None, got {p1}")
        elif isinstance(p0, Vec3):
            if (PyFloat_Check(p1) or PyLong_Check(p1)):
                if p2 is None:
                    if p3 is None:
                        self.___init___6(<Vec3> p0, PyFloat_AsDouble(p1))
                        return
                    else:
                        raise TypeError(f"The 5th parameter expected float | int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected Vec2 | float | int | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected Vec3 | Vec2 | float | int | None, got {p1}")
        elif p0 is None:
            if p1 is None:
                if p2 is None:
                    if p3 is None:
                        self.___init___0()
                        return
                    else:
                        raise TypeError(f"The 5th parameter expected float | int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected Vec2 | float | int | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected Vec3 | Vec2 | float | int | None, got {p1}")
        else:
            raise TypeError(f"The 2th parameter expected float | int | Vec4i | Vec4 | Vec2 | Vec3 | None, got {p0}")


    def __repr__(self) -> str:
        return f"Vec4({self.x}, {self.y}, {self.z}, {self.w})"

    def __eq__(self, object other) -> bool:
        """Perform exact comparison.

        See Also: `Vec4.is_close()`
        """
        if not isinstance(other, Vec4):
            return False
        cdef Vec4 vec = <Vec4> other
        return self.x == vec.x and self.y == vec.y and self.z == vec.z and self.w == vec.w

    def __ne__(self, object other) -> bool:
        """Perform exact comparison.

        See Also: `Vec4.is_close()`
        """
        if not isinstance(other, Vec4):
            return True
        cdef Vec4 vec = <Vec4> other
        return self.x != vec.x or self.y != vec.y or self.z != vec.z or self.w != vec.w

    def is_close(self, Vec4 other, /, py_float rel_tol = DEFAULT_RELATIVE_TOLERANCE, py_float abs_tol = DEFAULT_ABSOLUTE_TOLERANCE) -> bool:
        """Determine if the two vectors are close enough.

        See Also: `math.is_close()`
        """
        return is_close(<py_float> self.x, <py_float> other.x, rel_tol, abs_tol) and is_close(<py_float> self.y, <py_float> other.y, rel_tol, abs_tol) and is_close(<py_float> self.z, <py_float> other.z, rel_tol, abs_tol) and is_close(<py_float> self.w, <py_float> other.w, rel_tol, abs_tol)

    def __bool__(self) -> bool:
        """If the vector is a zero vector."""
        return self.x == 0 and self.y == 0 and self.z == 0 and self.w == 0

    #TODO: Better hashing
    def __hash__(self) -> py_int:
        cdef py_int h = 0
        h ^= rotl_ratio(bitcast_float(self.x), 0, 4)
        h ^= rotl_ratio(bitcast_float(self.y), 1, 4)
        h ^= rotl_ratio(bitcast_float(self.z), 2, 4)
        h ^= rotl_ratio(bitcast_float(self.w), 3, 4)
        return h

    def __pos__(self) -> Vec4:
        """Return a copy of this vector."""
        cdef Vec4 vec = Vec4.__new__(Vec4)
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = self.w
        return vec

    def __neg__(self) -> Vec4:
        """Return the inverse vector."""
        cdef Vec4 vec = Vec4.__new__(Vec4)
        vec.x = -self.x
        vec.y = -self.y
        vec.z = -self.z
        vec.w = -self.w
        return vec

    cdef inline Vec4 ___add___0(self, Vec4 other):
        """Element-wise addition."""
        cdef Vec4 vec = Vec4.__new__(Vec4)
        vec.x = self.x + other.x
        vec.y = self.y + other.y
        vec.z = self.z + other.z
        vec.w = self.w + other.w
        return vec
    
    cdef inline Vec4 ___add___1(self, py_float other):
        """Element-wise addition with the same number for all elements."""
        cdef Vec4 vec = Vec4.__new__(Vec4)
        vec.x = self.x + other
        vec.y = self.y + other
        vec.z = self.z + other
        vec.w = self.w + other
        return vec
    
    def __add__(self, object p0, /) -> Vec4:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___add___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec4):
            return self.___add___0(<Vec4> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec4 | float | int, got {p0}")
    
    cdef inline Vec4 ___iadd___0(self, Vec4 other):
        #<RETURN_SELF>
        """Element-wise inplace addition."""
        self.x += other.x
        self.y += other.y
        self.z += other.z
        self.w += other.w
        return self
    
    cdef inline Vec4 ___iadd___1(self, py_float other):
        #<RETURN_SELF>
        """Element-wise inplace addition with the same number for all elements."""
        self.x += other
        self.y += other
        self.z += other
        self.w += other
        return self
    
    def __iadd__(self, object p0, /) -> Vec4:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___iadd___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec4):
            return self.___iadd___0(<Vec4> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec4 | float | int, got {p0}")

    cdef inline Vec4 ___sub___0(self, Vec4 other):
        """Element-wise subtraction."""
        cdef Vec4 vec = Vec4.__new__(Vec4)
        vec.x = self.x - other.x
        vec.y = self.y - other.y
        vec.z = self.z - other.z
        vec.w = self.w - other.w
        return vec
    
    cdef inline Vec4 ___sub___1(self, py_float other):
        """Element-wise subtraction with the same number for all elements."""
        cdef Vec4 vec = Vec4.__new__(Vec4)
        vec.x = self.x - other
        vec.y = self.y - other
        vec.z = self.z - other
        vec.w = self.w - other
        return vec
    
    def __sub__(self, object p0, /) -> Vec4:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___sub___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec4):
            return self.___sub___0(<Vec4> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec4 | float | int, got {p0}")
    
    cdef inline Vec4 ___isub___0(self, Vec4 other):
        #<RETURN_SELF>
        """Element-wise inplace subtraction."""
        self.x -= other.x
        self.y -= other.y
        self.z -= other.z
        self.w -= other.w
        return self
    
    cdef inline Vec4 ___isub___1(self, py_float other):
        #<RETURN_SELF>
        """Element-wise inplace subtraction with the same number for all elements."""
        self.x -= other
        self.y -= other
        self.z -= other
        self.w -= other
        return self
    
    def __isub__(self, object p0, /) -> Vec4:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___isub___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec4):
            return self.___isub___0(<Vec4> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec4 | float | int, got {p0}")

    cdef inline Vec4 ___mul___0(self, Vec4 other):
        """Element-wise multiplication."""
        cdef Vec4 vec = Vec4.__new__(Vec4)
        vec.x = self.x * other.x
        vec.y = self.y * other.y
        vec.z = self.z * other.z
        vec.w = self.w * other.w
        return vec
    
    cdef inline Vec4 ___mul___1(self, py_float other):
        """Element-wise multiplication with the same number for all elements."""
        cdef Vec4 vec = Vec4.__new__(Vec4)
        vec.x = self.x * other
        vec.y = self.y * other
        vec.z = self.z * other
        vec.w = self.w * other
        return vec
    
    def __mul__(self, object p0, /) -> Vec4:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___mul___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec4):
            return self.___mul___0(<Vec4> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec4 | float | int, got {p0}")
    
    cdef inline Vec4 ___imul___0(self, Vec4 other):
        #<RETURN_SELF>
        """Element-wise inplace multiplication."""
        self.x *= other.x
        self.y *= other.y
        self.z *= other.z
        self.w *= other.w
        return self
    
    cdef inline Vec4 ___imul___1(self, py_float other):
        #<RETURN_SELF>
        """Element-wise inplace multiplication with the same number for all elements."""
        self.x *= other
        self.y *= other
        self.z *= other
        self.w *= other
        return self
    
    def __imul__(self, object p0, /) -> Vec4:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___imul___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec4):
            return self.___imul___0(<Vec4> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec4 | float | int, got {p0}")

    cdef inline Vec4 ___truediv___0(self, Vec4 other):
        """Element-wise division."""
        cdef Vec4 vec = Vec4.__new__(Vec4)
        vec.x = self.x / other.x
        vec.y = self.y / other.y
        vec.z = self.z / other.z
        vec.w = self.w / other.w
        return vec
    
    cdef inline Vec4 ___truediv___1(self, py_float other):
        """Element-wise division with the same number for all elements."""
        cdef Vec4 vec = Vec4.__new__(Vec4)
        vec.x = self.x / other
        vec.y = self.y / other
        vec.z = self.z / other
        vec.w = self.w / other
        return vec
    
    def __truediv__(self, object p0, /) -> Vec4:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___truediv___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec4):
            return self.___truediv___0(<Vec4> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec4 | float | int, got {p0}")
    
    cdef inline Vec4 ___itruediv___0(self, Vec4 other):
        #<RETURN_SELF>
        """Element-wise inplace division."""
        self.x /= other.x
        self.y /= other.y
        self.z /= other.z
        self.w /= other.w
        return self
    
    cdef inline Vec4 ___itruediv___1(self, py_float other):
        #<RETURN_SELF>
        """Element-wise inplace division with the same number for all elements."""
        self.x /= other
        self.y /= other
        self.z /= other
        self.w /= other
        return self
    
    def __itruediv__(self, object p0, /) -> Vec4:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            return self.___itruediv___1(PyFloat_AsDouble(p0))
        elif isinstance(p0, Vec4):
            return self.___itruediv___0(<Vec4> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec4 | float | int, got {p0}")


    def __matmul__(self, Vec4 other) -> py_float:
        """Dot product."""
        return self.x * other.x + self.y * other.y + self.z * other.z + self.w * other.w


    def __len__(self) -> int:
        """The number of dimensions (elements) of this vector."""
        return 4

    def __getitem__(self, int key) -> py_float:
        """Get the n-th element of this vector."""
        if key == 0:
            return self.x
        elif key == 1:
            return self.y
        elif key == 2:
            return self.z
        elif key == 3:
            return self.w
        else:
            raise KeyError(f"Vec4 index out of range: {key}")

    def __setitem__(self, int key, py_float value) -> None:
        """Set the n-th element of this vector."""
        if key == 0:
            self.x = value
        elif key == 1:
            self.y = value
        elif key == 2:
            self.z = value
        elif key == 3:
            self.w = value
        else:
            raise KeyError(f"Vec4 index out of range: {key}")

    def __iter__(self) -> _Vec4iterator:
        """Create an iterator that yields all the elements of the vector in sequence.

        This creates a copy of all the elements of this vector,
        so modifying the vector won't affect already created iterators.
        """
        cdef _Vec4iterator iterator = _Vec4iterator.__new__(_Vec4iterator)
        iterator.x = self.x
        iterator.y = self.y
        iterator.z = self.z
        iterator.w = self.w
        # iterator.vec = self
        return iterator


    @property
    def length(self) -> py_float:
        """The (Euclidean) length of this vector."""
        return sqrtl(<py_float> (self.x * self.x) + <py_float> (self.y * self.y) + <py_float> (self.z * self.z) + <py_float> (self.w * self.w))

    @property
    def length_sqr(self) -> py_float:
        """The squared Euclidean length of this vector."""
        return self.x * self.x + self.y * self.y + self.z * self.z + self.w * self.w

    def __or__(self, Vec4 other) -> py_float:
        """The (Euclidean) distance between two vectors."""
        cdef py_float dx = self.x - other.x
        cdef py_float dy = self.y - other.y
        cdef py_float dz = self.z - other.z
        cdef py_float dw = self.w - other.w
        return sqrtl(<py_float> (dx * dx + dy * dy + dz * dz + dw * dw))

    def distance_to(self, Vec4 other, /) -> py_float:
        """The (Euclidean) distance between two vectors."""
        cdef py_float dx = self.x - other.x
        cdef py_float dy = self.y - other.y
        cdef py_float dz = self.z - other.z
        cdef py_float dw = self.w - other.w
        return sqrtl(<py_float> (dx * dx + dy * dy + dz * dz + dw * dw))

    def distance_sqr_to(self, Vec4 other, /) -> py_float:
        """The squared Euclidean distance between two vectors."""
        cdef py_float dx = self.x - other.x
        cdef py_float dy = self.y - other.y
        cdef py_float dz = self.z - other.z
        cdef py_float dw = self.w - other.w
        return <py_float> (dx * dx + dy * dy + dz * dz + dw * dw)

    @property
    def normalized(self) -> Vec4:
        """Get a normalized copy of this vector."""
        cdef py_float l = sqrtl(self.x * self.x + self.y * self.y + self.z * self.z + self.w * self.w)
        cdef Vec4 vec = Vec4.__new__(Vec4)
        vec.x = self.x / l
        vec.y = self.y / l
        vec.z = self.z / l
        vec.w = self.w / l
        return vec


    @property
    def xx(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        return vec
    
    @property
    def xy(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        return vec
    
    @property
    def xz(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        return vec
    
    @property
    def xw(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the X element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.w
        return vec
    
    @property
    def xo(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0.0
        return vec
    
    @property
    def xl(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1.0
        return vec
    
    @property
    def yx(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        return vec
    
    @property
    def yy(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        return vec
    
    @property
    def yz(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        return vec
    
    @property
    def yw(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Y element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.w
        return vec
    
    @property
    def yo(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0.0
        return vec
    
    @property
    def yl(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1.0
        return vec
    
    @property
    def zx(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        return vec
    
    @property
    def zy(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        return vec
    
    @property
    def zz(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        return vec
    
    @property
    def zw(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Z element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.w
        return vec
    
    @property
    def zo(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 0.0
        return vec
    
    @property
    def zl(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = 1.0
        return vec
    
    @property
    def wx(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the W element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.x
        return vec
    
    @property
    def wy(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the W element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.y
        return vec
    
    @property
    def wz(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the W element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.z
        return vec
    
    @property
    def ww(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the W element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.w
        return vec
    
    @property
    def wo(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the W element of this vector, and a zero."""
        vec.x = self.w
        vec.y = 0.0
        return vec
    
    @property
    def wl(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being the W element of this vector, and a one."""
        vec.x = self.w
        vec.y = 1.0
        return vec
    
    @property
    def ox(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being a zero, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        return vec
    
    @property
    def oy(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being a zero, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        return vec
    
    @property
    def oz(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being a zero, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        return vec
    
    @property
    def ow(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being a zero, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        return vec
    
    @property
    def lx(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being a one, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        return vec
    
    @property
    def ly(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being a one, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        return vec
    
    @property
    def lz(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being a one, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        return vec
    
    @property
    def lw(self) -> Vec2:
        cdef Vec2 vec = Vec2.__new__(Vec2)
        """Create a `Vec2` with its elements being a one, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        return vec
    
    @property
    def xxx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def xxy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def xxz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        return vec
    
    @property
    def xxw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.w
        return vec
    
    @property
    def xxo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0.0
        return vec
    
    @property
    def xxl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1.0
        return vec
    
    @property
    def xyx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def xyy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def xyz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        return vec
    
    @property
    def xyw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.w
        return vec
    
    @property
    def xyo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0.0
        return vec
    
    @property
    def xyl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1.0
        return vec
    
    @property
    def xzx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        return vec
    
    @property
    def xzy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        return vec
    
    @property
    def xzz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        return vec
    
    @property
    def xzw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.w
        return vec
    
    @property
    def xzo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0.0
        return vec
    
    @property
    def xzl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1.0
        return vec
    
    @property
    def xwx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.x
        return vec
    
    @property
    def xwy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.y
        return vec
    
    @property
    def xwz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.z
        return vec
    
    @property
    def xww(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.w
        return vec
    
    @property
    def xwo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the W element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 0.0
        return vec
    
    @property
    def xwl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, the W element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 1.0
        return vec
    
    @property
    def xox(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.x
        return vec
    
    @property
    def xoy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.y
        return vec
    
    @property
    def xoz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.z
        return vec
    
    @property
    def xow(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a zero, and the W element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.w
        return vec
    
    @property
    def xoo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 0.0
        return vec
    
    @property
    def xol(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 1.0
        return vec
    
    @property
    def xlx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.x
        return vec
    
    @property
    def xly(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.y
        return vec
    
    @property
    def xlz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.z
        return vec
    
    @property
    def xlw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a one, and the W element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.w
        return vec
    
    @property
    def xlo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 0.0
        return vec
    
    @property
    def xll(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the X element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 1.0
        return vec
    
    @property
    def yxx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def yxy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def yxz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        return vec
    
    @property
    def yxw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.w
        return vec
    
    @property
    def yxo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0.0
        return vec
    
    @property
    def yxl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1.0
        return vec
    
    @property
    def yyx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def yyy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def yyz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        return vec
    
    @property
    def yyw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.w
        return vec
    
    @property
    def yyo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0.0
        return vec
    
    @property
    def yyl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1.0
        return vec
    
    @property
    def yzx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        return vec
    
    @property
    def yzy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        return vec
    
    @property
    def yzz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        return vec
    
    @property
    def yzw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.w
        return vec
    
    @property
    def yzo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0.0
        return vec
    
    @property
    def yzl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1.0
        return vec
    
    @property
    def ywx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.x
        return vec
    
    @property
    def ywy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.y
        return vec
    
    @property
    def ywz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.z
        return vec
    
    @property
    def yww(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.w
        return vec
    
    @property
    def ywo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the W element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 0.0
        return vec
    
    @property
    def ywl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, the W element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 1.0
        return vec
    
    @property
    def yox(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.x
        return vec
    
    @property
    def yoy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.y
        return vec
    
    @property
    def yoz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.z
        return vec
    
    @property
    def yow(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a zero, and the W element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.w
        return vec
    
    @property
    def yoo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 0.0
        return vec
    
    @property
    def yol(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 1.0
        return vec
    
    @property
    def ylx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.x
        return vec
    
    @property
    def yly(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.y
        return vec
    
    @property
    def ylz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.z
        return vec
    
    @property
    def ylw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a one, and the W element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.w
        return vec
    
    @property
    def ylo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 0.0
        return vec
    
    @property
    def yll(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Y element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 1.0
        return vec
    
    @property
    def zxx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def zxy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def zxz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        return vec
    
    @property
    def zxw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.w
        return vec
    
    @property
    def zxo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0.0
        return vec
    
    @property
    def zxl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1.0
        return vec
    
    @property
    def zyx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def zyy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def zyz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        return vec
    
    @property
    def zyw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.w
        return vec
    
    @property
    def zyo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0.0
        return vec
    
    @property
    def zyl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1.0
        return vec
    
    @property
    def zzx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        return vec
    
    @property
    def zzy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        return vec
    
    @property
    def zzz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        return vec
    
    @property
    def zzw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.w
        return vec
    
    @property
    def zzo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0.0
        return vec
    
    @property
    def zzl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1.0
        return vec
    
    @property
    def zwx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.x
        return vec
    
    @property
    def zwy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.y
        return vec
    
    @property
    def zwz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.z
        return vec
    
    @property
    def zww(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.w
        return vec
    
    @property
    def zwo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the W element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 0.0
        return vec
    
    @property
    def zwl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, the W element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 1.0
        return vec
    
    @property
    def zox(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.x
        return vec
    
    @property
    def zoy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.y
        return vec
    
    @property
    def zoz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.z
        return vec
    
    @property
    def zow(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, a zero, and the W element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.w
        return vec
    
    @property
    def zoo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, a zero, and a zero."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 0.0
        return vec
    
    @property
    def zol(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, a zero, and a one."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 1.0
        return vec
    
    @property
    def zlx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.x
        return vec
    
    @property
    def zly(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.y
        return vec
    
    @property
    def zlz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.z
        return vec
    
    @property
    def zlw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, a one, and the W element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.w
        return vec
    
    @property
    def zlo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, a one, and a zero."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 0.0
        return vec
    
    @property
    def zll(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the Z element of this vector, a one, and a one."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 1.0
        return vec
    
    @property
    def wxx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def wxy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def wxz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.z
        return vec
    
    @property
    def wxw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.w
        return vec
    
    @property
    def wxo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the X element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 0.0
        return vec
    
    @property
    def wxl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the X element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 1.0
        return vec
    
    @property
    def wyx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def wyy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def wyz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.z
        return vec
    
    @property
    def wyw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.w
        return vec
    
    @property
    def wyo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 0.0
        return vec
    
    @property
    def wyl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the Y element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 1.0
        return vec
    
    @property
    def wzx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.x
        return vec
    
    @property
    def wzy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.y
        return vec
    
    @property
    def wzz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.z
        return vec
    
    @property
    def wzw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.w
        return vec
    
    @property
    def wzo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 0.0
        return vec
    
    @property
    def wzl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the Z element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 1.0
        return vec
    
    @property
    def wwx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.x
        return vec
    
    @property
    def wwy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.y
        return vec
    
    @property
    def wwz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.z
        return vec
    
    @property
    def www(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.w
        return vec
    
    @property
    def wwo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the W element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 0.0
        return vec
    
    @property
    def wwl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, the W element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 1.0
        return vec
    
    @property
    def wox(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, a zero, and the X element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.x
        return vec
    
    @property
    def woy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.y
        return vec
    
    @property
    def woz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.z
        return vec
    
    @property
    def wow(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, a zero, and the W element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.w
        return vec
    
    @property
    def woo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, a zero, and a zero."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = 0.0
        return vec
    
    @property
    def wol(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, a zero, and a one."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = 1.0
        return vec
    
    @property
    def wlx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, a one, and the X element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.x
        return vec
    
    @property
    def wly(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, a one, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.y
        return vec
    
    @property
    def wlz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, a one, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.z
        return vec
    
    @property
    def wlw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, a one, and the W element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.w
        return vec
    
    @property
    def wlo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, a one, and a zero."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = 0.0
        return vec
    
    @property
    def wll(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being the W element of this vector, a one, and a one."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = 1.0
        return vec
    
    @property
    def oxx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the X element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def oxy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def oxz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.z
        return vec
    
    @property
    def oxw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the X element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.w
        return vec
    
    @property
    def oxo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the X element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 0.0
        return vec
    
    @property
    def oxl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the X element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 1.0
        return vec
    
    @property
    def oyx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def oyy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def oyz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.z
        return vec
    
    @property
    def oyw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Y element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.w
        return vec
    
    @property
    def oyo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Y element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 0.0
        return vec
    
    @property
    def oyl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Y element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 1.0
        return vec
    
    @property
    def ozx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.x
        return vec
    
    @property
    def ozy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.y
        return vec
    
    @property
    def ozz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.z
        return vec
    
    @property
    def ozw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Z element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.w
        return vec
    
    @property
    def ozo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Z element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 0.0
        return vec
    
    @property
    def ozl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the Z element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 1.0
        return vec
    
    @property
    def owx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the W element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.x
        return vec
    
    @property
    def owy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the W element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.y
        return vec
    
    @property
    def owz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the W element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.z
        return vec
    
    @property
    def oww(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the W element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.w
        return vec
    
    @property
    def owo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the W element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = 0.0
        return vec
    
    @property
    def owl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, the W element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = 1.0
        return vec
    
    @property
    def oox(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, a zero, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.x
        return vec
    
    @property
    def ooy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, a zero, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.y
        return vec
    
    @property
    def ooz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, a zero, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.z
        return vec
    
    @property
    def oow(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, a zero, and the W element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.w
        return vec
    
    @property
    def olx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, a one, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.x
        return vec
    
    @property
    def oly(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, a one, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.y
        return vec
    
    @property
    def olz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, a one, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.z
        return vec
    
    @property
    def olw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a zero, a one, and the W element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.w
        return vec
    
    @property
    def lxx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the X element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def lxy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the X element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def lxz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the X element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.z
        return vec
    
    @property
    def lxw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the X element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.w
        return vec
    
    @property
    def lxo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the X element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 0.0
        return vec
    
    @property
    def lxl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the X element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 1.0
        return vec
    
    @property
    def lyx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Y element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def lyy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def lyz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.z
        return vec
    
    @property
    def lyw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Y element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.w
        return vec
    
    @property
    def lyo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Y element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 0.0
        return vec
    
    @property
    def lyl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Y element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 1.0
        return vec
    
    @property
    def lzx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Z element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.x
        return vec
    
    @property
    def lzy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.y
        return vec
    
    @property
    def lzz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.z
        return vec
    
    @property
    def lzw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Z element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.w
        return vec
    
    @property
    def lzo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Z element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 0.0
        return vec
    
    @property
    def lzl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the Z element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 1.0
        return vec
    
    @property
    def lwx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the W element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.x
        return vec
    
    @property
    def lwy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the W element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.y
        return vec
    
    @property
    def lwz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the W element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.z
        return vec
    
    @property
    def lww(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the W element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.w
        return vec
    
    @property
    def lwo(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the W element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = 0.0
        return vec
    
    @property
    def lwl(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, the W element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = 1.0
        return vec
    
    @property
    def lox(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, a zero, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.x
        return vec
    
    @property
    def loy(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, a zero, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.y
        return vec
    
    @property
    def loz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, a zero, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.z
        return vec
    
    @property
    def low(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, a zero, and the W element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.w
        return vec
    
    @property
    def llx(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, a one, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.x
        return vec
    
    @property
    def lly(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, a one, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.y
        return vec
    
    @property
    def llz(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, a one, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.z
        return vec
    
    @property
    def llw(self) -> Vec3:
        cdef Vec3 vec = Vec3.__new__(Vec3)
        """Create a `Vec3` with its elements being a one, a one, and the W element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.w
        return vec
    
    @property
    def xxxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xxxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xxxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def xxxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def xxxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def xxxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def xxyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xxyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xxyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def xxyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def xxyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def xxyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def xxzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def xxzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def xxzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def xxzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def xxzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def xxzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def xxwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def xxwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def xxwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def xxww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def xxwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the W element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def xxwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, the W element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def xxox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def xxoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def xxoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def xxow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a zero, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def xxoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def xxol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def xxlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def xxly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def xxlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def xxlw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a one, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def xxlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def xxll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the X element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def xyxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xyxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xyxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def xyxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def xyxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def xyxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def xyyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xyyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xyyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def xyyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def xyyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def xyyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def xyzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def xyzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def xyzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def xyzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @xyzw.setter
    def xyzw(self, Vec4 vec) -> None:
        """Set the value of the X, Y, Z and W elements of this vector to the value of the elements of the other vector, respectively."""
        self.x = vec.x
        self.y = vec.y
        self.z = vec.z
        self.w = vec.w
    
    @property
    def xyzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def xyzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def xywx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def xywy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def xywz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @xywz.setter
    def xywz(self, Vec4 vec) -> None:
        """Set the value of the X, Y, W and Z elements of this vector to the value of the elements of the other vector, respectively."""
        self.x = vec.x
        self.y = vec.y
        self.w = vec.z
        self.z = vec.w
    
    @property
    def xyww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def xywo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the W element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def xywl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, the W element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def xyox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def xyoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def xyoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def xyow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a zero, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def xyoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def xyol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def xylx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def xyly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def xylz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def xylw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a one, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def xylo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def xyll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Y element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def xzxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xzxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xzxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def xzxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def xzxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def xzxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def xzyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xzyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xzyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def xzyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @xzyw.setter
    def xzyw(self, Vec4 vec) -> None:
        """Set the value of the X, Z, Y and W elements of this vector to the value of the elements of the other vector, respectively."""
        self.x = vec.x
        self.z = vec.y
        self.y = vec.z
        self.w = vec.w
    
    @property
    def xzyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def xzyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def xzzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def xzzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def xzzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def xzzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def xzzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def xzzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def xzwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def xzwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @xzwy.setter
    def xzwy(self, Vec4 vec) -> None:
        """Set the value of the X, Z, W and Y elements of this vector to the value of the elements of the other vector, respectively."""
        self.x = vec.x
        self.z = vec.y
        self.w = vec.z
        self.y = vec.w
    
    @property
    def xzwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def xzww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def xzwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the W element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def xzwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, the W element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def xzox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def xzoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def xzoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def xzow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, a zero, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def xzoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def xzol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def xzlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def xzly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def xzlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def xzlw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, a one, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def xzlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def xzll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the Z element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def xwxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xwxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xwxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def xwxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def xwxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def xwxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def xwyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xwyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xwyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @xwyz.setter
    def xwyz(self, Vec4 vec) -> None:
        """Set the value of the X, W, Y and Z elements of this vector to the value of the elements of the other vector, respectively."""
        self.x = vec.x
        self.w = vec.y
        self.y = vec.z
        self.z = vec.w
    
    @property
    def xwyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def xwyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def xwyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def xwzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def xwzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @xwzy.setter
    def xwzy(self, Vec4 vec) -> None:
        """Set the value of the X, W, Z and Y elements of this vector to the value of the elements of the other vector, respectively."""
        self.x = vec.x
        self.w = vec.y
        self.z = vec.z
        self.y = vec.w
    
    @property
    def xwzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def xwzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def xwzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def xwzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def xwwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def xwwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def xwwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def xwww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def xwwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the W element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def xwwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, the W element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def xwox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def xwoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def xwoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def xwow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, a zero, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def xwoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def xwol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def xwlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def xwly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def xwlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def xwlw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, a one, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def xwlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def xwll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, the W element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def xoxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xoxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xoxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def xoxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the X element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def xoxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def xoxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def xoyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xoyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xoyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def xoyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Y element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def xoyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def xoyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def xozx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def xozy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def xozz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def xozw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Z element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def xozo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def xozl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def xowx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the W element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def xowy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the W element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def xowz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the W element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def xoww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the W element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def xowo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the W element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def xowl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, the W element of this vector, and a one."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def xoox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def xooy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def xooz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def xoow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a zero, and the W element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def xooo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a zero, and a zero."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def xool(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a zero, and a one."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def xolx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def xoly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def xolz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def xolw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a one, and the W element of this vector."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def xolo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a one, and a zero."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def xoll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a zero, a one, and a one."""
        vec.x = self.x
        vec.y = 0.0
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def xlxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xlxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xlxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def xlxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the X element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def xlxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def xlxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def xlyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xlyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xlyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def xlyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Y element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def xlyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def xlyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def xlzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def xlzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def xlzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def xlzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Z element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def xlzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def xlzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def xlwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the W element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def xlwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the W element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def xlwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the W element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def xlww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the W element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def xlwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the W element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def xlwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, the W element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def xlox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def xloy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def xloz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def xlow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a zero, and the W element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def xloo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a zero, and a zero."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def xlol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a zero, and a one."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def xllx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def xlly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def xllz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def xllw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a one, and the W element of this vector."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def xllo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a one, and a zero."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def xlll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the X element of this vector, a one, a one, and a one."""
        vec.x = self.x
        vec.y = 1.0
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def yxxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def yxxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def yxxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def yxxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def yxxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def yxxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def yxyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def yxyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def yxyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def yxyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def yxyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def yxyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def yxzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def yxzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def yxzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def yxzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @yxzw.setter
    def yxzw(self, Vec4 vec) -> None:
        """Set the value of the Y, X, Z and W elements of this vector to the value of the elements of the other vector, respectively."""
        self.y = vec.x
        self.x = vec.y
        self.z = vec.z
        self.w = vec.w
    
    @property
    def yxzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def yxzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def yxwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def yxwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def yxwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @yxwz.setter
    def yxwz(self, Vec4 vec) -> None:
        """Set the value of the Y, X, W and Z elements of this vector to the value of the elements of the other vector, respectively."""
        self.y = vec.x
        self.x = vec.y
        self.w = vec.z
        self.z = vec.w
    
    @property
    def yxww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def yxwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the W element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def yxwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, the W element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def yxox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def yxoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def yxoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def yxow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a zero, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def yxoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def yxol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def yxlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def yxly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def yxlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def yxlw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a one, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def yxlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def yxll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the X element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def yyxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def yyxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def yyxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def yyxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def yyxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def yyxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def yyyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def yyyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def yyyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def yyyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def yyyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def yyyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def yyzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def yyzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def yyzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def yyzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def yyzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def yyzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def yywx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def yywy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def yywz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def yyww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def yywo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the W element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def yywl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, the W element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def yyox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def yyoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def yyoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def yyow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a zero, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def yyoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def yyol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def yylx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def yyly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def yylz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def yylw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a one, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def yylo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def yyll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Y element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def yzxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def yzxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def yzxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def yzxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @yzxw.setter
    def yzxw(self, Vec4 vec) -> None:
        """Set the value of the Y, Z, X and W elements of this vector to the value of the elements of the other vector, respectively."""
        self.y = vec.x
        self.z = vec.y
        self.x = vec.z
        self.w = vec.w
    
    @property
    def yzxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def yzxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def yzyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def yzyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def yzyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def yzyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def yzyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def yzyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def yzzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def yzzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def yzzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def yzzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def yzzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def yzzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def yzwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @yzwx.setter
    def yzwx(self, Vec4 vec) -> None:
        """Set the value of the Y, Z, W and X elements of this vector to the value of the elements of the other vector, respectively."""
        self.y = vec.x
        self.z = vec.y
        self.w = vec.z
        self.x = vec.w
    
    @property
    def yzwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def yzwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def yzww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def yzwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the W element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def yzwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, the W element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def yzox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def yzoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def yzoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def yzow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, a zero, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def yzoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def yzol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def yzlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def yzly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def yzlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def yzlw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, a one, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def yzlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def yzll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the Z element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def ywxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def ywxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def ywxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @ywxz.setter
    def ywxz(self, Vec4 vec) -> None:
        """Set the value of the Y, W, X and Z elements of this vector to the value of the elements of the other vector, respectively."""
        self.y = vec.x
        self.w = vec.y
        self.x = vec.z
        self.z = vec.w
    
    @property
    def ywxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def ywxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def ywxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def ywyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def ywyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def ywyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def ywyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def ywyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def ywyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def ywzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @ywzx.setter
    def ywzx(self, Vec4 vec) -> None:
        """Set the value of the Y, W, Z and X elements of this vector to the value of the elements of the other vector, respectively."""
        self.y = vec.x
        self.w = vec.y
        self.z = vec.z
        self.x = vec.w
    
    @property
    def ywzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def ywzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def ywzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def ywzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def ywzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def ywwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def ywwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def ywwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def ywww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def ywwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the W element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def ywwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, the W element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def ywox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def ywoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def ywoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def ywow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, a zero, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def ywoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def ywol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def ywlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def ywly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def ywlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def ywlw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, a one, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def ywlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def ywll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, the W element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def yoxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def yoxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def yoxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def yoxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the X element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def yoxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def yoxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def yoyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def yoyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def yoyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def yoyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Y element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def yoyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def yoyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def yozx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def yozy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def yozz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def yozw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Z element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def yozo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def yozl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def yowx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the W element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def yowy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the W element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def yowz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the W element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def yoww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the W element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def yowo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the W element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def yowl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, the W element of this vector, and a one."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def yoox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def yooy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def yooz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def yoow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a zero, and the W element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def yooo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a zero, and a zero."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def yool(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a zero, and a one."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def yolx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def yoly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def yolz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def yolw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a one, and the W element of this vector."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def yolo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a one, and a zero."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def yoll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a zero, a one, and a one."""
        vec.x = self.y
        vec.y = 0.0
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def ylxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def ylxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def ylxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def ylxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the X element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def ylxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def ylxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def ylyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def ylyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def ylyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def ylyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Y element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def ylyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def ylyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def ylzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def ylzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def ylzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def ylzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Z element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def ylzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def ylzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def ylwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the W element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def ylwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the W element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def ylwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the W element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def ylww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the W element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def ylwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the W element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def ylwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, the W element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def ylox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def yloy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def yloz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def ylow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a zero, and the W element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def yloo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a zero, and a zero."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def ylol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a zero, and a one."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def yllx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def ylly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def yllz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def yllw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a one, and the W element of this vector."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def yllo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a one, and a zero."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def ylll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Y element of this vector, a one, a one, and a one."""
        vec.x = self.y
        vec.y = 1.0
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def zxxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def zxxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def zxxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def zxxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def zxxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def zxxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def zxyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def zxyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def zxyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def zxyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @zxyw.setter
    def zxyw(self, Vec4 vec) -> None:
        """Set the value of the Z, X, Y and W elements of this vector to the value of the elements of the other vector, respectively."""
        self.z = vec.x
        self.x = vec.y
        self.y = vec.z
        self.w = vec.w
    
    @property
    def zxyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def zxyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def zxzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def zxzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def zxzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def zxzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def zxzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def zxzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def zxwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def zxwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @zxwy.setter
    def zxwy(self, Vec4 vec) -> None:
        """Set the value of the Z, X, W and Y elements of this vector to the value of the elements of the other vector, respectively."""
        self.z = vec.x
        self.x = vec.y
        self.w = vec.z
        self.y = vec.w
    
    @property
    def zxwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def zxww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def zxwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the W element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def zxwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, the W element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def zxox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def zxoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def zxoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def zxow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, a zero, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def zxoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, a zero, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def zxol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, a zero, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def zxlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def zxly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def zxlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def zxlw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, a one, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def zxlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, a one, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def zxll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the X element of this vector, a one, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def zyxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def zyxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def zyxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def zyxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @zyxw.setter
    def zyxw(self, Vec4 vec) -> None:
        """Set the value of the Z, Y, X and W elements of this vector to the value of the elements of the other vector, respectively."""
        self.z = vec.x
        self.y = vec.y
        self.x = vec.z
        self.w = vec.w
    
    @property
    def zyxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def zyxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def zyyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def zyyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def zyyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def zyyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def zyyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def zyyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def zyzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def zyzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def zyzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def zyzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def zyzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def zyzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def zywx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @zywx.setter
    def zywx(self, Vec4 vec) -> None:
        """Set the value of the Z, Y, W and X elements of this vector to the value of the elements of the other vector, respectively."""
        self.z = vec.x
        self.y = vec.y
        self.w = vec.z
        self.x = vec.w
    
    @property
    def zywy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def zywz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def zyww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def zywo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the W element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def zywl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, the W element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def zyox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def zyoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def zyoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def zyow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, a zero, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def zyoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, a zero, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def zyol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, a zero, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def zylx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def zyly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def zylz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def zylw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, a one, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def zylo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, a one, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def zyll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Y element of this vector, a one, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def zzxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def zzxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def zzxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def zzxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def zzxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def zzxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def zzyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def zzyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def zzyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def zzyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def zzyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def zzyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def zzzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def zzzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def zzzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def zzzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def zzzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def zzzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def zzwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def zzwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def zzwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def zzww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def zzwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the W element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def zzwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, the W element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def zzox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def zzoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def zzoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def zzow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, a zero, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def zzoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, a zero, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def zzol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, a zero, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def zzlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def zzly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def zzlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def zzlw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, a one, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def zzlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, a one, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def zzll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the Z element of this vector, a one, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def zwxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def zwxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @zwxy.setter
    def zwxy(self, Vec4 vec) -> None:
        """Set the value of the Z, W, X and Y elements of this vector to the value of the elements of the other vector, respectively."""
        self.z = vec.x
        self.w = vec.y
        self.x = vec.z
        self.y = vec.w
    
    @property
    def zwxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def zwxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def zwxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def zwxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def zwyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @zwyx.setter
    def zwyx(self, Vec4 vec) -> None:
        """Set the value of the Z, W, Y and X elements of this vector to the value of the elements of the other vector, respectively."""
        self.z = vec.x
        self.w = vec.y
        self.y = vec.z
        self.x = vec.w
    
    @property
    def zwyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def zwyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def zwyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def zwyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def zwyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def zwzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def zwzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def zwzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def zwzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def zwzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def zwzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def zwwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def zwwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def zwwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def zwww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def zwwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the W element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def zwwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, the W element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def zwox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def zwoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def zwoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def zwow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, a zero, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def zwoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, a zero, and a zero."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def zwol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, a zero, and a one."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def zwlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def zwly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def zwlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def zwlw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, a one, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def zwlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, a one, and a zero."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def zwll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, the W element of this vector, a one, and a one."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def zoxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def zoxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def zoxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def zoxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the X element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def zoxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def zoxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def zoyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def zoyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def zoyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def zoyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the Y element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def zoyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def zoyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def zozx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def zozy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def zozz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def zozw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the Z element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def zozo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def zozl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def zowx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the W element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def zowy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the W element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def zowz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the W element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def zoww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the W element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def zowo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the W element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def zowl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, the W element of this vector, and a one."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def zoox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def zooy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def zooz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def zoow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, a zero, and the W element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def zooo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, a zero, and a zero."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def zool(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, a zero, and a one."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def zolx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def zoly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def zolz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def zolw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, a one, and the W element of this vector."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def zolo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, a one, and a zero."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def zoll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a zero, a one, and a one."""
        vec.x = self.z
        vec.y = 0.0
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def zlxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def zlxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def zlxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def zlxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the X element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def zlxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def zlxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def zlyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def zlyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def zlyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def zlyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the Y element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def zlyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def zlyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def zlzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def zlzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def zlzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def zlzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the Z element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def zlzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def zlzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def zlwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the W element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def zlwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the W element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def zlwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the W element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def zlww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the W element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def zlwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the W element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def zlwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, the W element of this vector, and a one."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def zlox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def zloy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def zloz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def zlow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, a zero, and the W element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def zloo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, a zero, and a zero."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def zlol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, a zero, and a one."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def zllx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def zlly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def zllz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def zllw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, a one, and the W element of this vector."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def zllo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, a one, and a zero."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def zlll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the Z element of this vector, a one, a one, and a one."""
        vec.x = self.z
        vec.y = 1.0
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def wxxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def wxxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def wxxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def wxxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def wxxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def wxxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def wxyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def wxyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def wxyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @wxyz.setter
    def wxyz(self, Vec4 vec) -> None:
        """Set the value of the W, X, Y and Z elements of this vector to the value of the elements of the other vector, respectively."""
        self.w = vec.x
        self.x = vec.y
        self.y = vec.z
        self.z = vec.w
    
    @property
    def wxyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def wxyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def wxyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def wxzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def wxzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @wxzy.setter
    def wxzy(self, Vec4 vec) -> None:
        """Set the value of the W, X, Z and Y elements of this vector to the value of the elements of the other vector, respectively."""
        self.w = vec.x
        self.x = vec.y
        self.z = vec.z
        self.y = vec.w
    
    @property
    def wxzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def wxzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def wxzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def wxzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the Z element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def wxwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def wxwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def wxwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def wxww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def wxwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the W element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def wxwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, the W element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def wxox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def wxoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def wxoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def wxow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, a zero, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def wxoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, a zero, and a zero."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def wxol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, a zero, and a one."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def wxlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def wxly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def wxlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, a one, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def wxlw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, a one, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def wxlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, a one, and a zero."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def wxll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the X element of this vector, a one, and a one."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def wyxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def wyxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def wyxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @wyxz.setter
    def wyxz(self, Vec4 vec) -> None:
        """Set the value of the W, Y, X and Z elements of this vector to the value of the elements of the other vector, respectively."""
        self.w = vec.x
        self.y = vec.y
        self.x = vec.z
        self.z = vec.w
    
    @property
    def wyxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def wyxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def wyxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def wyyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def wyyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def wyyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def wyyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def wyyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def wyyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def wyzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @wyzx.setter
    def wyzx(self, Vec4 vec) -> None:
        """Set the value of the W, Y, Z and X elements of this vector to the value of the elements of the other vector, respectively."""
        self.w = vec.x
        self.y = vec.y
        self.z = vec.z
        self.x = vec.w
    
    @property
    def wyzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def wyzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def wyzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def wyzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def wyzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def wywx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def wywy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def wywz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def wyww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def wywo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the W element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def wywl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, the W element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def wyox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def wyoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def wyoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def wyow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, a zero, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def wyoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, a zero, and a zero."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def wyol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, a zero, and a one."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def wylx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def wyly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def wylz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def wylw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, a one, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def wylo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, a one, and a zero."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def wyll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Y element of this vector, a one, and a one."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def wzxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def wzxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @wzxy.setter
    def wzxy(self, Vec4 vec) -> None:
        """Set the value of the W, Z, X and Y elements of this vector to the value of the elements of the other vector, respectively."""
        self.w = vec.x
        self.z = vec.y
        self.x = vec.z
        self.y = vec.w
    
    @property
    def wzxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def wzxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def wzxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def wzxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the X element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def wzyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @wzyx.setter
    def wzyx(self, Vec4 vec) -> None:
        """Set the value of the W, Z, Y and X elements of this vector to the value of the elements of the other vector, respectively."""
        self.w = vec.x
        self.z = vec.y
        self.y = vec.z
        self.x = vec.w
    
    @property
    def wzyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def wzyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def wzyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def wzyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def wzyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def wzzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def wzzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def wzzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def wzzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def wzzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def wzzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def wzwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def wzwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def wzwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def wzww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def wzwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the W element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def wzwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, the W element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def wzox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def wzoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def wzoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def wzow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, a zero, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def wzoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, a zero, and a zero."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def wzol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, a zero, and a one."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def wzlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, a one, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def wzly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def wzlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def wzlw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, a one, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def wzlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, a one, and a zero."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def wzll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the Z element of this vector, a one, and a one."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def wwxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def wwxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def wwxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def wwxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def wwxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the X element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def wwxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the X element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def wwyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def wwyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def wwyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def wwyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def wwyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def wwyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the Y element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def wwzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def wwzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def wwzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def wwzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def wwzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def wwzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the Z element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def wwwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def wwwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def wwwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def wwww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def wwwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the W element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def wwwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, the W element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def wwox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, a zero, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def wwoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def wwoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def wwow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, a zero, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def wwoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, a zero, and a zero."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def wwol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, a zero, and a one."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def wwlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, a one, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def wwly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, a one, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def wwlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, a one, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def wwlw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, a one, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def wwlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, a one, and a zero."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def wwll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, the W element of this vector, a one, and a one."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def woxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def woxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def woxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def woxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the X element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def woxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the X element of this vector, and a zero."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def woxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the X element of this vector, and a one."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def woyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def woyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def woyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def woyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the Y element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def woyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the Y element of this vector, and a zero."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def woyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the Y element of this vector, and a one."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def wozx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def wozy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def wozz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def wozw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the Z element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def wozo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the Z element of this vector, and a zero."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def wozl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the Z element of this vector, and a one."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def wowx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the W element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def wowy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the W element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def wowz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the W element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def woww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the W element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def wowo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the W element of this vector, and a zero."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def wowl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, the W element of this vector, and a one."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def woox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, a zero, and the X element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def wooy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, a zero, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def wooz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, a zero, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def woow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, a zero, and the W element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def wooo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, a zero, and a zero."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def wool(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, a zero, and a one."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def wolx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, a one, and the X element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def woly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, a one, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def wolz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, a one, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def wolw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, a one, and the W element of this vector."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def wolo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, a one, and a zero."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def woll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a zero, a one, and a one."""
        vec.x = self.w
        vec.y = 0.0
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def wlxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the X element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def wlxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def wlxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the X element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def wlxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the X element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def wlxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the X element of this vector, and a zero."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def wlxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the X element of this vector, and a one."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def wlyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def wlyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def wlyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def wlyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the Y element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def wlyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the Y element of this vector, and a zero."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def wlyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the Y element of this vector, and a one."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def wlzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the Z element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def wlzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def wlzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def wlzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the Z element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def wlzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the Z element of this vector, and a zero."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def wlzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the Z element of this vector, and a one."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def wlwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the W element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def wlwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the W element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def wlwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the W element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def wlww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the W element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def wlwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the W element of this vector, and a zero."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def wlwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, the W element of this vector, and a one."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def wlox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, a zero, and the X element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def wloy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, a zero, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def wloz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, a zero, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def wlow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, a zero, and the W element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def wloo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, a zero, and a zero."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def wlol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, a zero, and a one."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def wllx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, a one, and the X element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def wlly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, a one, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def wllz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, a one, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def wllw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, a one, and the W element of this vector."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def wllo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, a one, and a zero."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def wlll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being the W element of this vector, a one, a one, and a one."""
        vec.x = self.w
        vec.y = 1.0
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def oxxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def oxxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def oxxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def oxxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def oxxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def oxxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the X element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def oxyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def oxyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def oxyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def oxyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def oxyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def oxyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def oxzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def oxzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def oxzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def oxzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def oxzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def oxzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the Z element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def oxwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def oxwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def oxwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def oxww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def oxwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the W element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def oxwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, the W element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def oxox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def oxoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def oxoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def oxow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a zero, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def oxoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a zero, and a zero."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def oxol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a zero, and a one."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def oxlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a one, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def oxly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def oxlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a one, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def oxlw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a one, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def oxlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a one, and a zero."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def oxll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the X element of this vector, a one, and a one."""
        vec.x = 0.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def oyxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def oyxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def oyxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def oyxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def oyxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def oyxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def oyyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def oyyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def oyyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def oyyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def oyyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def oyyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def oyzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def oyzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def oyzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def oyzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def oyzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def oyzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def oywx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def oywy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def oywz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def oyww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def oywo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the W element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def oywl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, the W element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def oyox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def oyoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def oyoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def oyow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a zero, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def oyoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a zero, and a zero."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def oyol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a zero, and a one."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def oylx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def oyly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def oylz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def oylw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a one, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def oylo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a one, and a zero."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def oyll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Y element of this vector, a one, and a one."""
        vec.x = 0.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def ozxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def ozxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def ozxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def ozxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def ozxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def ozxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the X element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def ozyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def ozyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def ozyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def ozyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def ozyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def ozyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def ozzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def ozzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def ozzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def ozzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def ozzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def ozzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def ozwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def ozwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def ozwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def ozww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def ozwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the W element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def ozwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, the W element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def ozox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def ozoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def ozoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def ozow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, a zero, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def ozoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, a zero, and a zero."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def ozol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, a zero, and a one."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def ozlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, a one, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def ozly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def ozlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def ozlw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, a one, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def ozlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, a one, and a zero."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def ozll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the Z element of this vector, a one, and a one."""
        vec.x = 0.0
        vec.y = self.z
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def owxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def owxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def owxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def owxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def owxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the X element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def owxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the X element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def owyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def owyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def owyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def owyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def owyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the Y element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def owyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the Y element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def owzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def owzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def owzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def owzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def owzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the Z element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def owzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the Z element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def owwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def owwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def owwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def owww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def owwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the W element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def owwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, the W element of this vector, and a one."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def owox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, a zero, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def owoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, a zero, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def owoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, a zero, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def owow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, a zero, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def owoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, a zero, and a zero."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def owol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, a zero, and a one."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def owlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, a one, and the X element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def owly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, a one, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def owlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, a one, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def owlw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, a one, and the W element of this vector."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def owlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, a one, and a zero."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def owll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, the W element of this vector, a one, and a one."""
        vec.x = 0.0
        vec.y = self.w
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def ooxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def ooxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def ooxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def ooxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the X element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def ooxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the X element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def ooxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the X element of this vector, and a one."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def ooyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def ooyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def ooyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def ooyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Y element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def ooyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Y element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def ooyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Y element of this vector, and a one."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def oozx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def oozy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def oozz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def oozw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Z element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def oozo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Z element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def oozl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the Z element of this vector, and a one."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def oowx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the W element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def oowy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the W element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def oowz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the W element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def ooww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the W element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def oowo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the W element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def oowl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, the W element of this vector, and a one."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def ooox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, a zero, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def oooy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, a zero, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def oooz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, a zero, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def ooow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, a zero, and the W element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def oolx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, a one, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def ooly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, a one, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def oolz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, a one, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def oolw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a zero, a one, and the W element of this vector."""
        vec.x = 0.0
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def olxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the X element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def olxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def olxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the X element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def olxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the X element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def olxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the X element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def olxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the X element of this vector, and a one."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def olyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def olyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def olyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def olyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Y element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def olyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Y element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def olyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Y element of this vector, and a one."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def olzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Z element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def olzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def olzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def olzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Z element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def olzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Z element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def olzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the Z element of this vector, and a one."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def olwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the W element of this vector, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def olwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the W element of this vector, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def olwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the W element of this vector, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def olww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the W element of this vector, and the W element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def olwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the W element of this vector, and a zero."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def olwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, the W element of this vector, and a one."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def olox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, a zero, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def oloy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, a zero, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def oloz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, a zero, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def olow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, a zero, and the W element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def ollx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, a one, and the X element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def olly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, a one, and the Y element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def ollz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, a one, and the Z element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def ollw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a zero, a one, a one, and the W element of this vector."""
        vec.x = 0.0
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def lxxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def lxxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def lxxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def lxxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def lxxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def lxxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the X element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def lxyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def lxyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def lxyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def lxyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def lxyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def lxyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def lxzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def lxzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def lxzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def lxzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def lxzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def lxzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the Z element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def lxwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def lxwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def lxwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def lxww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def lxwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the W element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def lxwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, the W element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def lxox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def lxoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def lxoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def lxow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a zero, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def lxoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a zero, and a zero."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def lxol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a zero, and a one."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def lxlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a one, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def lxly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def lxlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a one, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def lxlw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a one, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def lxlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a one, and a zero."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def lxll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the X element of this vector, a one, and a one."""
        vec.x = 1.0
        vec.y = self.x
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def lyxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def lyxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def lyxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def lyxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def lyxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def lyxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def lyyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def lyyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def lyyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def lyyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def lyyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def lyyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def lyzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def lyzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def lyzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def lyzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def lyzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def lyzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def lywx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def lywy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def lywz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def lyww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def lywo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the W element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def lywl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, the W element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def lyox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def lyoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def lyoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def lyow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a zero, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def lyoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a zero, and a zero."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def lyol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a zero, and a one."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def lylx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def lyly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def lylz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def lylw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a one, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def lylo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a one, and a zero."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def lyll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Y element of this vector, a one, and a one."""
        vec.x = 1.0
        vec.y = self.y
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def lzxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def lzxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def lzxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def lzxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def lzxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def lzxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the X element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def lzyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def lzyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def lzyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def lzyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def lzyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def lzyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def lzzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def lzzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def lzzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def lzzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def lzzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def lzzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def lzwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def lzwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def lzwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def lzww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def lzwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the W element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def lzwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, the W element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def lzox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def lzoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def lzoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def lzow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, a zero, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def lzoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, a zero, and a zero."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def lzol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, a zero, and a one."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def lzlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, a one, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def lzly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def lzlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def lzlw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, a one, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def lzlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, a one, and a zero."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def lzll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the Z element of this vector, a one, and a one."""
        vec.x = 1.0
        vec.y = self.z
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def lwxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def lwxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def lwxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def lwxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def lwxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the X element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def lwxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the X element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def lwyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def lwyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def lwyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def lwyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def lwyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the Y element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def lwyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the Y element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def lwzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def lwzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def lwzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def lwzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def lwzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the Z element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def lwzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the Z element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def lwwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def lwwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def lwwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def lwww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def lwwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the W element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def lwwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, the W element of this vector, and a one."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def lwox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, a zero, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def lwoy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, a zero, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def lwoz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, a zero, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def lwow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, a zero, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def lwoo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, a zero, and a zero."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = 0.0
        vec.w = 0.0
        return vec
    
    @property
    def lwol(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, a zero, and a one."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = 0.0
        vec.w = 1.0
        return vec
    
    @property
    def lwlx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, a one, and the X element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def lwly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, a one, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def lwlz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, a one, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def lwlw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, a one, and the W element of this vector."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def lwlo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, a one, and a zero."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = 1.0
        vec.w = 0.0
        return vec
    
    @property
    def lwll(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, the W element of this vector, a one, and a one."""
        vec.x = 1.0
        vec.y = self.w
        vec.z = 1.0
        vec.w = 1.0
        return vec
    
    @property
    def loxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def loxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def loxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def loxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the X element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def loxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the X element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def loxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the X element of this vector, and a one."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def loyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def loyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def loyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def loyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Y element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def loyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Y element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def loyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Y element of this vector, and a one."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def lozx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def lozy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def lozz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def lozw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Z element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def lozo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Z element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def lozl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the Z element of this vector, and a one."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def lowx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the W element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def lowy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the W element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def lowz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the W element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def loww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the W element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def lowo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the W element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def lowl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, the W element of this vector, and a one."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def loox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, a zero, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def looy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, a zero, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def looz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, a zero, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def loow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, a zero, and the W element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def lolx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, a one, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def loly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, a one, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def lolz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, a one, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def lolw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a zero, a one, and the W element of this vector."""
        vec.x = 1.0
        vec.y = 0.0
        vec.z = 1.0
        vec.w = self.w
        return vec
    
    @property
    def llxx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the X element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def llxy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def llxz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the X element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def llxw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the X element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def llxo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the X element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = 0.0
        return vec
    
    @property
    def llxl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the X element of this vector, and a one."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.x
        vec.w = 1.0
        return vec
    
    @property
    def llyx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def llyy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def llyz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def llyw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Y element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def llyo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Y element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = 0.0
        return vec
    
    @property
    def llyl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Y element of this vector, and a one."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.y
        vec.w = 1.0
        return vec
    
    @property
    def llzx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Z element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def llzy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def llzz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def llzw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Z element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def llzo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Z element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.z
        vec.w = 0.0
        return vec
    
    @property
    def llzl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the Z element of this vector, and a one."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.z
        vec.w = 1.0
        return vec
    
    @property
    def llwx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the W element of this vector, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def llwy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the W element of this vector, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def llwz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the W element of this vector, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def llww(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the W element of this vector, and the W element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def llwo(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the W element of this vector, and a zero."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.w
        vec.w = 0.0
        return vec
    
    @property
    def llwl(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, the W element of this vector, and a one."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = self.w
        vec.w = 1.0
        return vec
    
    @property
    def llox(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, a zero, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.x
        return vec
    
    @property
    def lloy(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, a zero, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.y
        return vec
    
    @property
    def lloz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, a zero, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.z
        return vec
    
    @property
    def llow(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, a zero, and the W element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = 0.0
        vec.w = self.w
        return vec
    
    @property
    def lllx(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, a one, and the X element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.x
        return vec
    
    @property
    def llly(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, a one, and the Y element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.y
        return vec
    
    @property
    def lllz(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, a one, and the Z element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.z
        return vec
    
    @property
    def lllw(self) -> Vec4:
        cdef Vec4 vec = Vec4.__new__(Vec4)
        """Create a `Vec4` with its elements being a one, a one, a one, and the W element of this vector."""
        vec.x = 1.0
        vec.y = 1.0
        vec.z = 1.0
        vec.w = self.w
        return vec


@cython.no_gc
@cython.final
@cython.freelist(8)
cdef class _Vec4iterator:
    """Internal iterator class for Vec4."""

    cdef public py_float x, y, z, w
    cdef short index


    def __next__(self) -> float:
        if self.index == 0:
            self.index += 1
            return self.x
        elif self.index == 1:
            self.index += 1
            return self.y
        elif self.index == 2:
            self.index += 1
            return self.z
        elif self.index == 3:
            self.index += 1
            return self.w
        raise StopIteration

    def __iter__(self) -> _Vec4iterator:
        #<RETURN_SELF>
        return self

    def __length_hint__(self) -> int:
        return 4


# noinspection SpellCheckingInspection
@cython.auto_pickle(True)
@cython.freelist(4096)
@cython.no_gc
@cython.final
cdef class Vec2i:
    """2D integer vector."""

    cdef public py_int x, y


    cdef inline void ___init___0(self) noexcept:
        """Create a zero vector."""
        self.x = self.y = 0

    cdef inline void ___init___1(self, py_int value) noexcept:
        """Create a vector with the same value for all elements."""
        self.x = self.y = value

    cdef inline void ___init___2(self, Vec2 vec) noexcept:
        """Convert a floating-point vector to a integer vector."""
        self.x = <py_int>vec.x
        self.y = <py_int>vec.y

    cdef inline void ___init___3(self, Vec2i xy) noexcept:
        """Create a 2D vector from a 2D vector."""
        self.x = xy.x
        self.y = xy.y
    
    cdef inline void ___init___4(self, py_int x, py_int y) noexcept:
        """Create a 2D vector from a number and a number."""
        self.x = x
        self.y = y

    def __init__(self, object p0=None, object p1=None, /) -> None:
        if PyLong_Check(p0):
            if PyLong_Check(p1):
                self.___init___4(PyLong_AsLongLong(p0), PyLong_AsLongLong(p1))
                return
            elif p1 is None:
                self.___init___1(PyLong_AsLongLong(p0))
                return
            else:
                raise TypeError(f"The 3th parameter expected int | None, got {p1}")
        elif isinstance(p0, Vec2):
            if p1 is None:
                self.___init___2(<Vec2> p0)
                return
            else:
                raise TypeError(f"The 3th parameter expected int | None, got {p1}")
        elif isinstance(p0, Vec2i):
            if p1 is None:
                self.___init___3(<Vec2i> p0)
                return
            else:
                raise TypeError(f"The 3th parameter expected int | None, got {p1}")
        elif p0 is None:
            if p1 is None:
                self.___init___0()
                return
            else:
                raise TypeError(f"The 3th parameter expected int | None, got {p1}")
        else:
            raise TypeError(f"The 2th parameter expected int | Vec2 | Vec2i | None, got {p0}")


    def __repr__(self) -> str:
        return f"Vec2i({self.x}, {self.y})"

    def __eq__(self, object other) -> bool:
        """Perform exact comparison.

        See Also: `Vec2i.is_close()`
        """
        if not isinstance(other, Vec2i):
            return False
        cdef Vec2i vec = <Vec2i> other
        return self.x == vec.x and self.y == vec.y

    def __ne__(self, object other) -> bool:
        """Perform exact comparison.

        See Also: `Vec2i.is_close()`
        """
        if not isinstance(other, Vec2i):
            return True
        cdef Vec2i vec = <Vec2i> other
        return self.x != vec.x or self.y != vec.y

    def is_close(self, Vec2i other, /, py_float rel_tol = DEFAULT_RELATIVE_TOLERANCE, py_float abs_tol = DEFAULT_ABSOLUTE_TOLERANCE) -> bool:
        """Determine if the two vectors are close enough.

        See Also: `math.is_close()`
        """
        return is_close(<py_float> self.x, <py_float> other.x, rel_tol, abs_tol) and is_close(<py_float> self.y, <py_float> other.y, rel_tol, abs_tol)

    def __bool__(self) -> bool:
        """If the vector is a zero vector."""
        return self.x == 0 and self.y == 0

    #TODO: Better hashing
    def __hash__(self) -> py_int:
        cdef py_int h = 0
        h ^= rotl_ratio(self.x, 0, 2)
        h ^= rotl_ratio(self.y, 1, 2)
        return h

    def __pos__(self) -> Vec2i:
        """Return a copy of this vector."""
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        vec.x = self.x
        vec.y = self.y
        return vec

    def __neg__(self) -> Vec2i:
        """Return the inverse vector."""
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        vec.x = -self.x
        vec.y = -self.y
        return vec

    cdef inline Vec2i ___add___0(self, Vec2i other):
        """Element-wise addition."""
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        vec.x = self.x + other.x
        vec.y = self.y + other.y
        return vec
    
    cdef inline Vec2i ___add___1(self, py_int other):
        """Element-wise addition with the same number for all elements."""
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        vec.x = self.x + other
        vec.y = self.y + other
        return vec
    
    def __add__(self, object p0, /) -> Vec2i:
        if PyLong_Check(p0):
            return self.___add___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec2i):
            return self.___add___0(<Vec2i> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec2i | int, got {p0}")
    
    cdef inline Vec2i ___iadd___0(self, Vec2i other):
        #<RETURN_SELF>
        """Element-wise inplace addition."""
        self.x += other.x
        self.y += other.y
        return self
    
    cdef inline Vec2i ___iadd___1(self, py_int other):
        #<RETURN_SELF>
        """Element-wise inplace addition with the same number for all elements."""
        self.x += other
        self.y += other
        return self
    
    def __iadd__(self, object p0, /) -> Vec2i:
        if PyLong_Check(p0):
            return self.___iadd___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec2i):
            return self.___iadd___0(<Vec2i> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec2i | int, got {p0}")

    cdef inline Vec2i ___sub___0(self, Vec2i other):
        """Element-wise subtraction."""
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        vec.x = self.x - other.x
        vec.y = self.y - other.y
        return vec
    
    cdef inline Vec2i ___sub___1(self, py_int other):
        """Element-wise subtraction with the same number for all elements."""
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        vec.x = self.x - other
        vec.y = self.y - other
        return vec
    
    def __sub__(self, object p0, /) -> Vec2i:
        if PyLong_Check(p0):
            return self.___sub___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec2i):
            return self.___sub___0(<Vec2i> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec2i | int, got {p0}")
    
    cdef inline Vec2i ___isub___0(self, Vec2i other):
        #<RETURN_SELF>
        """Element-wise inplace subtraction."""
        self.x -= other.x
        self.y -= other.y
        return self
    
    cdef inline Vec2i ___isub___1(self, py_int other):
        #<RETURN_SELF>
        """Element-wise inplace subtraction with the same number for all elements."""
        self.x -= other
        self.y -= other
        return self
    
    def __isub__(self, object p0, /) -> Vec2i:
        if PyLong_Check(p0):
            return self.___isub___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec2i):
            return self.___isub___0(<Vec2i> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec2i | int, got {p0}")

    cdef inline Vec2i ___mul___0(self, Vec2i other):
        """Element-wise multiplication."""
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        vec.x = self.x * other.x
        vec.y = self.y * other.y
        return vec
    
    cdef inline Vec2i ___mul___1(self, py_int other):
        """Element-wise multiplication with the same number for all elements."""
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        vec.x = self.x * other
        vec.y = self.y * other
        return vec
    
    def __mul__(self, object p0, /) -> Vec2i | Vec2:
        if PyLong_Check(p0):
            return self.___mul___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec2i):
            return self.___mul___0(<Vec2i> p0)
        elif isinstance(p0, Transform2D):
            return self.___mul___2(<Transform2D> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec2i | int | Transform2D, got {p0}")
    
    cdef inline Vec2i ___imul___0(self, Vec2i other):
        #<RETURN_SELF>
        """Element-wise inplace multiplication."""
        self.x *= other.x
        self.y *= other.y
        return self
    
    cdef inline Vec2i ___imul___1(self, py_int other):
        #<RETURN_SELF>
        """Element-wise inplace multiplication with the same number for all elements."""
        self.x *= other
        self.y *= other
        return self
    
    def __imul__(self, object p0, /) -> Vec2i:
        if PyLong_Check(p0):
            return self.___imul___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec2i):
            return self.___imul___0(<Vec2i> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec2i | int, got {p0}")
    cdef inline Vec2 ___mul___2(self, Transform2D t):
        """Transform a copy of this vector using the *INVERSE* of the transform.
        Use `transform * vector` or `transform(vector)` for non-inverse transformation.
        
        See Also:
            `Transform2D.__mul__()`
            `Transform2D.__call__()`
        """
        cdef Vec2 vec = Vec2.__new__(Vec2)
        cdef py_float x = self.x - t.ox
        cdef py_float y = self.y - t.oy
        vec.x = t.xx * x + t.xy * y
        vec.y = t.yx * x + t.yy * y
        return vec

    cdef inline Vec2i ___truediv___0(self, Vec2i other):
        """Element-wise division."""
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        vec.x = self.x / other.x
        vec.y = self.y / other.y
        return vec
    
    cdef inline Vec2i ___truediv___1(self, py_int other):
        """Element-wise division with the same number for all elements."""
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        vec.x = self.x / other
        vec.y = self.y / other
        return vec
    
    def __truediv__(self, object p0, /) -> Vec2i:
        if PyLong_Check(p0):
            return self.___truediv___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec2i):
            return self.___truediv___0(<Vec2i> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec2i | int, got {p0}")
    
    cdef inline Vec2i ___itruediv___0(self, Vec2i other):
        #<RETURN_SELF>
        """Element-wise inplace division."""
        self.x /= other.x
        self.y /= other.y
        return self
    
    cdef inline Vec2i ___itruediv___1(self, py_int other):
        #<RETURN_SELF>
        """Element-wise inplace division with the same number for all elements."""
        self.x /= other
        self.y /= other
        return self
    
    def __itruediv__(self, object p0, /) -> Vec2i:
        if PyLong_Check(p0):
            return self.___itruediv___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec2i):
            return self.___itruediv___0(<Vec2i> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec2i | int, got {p0}")


    def __matmul__(self, Vec2i other) -> py_int:
        """Dot product."""
        return self.x * other.x + self.y * other.y


    def __len__(self) -> int:
        """The number of dimensions (elements) of this vector."""
        return 2

    def __getitem__(self, int key) -> py_int:
        """Get the n-th element of this vector."""
        if key == 0:
            return self.x
        elif key == 1:
            return self.y
        else:
            raise KeyError(f"Vec2i index out of range: {key}")

    def __setitem__(self, int key, py_int value) -> None:
        """Set the n-th element of this vector."""
        if key == 0:
            self.x = value
        elif key == 1:
            self.y = value
        else:
            raise KeyError(f"Vec2i index out of range: {key}")

    def __iter__(self) -> _Vec2iiterator:
        """Create an iterator that yields all the elements of the vector in sequence.

        This creates a copy of all the elements of this vector,
        so modifying the vector won't affect already created iterators.
        """
        cdef _Vec2iiterator iterator = _Vec2iiterator.__new__(_Vec2iiterator)
        iterator.x = self.x
        iterator.y = self.y
        # iterator.vec = self
        return iterator


    @property
    def length(self) -> py_float:
        """The (Euclidean) length of this vector."""
        return sqrtl(<py_float> (self.x * self.x) + <py_float> (self.y * self.y))

    @property
    def length_sqr(self) -> py_float:
        """The squared Euclidean length of this vector."""
        return self.x * self.x + self.y * self.y

    def __or__(self, Vec2i other) -> py_float:
        """The (Euclidean) distance between two vectors."""
        cdef py_int dx = self.x - other.x
        cdef py_int dy = self.y - other.y
        return sqrtl(<py_float> (dx * dx + dy * dy))

    def distance_to(self, Vec2i other, /) -> py_float:
        """The (Euclidean) distance between two vectors."""
        cdef py_int dx = self.x - other.x
        cdef py_int dy = self.y - other.y
        return sqrtl(<py_float> (dx * dx + dy * dy))

    def distance_sqr_to(self, Vec2i other, /) -> py_float:
        """The squared Euclidean distance between two vectors."""
        cdef py_int dx = self.x - other.x
        cdef py_int dy = self.y - other.y
        return <py_float> (dx * dx + dy * dy)


    @property
    def xx(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        return vec
    
    @property
    def xy(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        return vec
    
    @xy.setter
    def xy(self, Vec2i vec) -> None:
        """Set the value of the X and Y elements of this vector to the value of the elements of the other vector, respectively."""
        self.x = vec.x
        self.y = vec.y
    
    @property
    def xo(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0
        return vec
    
    @property
    def xl(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1
        return vec
    
    @property
    def yx(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        return vec
    
    @yx.setter
    def yx(self, Vec2i vec) -> None:
        """Set the value of the Y and X elements of this vector to the value of the elements of the other vector, respectively."""
        self.y = vec.x
        self.x = vec.y
    
    @property
    def yy(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        return vec
    
    @property
    def yo(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0
        return vec
    
    @property
    def yl(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1
        return vec
    
    @property
    def ox(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being a zero, and the X element of this vector."""
        vec.x = 0
        vec.y = self.x
        return vec
    
    @property
    def oy(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being a zero, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.y
        return vec
    
    @property
    def lx(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being a one, and the X element of this vector."""
        vec.x = 1
        vec.y = self.x
        return vec
    
    @property
    def ly(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being a one, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.y
        return vec
    
    @property
    def xxx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def xxy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def xxo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0
        return vec
    
    @property
    def xxl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1
        return vec
    
    @property
    def xyx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def xyy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def xyo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0
        return vec
    
    @property
    def xyl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1
        return vec
    
    @property
    def xox(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.x
        return vec
    
    @property
    def xoy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.y
        return vec
    
    @property
    def xoo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = 0
        vec.z = 0
        return vec
    
    @property
    def xol(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = 0
        vec.z = 1
        return vec
    
    @property
    def xlx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.x
        return vec
    
    @property
    def xly(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.y
        return vec
    
    @property
    def xlo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = 1
        vec.z = 0
        return vec
    
    @property
    def xll(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = 1
        vec.z = 1
        return vec
    
    @property
    def yxx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def yxy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def yxo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0
        return vec
    
    @property
    def yxl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1
        return vec
    
    @property
    def yyx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def yyy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def yyo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0
        return vec
    
    @property
    def yyl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1
        return vec
    
    @property
    def yox(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.x
        return vec
    
    @property
    def yoy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.y
        return vec
    
    @property
    def yoo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = 0
        vec.z = 0
        return vec
    
    @property
    def yol(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = 0
        vec.z = 1
        return vec
    
    @property
    def ylx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.x
        return vec
    
    @property
    def yly(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.y
        return vec
    
    @property
    def ylo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = 1
        vec.z = 0
        return vec
    
    @property
    def yll(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = 1
        vec.z = 1
        return vec
    
    @property
    def oxx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the X element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def oxy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def oxo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the X element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.x
        vec.z = 0
        return vec
    
    @property
    def oxl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the X element of this vector, and a one."""
        vec.x = 0
        vec.y = self.x
        vec.z = 1
        return vec
    
    @property
    def oyx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def oyy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def oyo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Y element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.y
        vec.z = 0
        return vec
    
    @property
    def oyl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Y element of this vector, and a one."""
        vec.x = 0
        vec.y = self.y
        vec.z = 1
        return vec
    
    @property
    def oox(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, a zero, and the X element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.x
        return vec
    
    @property
    def ooy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, a zero, and the Y element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.y
        return vec
    
    @property
    def olx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, a one, and the X element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.x
        return vec
    
    @property
    def oly(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, a one, and the Y element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.y
        return vec
    
    @property
    def lxx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the X element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def lxy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the X element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def lxo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the X element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.x
        vec.z = 0
        return vec
    
    @property
    def lxl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the X element of this vector, and a one."""
        vec.x = 1
        vec.y = self.x
        vec.z = 1
        return vec
    
    @property
    def lyx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Y element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def lyy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def lyo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Y element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.y
        vec.z = 0
        return vec
    
    @property
    def lyl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Y element of this vector, and a one."""
        vec.x = 1
        vec.y = self.y
        vec.z = 1
        return vec
    
    @property
    def lox(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, a zero, and the X element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.x
        return vec
    
    @property
    def loy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, a zero, and the Y element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.y
        return vec
    
    @property
    def llx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, a one, and the X element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.x
        return vec
    
    @property
    def lly(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, a one, and the Y element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.y
        return vec
    
    @property
    def xxxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xxxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xxxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def xxxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def xxyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xxyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xxyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def xxyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def xxox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def xxoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def xxoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def xxol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def xxlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def xxly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def xxlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def xxll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def xyxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xyxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xyxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def xyxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def xyyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xyyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xyyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def xyyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def xyox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def xyoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def xyoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def xyol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def xylx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def xyly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def xylo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def xyll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def xoxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xoxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xoxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def xoxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def xoyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xoyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xoyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def xoyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def xoox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def xooy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def xooo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a zero, and a zero."""
        vec.x = self.x
        vec.y = 0
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def xool(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a zero, and a one."""
        vec.x = self.x
        vec.y = 0
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def xolx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def xoly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def xolo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a one, and a zero."""
        vec.x = self.x
        vec.y = 0
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def xoll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a one, and a one."""
        vec.x = self.x
        vec.y = 0
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def xlxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xlxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xlxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def xlxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def xlyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xlyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xlyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def xlyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def xlox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def xloy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def xloo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a zero, and a zero."""
        vec.x = self.x
        vec.y = 1
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def xlol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a zero, and a one."""
        vec.x = self.x
        vec.y = 1
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def xllx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def xlly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def xllo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a one, and a zero."""
        vec.x = self.x
        vec.y = 1
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def xlll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a one, and a one."""
        vec.x = self.x
        vec.y = 1
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def yxxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def yxxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def yxxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def yxxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def yxyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def yxyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def yxyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def yxyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def yxox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def yxoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def yxoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def yxol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def yxlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def yxly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def yxlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def yxll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def yyxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def yyxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def yyxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def yyxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def yyyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def yyyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def yyyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def yyyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def yyox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def yyoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def yyoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def yyol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def yylx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def yyly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def yylo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def yyll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def yoxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def yoxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def yoxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def yoxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def yoyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def yoyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def yoyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def yoyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def yoox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def yooy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def yooo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a zero, and a zero."""
        vec.x = self.y
        vec.y = 0
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def yool(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a zero, and a one."""
        vec.x = self.y
        vec.y = 0
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def yolx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def yoly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def yolo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a one, and a zero."""
        vec.x = self.y
        vec.y = 0
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def yoll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a one, and a one."""
        vec.x = self.y
        vec.y = 0
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def ylxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def ylxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def ylxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def ylxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def ylyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def ylyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def ylyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def ylyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def ylox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def yloy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def yloo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a zero, and a zero."""
        vec.x = self.y
        vec.y = 1
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def ylol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a zero, and a one."""
        vec.x = self.y
        vec.y = 1
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def yllx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def ylly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def yllo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a one, and a zero."""
        vec.x = self.y
        vec.y = 1
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def ylll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a one, and a one."""
        vec.x = self.y
        vec.y = 1
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def oxxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def oxxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def oxxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def oxxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the X element of this vector, and a one."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def oxyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def oxyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def oxyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def oxyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def oxox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def oxoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def oxoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a zero, and a zero."""
        vec.x = 0
        vec.y = self.x
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def oxol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a zero, and a one."""
        vec.x = 0
        vec.y = self.x
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def oxlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a one, and the X element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def oxly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def oxlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a one, and a zero."""
        vec.x = 0
        vec.y = self.x
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def oxll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a one, and a one."""
        vec.x = 0
        vec.y = self.x
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def oyxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def oyxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def oyxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def oyxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def oyyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def oyyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def oyyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def oyyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def oyox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def oyoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def oyoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a zero, and a zero."""
        vec.x = 0
        vec.y = self.y
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def oyol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a zero, and a one."""
        vec.x = 0
        vec.y = self.y
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def oylx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def oyly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def oylo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a one, and a zero."""
        vec.x = 0
        vec.y = self.y
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def oyll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a one, and a one."""
        vec.x = 0
        vec.y = self.y
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def ooxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def ooxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def ooxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the X element of this vector, and a zero."""
        vec.x = 0
        vec.y = 0
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def ooxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the X element of this vector, and a one."""
        vec.x = 0
        vec.y = 0
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def ooyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def ooyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def ooyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Y element of this vector, and a zero."""
        vec.x = 0
        vec.y = 0
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def ooyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Y element of this vector, and a one."""
        vec.x = 0
        vec.y = 0
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def ooox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, a zero, and the X element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def oooy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, a zero, and the Y element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def oolx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, a one, and the X element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def ooly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, a one, and the Y element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def olxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the X element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def olxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def olxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the X element of this vector, and a zero."""
        vec.x = 0
        vec.y = 1
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def olxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the X element of this vector, and a one."""
        vec.x = 0
        vec.y = 1
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def olyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def olyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def olyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Y element of this vector, and a zero."""
        vec.x = 0
        vec.y = 1
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def olyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Y element of this vector, and a one."""
        vec.x = 0
        vec.y = 1
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def olox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, a zero, and the X element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def oloy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, a zero, and the Y element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def ollx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, a one, and the X element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def olly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, a one, and the Y element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def lxxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def lxxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def lxxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def lxxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the X element of this vector, and a one."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def lxyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def lxyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def lxyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def lxyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def lxox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def lxoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def lxoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a zero, and a zero."""
        vec.x = 1
        vec.y = self.x
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def lxol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a zero, and a one."""
        vec.x = 1
        vec.y = self.x
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def lxlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a one, and the X element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def lxly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def lxlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a one, and a zero."""
        vec.x = 1
        vec.y = self.x
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def lxll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a one, and a one."""
        vec.x = 1
        vec.y = self.x
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def lyxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def lyxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def lyxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def lyxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def lyyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def lyyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def lyyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def lyyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def lyox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def lyoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def lyoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a zero, and a zero."""
        vec.x = 1
        vec.y = self.y
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def lyol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a zero, and a one."""
        vec.x = 1
        vec.y = self.y
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def lylx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def lyly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def lylo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a one, and a zero."""
        vec.x = 1
        vec.y = self.y
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def lyll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a one, and a one."""
        vec.x = 1
        vec.y = self.y
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def loxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def loxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def loxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the X element of this vector, and a zero."""
        vec.x = 1
        vec.y = 0
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def loxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the X element of this vector, and a one."""
        vec.x = 1
        vec.y = 0
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def loyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def loyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def loyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Y element of this vector, and a zero."""
        vec.x = 1
        vec.y = 0
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def loyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Y element of this vector, and a one."""
        vec.x = 1
        vec.y = 0
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def loox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, a zero, and the X element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def looy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, a zero, and the Y element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def lolx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, a one, and the X element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def loly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, a one, and the Y element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def llxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the X element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def llxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def llxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the X element of this vector, and a zero."""
        vec.x = 1
        vec.y = 1
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def llxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the X element of this vector, and a one."""
        vec.x = 1
        vec.y = 1
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def llyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def llyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def llyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Y element of this vector, and a zero."""
        vec.x = 1
        vec.y = 1
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def llyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Y element of this vector, and a one."""
        vec.x = 1
        vec.y = 1
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def llox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, a zero, and the X element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def lloy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, a zero, and the Y element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def lllx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, a one, and the X element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def llly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, a one, and the Y element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = 1
        vec.w = self.y
        return vec


@cython.no_gc
@cython.final
@cython.freelist(8)
cdef class _Vec2iiterator:
    """Internal iterator class for Vec2i."""

    cdef public py_int x, y
    cdef short index


    def __next__(self) -> int:
        if self.index == 0:
            self.index += 1
            return self.x
        elif self.index == 1:
            self.index += 1
            return self.y
        raise StopIteration

    def __iter__(self) -> _Vec2iiterator:
        #<RETURN_SELF>
        return self

    def __length_hint__(self) -> int:
        return 2


# noinspection SpellCheckingInspection
@cython.auto_pickle(True)
@cython.freelist(4096)
@cython.no_gc
@cython.final
cdef class Vec3i:
    """3D integer vector."""

    cdef public py_int x, y, z


    cdef inline void ___init___0(self) noexcept:
        """Create a zero vector."""
        self.x = self.y = self.z = 0

    cdef inline void ___init___1(self, py_int value) noexcept:
        """Create a vector with the same value for all elements."""
        self.x = self.y = self.z = value

    cdef inline void ___init___2(self, Vec3 vec) noexcept:
        """Convert a floating-point vector to a integer vector."""
        self.x = <py_int>vec.x
        self.y = <py_int>vec.y
        self.z = <py_int>vec.z

    cdef inline void ___init___3(self, Vec3i xyz) noexcept:
        """Create a 3D vector from a 3D vector."""
        self.x = xyz.x
        self.y = xyz.y
        self.z = xyz.z
    
    cdef inline void ___init___4(self, py_int x, Vec2i yz) noexcept:
        """Create a 3D vector from a number and a 2D vector."""
        self.x = x
        self.y = yz.x
        self.z = yz.y
    
    cdef inline void ___init___5(self, Vec2i xy, py_int z) noexcept:
        """Create a 3D vector from a 2D vector and a number."""
        self.x = xy.x
        self.y = xy.y
        self.z = z
    
    cdef inline void ___init___6(self, py_int x, py_int y, py_int z) noexcept:
        """Create a 3D vector from a number, a number and a number."""
        self.x = x
        self.y = y
        self.z = z

    def __init__(self, object p0=None, object p1=None, object p2=None, /) -> None:
        if PyLong_Check(p0):
            if PyLong_Check(p1):
                if PyLong_Check(p2):
                    self.___init___6(PyLong_AsLongLong(p0), PyLong_AsLongLong(p1), PyLong_AsLongLong(p2))
                    return
                else:
                    raise TypeError(f"The 4th parameter expected int | None, got {p2}")
            elif isinstance(p1, Vec2i):
                if p2 is None:
                    self.___init___4(PyLong_AsLongLong(p0), <Vec2i> p1)
                    return
                else:
                    raise TypeError(f"The 4th parameter expected int | None, got {p2}")
            elif p1 is None:
                if p2 is None:
                    self.___init___1(PyLong_AsLongLong(p0))
                    return
                else:
                    raise TypeError(f"The 4th parameter expected int | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected Vec2i | int | None, got {p1}")
        elif isinstance(p0, Vec3):
            if p1 is None:
                if p2 is None:
                    self.___init___2(<Vec3> p0)
                    return
                else:
                    raise TypeError(f"The 4th parameter expected int | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected Vec2i | int | None, got {p1}")
        elif isinstance(p0, Vec3i):
            if p1 is None:
                if p2 is None:
                    self.___init___3(<Vec3i> p0)
                    return
                else:
                    raise TypeError(f"The 4th parameter expected int | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected Vec2i | int | None, got {p1}")
        elif isinstance(p0, Vec2i):
            if PyLong_Check(p1):
                if p2 is None:
                    self.___init___5(<Vec2i> p0, PyLong_AsLongLong(p1))
                    return
                else:
                    raise TypeError(f"The 4th parameter expected int | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected Vec2i | int | None, got {p1}")
        elif p0 is None:
            if p1 is None:
                if p2 is None:
                    self.___init___0()
                    return
                else:
                    raise TypeError(f"The 4th parameter expected int | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected Vec2i | int | None, got {p1}")
        else:
            raise TypeError(f"The 2th parameter expected int | Vec3 | Vec3i | Vec2i | None, got {p0}")


    def __repr__(self) -> str:
        return f"Vec3i({self.x}, {self.y}, {self.z})"

    def __eq__(self, object other) -> bool:
        """Perform exact comparison.

        See Also: `Vec3i.is_close()`
        """
        if not isinstance(other, Vec3i):
            return False
        cdef Vec3i vec = <Vec3i> other
        return self.x == vec.x and self.y == vec.y and self.z == vec.z

    def __ne__(self, object other) -> bool:
        """Perform exact comparison.

        See Also: `Vec3i.is_close()`
        """
        if not isinstance(other, Vec3i):
            return True
        cdef Vec3i vec = <Vec3i> other
        return self.x != vec.x or self.y != vec.y or self.z != vec.z

    def is_close(self, Vec3i other, /, py_float rel_tol = DEFAULT_RELATIVE_TOLERANCE, py_float abs_tol = DEFAULT_ABSOLUTE_TOLERANCE) -> bool:
        """Determine if the two vectors are close enough.

        See Also: `math.is_close()`
        """
        return is_close(<py_float> self.x, <py_float> other.x, rel_tol, abs_tol) and is_close(<py_float> self.y, <py_float> other.y, rel_tol, abs_tol) and is_close(<py_float> self.z, <py_float> other.z, rel_tol, abs_tol)

    def __bool__(self) -> bool:
        """If the vector is a zero vector."""
        return self.x == 0 and self.y == 0 and self.z == 0

    #TODO: Better hashing
    def __hash__(self) -> py_int:
        cdef py_int h = 0
        h ^= rotl_ratio(self.x, 0, 3)
        h ^= rotl_ratio(self.y, 1, 3)
        h ^= rotl_ratio(self.z, 2, 3)
        return h

    def __pos__(self) -> Vec3i:
        """Return a copy of this vector."""
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        return vec

    def __neg__(self) -> Vec3i:
        """Return the inverse vector."""
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        vec.x = -self.x
        vec.y = -self.y
        vec.z = -self.z
        return vec

    cdef inline Vec3i ___add___0(self, Vec3i other):
        """Element-wise addition."""
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        vec.x = self.x + other.x
        vec.y = self.y + other.y
        vec.z = self.z + other.z
        return vec
    
    cdef inline Vec3i ___add___1(self, py_int other):
        """Element-wise addition with the same number for all elements."""
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        vec.x = self.x + other
        vec.y = self.y + other
        vec.z = self.z + other
        return vec
    
    def __add__(self, object p0, /) -> Vec3i:
        if PyLong_Check(p0):
            return self.___add___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec3i):
            return self.___add___0(<Vec3i> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec3i | int, got {p0}")
    
    cdef inline Vec3i ___iadd___0(self, Vec3i other):
        #<RETURN_SELF>
        """Element-wise inplace addition."""
        self.x += other.x
        self.y += other.y
        self.z += other.z
        return self
    
    cdef inline Vec3i ___iadd___1(self, py_int other):
        #<RETURN_SELF>
        """Element-wise inplace addition with the same number for all elements."""
        self.x += other
        self.y += other
        self.z += other
        return self
    
    def __iadd__(self, object p0, /) -> Vec3i:
        if PyLong_Check(p0):
            return self.___iadd___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec3i):
            return self.___iadd___0(<Vec3i> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec3i | int, got {p0}")

    cdef inline Vec3i ___sub___0(self, Vec3i other):
        """Element-wise subtraction."""
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        vec.x = self.x - other.x
        vec.y = self.y - other.y
        vec.z = self.z - other.z
        return vec
    
    cdef inline Vec3i ___sub___1(self, py_int other):
        """Element-wise subtraction with the same number for all elements."""
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        vec.x = self.x - other
        vec.y = self.y - other
        vec.z = self.z - other
        return vec
    
    def __sub__(self, object p0, /) -> Vec3i:
        if PyLong_Check(p0):
            return self.___sub___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec3i):
            return self.___sub___0(<Vec3i> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec3i | int, got {p0}")
    
    cdef inline Vec3i ___isub___0(self, Vec3i other):
        #<RETURN_SELF>
        """Element-wise inplace subtraction."""
        self.x -= other.x
        self.y -= other.y
        self.z -= other.z
        return self
    
    cdef inline Vec3i ___isub___1(self, py_int other):
        #<RETURN_SELF>
        """Element-wise inplace subtraction with the same number for all elements."""
        self.x -= other
        self.y -= other
        self.z -= other
        return self
    
    def __isub__(self, object p0, /) -> Vec3i:
        if PyLong_Check(p0):
            return self.___isub___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec3i):
            return self.___isub___0(<Vec3i> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec3i | int, got {p0}")

    cdef inline Vec3i ___mul___0(self, Vec3i other):
        """Element-wise multiplication."""
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        vec.x = self.x * other.x
        vec.y = self.y * other.y
        vec.z = self.z * other.z
        return vec
    
    cdef inline Vec3i ___mul___1(self, py_int other):
        """Element-wise multiplication with the same number for all elements."""
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        vec.x = self.x * other
        vec.y = self.y * other
        vec.z = self.z * other
        return vec
    
    def __mul__(self, object p0, /) -> Vec3i | Vec3:
        if PyLong_Check(p0):
            return self.___mul___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec3i):
            return self.___mul___0(<Vec3i> p0)
        elif isinstance(p0, Transform3D):
            return self.___mul___2(<Transform3D> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec3i | int | Transform3D, got {p0}")
    
    cdef inline Vec3i ___imul___0(self, Vec3i other):
        #<RETURN_SELF>
        """Element-wise inplace multiplication."""
        self.x *= other.x
        self.y *= other.y
        self.z *= other.z
        return self
    
    cdef inline Vec3i ___imul___1(self, py_int other):
        #<RETURN_SELF>
        """Element-wise inplace multiplication with the same number for all elements."""
        self.x *= other
        self.y *= other
        self.z *= other
        return self
    
    def __imul__(self, object p0, /) -> Vec3i:
        if PyLong_Check(p0):
            return self.___imul___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec3i):
            return self.___imul___0(<Vec3i> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec3i | int, got {p0}")
    cdef inline Vec3 ___mul___2(self, Transform3D t):
        """Transform a copy of this vector using the *INVERSE* of the transform.
        Use `transform * vector` or `transform(vector)` for non-inverse transformation.
        
        See Also:
            `Transform3D.__mul__()`
            `Transform3D.__call__()`
        """
        cdef Vec3 vec = Vec3.__new__(Vec3)
        cdef py_float x = self.x - t.ox
        cdef py_float y = self.y - t.oy
        cdef py_float z = self.z - t.oz
        vec.x = t.xx * x + t.xy * y + t.xz * z
        vec.y = t.yx * x + t.yy * y + t.yz * z
        vec.z = t.zx * x + t.zy * y + t.zz * z
        return vec

    cdef inline Vec3i ___truediv___0(self, Vec3i other):
        """Element-wise division."""
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        vec.x = self.x / other.x
        vec.y = self.y / other.y
        vec.z = self.z / other.z
        return vec
    
    cdef inline Vec3i ___truediv___1(self, py_int other):
        """Element-wise division with the same number for all elements."""
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        vec.x = self.x / other
        vec.y = self.y / other
        vec.z = self.z / other
        return vec
    
    def __truediv__(self, object p0, /) -> Vec3i:
        if PyLong_Check(p0):
            return self.___truediv___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec3i):
            return self.___truediv___0(<Vec3i> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec3i | int, got {p0}")
    
    cdef inline Vec3i ___itruediv___0(self, Vec3i other):
        #<RETURN_SELF>
        """Element-wise inplace division."""
        self.x /= other.x
        self.y /= other.y
        self.z /= other.z
        return self
    
    cdef inline Vec3i ___itruediv___1(self, py_int other):
        #<RETURN_SELF>
        """Element-wise inplace division with the same number for all elements."""
        self.x /= other
        self.y /= other
        self.z /= other
        return self
    
    def __itruediv__(self, object p0, /) -> Vec3i:
        if PyLong_Check(p0):
            return self.___itruediv___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec3i):
            return self.___itruediv___0(<Vec3i> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec3i | int, got {p0}")


    def __matmul__(self, Vec3i other) -> py_int:
        """Dot product."""
        return self.x * other.x + self.y * other.y + self.z * other.z

    def __xor__(self, Vec3i other) -> Vec3i:
        """Cross product."""
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        vec.x = self.y * other.z - self.z * other.y
        vec.y = self.z * other.x - self.x * other.z
        vec.z = self.x * other.y - self.y * other.x
        return vec


    def __len__(self) -> int:
        """The number of dimensions (elements) of this vector."""
        return 3

    def __getitem__(self, int key) -> py_int:
        """Get the n-th element of this vector."""
        if key == 0:
            return self.x
        elif key == 1:
            return self.y
        elif key == 2:
            return self.z
        else:
            raise KeyError(f"Vec3i index out of range: {key}")

    def __setitem__(self, int key, py_int value) -> None:
        """Set the n-th element of this vector."""
        if key == 0:
            self.x = value
        elif key == 1:
            self.y = value
        elif key == 2:
            self.z = value
        else:
            raise KeyError(f"Vec3i index out of range: {key}")

    def __iter__(self) -> _Vec3iiterator:
        """Create an iterator that yields all the elements of the vector in sequence.

        This creates a copy of all the elements of this vector,
        so modifying the vector won't affect already created iterators.
        """
        cdef _Vec3iiterator iterator = _Vec3iiterator.__new__(_Vec3iiterator)
        iterator.x = self.x
        iterator.y = self.y
        iterator.z = self.z
        # iterator.vec = self
        return iterator


    @property
    def length(self) -> py_float:
        """The (Euclidean) length of this vector."""
        return sqrtl(<py_float> (self.x * self.x) + <py_float> (self.y * self.y) + <py_float> (self.z * self.z))

    @property
    def length_sqr(self) -> py_float:
        """The squared Euclidean length of this vector."""
        return self.x * self.x + self.y * self.y + self.z * self.z

    def __or__(self, Vec3i other) -> py_float:
        """The (Euclidean) distance between two vectors."""
        cdef py_int dx = self.x - other.x
        cdef py_int dy = self.y - other.y
        cdef py_int dz = self.z - other.z
        return sqrtl(<py_float> (dx * dx + dy * dy + dz * dz))

    def distance_to(self, Vec3i other, /) -> py_float:
        """The (Euclidean) distance between two vectors."""
        cdef py_int dx = self.x - other.x
        cdef py_int dy = self.y - other.y
        cdef py_int dz = self.z - other.z
        return sqrtl(<py_float> (dx * dx + dy * dy + dz * dz))

    def distance_sqr_to(self, Vec3i other, /) -> py_float:
        """The squared Euclidean distance between two vectors."""
        cdef py_int dx = self.x - other.x
        cdef py_int dy = self.y - other.y
        cdef py_int dz = self.z - other.z
        return <py_float> (dx * dx + dy * dy + dz * dz)


    @property
    def xx(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        return vec
    
    @property
    def xy(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        return vec
    
    @property
    def xz(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        return vec
    
    @property
    def xo(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0
        return vec
    
    @property
    def xl(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1
        return vec
    
    @property
    def yx(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        return vec
    
    @property
    def yy(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        return vec
    
    @property
    def yz(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        return vec
    
    @property
    def yo(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0
        return vec
    
    @property
    def yl(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1
        return vec
    
    @property
    def zx(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        return vec
    
    @property
    def zy(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        return vec
    
    @property
    def zz(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        return vec
    
    @property
    def zo(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 0
        return vec
    
    @property
    def zl(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = 1
        return vec
    
    @property
    def ox(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being a zero, and the X element of this vector."""
        vec.x = 0
        vec.y = self.x
        return vec
    
    @property
    def oy(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being a zero, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.y
        return vec
    
    @property
    def oz(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being a zero, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.z
        return vec
    
    @property
    def lx(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being a one, and the X element of this vector."""
        vec.x = 1
        vec.y = self.x
        return vec
    
    @property
    def ly(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being a one, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.y
        return vec
    
    @property
    def lz(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being a one, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.z
        return vec
    
    @property
    def xxx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def xxy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def xxz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        return vec
    
    @property
    def xxo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0
        return vec
    
    @property
    def xxl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1
        return vec
    
    @property
    def xyx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def xyy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def xyz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        return vec
    
    @xyz.setter
    def xyz(self, Vec3i vec) -> None:
        """Set the value of the X, Y and Z elements of this vector to the value of the elements of the other vector, respectively."""
        self.x = vec.x
        self.y = vec.y
        self.z = vec.z
    
    @property
    def xyo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0
        return vec
    
    @property
    def xyl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1
        return vec
    
    @property
    def xzx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        return vec
    
    @property
    def xzy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        return vec
    
    @xzy.setter
    def xzy(self, Vec3i vec) -> None:
        """Set the value of the X, Z and Y elements of this vector to the value of the elements of the other vector, respectively."""
        self.x = vec.x
        self.z = vec.y
        self.y = vec.z
    
    @property
    def xzz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        return vec
    
    @property
    def xzo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0
        return vec
    
    @property
    def xzl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1
        return vec
    
    @property
    def xox(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.x
        return vec
    
    @property
    def xoy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.y
        return vec
    
    @property
    def xoz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.z
        return vec
    
    @property
    def xoo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = 0
        vec.z = 0
        return vec
    
    @property
    def xol(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = 0
        vec.z = 1
        return vec
    
    @property
    def xlx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.x
        return vec
    
    @property
    def xly(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.y
        return vec
    
    @property
    def xlz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.z
        return vec
    
    @property
    def xlo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = 1
        vec.z = 0
        return vec
    
    @property
    def xll(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = 1
        vec.z = 1
        return vec
    
    @property
    def yxx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def yxy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def yxz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        return vec
    
    @yxz.setter
    def yxz(self, Vec3i vec) -> None:
        """Set the value of the Y, X and Z elements of this vector to the value of the elements of the other vector, respectively."""
        self.y = vec.x
        self.x = vec.y
        self.z = vec.z
    
    @property
    def yxo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0
        return vec
    
    @property
    def yxl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1
        return vec
    
    @property
    def yyx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def yyy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def yyz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        return vec
    
    @property
    def yyo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0
        return vec
    
    @property
    def yyl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1
        return vec
    
    @property
    def yzx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        return vec
    
    @yzx.setter
    def yzx(self, Vec3i vec) -> None:
        """Set the value of the Y, Z and X elements of this vector to the value of the elements of the other vector, respectively."""
        self.y = vec.x
        self.z = vec.y
        self.x = vec.z
    
    @property
    def yzy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        return vec
    
    @property
    def yzz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        return vec
    
    @property
    def yzo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0
        return vec
    
    @property
    def yzl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1
        return vec
    
    @property
    def yox(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.x
        return vec
    
    @property
    def yoy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.y
        return vec
    
    @property
    def yoz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.z
        return vec
    
    @property
    def yoo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = 0
        vec.z = 0
        return vec
    
    @property
    def yol(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = 0
        vec.z = 1
        return vec
    
    @property
    def ylx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.x
        return vec
    
    @property
    def yly(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.y
        return vec
    
    @property
    def ylz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.z
        return vec
    
    @property
    def ylo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = 1
        vec.z = 0
        return vec
    
    @property
    def yll(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = 1
        vec.z = 1
        return vec
    
    @property
    def zxx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def zxy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @zxy.setter
    def zxy(self, Vec3i vec) -> None:
        """Set the value of the Z, X and Y elements of this vector to the value of the elements of the other vector, respectively."""
        self.z = vec.x
        self.x = vec.y
        self.y = vec.z
    
    @property
    def zxz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        return vec
    
    @property
    def zxo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0
        return vec
    
    @property
    def zxl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1
        return vec
    
    @property
    def zyx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @zyx.setter
    def zyx(self, Vec3i vec) -> None:
        """Set the value of the Z, Y and X elements of this vector to the value of the elements of the other vector, respectively."""
        self.z = vec.x
        self.y = vec.y
        self.x = vec.z
    
    @property
    def zyy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def zyz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        return vec
    
    @property
    def zyo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0
        return vec
    
    @property
    def zyl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1
        return vec
    
    @property
    def zzx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        return vec
    
    @property
    def zzy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        return vec
    
    @property
    def zzz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        return vec
    
    @property
    def zzo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0
        return vec
    
    @property
    def zzl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1
        return vec
    
    @property
    def zox(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.x
        return vec
    
    @property
    def zoy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.y
        return vec
    
    @property
    def zoz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.z
        return vec
    
    @property
    def zoo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, a zero, and a zero."""
        vec.x = self.z
        vec.y = 0
        vec.z = 0
        return vec
    
    @property
    def zol(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, a zero, and a one."""
        vec.x = self.z
        vec.y = 0
        vec.z = 1
        return vec
    
    @property
    def zlx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.x
        return vec
    
    @property
    def zly(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.y
        return vec
    
    @property
    def zlz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.z
        return vec
    
    @property
    def zlo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, a one, and a zero."""
        vec.x = self.z
        vec.y = 1
        vec.z = 0
        return vec
    
    @property
    def zll(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, a one, and a one."""
        vec.x = self.z
        vec.y = 1
        vec.z = 1
        return vec
    
    @property
    def oxx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the X element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def oxy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def oxz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.z
        return vec
    
    @property
    def oxo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the X element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.x
        vec.z = 0
        return vec
    
    @property
    def oxl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the X element of this vector, and a one."""
        vec.x = 0
        vec.y = self.x
        vec.z = 1
        return vec
    
    @property
    def oyx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def oyy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def oyz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.z
        return vec
    
    @property
    def oyo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Y element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.y
        vec.z = 0
        return vec
    
    @property
    def oyl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Y element of this vector, and a one."""
        vec.x = 0
        vec.y = self.y
        vec.z = 1
        return vec
    
    @property
    def ozx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.x
        return vec
    
    @property
    def ozy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.y
        return vec
    
    @property
    def ozz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.z
        return vec
    
    @property
    def ozo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Z element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.z
        vec.z = 0
        return vec
    
    @property
    def ozl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Z element of this vector, and a one."""
        vec.x = 0
        vec.y = self.z
        vec.z = 1
        return vec
    
    @property
    def oox(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, a zero, and the X element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.x
        return vec
    
    @property
    def ooy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, a zero, and the Y element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.y
        return vec
    
    @property
    def ooz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, a zero, and the Z element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.z
        return vec
    
    @property
    def olx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, a one, and the X element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.x
        return vec
    
    @property
    def oly(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, a one, and the Y element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.y
        return vec
    
    @property
    def olz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, a one, and the Z element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.z
        return vec
    
    @property
    def lxx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the X element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def lxy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the X element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def lxz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the X element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.z
        return vec
    
    @property
    def lxo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the X element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.x
        vec.z = 0
        return vec
    
    @property
    def lxl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the X element of this vector, and a one."""
        vec.x = 1
        vec.y = self.x
        vec.z = 1
        return vec
    
    @property
    def lyx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Y element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def lyy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def lyz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.z
        return vec
    
    @property
    def lyo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Y element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.y
        vec.z = 0
        return vec
    
    @property
    def lyl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Y element of this vector, and a one."""
        vec.x = 1
        vec.y = self.y
        vec.z = 1
        return vec
    
    @property
    def lzx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Z element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.x
        return vec
    
    @property
    def lzy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.y
        return vec
    
    @property
    def lzz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.z
        return vec
    
    @property
    def lzo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Z element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.z
        vec.z = 0
        return vec
    
    @property
    def lzl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Z element of this vector, and a one."""
        vec.x = 1
        vec.y = self.z
        vec.z = 1
        return vec
    
    @property
    def lox(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, a zero, and the X element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.x
        return vec
    
    @property
    def loy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, a zero, and the Y element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.y
        return vec
    
    @property
    def loz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, a zero, and the Z element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.z
        return vec
    
    @property
    def llx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, a one, and the X element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.x
        return vec
    
    @property
    def lly(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, a one, and the Y element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.y
        return vec
    
    @property
    def llz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, a one, and the Z element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.z
        return vec
    
    @property
    def xxxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xxxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xxxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def xxxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def xxxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def xxyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xxyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xxyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def xxyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def xxyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def xxzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def xxzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def xxzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def xxzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def xxzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def xxox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def xxoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def xxoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def xxoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def xxol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def xxlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def xxly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def xxlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def xxlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def xxll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def xyxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xyxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xyxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def xyxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def xyxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def xyyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xyyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xyyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def xyyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def xyyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def xyzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def xyzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def xyzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def xyzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def xyzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def xyox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def xyoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def xyoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def xyoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def xyol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def xylx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def xyly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def xylz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def xylo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def xyll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def xzxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xzxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xzxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def xzxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def xzxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def xzyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xzyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xzyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def xzyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def xzyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def xzzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def xzzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def xzzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def xzzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def xzzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def xzox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def xzoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def xzoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def xzoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def xzol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def xzlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def xzly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def xzlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def xzlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def xzll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def xoxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xoxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xoxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def xoxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def xoxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def xoyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xoyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xoyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def xoyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def xoyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def xozx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def xozy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def xozz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def xozo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def xozl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def xoox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def xooy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def xooz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def xooo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a zero, and a zero."""
        vec.x = self.x
        vec.y = 0
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def xool(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a zero, and a one."""
        vec.x = self.x
        vec.y = 0
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def xolx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def xoly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def xolz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def xolo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a one, and a zero."""
        vec.x = self.x
        vec.y = 0
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def xoll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a one, and a one."""
        vec.x = self.x
        vec.y = 0
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def xlxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xlxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xlxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def xlxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def xlxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def xlyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xlyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xlyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def xlyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def xlyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def xlzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def xlzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def xlzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def xlzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def xlzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def xlox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def xloy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def xloz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def xloo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a zero, and a zero."""
        vec.x = self.x
        vec.y = 1
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def xlol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a zero, and a one."""
        vec.x = self.x
        vec.y = 1
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def xllx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def xlly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def xllz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def xllo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a one, and a zero."""
        vec.x = self.x
        vec.y = 1
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def xlll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a one, and a one."""
        vec.x = self.x
        vec.y = 1
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def yxxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def yxxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def yxxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def yxxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def yxxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def yxyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def yxyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def yxyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def yxyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def yxyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def yxzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def yxzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def yxzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def yxzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def yxzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def yxox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def yxoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def yxoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def yxoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def yxol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def yxlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def yxly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def yxlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def yxlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def yxll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def yyxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def yyxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def yyxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def yyxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def yyxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def yyyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def yyyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def yyyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def yyyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def yyyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def yyzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def yyzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def yyzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def yyzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def yyzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def yyox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def yyoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def yyoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def yyoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def yyol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def yylx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def yyly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def yylz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def yylo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def yyll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def yzxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def yzxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def yzxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def yzxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def yzxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def yzyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def yzyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def yzyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def yzyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def yzyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def yzzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def yzzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def yzzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def yzzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def yzzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def yzox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def yzoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def yzoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def yzoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def yzol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def yzlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def yzly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def yzlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def yzlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def yzll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def yoxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def yoxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def yoxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def yoxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def yoxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def yoyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def yoyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def yoyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def yoyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def yoyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def yozx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def yozy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def yozz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def yozo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def yozl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def yoox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def yooy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def yooz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def yooo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a zero, and a zero."""
        vec.x = self.y
        vec.y = 0
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def yool(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a zero, and a one."""
        vec.x = self.y
        vec.y = 0
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def yolx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def yoly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def yolz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def yolo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a one, and a zero."""
        vec.x = self.y
        vec.y = 0
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def yoll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a one, and a one."""
        vec.x = self.y
        vec.y = 0
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def ylxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def ylxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def ylxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def ylxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def ylxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def ylyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def ylyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def ylyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def ylyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def ylyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def ylzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def ylzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def ylzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def ylzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def ylzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def ylox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def yloy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def yloz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def yloo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a zero, and a zero."""
        vec.x = self.y
        vec.y = 1
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def ylol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a zero, and a one."""
        vec.x = self.y
        vec.y = 1
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def yllx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def ylly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def yllz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def yllo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a one, and a zero."""
        vec.x = self.y
        vec.y = 1
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def ylll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a one, and a one."""
        vec.x = self.y
        vec.y = 1
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def zxxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def zxxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def zxxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def zxxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def zxxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def zxyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def zxyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def zxyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def zxyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def zxyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def zxzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def zxzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def zxzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def zxzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def zxzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def zxox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def zxoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def zxoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def zxoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, a zero, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def zxol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, a zero, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def zxlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def zxly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def zxlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def zxlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, a one, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def zxll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, a one, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def zyxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def zyxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def zyxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def zyxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def zyxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def zyyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def zyyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def zyyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def zyyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def zyyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def zyzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def zyzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def zyzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def zyzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def zyzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def zyox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def zyoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def zyoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def zyoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, a zero, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def zyol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, a zero, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def zylx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def zyly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def zylz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def zylo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, a one, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def zyll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, a one, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def zzxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def zzxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def zzxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def zzxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def zzxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def zzyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def zzyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def zzyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def zzyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def zzyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def zzzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def zzzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def zzzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def zzzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def zzzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def zzox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def zzoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def zzoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def zzoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, a zero, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def zzol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, a zero, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def zzlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def zzly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def zzlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def zzlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, a one, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def zzll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, a one, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def zoxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def zoxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def zoxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def zoxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def zoxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def zoyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def zoyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def zoyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def zoyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def zoyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def zozx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def zozy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def zozz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def zozo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def zozl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def zoox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def zooy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def zooz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def zooo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, a zero, and a zero."""
        vec.x = self.z
        vec.y = 0
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def zool(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, a zero, and a one."""
        vec.x = self.z
        vec.y = 0
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def zolx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def zoly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def zolz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def zolo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, a one, and a zero."""
        vec.x = self.z
        vec.y = 0
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def zoll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, a one, and a one."""
        vec.x = self.z
        vec.y = 0
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def zlxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def zlxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def zlxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def zlxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def zlxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def zlyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def zlyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def zlyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def zlyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def zlyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def zlzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def zlzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def zlzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def zlzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def zlzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def zlox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def zloy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def zloz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def zloo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, a zero, and a zero."""
        vec.x = self.z
        vec.y = 1
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def zlol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, a zero, and a one."""
        vec.x = self.z
        vec.y = 1
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def zllx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def zlly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def zllz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def zllo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, a one, and a zero."""
        vec.x = self.z
        vec.y = 1
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def zlll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, a one, and a one."""
        vec.x = self.z
        vec.y = 1
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def oxxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def oxxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def oxxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def oxxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def oxxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the X element of this vector, and a one."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def oxyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def oxyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def oxyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def oxyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def oxyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def oxzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def oxzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def oxzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def oxzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def oxzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Z element of this vector, and a one."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def oxox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def oxoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def oxoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def oxoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a zero, and a zero."""
        vec.x = 0
        vec.y = self.x
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def oxol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a zero, and a one."""
        vec.x = 0
        vec.y = self.x
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def oxlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a one, and the X element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def oxly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def oxlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a one, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def oxlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a one, and a zero."""
        vec.x = 0
        vec.y = self.x
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def oxll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a one, and a one."""
        vec.x = 0
        vec.y = self.x
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def oyxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def oyxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def oyxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def oyxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def oyxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def oyyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def oyyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def oyyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def oyyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def oyyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def oyzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def oyzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def oyzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def oyzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def oyzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def oyox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def oyoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def oyoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def oyoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a zero, and a zero."""
        vec.x = 0
        vec.y = self.y
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def oyol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a zero, and a one."""
        vec.x = 0
        vec.y = self.y
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def oylx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def oyly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def oylz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def oylo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a one, and a zero."""
        vec.x = 0
        vec.y = self.y
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def oyll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a one, and a one."""
        vec.x = 0
        vec.y = self.y
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def ozxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def ozxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def ozxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def ozxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def ozxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the X element of this vector, and a one."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def ozyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def ozyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def ozyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def ozyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def ozyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def ozzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def ozzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def ozzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def ozzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def ozzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def ozox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def ozoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def ozoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def ozoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, a zero, and a zero."""
        vec.x = 0
        vec.y = self.z
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def ozol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, a zero, and a one."""
        vec.x = 0
        vec.y = self.z
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def ozlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, a one, and the X element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def ozly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def ozlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def ozlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, a one, and a zero."""
        vec.x = 0
        vec.y = self.z
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def ozll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, a one, and a one."""
        vec.x = 0
        vec.y = self.z
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def ooxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def ooxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def ooxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def ooxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the X element of this vector, and a zero."""
        vec.x = 0
        vec.y = 0
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def ooxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the X element of this vector, and a one."""
        vec.x = 0
        vec.y = 0
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def ooyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def ooyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def ooyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def ooyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Y element of this vector, and a zero."""
        vec.x = 0
        vec.y = 0
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def ooyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Y element of this vector, and a one."""
        vec.x = 0
        vec.y = 0
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def oozx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def oozy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def oozz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def oozo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Z element of this vector, and a zero."""
        vec.x = 0
        vec.y = 0
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def oozl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Z element of this vector, and a one."""
        vec.x = 0
        vec.y = 0
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def ooox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, a zero, and the X element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def oooy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, a zero, and the Y element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def oooz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, a zero, and the Z element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def oolx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, a one, and the X element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def ooly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, a one, and the Y element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def oolz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, a one, and the Z element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def olxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the X element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def olxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def olxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the X element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def olxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the X element of this vector, and a zero."""
        vec.x = 0
        vec.y = 1
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def olxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the X element of this vector, and a one."""
        vec.x = 0
        vec.y = 1
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def olyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def olyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def olyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def olyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Y element of this vector, and a zero."""
        vec.x = 0
        vec.y = 1
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def olyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Y element of this vector, and a one."""
        vec.x = 0
        vec.y = 1
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def olzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Z element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def olzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def olzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def olzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Z element of this vector, and a zero."""
        vec.x = 0
        vec.y = 1
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def olzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Z element of this vector, and a one."""
        vec.x = 0
        vec.y = 1
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def olox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, a zero, and the X element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def oloy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, a zero, and the Y element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def oloz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, a zero, and the Z element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def ollx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, a one, and the X element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def olly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, a one, and the Y element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def ollz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, a one, and the Z element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def lxxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def lxxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def lxxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def lxxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def lxxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the X element of this vector, and a one."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def lxyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def lxyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def lxyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def lxyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def lxyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def lxzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def lxzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def lxzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def lxzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def lxzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Z element of this vector, and a one."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def lxox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def lxoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def lxoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def lxoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a zero, and a zero."""
        vec.x = 1
        vec.y = self.x
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def lxol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a zero, and a one."""
        vec.x = 1
        vec.y = self.x
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def lxlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a one, and the X element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def lxly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def lxlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a one, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def lxlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a one, and a zero."""
        vec.x = 1
        vec.y = self.x
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def lxll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a one, and a one."""
        vec.x = 1
        vec.y = self.x
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def lyxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def lyxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def lyxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def lyxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def lyxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def lyyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def lyyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def lyyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def lyyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def lyyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def lyzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def lyzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def lyzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def lyzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def lyzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def lyox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def lyoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def lyoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def lyoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a zero, and a zero."""
        vec.x = 1
        vec.y = self.y
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def lyol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a zero, and a one."""
        vec.x = 1
        vec.y = self.y
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def lylx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def lyly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def lylz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def lylo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a one, and a zero."""
        vec.x = 1
        vec.y = self.y
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def lyll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a one, and a one."""
        vec.x = 1
        vec.y = self.y
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def lzxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def lzxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def lzxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def lzxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def lzxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the X element of this vector, and a one."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def lzyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def lzyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def lzyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def lzyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def lzyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def lzzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def lzzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def lzzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def lzzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def lzzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def lzox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def lzoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def lzoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def lzoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, a zero, and a zero."""
        vec.x = 1
        vec.y = self.z
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def lzol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, a zero, and a one."""
        vec.x = 1
        vec.y = self.z
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def lzlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, a one, and the X element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def lzly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def lzlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def lzlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, a one, and a zero."""
        vec.x = 1
        vec.y = self.z
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def lzll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, a one, and a one."""
        vec.x = 1
        vec.y = self.z
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def loxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def loxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def loxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def loxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the X element of this vector, and a zero."""
        vec.x = 1
        vec.y = 0
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def loxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the X element of this vector, and a one."""
        vec.x = 1
        vec.y = 0
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def loyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def loyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def loyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def loyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Y element of this vector, and a zero."""
        vec.x = 1
        vec.y = 0
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def loyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Y element of this vector, and a one."""
        vec.x = 1
        vec.y = 0
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def lozx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def lozy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def lozz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def lozo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Z element of this vector, and a zero."""
        vec.x = 1
        vec.y = 0
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def lozl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Z element of this vector, and a one."""
        vec.x = 1
        vec.y = 0
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def loox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, a zero, and the X element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def looy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, a zero, and the Y element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def looz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, a zero, and the Z element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def lolx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, a one, and the X element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def loly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, a one, and the Y element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def lolz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, a one, and the Z element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def llxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the X element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def llxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def llxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the X element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def llxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the X element of this vector, and a zero."""
        vec.x = 1
        vec.y = 1
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def llxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the X element of this vector, and a one."""
        vec.x = 1
        vec.y = 1
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def llyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def llyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def llyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def llyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Y element of this vector, and a zero."""
        vec.x = 1
        vec.y = 1
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def llyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Y element of this vector, and a one."""
        vec.x = 1
        vec.y = 1
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def llzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Z element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def llzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def llzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def llzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Z element of this vector, and a zero."""
        vec.x = 1
        vec.y = 1
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def llzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Z element of this vector, and a one."""
        vec.x = 1
        vec.y = 1
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def llox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, a zero, and the X element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def lloy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, a zero, and the Y element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def lloz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, a zero, and the Z element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def lllx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, a one, and the X element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def llly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, a one, and the Y element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def lllz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, a one, and the Z element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = 1
        vec.w = self.z
        return vec


@cython.no_gc
@cython.final
@cython.freelist(8)
cdef class _Vec3iiterator:
    """Internal iterator class for Vec3i."""

    cdef public py_int x, y, z
    cdef short index


    def __next__(self) -> int:
        if self.index == 0:
            self.index += 1
            return self.x
        elif self.index == 1:
            self.index += 1
            return self.y
        elif self.index == 2:
            self.index += 1
            return self.z
        raise StopIteration

    def __iter__(self) -> _Vec3iiterator:
        #<RETURN_SELF>
        return self

    def __length_hint__(self) -> int:
        return 3


# noinspection SpellCheckingInspection
@cython.auto_pickle(True)
@cython.freelist(4096)
@cython.no_gc
@cython.final
cdef class Vec4i:
    """4D integer vector."""

    cdef public py_int x, y, z, w


    cdef inline void ___init___0(self) noexcept:
        """Create a zero vector."""
        self.x = self.y = self.z = self.w = 0

    cdef inline void ___init___1(self, py_int value) noexcept:
        """Create a vector with the same value for all elements."""
        self.x = self.y = self.z = self.w = value

    cdef inline void ___init___2(self, Vec4 vec) noexcept:
        """Convert a floating-point vector to a integer vector."""
        self.x = <py_int>vec.x
        self.y = <py_int>vec.y
        self.z = <py_int>vec.z
        self.w = <py_int>vec.w

    cdef inline void ___init___3(self, Vec4i xyzw) noexcept:
        """Create a 4D vector from a 4D vector."""
        self.x = xyzw.x
        self.y = xyzw.y
        self.z = xyzw.z
        self.w = xyzw.w
    
    cdef inline void ___init___4(self, py_int x, Vec3i yzw) noexcept:
        """Create a 4D vector from a number and a 3D vector."""
        self.x = x
        self.y = yzw.x
        self.z = yzw.y
        self.w = yzw.z
    
    cdef inline void ___init___5(self, Vec2i xy, Vec2i zw) noexcept:
        """Create a 4D vector from a 2D vector and a 2D vector."""
        self.x = xy.x
        self.y = xy.y
        self.z = zw.x
        self.w = zw.y
    
    cdef inline void ___init___6(self, Vec3i xyz, py_int w) noexcept:
        """Create a 4D vector from a 3D vector and a number."""
        self.x = xyz.x
        self.y = xyz.y
        self.z = xyz.z
        self.w = w
    
    cdef inline void ___init___7(self, py_int x, py_int y, Vec2i zw) noexcept:
        """Create a 4D vector from a number, a number and a 2D vector."""
        self.x = x
        self.y = y
        self.z = zw.x
        self.w = zw.y
    
    cdef inline void ___init___8(self, py_int x, Vec2i yz, py_int w) noexcept:
        """Create a 4D vector from a number, a 2D vector and a number."""
        self.x = x
        self.y = yz.x
        self.z = yz.y
        self.w = w
    
    cdef inline void ___init___9(self, Vec2i xy, py_int z, py_int w) noexcept:
        """Create a 4D vector from a 2D vector, a number and a number."""
        self.x = xy.x
        self.y = xy.y
        self.z = z
        self.w = w
    
    cdef inline void ___init___10(self, py_int x, py_int y, py_int z, py_int w) noexcept:
        """Create a 4D vector from a number, a number, a number and a number."""
        self.x = x
        self.y = y
        self.z = z
        self.w = w

    def __init__(self, object p0=None, object p1=None, object p2=None, object p3=None, /) -> None:
        if PyLong_Check(p0):
            if PyLong_Check(p1):
                if PyLong_Check(p2):
                    if PyLong_Check(p3):
                        self.___init___10(PyLong_AsLongLong(p0), PyLong_AsLongLong(p1), PyLong_AsLongLong(p2), PyLong_AsLongLong(p3))
                        return
                    else:
                        raise TypeError(f"The 5th parameter expected int | None, got {p3}")
                elif isinstance(p2, Vec2i):
                    if p3 is None:
                        self.___init___7(PyLong_AsLongLong(p0), PyLong_AsLongLong(p1), <Vec2i> p2)
                        return
                    else:
                        raise TypeError(f"The 5th parameter expected int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected Vec2i | int | None, got {p2}")
            elif isinstance(p1, Vec3i):
                if p2 is None:
                    if p3 is None:
                        self.___init___4(PyLong_AsLongLong(p0), <Vec3i> p1)
                        return
                    else:
                        raise TypeError(f"The 5th parameter expected int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected Vec2i | int | None, got {p2}")
            elif isinstance(p1, Vec2i):
                if PyLong_Check(p2):
                    if p3 is None:
                        self.___init___8(PyLong_AsLongLong(p0), <Vec2i> p1, PyLong_AsLongLong(p2))
                        return
                    else:
                        raise TypeError(f"The 5th parameter expected int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected Vec2i | int | None, got {p2}")
            elif p1 is None:
                if p2 is None:
                    if p3 is None:
                        self.___init___1(PyLong_AsLongLong(p0))
                        return
                    else:
                        raise TypeError(f"The 5th parameter expected int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected Vec2i | int | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected Vec3i | Vec2i | int | None, got {p1}")
        elif isinstance(p0, Vec4):
            if p1 is None:
                if p2 is None:
                    if p3 is None:
                        self.___init___2(<Vec4> p0)
                        return
                    else:
                        raise TypeError(f"The 5th parameter expected int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected Vec2i | int | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected Vec3i | Vec2i | int | None, got {p1}")
        elif isinstance(p0, Vec4i):
            if p1 is None:
                if p2 is None:
                    if p3 is None:
                        self.___init___3(<Vec4i> p0)
                        return
                    else:
                        raise TypeError(f"The 5th parameter expected int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected Vec2i | int | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected Vec3i | Vec2i | int | None, got {p1}")
        elif isinstance(p0, Vec2i):
            if PyLong_Check(p1):
                if PyLong_Check(p2):
                    if p3 is None:
                        self.___init___9(<Vec2i> p0, PyLong_AsLongLong(p1), PyLong_AsLongLong(p2))
                        return
                    else:
                        raise TypeError(f"The 5th parameter expected int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected Vec2i | int | None, got {p2}")
            elif isinstance(p1, Vec2i):
                if p2 is None:
                    if p3 is None:
                        self.___init___5(<Vec2i> p0, <Vec2i> p1)
                        return
                    else:
                        raise TypeError(f"The 5th parameter expected int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected Vec2i | int | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected Vec3i | Vec2i | int | None, got {p1}")
        elif isinstance(p0, Vec3i):
            if PyLong_Check(p1):
                if p2 is None:
                    if p3 is None:
                        self.___init___6(<Vec3i> p0, PyLong_AsLongLong(p1))
                        return
                    else:
                        raise TypeError(f"The 5th parameter expected int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected Vec2i | int | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected Vec3i | Vec2i | int | None, got {p1}")
        elif p0 is None:
            if p1 is None:
                if p2 is None:
                    if p3 is None:
                        self.___init___0()
                        return
                    else:
                        raise TypeError(f"The 5th parameter expected int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected Vec2i | int | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected Vec3i | Vec2i | int | None, got {p1}")
        else:
            raise TypeError(f"The 2th parameter expected int | Vec4 | Vec4i | Vec2i | Vec3i | None, got {p0}")


    def __repr__(self) -> str:
        return f"Vec4i({self.x}, {self.y}, {self.z}, {self.w})"

    def __eq__(self, object other) -> bool:
        """Perform exact comparison.

        See Also: `Vec4i.is_close()`
        """
        if not isinstance(other, Vec4i):
            return False
        cdef Vec4i vec = <Vec4i> other
        return self.x == vec.x and self.y == vec.y and self.z == vec.z and self.w == vec.w

    def __ne__(self, object other) -> bool:
        """Perform exact comparison.

        See Also: `Vec4i.is_close()`
        """
        if not isinstance(other, Vec4i):
            return True
        cdef Vec4i vec = <Vec4i> other
        return self.x != vec.x or self.y != vec.y or self.z != vec.z or self.w != vec.w

    def is_close(self, Vec4i other, /, py_float rel_tol = DEFAULT_RELATIVE_TOLERANCE, py_float abs_tol = DEFAULT_ABSOLUTE_TOLERANCE) -> bool:
        """Determine if the two vectors are close enough.

        See Also: `math.is_close()`
        """
        return is_close(<py_float> self.x, <py_float> other.x, rel_tol, abs_tol) and is_close(<py_float> self.y, <py_float> other.y, rel_tol, abs_tol) and is_close(<py_float> self.z, <py_float> other.z, rel_tol, abs_tol) and is_close(<py_float> self.w, <py_float> other.w, rel_tol, abs_tol)

    def __bool__(self) -> bool:
        """If the vector is a zero vector."""
        return self.x == 0 and self.y == 0 and self.z == 0 and self.w == 0

    #TODO: Better hashing
    def __hash__(self) -> py_int:
        cdef py_int h = 0
        h ^= rotl_ratio(self.x, 0, 4)
        h ^= rotl_ratio(self.y, 1, 4)
        h ^= rotl_ratio(self.z, 2, 4)
        h ^= rotl_ratio(self.w, 3, 4)
        return h

    def __pos__(self) -> Vec4i:
        """Return a copy of this vector."""
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = self.w
        return vec

    def __neg__(self) -> Vec4i:
        """Return the inverse vector."""
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        vec.x = -self.x
        vec.y = -self.y
        vec.z = -self.z
        vec.w = -self.w
        return vec

    cdef inline Vec4i ___add___0(self, Vec4i other):
        """Element-wise addition."""
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        vec.x = self.x + other.x
        vec.y = self.y + other.y
        vec.z = self.z + other.z
        vec.w = self.w + other.w
        return vec
    
    cdef inline Vec4i ___add___1(self, py_int other):
        """Element-wise addition with the same number for all elements."""
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        vec.x = self.x + other
        vec.y = self.y + other
        vec.z = self.z + other
        vec.w = self.w + other
        return vec
    
    def __add__(self, object p0, /) -> Vec4i:
        if PyLong_Check(p0):
            return self.___add___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec4i):
            return self.___add___0(<Vec4i> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec4i | int, got {p0}")
    
    cdef inline Vec4i ___iadd___0(self, Vec4i other):
        #<RETURN_SELF>
        """Element-wise inplace addition."""
        self.x += other.x
        self.y += other.y
        self.z += other.z
        self.w += other.w
        return self
    
    cdef inline Vec4i ___iadd___1(self, py_int other):
        #<RETURN_SELF>
        """Element-wise inplace addition with the same number for all elements."""
        self.x += other
        self.y += other
        self.z += other
        self.w += other
        return self
    
    def __iadd__(self, object p0, /) -> Vec4i:
        if PyLong_Check(p0):
            return self.___iadd___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec4i):
            return self.___iadd___0(<Vec4i> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec4i | int, got {p0}")

    cdef inline Vec4i ___sub___0(self, Vec4i other):
        """Element-wise subtraction."""
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        vec.x = self.x - other.x
        vec.y = self.y - other.y
        vec.z = self.z - other.z
        vec.w = self.w - other.w
        return vec
    
    cdef inline Vec4i ___sub___1(self, py_int other):
        """Element-wise subtraction with the same number for all elements."""
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        vec.x = self.x - other
        vec.y = self.y - other
        vec.z = self.z - other
        vec.w = self.w - other
        return vec
    
    def __sub__(self, object p0, /) -> Vec4i:
        if PyLong_Check(p0):
            return self.___sub___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec4i):
            return self.___sub___0(<Vec4i> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec4i | int, got {p0}")
    
    cdef inline Vec4i ___isub___0(self, Vec4i other):
        #<RETURN_SELF>
        """Element-wise inplace subtraction."""
        self.x -= other.x
        self.y -= other.y
        self.z -= other.z
        self.w -= other.w
        return self
    
    cdef inline Vec4i ___isub___1(self, py_int other):
        #<RETURN_SELF>
        """Element-wise inplace subtraction with the same number for all elements."""
        self.x -= other
        self.y -= other
        self.z -= other
        self.w -= other
        return self
    
    def __isub__(self, object p0, /) -> Vec4i:
        if PyLong_Check(p0):
            return self.___isub___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec4i):
            return self.___isub___0(<Vec4i> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec4i | int, got {p0}")

    cdef inline Vec4i ___mul___0(self, Vec4i other):
        """Element-wise multiplication."""
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        vec.x = self.x * other.x
        vec.y = self.y * other.y
        vec.z = self.z * other.z
        vec.w = self.w * other.w
        return vec
    
    cdef inline Vec4i ___mul___1(self, py_int other):
        """Element-wise multiplication with the same number for all elements."""
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        vec.x = self.x * other
        vec.y = self.y * other
        vec.z = self.z * other
        vec.w = self.w * other
        return vec
    
    def __mul__(self, object p0, /) -> Vec4i:
        if PyLong_Check(p0):
            return self.___mul___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec4i):
            return self.___mul___0(<Vec4i> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec4i | int, got {p0}")
    
    cdef inline Vec4i ___imul___0(self, Vec4i other):
        #<RETURN_SELF>
        """Element-wise inplace multiplication."""
        self.x *= other.x
        self.y *= other.y
        self.z *= other.z
        self.w *= other.w
        return self
    
    cdef inline Vec4i ___imul___1(self, py_int other):
        #<RETURN_SELF>
        """Element-wise inplace multiplication with the same number for all elements."""
        self.x *= other
        self.y *= other
        self.z *= other
        self.w *= other
        return self
    
    def __imul__(self, object p0, /) -> Vec4i:
        if PyLong_Check(p0):
            return self.___imul___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec4i):
            return self.___imul___0(<Vec4i> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec4i | int, got {p0}")

    cdef inline Vec4i ___truediv___0(self, Vec4i other):
        """Element-wise division."""
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        vec.x = self.x / other.x
        vec.y = self.y / other.y
        vec.z = self.z / other.z
        vec.w = self.w / other.w
        return vec
    
    cdef inline Vec4i ___truediv___1(self, py_int other):
        """Element-wise division with the same number for all elements."""
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        vec.x = self.x / other
        vec.y = self.y / other
        vec.z = self.z / other
        vec.w = self.w / other
        return vec
    
    def __truediv__(self, object p0, /) -> Vec4i:
        if PyLong_Check(p0):
            return self.___truediv___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec4i):
            return self.___truediv___0(<Vec4i> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec4i | int, got {p0}")
    
    cdef inline Vec4i ___itruediv___0(self, Vec4i other):
        #<RETURN_SELF>
        """Element-wise inplace division."""
        self.x /= other.x
        self.y /= other.y
        self.z /= other.z
        self.w /= other.w
        return self
    
    cdef inline Vec4i ___itruediv___1(self, py_int other):
        #<RETURN_SELF>
        """Element-wise inplace division with the same number for all elements."""
        self.x /= other
        self.y /= other
        self.z /= other
        self.w /= other
        return self
    
    def __itruediv__(self, object p0, /) -> Vec4i:
        if PyLong_Check(p0):
            return self.___itruediv___1(PyLong_AsLongLong(p0))
        elif isinstance(p0, Vec4i):
            return self.___itruediv___0(<Vec4i> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec4i | int, got {p0}")


    def __matmul__(self, Vec4i other) -> py_int:
        """Dot product."""
        return self.x * other.x + self.y * other.y + self.z * other.z + self.w * other.w


    def __len__(self) -> int:
        """The number of dimensions (elements) of this vector."""
        return 4

    def __getitem__(self, int key) -> py_int:
        """Get the n-th element of this vector."""
        if key == 0:
            return self.x
        elif key == 1:
            return self.y
        elif key == 2:
            return self.z
        elif key == 3:
            return self.w
        else:
            raise KeyError(f"Vec4i index out of range: {key}")

    def __setitem__(self, int key, py_int value) -> None:
        """Set the n-th element of this vector."""
        if key == 0:
            self.x = value
        elif key == 1:
            self.y = value
        elif key == 2:
            self.z = value
        elif key == 3:
            self.w = value
        else:
            raise KeyError(f"Vec4i index out of range: {key}")

    def __iter__(self) -> _Vec4iiterator:
        """Create an iterator that yields all the elements of the vector in sequence.

        This creates a copy of all the elements of this vector,
        so modifying the vector won't affect already created iterators.
        """
        cdef _Vec4iiterator iterator = _Vec4iiterator.__new__(_Vec4iiterator)
        iterator.x = self.x
        iterator.y = self.y
        iterator.z = self.z
        iterator.w = self.w
        # iterator.vec = self
        return iterator


    @property
    def length(self) -> py_float:
        """The (Euclidean) length of this vector."""
        return sqrtl(<py_float> (self.x * self.x) + <py_float> (self.y * self.y) + <py_float> (self.z * self.z) + <py_float> (self.w * self.w))

    @property
    def length_sqr(self) -> py_float:
        """The squared Euclidean length of this vector."""
        return self.x * self.x + self.y * self.y + self.z * self.z + self.w * self.w

    def __or__(self, Vec4i other) -> py_float:
        """The (Euclidean) distance between two vectors."""
        cdef py_int dx = self.x - other.x
        cdef py_int dy = self.y - other.y
        cdef py_int dz = self.z - other.z
        cdef py_int dw = self.w - other.w
        return sqrtl(<py_float> (dx * dx + dy * dy + dz * dz + dw * dw))

    def distance_to(self, Vec4i other, /) -> py_float:
        """The (Euclidean) distance between two vectors."""
        cdef py_int dx = self.x - other.x
        cdef py_int dy = self.y - other.y
        cdef py_int dz = self.z - other.z
        cdef py_int dw = self.w - other.w
        return sqrtl(<py_float> (dx * dx + dy * dy + dz * dz + dw * dw))

    def distance_sqr_to(self, Vec4i other, /) -> py_float:
        """The squared Euclidean distance between two vectors."""
        cdef py_int dx = self.x - other.x
        cdef py_int dy = self.y - other.y
        cdef py_int dz = self.z - other.z
        cdef py_int dw = self.w - other.w
        return <py_float> (dx * dx + dy * dy + dz * dz + dw * dw)


    @property
    def xx(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        return vec
    
    @property
    def xy(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        return vec
    
    @property
    def xz(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        return vec
    
    @property
    def xw(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the X element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.w
        return vec
    
    @property
    def xo(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0
        return vec
    
    @property
    def xl(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1
        return vec
    
    @property
    def yx(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        return vec
    
    @property
    def yy(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        return vec
    
    @property
    def yz(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        return vec
    
    @property
    def yw(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Y element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.w
        return vec
    
    @property
    def yo(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0
        return vec
    
    @property
    def yl(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1
        return vec
    
    @property
    def zx(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        return vec
    
    @property
    def zy(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        return vec
    
    @property
    def zz(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        return vec
    
    @property
    def zw(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Z element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.w
        return vec
    
    @property
    def zo(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 0
        return vec
    
    @property
    def zl(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = 1
        return vec
    
    @property
    def wx(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the W element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.x
        return vec
    
    @property
    def wy(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the W element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.y
        return vec
    
    @property
    def wz(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the W element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.z
        return vec
    
    @property
    def ww(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the W element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.w
        return vec
    
    @property
    def wo(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the W element of this vector, and a zero."""
        vec.x = self.w
        vec.y = 0
        return vec
    
    @property
    def wl(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being the W element of this vector, and a one."""
        vec.x = self.w
        vec.y = 1
        return vec
    
    @property
    def ox(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being a zero, and the X element of this vector."""
        vec.x = 0
        vec.y = self.x
        return vec
    
    @property
    def oy(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being a zero, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.y
        return vec
    
    @property
    def oz(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being a zero, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.z
        return vec
    
    @property
    def ow(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being a zero, and the W element of this vector."""
        vec.x = 0
        vec.y = self.w
        return vec
    
    @property
    def lx(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being a one, and the X element of this vector."""
        vec.x = 1
        vec.y = self.x
        return vec
    
    @property
    def ly(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being a one, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.y
        return vec
    
    @property
    def lz(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being a one, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.z
        return vec
    
    @property
    def lw(self) -> Vec2i:
        cdef Vec2i vec = Vec2i.__new__(Vec2i)
        """Create a `Vec2i` with its elements being a one, and the W element of this vector."""
        vec.x = 1
        vec.y = self.w
        return vec
    
    @property
    def xxx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def xxy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def xxz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        return vec
    
    @property
    def xxw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.w
        return vec
    
    @property
    def xxo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0
        return vec
    
    @property
    def xxl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1
        return vec
    
    @property
    def xyx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def xyy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def xyz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        return vec
    
    @property
    def xyw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.w
        return vec
    
    @property
    def xyo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0
        return vec
    
    @property
    def xyl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1
        return vec
    
    @property
    def xzx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        return vec
    
    @property
    def xzy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        return vec
    
    @property
    def xzz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        return vec
    
    @property
    def xzw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.w
        return vec
    
    @property
    def xzo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0
        return vec
    
    @property
    def xzl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1
        return vec
    
    @property
    def xwx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.x
        return vec
    
    @property
    def xwy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.y
        return vec
    
    @property
    def xwz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.z
        return vec
    
    @property
    def xww(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.w
        return vec
    
    @property
    def xwo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the W element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 0
        return vec
    
    @property
    def xwl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, the W element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 1
        return vec
    
    @property
    def xox(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.x
        return vec
    
    @property
    def xoy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.y
        return vec
    
    @property
    def xoz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.z
        return vec
    
    @property
    def xow(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a zero, and the W element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.w
        return vec
    
    @property
    def xoo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = 0
        vec.z = 0
        return vec
    
    @property
    def xol(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = 0
        vec.z = 1
        return vec
    
    @property
    def xlx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.x
        return vec
    
    @property
    def xly(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.y
        return vec
    
    @property
    def xlz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.z
        return vec
    
    @property
    def xlw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a one, and the W element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.w
        return vec
    
    @property
    def xlo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = 1
        vec.z = 0
        return vec
    
    @property
    def xll(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the X element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = 1
        vec.z = 1
        return vec
    
    @property
    def yxx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def yxy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def yxz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        return vec
    
    @property
    def yxw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.w
        return vec
    
    @property
    def yxo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0
        return vec
    
    @property
    def yxl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1
        return vec
    
    @property
    def yyx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def yyy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def yyz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        return vec
    
    @property
    def yyw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.w
        return vec
    
    @property
    def yyo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0
        return vec
    
    @property
    def yyl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1
        return vec
    
    @property
    def yzx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        return vec
    
    @property
    def yzy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        return vec
    
    @property
    def yzz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        return vec
    
    @property
    def yzw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.w
        return vec
    
    @property
    def yzo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0
        return vec
    
    @property
    def yzl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1
        return vec
    
    @property
    def ywx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.x
        return vec
    
    @property
    def ywy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.y
        return vec
    
    @property
    def ywz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.z
        return vec
    
    @property
    def yww(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.w
        return vec
    
    @property
    def ywo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the W element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 0
        return vec
    
    @property
    def ywl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, the W element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 1
        return vec
    
    @property
    def yox(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.x
        return vec
    
    @property
    def yoy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.y
        return vec
    
    @property
    def yoz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.z
        return vec
    
    @property
    def yow(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a zero, and the W element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.w
        return vec
    
    @property
    def yoo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = 0
        vec.z = 0
        return vec
    
    @property
    def yol(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = 0
        vec.z = 1
        return vec
    
    @property
    def ylx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.x
        return vec
    
    @property
    def yly(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.y
        return vec
    
    @property
    def ylz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.z
        return vec
    
    @property
    def ylw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a one, and the W element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.w
        return vec
    
    @property
    def ylo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = 1
        vec.z = 0
        return vec
    
    @property
    def yll(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Y element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = 1
        vec.z = 1
        return vec
    
    @property
    def zxx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def zxy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def zxz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        return vec
    
    @property
    def zxw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.w
        return vec
    
    @property
    def zxo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0
        return vec
    
    @property
    def zxl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1
        return vec
    
    @property
    def zyx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def zyy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def zyz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        return vec
    
    @property
    def zyw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.w
        return vec
    
    @property
    def zyo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0
        return vec
    
    @property
    def zyl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1
        return vec
    
    @property
    def zzx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        return vec
    
    @property
    def zzy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        return vec
    
    @property
    def zzz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        return vec
    
    @property
    def zzw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.w
        return vec
    
    @property
    def zzo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0
        return vec
    
    @property
    def zzl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1
        return vec
    
    @property
    def zwx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.x
        return vec
    
    @property
    def zwy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.y
        return vec
    
    @property
    def zwz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.z
        return vec
    
    @property
    def zww(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.w
        return vec
    
    @property
    def zwo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the W element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 0
        return vec
    
    @property
    def zwl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, the W element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 1
        return vec
    
    @property
    def zox(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.x
        return vec
    
    @property
    def zoy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.y
        return vec
    
    @property
    def zoz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.z
        return vec
    
    @property
    def zow(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, a zero, and the W element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.w
        return vec
    
    @property
    def zoo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, a zero, and a zero."""
        vec.x = self.z
        vec.y = 0
        vec.z = 0
        return vec
    
    @property
    def zol(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, a zero, and a one."""
        vec.x = self.z
        vec.y = 0
        vec.z = 1
        return vec
    
    @property
    def zlx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.x
        return vec
    
    @property
    def zly(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.y
        return vec
    
    @property
    def zlz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.z
        return vec
    
    @property
    def zlw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, a one, and the W element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.w
        return vec
    
    @property
    def zlo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, a one, and a zero."""
        vec.x = self.z
        vec.y = 1
        vec.z = 0
        return vec
    
    @property
    def zll(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the Z element of this vector, a one, and a one."""
        vec.x = self.z
        vec.y = 1
        vec.z = 1
        return vec
    
    @property
    def wxx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def wxy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def wxz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.z
        return vec
    
    @property
    def wxw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.w
        return vec
    
    @property
    def wxo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the X element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 0
        return vec
    
    @property
    def wxl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the X element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 1
        return vec
    
    @property
    def wyx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def wyy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def wyz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.z
        return vec
    
    @property
    def wyw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.w
        return vec
    
    @property
    def wyo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 0
        return vec
    
    @property
    def wyl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the Y element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 1
        return vec
    
    @property
    def wzx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.x
        return vec
    
    @property
    def wzy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.y
        return vec
    
    @property
    def wzz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.z
        return vec
    
    @property
    def wzw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.w
        return vec
    
    @property
    def wzo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 0
        return vec
    
    @property
    def wzl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the Z element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 1
        return vec
    
    @property
    def wwx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.x
        return vec
    
    @property
    def wwy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.y
        return vec
    
    @property
    def wwz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.z
        return vec
    
    @property
    def www(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.w
        return vec
    
    @property
    def wwo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the W element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 0
        return vec
    
    @property
    def wwl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, the W element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 1
        return vec
    
    @property
    def wox(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, a zero, and the X element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.x
        return vec
    
    @property
    def woy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.y
        return vec
    
    @property
    def woz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.z
        return vec
    
    @property
    def wow(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, a zero, and the W element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.w
        return vec
    
    @property
    def woo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, a zero, and a zero."""
        vec.x = self.w
        vec.y = 0
        vec.z = 0
        return vec
    
    @property
    def wol(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, a zero, and a one."""
        vec.x = self.w
        vec.y = 0
        vec.z = 1
        return vec
    
    @property
    def wlx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, a one, and the X element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.x
        return vec
    
    @property
    def wly(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, a one, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.y
        return vec
    
    @property
    def wlz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, a one, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.z
        return vec
    
    @property
    def wlw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, a one, and the W element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.w
        return vec
    
    @property
    def wlo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, a one, and a zero."""
        vec.x = self.w
        vec.y = 1
        vec.z = 0
        return vec
    
    @property
    def wll(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being the W element of this vector, a one, and a one."""
        vec.x = self.w
        vec.y = 1
        vec.z = 1
        return vec
    
    @property
    def oxx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the X element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def oxy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def oxz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.z
        return vec
    
    @property
    def oxw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the X element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.w
        return vec
    
    @property
    def oxo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the X element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.x
        vec.z = 0
        return vec
    
    @property
    def oxl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the X element of this vector, and a one."""
        vec.x = 0
        vec.y = self.x
        vec.z = 1
        return vec
    
    @property
    def oyx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def oyy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def oyz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.z
        return vec
    
    @property
    def oyw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Y element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.w
        return vec
    
    @property
    def oyo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Y element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.y
        vec.z = 0
        return vec
    
    @property
    def oyl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Y element of this vector, and a one."""
        vec.x = 0
        vec.y = self.y
        vec.z = 1
        return vec
    
    @property
    def ozx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.x
        return vec
    
    @property
    def ozy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.y
        return vec
    
    @property
    def ozz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.z
        return vec
    
    @property
    def ozw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Z element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.w
        return vec
    
    @property
    def ozo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Z element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.z
        vec.z = 0
        return vec
    
    @property
    def ozl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the Z element of this vector, and a one."""
        vec.x = 0
        vec.y = self.z
        vec.z = 1
        return vec
    
    @property
    def owx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the W element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.x
        return vec
    
    @property
    def owy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the W element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.y
        return vec
    
    @property
    def owz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the W element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.z
        return vec
    
    @property
    def oww(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the W element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.w
        return vec
    
    @property
    def owo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the W element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.w
        vec.z = 0
        return vec
    
    @property
    def owl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, the W element of this vector, and a one."""
        vec.x = 0
        vec.y = self.w
        vec.z = 1
        return vec
    
    @property
    def oox(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, a zero, and the X element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.x
        return vec
    
    @property
    def ooy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, a zero, and the Y element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.y
        return vec
    
    @property
    def ooz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, a zero, and the Z element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.z
        return vec
    
    @property
    def oow(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, a zero, and the W element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.w
        return vec
    
    @property
    def olx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, a one, and the X element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.x
        return vec
    
    @property
    def oly(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, a one, and the Y element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.y
        return vec
    
    @property
    def olz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, a one, and the Z element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.z
        return vec
    
    @property
    def olw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a zero, a one, and the W element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.w
        return vec
    
    @property
    def lxx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the X element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.x
        return vec
    
    @property
    def lxy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the X element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.y
        return vec
    
    @property
    def lxz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the X element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.z
        return vec
    
    @property
    def lxw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the X element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.w
        return vec
    
    @property
    def lxo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the X element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.x
        vec.z = 0
        return vec
    
    @property
    def lxl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the X element of this vector, and a one."""
        vec.x = 1
        vec.y = self.x
        vec.z = 1
        return vec
    
    @property
    def lyx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Y element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.x
        return vec
    
    @property
    def lyy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.y
        return vec
    
    @property
    def lyz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.z
        return vec
    
    @property
    def lyw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Y element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.w
        return vec
    
    @property
    def lyo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Y element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.y
        vec.z = 0
        return vec
    
    @property
    def lyl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Y element of this vector, and a one."""
        vec.x = 1
        vec.y = self.y
        vec.z = 1
        return vec
    
    @property
    def lzx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Z element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.x
        return vec
    
    @property
    def lzy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.y
        return vec
    
    @property
    def lzz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.z
        return vec
    
    @property
    def lzw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Z element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.w
        return vec
    
    @property
    def lzo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Z element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.z
        vec.z = 0
        return vec
    
    @property
    def lzl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the Z element of this vector, and a one."""
        vec.x = 1
        vec.y = self.z
        vec.z = 1
        return vec
    
    @property
    def lwx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the W element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.x
        return vec
    
    @property
    def lwy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the W element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.y
        return vec
    
    @property
    def lwz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the W element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.z
        return vec
    
    @property
    def lww(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the W element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.w
        return vec
    
    @property
    def lwo(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the W element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.w
        vec.z = 0
        return vec
    
    @property
    def lwl(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, the W element of this vector, and a one."""
        vec.x = 1
        vec.y = self.w
        vec.z = 1
        return vec
    
    @property
    def lox(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, a zero, and the X element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.x
        return vec
    
    @property
    def loy(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, a zero, and the Y element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.y
        return vec
    
    @property
    def loz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, a zero, and the Z element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.z
        return vec
    
    @property
    def low(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, a zero, and the W element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.w
        return vec
    
    @property
    def llx(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, a one, and the X element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.x
        return vec
    
    @property
    def lly(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, a one, and the Y element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.y
        return vec
    
    @property
    def llz(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, a one, and the Z element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.z
        return vec
    
    @property
    def llw(self) -> Vec3i:
        cdef Vec3i vec = Vec3i.__new__(Vec3i)
        """Create a `Vec3i` with its elements being a one, a one, and the W element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.w
        return vec
    
    @property
    def xxxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xxxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xxxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def xxxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def xxxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def xxxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def xxyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xxyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xxyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def xxyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def xxyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def xxyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def xxzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def xxzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def xxzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def xxzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def xxzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def xxzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def xxwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def xxwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def xxwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def xxww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def xxwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the W element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def xxwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, the W element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def xxox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def xxoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def xxoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def xxow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a zero, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def xxoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def xxol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def xxlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def xxly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def xxlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def xxlw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a one, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def xxlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def xxll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the X element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = self.x
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def xyxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xyxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xyxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def xyxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def xyxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def xyxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def xyyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xyyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xyyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def xyyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def xyyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def xyyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def xyzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def xyzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def xyzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def xyzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @xyzw.setter
    def xyzw(self, Vec4i vec) -> None:
        """Set the value of the X, Y, Z and W elements of this vector to the value of the elements of the other vector, respectively."""
        self.x = vec.x
        self.y = vec.y
        self.z = vec.z
        self.w = vec.w
    
    @property
    def xyzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def xyzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def xywx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def xywy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def xywz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @xywz.setter
    def xywz(self, Vec4i vec) -> None:
        """Set the value of the X, Y, W and Z elements of this vector to the value of the elements of the other vector, respectively."""
        self.x = vec.x
        self.y = vec.y
        self.w = vec.z
        self.z = vec.w
    
    @property
    def xyww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def xywo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the W element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def xywl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, the W element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def xyox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def xyoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def xyoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def xyow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a zero, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def xyoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def xyol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def xylx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def xyly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def xylz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def xylw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a one, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def xylo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def xyll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Y element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = self.y
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def xzxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xzxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xzxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def xzxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def xzxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def xzxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def xzyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xzyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xzyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def xzyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @xzyw.setter
    def xzyw(self, Vec4i vec) -> None:
        """Set the value of the X, Z, Y and W elements of this vector to the value of the elements of the other vector, respectively."""
        self.x = vec.x
        self.z = vec.y
        self.y = vec.z
        self.w = vec.w
    
    @property
    def xzyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def xzyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def xzzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def xzzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def xzzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def xzzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def xzzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def xzzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def xzwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def xzwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @xzwy.setter
    def xzwy(self, Vec4i vec) -> None:
        """Set the value of the X, Z, W and Y elements of this vector to the value of the elements of the other vector, respectively."""
        self.x = vec.x
        self.z = vec.y
        self.w = vec.z
        self.y = vec.w
    
    @property
    def xzwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def xzww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def xzwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the W element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def xzwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, the W element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def xzox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def xzoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def xzoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def xzow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, a zero, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def xzoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def xzol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def xzlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def xzly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def xzlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def xzlw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, a one, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def xzlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def xzll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the Z element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = self.z
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def xwxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xwxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xwxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def xwxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def xwxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def xwxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def xwyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xwyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xwyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @xwyz.setter
    def xwyz(self, Vec4i vec) -> None:
        """Set the value of the X, W, Y and Z elements of this vector to the value of the elements of the other vector, respectively."""
        self.x = vec.x
        self.w = vec.y
        self.y = vec.z
        self.z = vec.w
    
    @property
    def xwyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def xwyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def xwyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def xwzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def xwzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @xwzy.setter
    def xwzy(self, Vec4i vec) -> None:
        """Set the value of the X, W, Z and Y elements of this vector to the value of the elements of the other vector, respectively."""
        self.x = vec.x
        self.w = vec.y
        self.z = vec.z
        self.y = vec.w
    
    @property
    def xwzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def xwzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def xwzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def xwzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def xwwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def xwwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def xwwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def xwww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def xwwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the W element of this vector, and a zero."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def xwwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, the W element of this vector, and a one."""
        vec.x = self.x
        vec.y = self.w
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def xwox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def xwoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def xwoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def xwow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, a zero, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def xwoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, a zero, and a zero."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def xwol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, a zero, and a one."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def xwlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def xwly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def xwlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def xwlw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, a one, and the W element of this vector."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def xwlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, a one, and a zero."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def xwll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, the W element of this vector, a one, and a one."""
        vec.x = self.x
        vec.y = self.w
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def xoxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xoxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xoxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def xoxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the X element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def xoxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def xoxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def xoyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xoyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xoyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def xoyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Y element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def xoyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def xoyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def xozx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def xozy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def xozz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def xozw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Z element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def xozo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def xozl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def xowx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the W element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def xowy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the W element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def xowz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the W element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def xoww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the W element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def xowo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the W element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def xowl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, the W element of this vector, and a one."""
        vec.x = self.x
        vec.y = 0
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def xoox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def xooy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def xooz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def xoow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a zero, and the W element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def xooo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a zero, and a zero."""
        vec.x = self.x
        vec.y = 0
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def xool(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a zero, and a one."""
        vec.x = self.x
        vec.y = 0
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def xolx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def xoly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def xolz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def xolw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a one, and the W element of this vector."""
        vec.x = self.x
        vec.y = 0
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def xolo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a one, and a zero."""
        vec.x = self.x
        vec.y = 0
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def xoll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a zero, a one, and a one."""
        vec.x = self.x
        vec.y = 0
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def xlxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the X element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def xlxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def xlxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the X element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def xlxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the X element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def xlxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the X element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def xlxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the X element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def xlyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def xlyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def xlyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def xlyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Y element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def xlyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Y element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def xlyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Y element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def xlzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Z element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def xlzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def xlzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def xlzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Z element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def xlzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Z element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def xlzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the Z element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def xlwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the W element of this vector, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def xlwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the W element of this vector, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def xlwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the W element of this vector, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def xlww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the W element of this vector, and the W element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def xlwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the W element of this vector, and a zero."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def xlwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, the W element of this vector, and a one."""
        vec.x = self.x
        vec.y = 1
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def xlox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a zero, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def xloy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a zero, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def xloz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a zero, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def xlow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a zero, and the W element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def xloo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a zero, and a zero."""
        vec.x = self.x
        vec.y = 1
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def xlol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a zero, and a one."""
        vec.x = self.x
        vec.y = 1
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def xllx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a one, and the X element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def xlly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a one, and the Y element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def xllz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a one, and the Z element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def xllw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a one, and the W element of this vector."""
        vec.x = self.x
        vec.y = 1
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def xllo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a one, and a zero."""
        vec.x = self.x
        vec.y = 1
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def xlll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the X element of this vector, a one, a one, and a one."""
        vec.x = self.x
        vec.y = 1
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def yxxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def yxxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def yxxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def yxxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def yxxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def yxxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def yxyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def yxyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def yxyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def yxyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def yxyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def yxyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def yxzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def yxzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def yxzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def yxzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @yxzw.setter
    def yxzw(self, Vec4i vec) -> None:
        """Set the value of the Y, X, Z and W elements of this vector to the value of the elements of the other vector, respectively."""
        self.y = vec.x
        self.x = vec.y
        self.z = vec.z
        self.w = vec.w
    
    @property
    def yxzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def yxzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def yxwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def yxwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def yxwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @yxwz.setter
    def yxwz(self, Vec4i vec) -> None:
        """Set the value of the Y, X, W and Z elements of this vector to the value of the elements of the other vector, respectively."""
        self.y = vec.x
        self.x = vec.y
        self.w = vec.z
        self.z = vec.w
    
    @property
    def yxww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def yxwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the W element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def yxwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, the W element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def yxox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def yxoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def yxoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def yxow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a zero, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def yxoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def yxol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def yxlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def yxly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def yxlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def yxlw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a one, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def yxlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def yxll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the X element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = self.x
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def yyxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def yyxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def yyxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def yyxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def yyxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def yyxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def yyyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def yyyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def yyyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def yyyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def yyyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def yyyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def yyzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def yyzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def yyzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def yyzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def yyzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def yyzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def yywx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def yywy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def yywz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def yyww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def yywo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the W element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def yywl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, the W element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def yyox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def yyoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def yyoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def yyow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a zero, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def yyoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def yyol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def yylx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def yyly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def yylz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def yylw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a one, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def yylo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def yyll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Y element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = self.y
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def yzxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def yzxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def yzxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def yzxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @yzxw.setter
    def yzxw(self, Vec4i vec) -> None:
        """Set the value of the Y, Z, X and W elements of this vector to the value of the elements of the other vector, respectively."""
        self.y = vec.x
        self.z = vec.y
        self.x = vec.z
        self.w = vec.w
    
    @property
    def yzxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def yzxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def yzyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def yzyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def yzyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def yzyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def yzyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def yzyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def yzzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def yzzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def yzzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def yzzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def yzzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def yzzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def yzwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @yzwx.setter
    def yzwx(self, Vec4i vec) -> None:
        """Set the value of the Y, Z, W and X elements of this vector to the value of the elements of the other vector, respectively."""
        self.y = vec.x
        self.z = vec.y
        self.w = vec.z
        self.x = vec.w
    
    @property
    def yzwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def yzwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def yzww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def yzwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the W element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def yzwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, the W element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def yzox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def yzoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def yzoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def yzow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, a zero, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def yzoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def yzol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def yzlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def yzly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def yzlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def yzlw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, a one, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def yzlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def yzll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the Z element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = self.z
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def ywxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def ywxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def ywxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @ywxz.setter
    def ywxz(self, Vec4i vec) -> None:
        """Set the value of the Y, W, X and Z elements of this vector to the value of the elements of the other vector, respectively."""
        self.y = vec.x
        self.w = vec.y
        self.x = vec.z
        self.z = vec.w
    
    @property
    def ywxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def ywxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def ywxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def ywyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def ywyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def ywyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def ywyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def ywyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def ywyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def ywzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @ywzx.setter
    def ywzx(self, Vec4i vec) -> None:
        """Set the value of the Y, W, Z and X elements of this vector to the value of the elements of the other vector, respectively."""
        self.y = vec.x
        self.w = vec.y
        self.z = vec.z
        self.x = vec.w
    
    @property
    def ywzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def ywzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def ywzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def ywzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def ywzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def ywwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def ywwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def ywwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def ywww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def ywwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the W element of this vector, and a zero."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def ywwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, the W element of this vector, and a one."""
        vec.x = self.y
        vec.y = self.w
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def ywox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def ywoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def ywoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def ywow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, a zero, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def ywoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, a zero, and a zero."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def ywol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, a zero, and a one."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def ywlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def ywly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def ywlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def ywlw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, a one, and the W element of this vector."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def ywlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, a one, and a zero."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def ywll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, the W element of this vector, a one, and a one."""
        vec.x = self.y
        vec.y = self.w
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def yoxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def yoxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def yoxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def yoxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the X element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def yoxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def yoxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def yoyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def yoyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def yoyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def yoyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Y element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def yoyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def yoyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def yozx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def yozy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def yozz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def yozw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Z element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def yozo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def yozl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def yowx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the W element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def yowy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the W element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def yowz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the W element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def yoww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the W element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def yowo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the W element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def yowl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, the W element of this vector, and a one."""
        vec.x = self.y
        vec.y = 0
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def yoox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def yooy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def yooz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def yoow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a zero, and the W element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def yooo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a zero, and a zero."""
        vec.x = self.y
        vec.y = 0
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def yool(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a zero, and a one."""
        vec.x = self.y
        vec.y = 0
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def yolx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def yoly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def yolz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def yolw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a one, and the W element of this vector."""
        vec.x = self.y
        vec.y = 0
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def yolo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a one, and a zero."""
        vec.x = self.y
        vec.y = 0
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def yoll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a zero, a one, and a one."""
        vec.x = self.y
        vec.y = 0
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def ylxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the X element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def ylxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def ylxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the X element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def ylxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the X element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def ylxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the X element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def ylxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the X element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def ylyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def ylyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def ylyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def ylyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Y element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def ylyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Y element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def ylyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Y element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def ylzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Z element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def ylzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def ylzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def ylzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Z element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def ylzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Z element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def ylzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the Z element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def ylwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the W element of this vector, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def ylwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the W element of this vector, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def ylwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the W element of this vector, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def ylww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the W element of this vector, and the W element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def ylwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the W element of this vector, and a zero."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def ylwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, the W element of this vector, and a one."""
        vec.x = self.y
        vec.y = 1
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def ylox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a zero, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def yloy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a zero, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def yloz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a zero, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def ylow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a zero, and the W element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def yloo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a zero, and a zero."""
        vec.x = self.y
        vec.y = 1
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def ylol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a zero, and a one."""
        vec.x = self.y
        vec.y = 1
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def yllx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a one, and the X element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def ylly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a one, and the Y element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def yllz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a one, and the Z element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def yllw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a one, and the W element of this vector."""
        vec.x = self.y
        vec.y = 1
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def yllo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a one, and a zero."""
        vec.x = self.y
        vec.y = 1
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def ylll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Y element of this vector, a one, a one, and a one."""
        vec.x = self.y
        vec.y = 1
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def zxxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def zxxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def zxxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def zxxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def zxxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def zxxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def zxyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def zxyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def zxyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def zxyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @zxyw.setter
    def zxyw(self, Vec4i vec) -> None:
        """Set the value of the Z, X, Y and W elements of this vector to the value of the elements of the other vector, respectively."""
        self.z = vec.x
        self.x = vec.y
        self.y = vec.z
        self.w = vec.w
    
    @property
    def zxyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def zxyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def zxzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def zxzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def zxzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def zxzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def zxzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def zxzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def zxwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def zxwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @zxwy.setter
    def zxwy(self, Vec4i vec) -> None:
        """Set the value of the Z, X, W and Y elements of this vector to the value of the elements of the other vector, respectively."""
        self.z = vec.x
        self.x = vec.y
        self.w = vec.z
        self.y = vec.w
    
    @property
    def zxwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def zxww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def zxwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the W element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def zxwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, the W element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def zxox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def zxoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def zxoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def zxow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, a zero, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def zxoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, a zero, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def zxol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, a zero, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def zxlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def zxly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def zxlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def zxlw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, a one, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def zxlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, a one, and a zero."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def zxll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the X element of this vector, a one, and a one."""
        vec.x = self.z
        vec.y = self.x
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def zyxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def zyxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def zyxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def zyxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @zyxw.setter
    def zyxw(self, Vec4i vec) -> None:
        """Set the value of the Z, Y, X and W elements of this vector to the value of the elements of the other vector, respectively."""
        self.z = vec.x
        self.y = vec.y
        self.x = vec.z
        self.w = vec.w
    
    @property
    def zyxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def zyxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def zyyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def zyyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def zyyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def zyyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def zyyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def zyyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def zyzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def zyzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def zyzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def zyzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def zyzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def zyzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def zywx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @zywx.setter
    def zywx(self, Vec4i vec) -> None:
        """Set the value of the Z, Y, W and X elements of this vector to the value of the elements of the other vector, respectively."""
        self.z = vec.x
        self.y = vec.y
        self.w = vec.z
        self.x = vec.w
    
    @property
    def zywy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def zywz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def zyww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def zywo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the W element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def zywl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, the W element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def zyox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def zyoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def zyoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def zyow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, a zero, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def zyoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, a zero, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def zyol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, a zero, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def zylx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def zyly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def zylz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def zylw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, a one, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def zylo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, a one, and a zero."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def zyll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Y element of this vector, a one, and a one."""
        vec.x = self.z
        vec.y = self.y
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def zzxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def zzxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def zzxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def zzxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def zzxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def zzxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def zzyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def zzyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def zzyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def zzyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def zzyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def zzyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def zzzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def zzzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def zzzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def zzzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def zzzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def zzzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def zzwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def zzwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def zzwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def zzww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def zzwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the W element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def zzwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, the W element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def zzox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def zzoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def zzoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def zzow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, a zero, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def zzoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, a zero, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def zzol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, a zero, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def zzlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def zzly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def zzlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def zzlw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, a one, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def zzlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, a one, and a zero."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def zzll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the Z element of this vector, a one, and a one."""
        vec.x = self.z
        vec.y = self.z
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def zwxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def zwxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @zwxy.setter
    def zwxy(self, Vec4i vec) -> None:
        """Set the value of the Z, W, X and Y elements of this vector to the value of the elements of the other vector, respectively."""
        self.z = vec.x
        self.w = vec.y
        self.x = vec.z
        self.y = vec.w
    
    @property
    def zwxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def zwxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def zwxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def zwxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def zwyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @zwyx.setter
    def zwyx(self, Vec4i vec) -> None:
        """Set the value of the Z, W, Y and X elements of this vector to the value of the elements of the other vector, respectively."""
        self.z = vec.x
        self.w = vec.y
        self.y = vec.z
        self.x = vec.w
    
    @property
    def zwyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def zwyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def zwyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def zwyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def zwyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def zwzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def zwzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def zwzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def zwzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def zwzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def zwzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def zwwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def zwwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def zwwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def zwww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def zwwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the W element of this vector, and a zero."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def zwwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, the W element of this vector, and a one."""
        vec.x = self.z
        vec.y = self.w
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def zwox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def zwoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def zwoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def zwow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, a zero, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def zwoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, a zero, and a zero."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def zwol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, a zero, and a one."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def zwlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def zwly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def zwlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def zwlw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, a one, and the W element of this vector."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def zwlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, a one, and a zero."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def zwll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, the W element of this vector, a one, and a one."""
        vec.x = self.z
        vec.y = self.w
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def zoxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def zoxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def zoxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def zoxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the X element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def zoxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def zoxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def zoyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def zoyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def zoyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def zoyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the Y element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def zoyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def zoyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def zozx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def zozy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def zozz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def zozw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the Z element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def zozo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def zozl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def zowx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the W element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def zowy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the W element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def zowz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the W element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def zoww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the W element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def zowo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the W element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def zowl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, the W element of this vector, and a one."""
        vec.x = self.z
        vec.y = 0
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def zoox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def zooy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def zooz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def zoow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, a zero, and the W element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def zooo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, a zero, and a zero."""
        vec.x = self.z
        vec.y = 0
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def zool(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, a zero, and a one."""
        vec.x = self.z
        vec.y = 0
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def zolx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def zoly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def zolz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def zolw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, a one, and the W element of this vector."""
        vec.x = self.z
        vec.y = 0
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def zolo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, a one, and a zero."""
        vec.x = self.z
        vec.y = 0
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def zoll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a zero, a one, and a one."""
        vec.x = self.z
        vec.y = 0
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def zlxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the X element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def zlxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def zlxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the X element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def zlxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the X element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def zlxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the X element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def zlxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the X element of this vector, and a one."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def zlyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def zlyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def zlyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def zlyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the Y element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def zlyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the Y element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def zlyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the Y element of this vector, and a one."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def zlzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the Z element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def zlzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def zlzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def zlzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the Z element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def zlzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the Z element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def zlzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the Z element of this vector, and a one."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def zlwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the W element of this vector, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def zlwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the W element of this vector, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def zlwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the W element of this vector, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def zlww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the W element of this vector, and the W element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def zlwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the W element of this vector, and a zero."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def zlwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, the W element of this vector, and a one."""
        vec.x = self.z
        vec.y = 1
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def zlox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, a zero, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def zloy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, a zero, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def zloz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, a zero, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def zlow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, a zero, and the W element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def zloo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, a zero, and a zero."""
        vec.x = self.z
        vec.y = 1
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def zlol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, a zero, and a one."""
        vec.x = self.z
        vec.y = 1
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def zllx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, a one, and the X element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def zlly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, a one, and the Y element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def zllz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, a one, and the Z element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def zllw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, a one, and the W element of this vector."""
        vec.x = self.z
        vec.y = 1
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def zllo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, a one, and a zero."""
        vec.x = self.z
        vec.y = 1
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def zlll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the Z element of this vector, a one, a one, and a one."""
        vec.x = self.z
        vec.y = 1
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def wxxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def wxxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def wxxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def wxxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def wxxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def wxxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the X element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def wxyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def wxyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def wxyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @wxyz.setter
    def wxyz(self, Vec4i vec) -> None:
        """Set the value of the W, X, Y and Z elements of this vector to the value of the elements of the other vector, respectively."""
        self.w = vec.x
        self.x = vec.y
        self.y = vec.z
        self.z = vec.w
    
    @property
    def wxyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def wxyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def wxyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def wxzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def wxzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @wxzy.setter
    def wxzy(self, Vec4i vec) -> None:
        """Set the value of the W, X, Z and Y elements of this vector to the value of the elements of the other vector, respectively."""
        self.w = vec.x
        self.x = vec.y
        self.z = vec.z
        self.y = vec.w
    
    @property
    def wxzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def wxzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def wxzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def wxzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the Z element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def wxwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def wxwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def wxwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def wxww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def wxwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the W element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def wxwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, the W element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.x
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def wxox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def wxoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def wxoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def wxow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, a zero, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def wxoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, a zero, and a zero."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def wxol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, a zero, and a one."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def wxlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, a one, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def wxly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def wxlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, a one, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def wxlw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, a one, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def wxlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, a one, and a zero."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def wxll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the X element of this vector, a one, and a one."""
        vec.x = self.w
        vec.y = self.x
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def wyxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def wyxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def wyxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @wyxz.setter
    def wyxz(self, Vec4i vec) -> None:
        """Set the value of the W, Y, X and Z elements of this vector to the value of the elements of the other vector, respectively."""
        self.w = vec.x
        self.y = vec.y
        self.x = vec.z
        self.z = vec.w
    
    @property
    def wyxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def wyxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def wyxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def wyyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def wyyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def wyyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def wyyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def wyyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def wyyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def wyzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @wyzx.setter
    def wyzx(self, Vec4i vec) -> None:
        """Set the value of the W, Y, Z and X elements of this vector to the value of the elements of the other vector, respectively."""
        self.w = vec.x
        self.y = vec.y
        self.z = vec.z
        self.x = vec.w
    
    @property
    def wyzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def wyzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def wyzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def wyzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def wyzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def wywx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def wywy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def wywz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def wyww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def wywo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the W element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def wywl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, the W element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.y
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def wyox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def wyoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def wyoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def wyow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, a zero, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def wyoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, a zero, and a zero."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def wyol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, a zero, and a one."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def wylx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def wyly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def wylz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def wylw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, a one, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def wylo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, a one, and a zero."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def wyll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Y element of this vector, a one, and a one."""
        vec.x = self.w
        vec.y = self.y
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def wzxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def wzxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @wzxy.setter
    def wzxy(self, Vec4i vec) -> None:
        """Set the value of the W, Z, X and Y elements of this vector to the value of the elements of the other vector, respectively."""
        self.w = vec.x
        self.z = vec.y
        self.x = vec.z
        self.y = vec.w
    
    @property
    def wzxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def wzxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def wzxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def wzxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the X element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def wzyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @wzyx.setter
    def wzyx(self, Vec4i vec) -> None:
        """Set the value of the W, Z, Y and X elements of this vector to the value of the elements of the other vector, respectively."""
        self.w = vec.x
        self.z = vec.y
        self.y = vec.z
        self.x = vec.w
    
    @property
    def wzyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def wzyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def wzyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def wzyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def wzyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def wzzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def wzzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def wzzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def wzzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def wzzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def wzzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def wzwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def wzwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def wzwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def wzww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def wzwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the W element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def wzwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, the W element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.z
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def wzox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def wzoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def wzoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def wzow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, a zero, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def wzoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, a zero, and a zero."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def wzol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, a zero, and a one."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def wzlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, a one, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def wzly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def wzlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def wzlw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, a one, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def wzlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, a one, and a zero."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def wzll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the Z element of this vector, a one, and a one."""
        vec.x = self.w
        vec.y = self.z
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def wwxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def wwxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def wwxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def wwxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def wwxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the X element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def wwxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the X element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def wwyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def wwyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def wwyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def wwyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def wwyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the Y element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def wwyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the Y element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def wwzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def wwzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def wwzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def wwzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def wwzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the Z element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def wwzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the Z element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def wwwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def wwwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def wwwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def wwww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def wwwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the W element of this vector, and a zero."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def wwwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, the W element of this vector, and a one."""
        vec.x = self.w
        vec.y = self.w
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def wwox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, a zero, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def wwoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, a zero, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def wwoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, a zero, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def wwow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, a zero, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def wwoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, a zero, and a zero."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def wwol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, a zero, and a one."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def wwlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, a one, and the X element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def wwly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, a one, and the Y element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def wwlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, a one, and the Z element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def wwlw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, a one, and the W element of this vector."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def wwlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, a one, and a zero."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def wwll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, the W element of this vector, a one, and a one."""
        vec.x = self.w
        vec.y = self.w
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def woxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def woxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def woxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def woxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the X element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def woxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the X element of this vector, and a zero."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def woxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the X element of this vector, and a one."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def woyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def woyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def woyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def woyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the Y element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def woyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the Y element of this vector, and a zero."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def woyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the Y element of this vector, and a one."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def wozx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def wozy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def wozz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def wozw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the Z element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def wozo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the Z element of this vector, and a zero."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def wozl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the Z element of this vector, and a one."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def wowx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the W element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def wowy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the W element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def wowz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the W element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def woww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the W element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def wowo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the W element of this vector, and a zero."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def wowl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, the W element of this vector, and a one."""
        vec.x = self.w
        vec.y = 0
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def woox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, a zero, and the X element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def wooy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, a zero, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def wooz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, a zero, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def woow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, a zero, and the W element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def wooo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, a zero, and a zero."""
        vec.x = self.w
        vec.y = 0
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def wool(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, a zero, and a one."""
        vec.x = self.w
        vec.y = 0
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def wolx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, a one, and the X element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def woly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, a one, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def wolz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, a one, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def wolw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, a one, and the W element of this vector."""
        vec.x = self.w
        vec.y = 0
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def wolo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, a one, and a zero."""
        vec.x = self.w
        vec.y = 0
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def woll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a zero, a one, and a one."""
        vec.x = self.w
        vec.y = 0
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def wlxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the X element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def wlxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def wlxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the X element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def wlxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the X element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def wlxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the X element of this vector, and a zero."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def wlxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the X element of this vector, and a one."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def wlyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def wlyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def wlyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def wlyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the Y element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def wlyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the Y element of this vector, and a zero."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def wlyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the Y element of this vector, and a one."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def wlzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the Z element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def wlzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def wlzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def wlzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the Z element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def wlzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the Z element of this vector, and a zero."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def wlzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the Z element of this vector, and a one."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def wlwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the W element of this vector, and the X element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def wlwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the W element of this vector, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def wlwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the W element of this vector, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def wlww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the W element of this vector, and the W element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def wlwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the W element of this vector, and a zero."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def wlwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, the W element of this vector, and a one."""
        vec.x = self.w
        vec.y = 1
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def wlox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, a zero, and the X element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def wloy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, a zero, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def wloz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, a zero, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def wlow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, a zero, and the W element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def wloo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, a zero, and a zero."""
        vec.x = self.w
        vec.y = 1
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def wlol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, a zero, and a one."""
        vec.x = self.w
        vec.y = 1
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def wllx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, a one, and the X element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def wlly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, a one, and the Y element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def wllz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, a one, and the Z element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def wllw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, a one, and the W element of this vector."""
        vec.x = self.w
        vec.y = 1
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def wllo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, a one, and a zero."""
        vec.x = self.w
        vec.y = 1
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def wlll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being the W element of this vector, a one, a one, and a one."""
        vec.x = self.w
        vec.y = 1
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def oxxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def oxxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def oxxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def oxxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def oxxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def oxxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the X element of this vector, and a one."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def oxyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def oxyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def oxyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def oxyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def oxyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def oxyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def oxzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def oxzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def oxzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def oxzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def oxzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def oxzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the Z element of this vector, and a one."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def oxwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def oxwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def oxwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def oxww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def oxwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the W element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def oxwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, the W element of this vector, and a one."""
        vec.x = 0
        vec.y = self.x
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def oxox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def oxoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def oxoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def oxow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a zero, and the W element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def oxoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a zero, and a zero."""
        vec.x = 0
        vec.y = self.x
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def oxol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a zero, and a one."""
        vec.x = 0
        vec.y = self.x
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def oxlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a one, and the X element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def oxly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def oxlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a one, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def oxlw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a one, and the W element of this vector."""
        vec.x = 0
        vec.y = self.x
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def oxlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a one, and a zero."""
        vec.x = 0
        vec.y = self.x
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def oxll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the X element of this vector, a one, and a one."""
        vec.x = 0
        vec.y = self.x
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def oyxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def oyxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def oyxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def oyxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def oyxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def oyxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def oyyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def oyyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def oyyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def oyyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def oyyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def oyyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def oyzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def oyzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def oyzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def oyzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def oyzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def oyzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def oywx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def oywy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def oywz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def oyww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def oywo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the W element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def oywl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, the W element of this vector, and a one."""
        vec.x = 0
        vec.y = self.y
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def oyox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def oyoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def oyoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def oyow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a zero, and the W element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def oyoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a zero, and a zero."""
        vec.x = 0
        vec.y = self.y
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def oyol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a zero, and a one."""
        vec.x = 0
        vec.y = self.y
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def oylx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def oyly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def oylz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def oylw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a one, and the W element of this vector."""
        vec.x = 0
        vec.y = self.y
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def oylo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a one, and a zero."""
        vec.x = 0
        vec.y = self.y
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def oyll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Y element of this vector, a one, and a one."""
        vec.x = 0
        vec.y = self.y
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def ozxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def ozxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def ozxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def ozxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def ozxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def ozxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the X element of this vector, and a one."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def ozyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def ozyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def ozyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def ozyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def ozyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def ozyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def ozzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def ozzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def ozzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def ozzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def ozzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def ozzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def ozwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def ozwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def ozwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def ozww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def ozwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the W element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def ozwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, the W element of this vector, and a one."""
        vec.x = 0
        vec.y = self.z
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def ozox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def ozoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def ozoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def ozow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, a zero, and the W element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def ozoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, a zero, and a zero."""
        vec.x = 0
        vec.y = self.z
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def ozol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, a zero, and a one."""
        vec.x = 0
        vec.y = self.z
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def ozlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, a one, and the X element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def ozly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def ozlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def ozlw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, a one, and the W element of this vector."""
        vec.x = 0
        vec.y = self.z
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def ozlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, a one, and a zero."""
        vec.x = 0
        vec.y = self.z
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def ozll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the Z element of this vector, a one, and a one."""
        vec.x = 0
        vec.y = self.z
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def owxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def owxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def owxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def owxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def owxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the X element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def owxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the X element of this vector, and a one."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def owyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def owyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def owyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def owyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def owyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the Y element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def owyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the Y element of this vector, and a one."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def owzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def owzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def owzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def owzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def owzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the Z element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def owzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the Z element of this vector, and a one."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def owwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def owwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def owwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def owww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def owwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the W element of this vector, and a zero."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def owwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, the W element of this vector, and a one."""
        vec.x = 0
        vec.y = self.w
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def owox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, a zero, and the X element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def owoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, a zero, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def owoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, a zero, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def owow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, a zero, and the W element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def owoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, a zero, and a zero."""
        vec.x = 0
        vec.y = self.w
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def owol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, a zero, and a one."""
        vec.x = 0
        vec.y = self.w
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def owlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, a one, and the X element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def owly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, a one, and the Y element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def owlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, a one, and the Z element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def owlw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, a one, and the W element of this vector."""
        vec.x = 0
        vec.y = self.w
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def owlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, a one, and a zero."""
        vec.x = 0
        vec.y = self.w
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def owll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, the W element of this vector, a one, and a one."""
        vec.x = 0
        vec.y = self.w
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def ooxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def ooxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def ooxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def ooxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the X element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def ooxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the X element of this vector, and a zero."""
        vec.x = 0
        vec.y = 0
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def ooxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the X element of this vector, and a one."""
        vec.x = 0
        vec.y = 0
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def ooyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def ooyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def ooyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def ooyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Y element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def ooyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Y element of this vector, and a zero."""
        vec.x = 0
        vec.y = 0
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def ooyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Y element of this vector, and a one."""
        vec.x = 0
        vec.y = 0
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def oozx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def oozy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def oozz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def oozw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Z element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def oozo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Z element of this vector, and a zero."""
        vec.x = 0
        vec.y = 0
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def oozl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the Z element of this vector, and a one."""
        vec.x = 0
        vec.y = 0
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def oowx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the W element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def oowy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the W element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def oowz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the W element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def ooww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the W element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def oowo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the W element of this vector, and a zero."""
        vec.x = 0
        vec.y = 0
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def oowl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, the W element of this vector, and a one."""
        vec.x = 0
        vec.y = 0
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def ooox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, a zero, and the X element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def oooy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, a zero, and the Y element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def oooz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, a zero, and the Z element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def ooow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, a zero, and the W element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def oolx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, a one, and the X element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def ooly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, a one, and the Y element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def oolz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, a one, and the Z element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def oolw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a zero, a one, and the W element of this vector."""
        vec.x = 0
        vec.y = 0
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def olxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the X element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def olxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def olxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the X element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def olxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the X element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def olxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the X element of this vector, and a zero."""
        vec.x = 0
        vec.y = 1
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def olxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the X element of this vector, and a one."""
        vec.x = 0
        vec.y = 1
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def olyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def olyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def olyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def olyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Y element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def olyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Y element of this vector, and a zero."""
        vec.x = 0
        vec.y = 1
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def olyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Y element of this vector, and a one."""
        vec.x = 0
        vec.y = 1
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def olzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Z element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def olzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def olzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def olzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Z element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def olzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Z element of this vector, and a zero."""
        vec.x = 0
        vec.y = 1
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def olzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the Z element of this vector, and a one."""
        vec.x = 0
        vec.y = 1
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def olwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the W element of this vector, and the X element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def olwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the W element of this vector, and the Y element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def olwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the W element of this vector, and the Z element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def olww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the W element of this vector, and the W element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def olwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the W element of this vector, and a zero."""
        vec.x = 0
        vec.y = 1
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def olwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, the W element of this vector, and a one."""
        vec.x = 0
        vec.y = 1
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def olox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, a zero, and the X element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def oloy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, a zero, and the Y element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def oloz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, a zero, and the Z element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def olow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, a zero, and the W element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def ollx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, a one, and the X element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def olly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, a one, and the Y element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def ollz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, a one, and the Z element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def ollw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a zero, a one, a one, and the W element of this vector."""
        vec.x = 0
        vec.y = 1
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def lxxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def lxxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def lxxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def lxxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def lxxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the X element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def lxxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the X element of this vector, and a one."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def lxyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def lxyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def lxyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def lxyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def lxyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Y element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def lxyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Y element of this vector, and a one."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def lxzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def lxzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def lxzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def lxzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def lxzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Z element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def lxzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the Z element of this vector, and a one."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def lxwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def lxwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def lxwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def lxww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def lxwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the W element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def lxwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, the W element of this vector, and a one."""
        vec.x = 1
        vec.y = self.x
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def lxox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a zero, and the X element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def lxoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a zero, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def lxoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a zero, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def lxow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a zero, and the W element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def lxoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a zero, and a zero."""
        vec.x = 1
        vec.y = self.x
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def lxol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a zero, and a one."""
        vec.x = 1
        vec.y = self.x
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def lxlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a one, and the X element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def lxly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a one, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def lxlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a one, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def lxlw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a one, and the W element of this vector."""
        vec.x = 1
        vec.y = self.x
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def lxlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a one, and a zero."""
        vec.x = 1
        vec.y = self.x
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def lxll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the X element of this vector, a one, and a one."""
        vec.x = 1
        vec.y = self.x
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def lyxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def lyxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def lyxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def lyxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def lyxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the X element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def lyxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the X element of this vector, and a one."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def lyyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def lyyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def lyyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def lyyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def lyyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Y element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def lyyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Y element of this vector, and a one."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def lyzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def lyzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def lyzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def lyzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def lyzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Z element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def lyzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the Z element of this vector, and a one."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def lywx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def lywy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def lywz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def lyww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def lywo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the W element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def lywl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, the W element of this vector, and a one."""
        vec.x = 1
        vec.y = self.y
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def lyox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a zero, and the X element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def lyoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a zero, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def lyoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a zero, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def lyow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a zero, and the W element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def lyoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a zero, and a zero."""
        vec.x = 1
        vec.y = self.y
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def lyol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a zero, and a one."""
        vec.x = 1
        vec.y = self.y
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def lylx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a one, and the X element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def lyly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a one, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def lylz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a one, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def lylw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a one, and the W element of this vector."""
        vec.x = 1
        vec.y = self.y
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def lylo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a one, and a zero."""
        vec.x = 1
        vec.y = self.y
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def lyll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Y element of this vector, a one, and a one."""
        vec.x = 1
        vec.y = self.y
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def lzxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def lzxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def lzxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def lzxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def lzxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the X element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def lzxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the X element of this vector, and a one."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def lzyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def lzyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def lzyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def lzyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def lzyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the Y element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def lzyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the Y element of this vector, and a one."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def lzzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def lzzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def lzzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def lzzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def lzzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the Z element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def lzzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the Z element of this vector, and a one."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def lzwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def lzwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def lzwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def lzww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def lzwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the W element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def lzwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, the W element of this vector, and a one."""
        vec.x = 1
        vec.y = self.z
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def lzox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, a zero, and the X element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def lzoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, a zero, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def lzoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, a zero, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def lzow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, a zero, and the W element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def lzoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, a zero, and a zero."""
        vec.x = 1
        vec.y = self.z
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def lzol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, a zero, and a one."""
        vec.x = 1
        vec.y = self.z
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def lzlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, a one, and the X element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def lzly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, a one, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def lzlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, a one, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def lzlw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, a one, and the W element of this vector."""
        vec.x = 1
        vec.y = self.z
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def lzlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, a one, and a zero."""
        vec.x = 1
        vec.y = self.z
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def lzll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the Z element of this vector, a one, and a one."""
        vec.x = 1
        vec.y = self.z
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def lwxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the X element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def lwxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the X element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def lwxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the X element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def lwxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the X element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def lwxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the X element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def lwxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the X element of this vector, and a one."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def lwyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the Y element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def lwyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def lwyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def lwyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the Y element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def lwyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the Y element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def lwyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the Y element of this vector, and a one."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def lwzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the Z element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def lwzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def lwzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def lwzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the Z element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def lwzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the Z element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def lwzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the Z element of this vector, and a one."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def lwwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the W element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def lwwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the W element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def lwwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the W element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def lwww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the W element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def lwwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the W element of this vector, and a zero."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def lwwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, the W element of this vector, and a one."""
        vec.x = 1
        vec.y = self.w
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def lwox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, a zero, and the X element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def lwoy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, a zero, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def lwoz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, a zero, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def lwow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, a zero, and the W element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def lwoo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, a zero, and a zero."""
        vec.x = 1
        vec.y = self.w
        vec.z = 0
        vec.w = 0
        return vec
    
    @property
    def lwol(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, a zero, and a one."""
        vec.x = 1
        vec.y = self.w
        vec.z = 0
        vec.w = 1
        return vec
    
    @property
    def lwlx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, a one, and the X element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def lwly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, a one, and the Y element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def lwlz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, a one, and the Z element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def lwlw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, a one, and the W element of this vector."""
        vec.x = 1
        vec.y = self.w
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def lwlo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, a one, and a zero."""
        vec.x = 1
        vec.y = self.w
        vec.z = 1
        vec.w = 0
        return vec
    
    @property
    def lwll(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, the W element of this vector, a one, and a one."""
        vec.x = 1
        vec.y = self.w
        vec.z = 1
        vec.w = 1
        return vec
    
    @property
    def loxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the X element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def loxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the X element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def loxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the X element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def loxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the X element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def loxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the X element of this vector, and a zero."""
        vec.x = 1
        vec.y = 0
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def loxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the X element of this vector, and a one."""
        vec.x = 1
        vec.y = 0
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def loyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Y element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def loyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def loyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def loyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Y element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def loyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Y element of this vector, and a zero."""
        vec.x = 1
        vec.y = 0
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def loyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Y element of this vector, and a one."""
        vec.x = 1
        vec.y = 0
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def lozx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Z element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def lozy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def lozz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def lozw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Z element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def lozo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Z element of this vector, and a zero."""
        vec.x = 1
        vec.y = 0
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def lozl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the Z element of this vector, and a one."""
        vec.x = 1
        vec.y = 0
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def lowx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the W element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def lowy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the W element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def lowz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the W element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def loww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the W element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def lowo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the W element of this vector, and a zero."""
        vec.x = 1
        vec.y = 0
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def lowl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, the W element of this vector, and a one."""
        vec.x = 1
        vec.y = 0
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def loox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, a zero, and the X element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def looy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, a zero, and the Y element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def looz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, a zero, and the Z element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def loow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, a zero, and the W element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def lolx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, a one, and the X element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def loly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, a one, and the Y element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def lolz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, a one, and the Z element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def lolw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a zero, a one, and the W element of this vector."""
        vec.x = 1
        vec.y = 0
        vec.z = 1
        vec.w = self.w
        return vec
    
    @property
    def llxx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the X element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.x
        vec.w = self.x
        return vec
    
    @property
    def llxy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the X element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.x
        vec.w = self.y
        return vec
    
    @property
    def llxz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the X element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.x
        vec.w = self.z
        return vec
    
    @property
    def llxw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the X element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.x
        vec.w = self.w
        return vec
    
    @property
    def llxo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the X element of this vector, and a zero."""
        vec.x = 1
        vec.y = 1
        vec.z = self.x
        vec.w = 0
        return vec
    
    @property
    def llxl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the X element of this vector, and a one."""
        vec.x = 1
        vec.y = 1
        vec.z = self.x
        vec.w = 1
        return vec
    
    @property
    def llyx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Y element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.y
        vec.w = self.x
        return vec
    
    @property
    def llyy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Y element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.y
        vec.w = self.y
        return vec
    
    @property
    def llyz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Y element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.y
        vec.w = self.z
        return vec
    
    @property
    def llyw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Y element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.y
        vec.w = self.w
        return vec
    
    @property
    def llyo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Y element of this vector, and a zero."""
        vec.x = 1
        vec.y = 1
        vec.z = self.y
        vec.w = 0
        return vec
    
    @property
    def llyl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Y element of this vector, and a one."""
        vec.x = 1
        vec.y = 1
        vec.z = self.y
        vec.w = 1
        return vec
    
    @property
    def llzx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Z element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.z
        vec.w = self.x
        return vec
    
    @property
    def llzy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Z element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.z
        vec.w = self.y
        return vec
    
    @property
    def llzz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Z element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.z
        vec.w = self.z
        return vec
    
    @property
    def llzw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Z element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.z
        vec.w = self.w
        return vec
    
    @property
    def llzo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Z element of this vector, and a zero."""
        vec.x = 1
        vec.y = 1
        vec.z = self.z
        vec.w = 0
        return vec
    
    @property
    def llzl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the Z element of this vector, and a one."""
        vec.x = 1
        vec.y = 1
        vec.z = self.z
        vec.w = 1
        return vec
    
    @property
    def llwx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the W element of this vector, and the X element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.w
        vec.w = self.x
        return vec
    
    @property
    def llwy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the W element of this vector, and the Y element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.w
        vec.w = self.y
        return vec
    
    @property
    def llwz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the W element of this vector, and the Z element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.w
        vec.w = self.z
        return vec
    
    @property
    def llww(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the W element of this vector, and the W element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = self.w
        vec.w = self.w
        return vec
    
    @property
    def llwo(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the W element of this vector, and a zero."""
        vec.x = 1
        vec.y = 1
        vec.z = self.w
        vec.w = 0
        return vec
    
    @property
    def llwl(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, the W element of this vector, and a one."""
        vec.x = 1
        vec.y = 1
        vec.z = self.w
        vec.w = 1
        return vec
    
    @property
    def llox(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, a zero, and the X element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = 0
        vec.w = self.x
        return vec
    
    @property
    def lloy(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, a zero, and the Y element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = 0
        vec.w = self.y
        return vec
    
    @property
    def lloz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, a zero, and the Z element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = 0
        vec.w = self.z
        return vec
    
    @property
    def llow(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, a zero, and the W element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = 0
        vec.w = self.w
        return vec
    
    @property
    def lllx(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, a one, and the X element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = 1
        vec.w = self.x
        return vec
    
    @property
    def llly(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, a one, and the Y element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = 1
        vec.w = self.y
        return vec
    
    @property
    def lllz(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, a one, and the Z element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = 1
        vec.w = self.z
        return vec
    
    @property
    def lllw(self) -> Vec4i:
        cdef Vec4i vec = Vec4i.__new__(Vec4i)
        """Create a `Vec4i` with its elements being a one, a one, a one, and the W element of this vector."""
        vec.x = 1
        vec.y = 1
        vec.z = 1
        vec.w = self.w
        return vec


@cython.no_gc
@cython.final
@cython.freelist(8)
cdef class _Vec4iiterator:
    """Internal iterator class for Vec4i."""

    cdef public py_int x, y, z, w
    cdef short index


    def __next__(self) -> int:
        if self.index == 0:
            self.index += 1
            return self.x
        elif self.index == 1:
            self.index += 1
            return self.y
        elif self.index == 2:
            self.index += 1
            return self.z
        elif self.index == 3:
            self.index += 1
            return self.w
        raise StopIteration

    def __iter__(self) -> _Vec4iiterator:
        #<RETURN_SELF>
        return self

    def __length_hint__(self) -> int:
        return 4



########## transform_2d.pyx ##########
from libc.math cimport atan2l, sinl, cosl, sqrtl, NAN


@cython.auto_pickle(True)
@cython.freelist(1024)
@cython.no_gc
@cython.final
cdef class Transform2D:
    """2D linear transformation (2*3 matrix)."""

    cdef py_float xx, xy
    cdef py_float yx, yy
    cdef py_float ox, oy


    cdef inline void identity(self) noexcept:
        self.xx, self.xy = 1.0, 0.0
        self.yx, self.yy = 0.0, 1.0
        self.ox = self.oy = 0.0

    cdef inline void ___init___0(self) noexcept:
        """Create an identity transform."""
        self.identity()

    cdef inline void ___init___1(self, py_float xx, py_float xy, py_float yx, py_float yy, py_float ox, py_float oy) noexcept:
        """Create a transform from all the matrix elements."""
        self.xx = xx
        self.xy = xy
        self.yx = yx
        self.yy = yy
        self.ox = ox
        self.oy = oy

    cdef inline void ___init___2(self, Vec2 x, Vec2 y, Vec2 origin) noexcept:
        """Create a transform using two base vectors and the origin vector."""
        self.xx, self.xy = x.x, x.y
        self.yx, self.yy = y.x, y.y
        self.ox, self.oy = origin.x, origin.y

    cdef inline void ___init___3(self, Transform2D transform) noexcept:
        """Create a copy."""
        self.xx = transform.xx
        self.xy = transform.xy
        self.yx = transform.yx
        self.yy = transform.yy
        self.ox = transform.ox
        self.oy = transform.oy

    def __init__(self, object p0=None, object p1=None, object p2=None, object p3=None, object p4=None, object p5=None, /) -> None:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            if (PyFloat_Check(p1) or PyLong_Check(p1)):
                if (PyFloat_Check(p2) or PyLong_Check(p2)):
                    if (PyFloat_Check(p3) or PyLong_Check(p3)):
                        if (PyFloat_Check(p4) or PyLong_Check(p4)):
                            if (PyFloat_Check(p5) or PyLong_Check(p5)):
                                self.___init___1(PyFloat_AsDouble(p0), PyFloat_AsDouble(p1), PyFloat_AsDouble(p2), PyFloat_AsDouble(p3), PyFloat_AsDouble(p4), PyFloat_AsDouble(p5))
                                return
                            else:
                                raise TypeError(f"The 7th parameter expected float | int | None, got {p5}")
                        else:
                            raise TypeError(f"The 6th parameter expected float | int | None, got {p4}")
                    else:
                        raise TypeError(f"The 5th parameter expected float | int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected float | int | Vec2 | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected float | int | Vec2 | None, got {p1}")
        elif isinstance(p0, Vec2):
            if isinstance(p1, Vec2):
                if isinstance(p2, Vec2):
                    if p3 is None:
                        if p4 is None:
                            if p5 is None:
                                self.___init___2(<Vec2> p0, <Vec2> p1, <Vec2> p2)
                                return
                            else:
                                raise TypeError(f"The 7th parameter expected float | int | None, got {p5}")
                        else:
                            raise TypeError(f"The 6th parameter expected float | int | None, got {p4}")
                    else:
                        raise TypeError(f"The 5th parameter expected float | int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected float | int | Vec2 | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected float | int | Vec2 | None, got {p1}")
        elif isinstance(p0, Transform2D):
            if p1 is None:
                if p2 is None:
                    if p3 is None:
                        if p4 is None:
                            if p5 is None:
                                self.___init___3(<Transform2D> p0)
                                return
                            else:
                                raise TypeError(f"The 7th parameter expected float | int | None, got {p5}")
                        else:
                            raise TypeError(f"The 6th parameter expected float | int | None, got {p4}")
                    else:
                        raise TypeError(f"The 5th parameter expected float | int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected float | int | Vec2 | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected float | int | Vec2 | None, got {p1}")
        elif p0 is None:
            if p1 is None:
                if p2 is None:
                    if p3 is None:
                        if p4 is None:
                            if p5 is None:
                                self.___init___0()
                                return
                            else:
                                raise TypeError(f"The 7th parameter expected float | int | None, got {p5}")
                        else:
                            raise TypeError(f"The 6th parameter expected float | int | None, got {p4}")
                    else:
                        raise TypeError(f"The 5th parameter expected float | int | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected float | int | Vec2 | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected float | int | Vec2 | None, got {p1}")
        else:
            raise TypeError(f"The 2th parameter expected float | int | Vec2 | Transform2D | None, got {p0}")

    @staticmethod
    def translating(Vec2 translation, /) -> Transform2D:
        """Create a translation transform."""
        cdef Transform2D t = Transform2D.__new__(Transform2D)
        t.identity()
        t.ox, t.oy = translation.x, translation.y
        return t

    @staticmethod
    def rotating(py_float rotation, /, Vec2 origin = None) -> Transform2D:
        """Create a rotation transform."""
        cdef py_float c = cosl(rotation)
        cdef py_float s = sinl(rotation)
        cdef Transform2D t = Transform2D.__new__(Transform2D)
        t.xx = c
        t.xy = s
        t.yx = -s
        t.yy = c
        if origin is not None:
            t.ox, t.oy = origin.x, origin.y
        return t

    @staticmethod
    def scaling(Vec2 scale, /, Vec2 origin = None) -> Transform2D:
        """Create a scale transform."""
        cdef Transform2D t = Transform2D.__new__(Transform2D)
        t.xx = scale.x
        t.yy = scale.y
        if origin is not None:
            t.ox, t.oy = origin.x, origin.y
        return t

    cdef inline Transform2D copy(self):
        cdef Transform2D t = Transform2D.__new__(Transform2D)
        t.xx = self.xx
        t.xy = self.xy
        t.yx = self.yx
        t.yy = self.yy
        t.ox = self.ox
        t.oy = self.oy
        return t

    def __repr__(self) -> str:
        return f"⎡X: ({self.xx}, {self.xy})\n⎢Y: ({self.yx}, {self.yy})\n⎣O: ({self.ox}, {self.oy})"

    def __eq__(self, object other) -> bool:
        """Perform exact comparison.

        See Also: `Transform2D.is_close()`
        """
        if not isinstance(other, Transform2D):
            return False
        cdef Transform2D trans = <Transform2D> other
        return self.xx == trans.xx and self.xy == trans.xy and\
               self.yx == trans.yx and self.yy == trans.yy and\
               self.ox == trans.ox and self.oy == trans.oy

    def __ne__(self, object other) -> bool:
        """Perform exact comparison.

        See Also: `Transform2D.is_close()`
        """
        if not isinstance(other, Transform2D):
            return True
        cdef Transform2D trans = <Transform2D> other
        return self.xx != trans.xx or self.xy != trans.xy or \
               self.yx != trans.yx or self.yy != trans.yy or \
               self.ox != trans.ox or self.oy != trans.oy

    def is_close(self, Transform2D other, /, py_float rel_tol = DEFAULT_RELATIVE_TOLERANCE, py_float abs_tol = DEFAULT_ABSOLUTE_TOLERANCE) -> bool:
        """Determine if the two transforms are close enough.

        See Also: `math.is_close()`
        """
        return is_close(self.xx, other.xx, rel_tol, abs_tol) and \
               is_close(self.xy, other.xy, rel_tol, abs_tol) and \
               is_close(self.yx, other.yx, rel_tol, abs_tol) and \
               is_close(self.yy, other.yy, rel_tol, abs_tol) and \
               is_close(self.ox, other.ox, rel_tol, abs_tol) and \
               is_close(self.oy, other.oy, rel_tol, abs_tol)

    #TODO: Better hashing
    def __hash__(self) -> py_int:
        cdef py_int h = 0
        h ^= bitcast_float(self.xx)
        h ^= rotl_ratio(bitcast_float(self.xy), 1, 6)
        h ^= rotl_ratio(bitcast_float(self.yx), 2, 6)
        h ^= rotl_ratio(bitcast_float(self.yy), 3, 6)
        h ^= rotl_ratio(bitcast_float(self.ox), 4, 6)
        h ^= rotl_ratio(bitcast_float(self.oy), 5, 6)
        return h

    @property
    def x(self) -> Vec2:
        """Base vector X."""
        cdef Vec2 vec = Vec2.__new__(Vec2)
        vec.x = self.xx
        vec.y = self.xy
        return vec

    @property
    def y(self) -> Vec2:
        """Base vector Y."""
        cdef Vec2 vec = Vec2.__new__(Vec2)
        vec.x = self.yx
        vec.y = self.yy
        return vec

    @property
    def origin(self) -> Vec2:
        """Origin vector."""
        cdef Vec2 vec = Vec2.__new__(Vec2)
        vec.x = self.ox
        vec.y = self.oy
        return vec

    @x.setter
    def x(self, Vec2 value) -> None:
        """Set the X base of the matrix."""
        self.xx = value.x
        self.xy = value.y

    @y.setter
    def y(self, Vec2 value) -> None:
        """Set the Y base of the matrix."""
        self.yx = value.x
        self.yy = value.y

    @origin.setter
    def origin(self, Vec2 value) -> None:
        """Set the origin."""
        self.ox = value.x
        self.oy = value.y

    def __getitem__(self, py_int item) -> Vec2:
        """Get a column of the transformation matrix.

        0: Base vector X
        1: Base vector Y
        2: Origin vector
        """
        cdef Vec2 vec = Vec2.__new__(Vec2)

        if item == 0:
            vec.x = self.xx
            vec.y = self.xy
        elif item == 1:
            vec.x = self.yx
            vec.y = self.yy
        elif item == 2:
            vec.x = self.ox
            vec.y = self.oy
        else:
            raise IndexError(item)

        return vec

    def __setitem__(self, py_int key, Vec2 value) -> None:
        """Set a column of the transformation matrix.

        0: Base vector X
        1: Base vector Y
        2: Origin vector
        """

        if key == 0:
            self.xx = value.x
            self.xy = value.y
        elif key == 1:
            self.yx = value.x
            self.yy = value.y
        elif key == 2:
            self.ox = value.x
            self.oy = value.y
        else:
            raise IndexError(key)

    def __len__(self) -> py_int:
        """The amount of columns. Is always 3 for `Transform2D`s."""
        return 3

    cdef inline py_float tdotx(self, py_float x, py_float y) noexcept:
        return x * self.xx + y * self.yx

    cdef inline py_float mulx(self, py_float x, py_float y) noexcept:
        return self.tdotx(x, y) + self.ox

    cdef inline py_float tdoty(self, py_float x, py_float y) noexcept:
        return x * self.xy + y * self.yy

    cdef inline py_float muly(self, py_float x, py_float y) noexcept:
        return self.tdoty(x, y) + self.oy

    def __mul__(self, Vec2 other) -> Vec2:
        """Transform a copy of the vector.

        See Also: `Vec2.__mul__()`
        """
        cdef Vec2 vec = Vec2.__new__(Vec2)
        vec.x = self.mulx(other.x, other.y)
        vec.y = self.muly(other.x, other.y)
        return vec

    cdef inline Vec2 ___call___0(self, Vec2 other):
        """Transform a copy of the vector.
        
        See Also: `Vec2.__mul__()`
        """
        cdef Vec2 vec = Vec2.__new__(Vec2)
        vec.x = self.mulx(other.x, other.y)
        vec.y = self.muly(other.x, other.y)
        return vec

    cdef inline Transform2D ___call___1(self, Transform2D other):
        """Transform a copy of the passed in `Transform2D`."""
        cdef Transform2D t = Transform2D.__new__(Transform2D)
        t.xx = self.tdotx(other.xx, other.xy)
        t.xy = self.tdoty(other.xx, other.xy)
        t.yx = self.tdotx(other.yx, other.yy)
        t.yy = self.tdoty(other.yx, other.yy)
        t.ox = self.mulx(other.ox, other.oy)
        t.oy = self.muly(other.ox, other.oy)
        return t

    def __call__(self, object p0, /) -> Transform2D | Vec2:
        if isinstance(p0, Vec2):
            return self.___call___0(<Vec2> p0)
        elif isinstance(p0, Transform2D):
            return self.___call___1(<Transform2D> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec2 | Transform2D, got {p0}")

    def __matmul__(self, Transform2D other) -> Transform2D:
        """Transform a copy of the `Transform2D` on the right."""
        cdef Transform2D t = Transform2D.__new__(Transform2D)
        t.xx = self.tdotx(other.xx, other.xy)
        t.xy = self.tdoty(other.xx, other.xy)
        t.yx = self.tdotx(other.yx, other.yy)
        t.yy = self.tdoty(other.yx, other.yy)
        t.ox = self.mulx(other.ox, other.oy)
        t.oy = self.muly(other.ox, other.oy)
        return t

    def __imatmul__(self, Transform2D other) -> Transform2D:
        #<RETURN_SELF>
        """Transform this `Transform2D` inplace with the other `Transform2D`."""
        cdef py_float xx = other.tdotx(self.xx, self.xy)
        cdef py_float xy = other.tdoty(self.xx, self.xy)
        cdef py_float yx = other.tdotx(self.yx, self.yy)
        cdef py_float yy = other.tdoty(self.yx, self.yy)
        cdef py_float ox = other.mulx(self.ox, self.oy)
        cdef py_float oy = other.muly(self.ox, self.oy)
        self.xx, self.xy = xx, xy
        self.yx, self.yy = yx, yy
        self.ox, self.oy = ox, oy
        return self

    cdef inline py_float _determinant(self) noexcept:
        return self.xx * self.yy - self.xy * self.yx

    @property
    def determinant(self) -> py_float:
        """Compute the determinant of the matrix."""
        return self._determinant()

    def __invert__(self) -> Transform2D:
        """Get the invert transform.

        See Also: `Vec2.__mul__()`
        """
        cdef py_float i_det = 1.0 / self._determinant()
        cdef Transform2D t = Transform2D.__new__(Transform2D)
        t.xx = self.yy * +i_det
        t.xy = self.xy * -i_det
        t.yx = self.yx * -i_det
        t.yy = self.xx * +i_det
        t.ox = -t.tdotx(self.ox, self.oy)
        t.oy = -t.tdoty(self.ox, self.oy)
        return t


    cdef inline py_float get_rotation(self) noexcept:
        return atan2l(self.xy, self.xx)

    cdef inline void set_rotation(self, py_float rotation) noexcept:
        cdef py_float scale_x = self.get_scale_x()
        cdef py_float scale_y = self.get_scale_y()
        cdef py_float c = cosl(rotation)
        cdef py_float s = sinl(rotation)
        self.xx = c
        self.xy = s
        self.yx = -s
        self.yy = c
        self.set_scale_x(scale_x)
        self.set_scale_y(scale_y)

    cdef inline py_float get_scale_x(self) noexcept:
        return sqrtl(self.xx * self.xx + self.xy * self.xy)

    cdef inline py_float get_scale_y(self) noexcept:
        cdef py_float det = self._determinant()
        cdef py_float det_sign = 1.0 if det > 0.0 else -1.0 if det < 0.0 else 0.0 if det == 0.0 else NAN
        return sqrtl(self.yx * self.yx + self.yy * self.yy) * det_sign

    cdef inline void set_scale_x(self, py_float value) noexcept:
        cdef py_float m = value / sqrtl(self.xx * self.xx + self.xy * self.xy)
        self.xx *= m
        self.xy *= m

    cdef inline void set_scale_y(self, py_float value) noexcept:
        cdef py_float m = value / sqrtl(self.yx * self.yx + self.yy * self.yy)
        self.yx *= m
        self.yy *= m

    @property
    def rotation(self) -> py_float:
        """Get the rotation angle this transform represents."""
        return self.get_rotation()

    @rotation.setter
    def rotation(self, py_float value) -> None:
        """Set the rotation angle this transform represents.

        See Also: `Transform2D.rotating()`
        """
        self.set_rotation(value)

    # @property
    # def scale(self) -> _T2ScaleProxy:
    #     cdef _T2ScaleProxy proxy = _T2ScaleProxy.__new__(_T2ScaleProxy)
    #     proxy.transform = self
    #     return proxy
    @property
    def scale(self) -> Vec2:
        """Get the scaling transformation this transform represents."""
        cdef Vec2 vec = Vec2.__new__(Vec2)
        vec.x = self.get_scale_x()
        vec.y = self.get_scale_y()
        return vec

    @scale.setter
    def scale(self, Vec2 value) -> None:
        """Set the scaling transformation this transform represents.

        See Also: `Transform2D.scaling()`
        """
        self.set_scale_x(value.x)
        self.set_scale_y(value.y)


    def translate_ip(self, Vec2 translation, /) -> Transform2D:
        #<RETURN_SELF>
        """Apply translation to this transform inplace."""
        self.ox = translation.x
        self.oy = translation.y
        return self

    def translated(self, Vec2 translation, /) -> Transform2D:
        """Apply translation to a copy of this transform."""
        cdef Transform2D t = self.copy()
        t.translate_ip(translation)
        return t

    def rotate_ip(self, py_float rotation, /) -> Transform2D:
        #<RETURN_SELF>
        """Apply rotation to this transform inplace."""
        self.__imatmul__(Transform2D.rotating(rotation))
        return self

    def rotated(self, py_float rotation, /) -> Transform2D:
        """Apply rotation to a copy of this transform."""
        cdef Transform2D t = self.copy()
        t.rotate_ip(rotation)
        return t

    def scale_ip(self, Vec2 scale, /) -> Transform2D:
        #<RETURN_SELF>
        """Apply scaling to this transform inplace."""
        self.xx *= scale.x
        self.xy *= scale.y
        self.yx *= scale.x
        self.yy *= scale.y
        self.ox *= scale.x
        self.oy *= scale.y
        return self

    def scaled(self, Vec2 scale, /) -> Transform2D:
        """Apply scaling to a copy of this transform."""
        cdef Transform2D t = self.copy()
        t.scale_ip(scale)
        return t


########## transform_3d.pyx ##########
from libc.math cimport sinl, cosl


@cython.auto_pickle(True)
@cython.freelist(1024)
@cython.no_gc
@cython.final
cdef class Transform3D:
    """3D linear transformation (3*4 matrix)."""

    cdef py_float xx, xy, xz
    cdef py_float yx, yy, yz
    cdef py_float zx, zy, zz
    cdef py_float ox, oy, oz


    cdef inline void identity(self) noexcept:
        self.xx, self.xy, self.xz = 1.0, 0.0, 0.0
        self.yx, self.yy, self.yz = 0.0, 1.0, 0.0
        self.zx, self.zy, self.zz = 0.0, 0.0, 1.0
        self.ox = self.oy = self.oz = 0.0

    cdef inline void ___init___0(self) noexcept:
        """Create an identity transform."""
        self.identity()

    cdef inline void ___init___1(self, py_float xx, py_float xy, py_float xz, py_float yx, py_float yy, py_float yz, py_float zx, py_float zy, py_float zz, py_float ox, py_float oy, py_float oz) noexcept:
        """Create a transform from all the matrix elements."""
        self.xx = xx
        self.xy = xy
        self.xz = xz
        self.yx = yx
        self.yy = yy
        self.yz = yz
        self.zx = zx
        self.zy = zy
        self.zz = zz
        self.ox = ox
        self.oy = oy
        self.oz = oz

    cdef inline void ___init___2(self, Vec3 x, Vec3 y, Vec3 z, Vec3 origin) noexcept:
        """Create a transform using three base vectors and the origin vector."""
        self.xx, self.xy, self.xz = x.x, x.y, x.z
        self.yx, self.yy, self.yz = y.x, y.y, y.z
        self.zx, self.zy, self.zz = z.x, z.y, z.z
        self.ox, self.oy, self.oz = origin.x, origin.y, origin.z

    cdef inline void ___init___3(self, Transform3D transform) noexcept:
        """Create a copy."""
        self.xx = transform.xx
        self.xy = transform.xy
        self.xz = transform.xz
        self.yx = transform.yx
        self.yy = transform.yy
        self.yz = transform.yz
        self.zx = transform.zx
        self.zy = transform.zy
        self.zz = transform.zz
        self.ox = transform.ox
        self.oy = transform.oy
        self.oz = transform.oz

    def __init__(self, object p0=None, object p1=None, object p2=None, object p3=None, object p4=None, object p5=None, object p6=None, object p7=None, object p8=None, object p9=None, object p10=None, object p11=None, /) -> None:
        if (PyFloat_Check(p0) or PyLong_Check(p0)):
            if (PyFloat_Check(p1) or PyLong_Check(p1)):
                if (PyFloat_Check(p2) or PyLong_Check(p2)):
                    if (PyFloat_Check(p3) or PyLong_Check(p3)):
                        if (PyFloat_Check(p4) or PyLong_Check(p4)):
                            if (PyFloat_Check(p5) or PyLong_Check(p5)):
                                if (PyFloat_Check(p6) or PyLong_Check(p6)):
                                    if (PyFloat_Check(p7) or PyLong_Check(p7)):
                                        if (PyFloat_Check(p8) or PyLong_Check(p8)):
                                            if (PyFloat_Check(p9) or PyLong_Check(p9)):
                                                if (PyFloat_Check(p10) or PyLong_Check(p10)):
                                                    if (PyFloat_Check(p11) or PyLong_Check(p11)):
                                                        self.___init___1(PyFloat_AsDouble(p0), PyFloat_AsDouble(p1), PyFloat_AsDouble(p2), PyFloat_AsDouble(p3), PyFloat_AsDouble(p4), PyFloat_AsDouble(p5), PyFloat_AsDouble(p6), PyFloat_AsDouble(p7), PyFloat_AsDouble(p8), PyFloat_AsDouble(p9), PyFloat_AsDouble(p10), PyFloat_AsDouble(p11))
                                                        return
                                                    else:
                                                        raise TypeError(f"The 13th parameter expected float | int | None, got {p11}")
                                                else:
                                                    raise TypeError(f"The 12th parameter expected float | int | None, got {p10}")
                                            else:
                                                raise TypeError(f"The 11th parameter expected float | int | None, got {p9}")
                                        else:
                                            raise TypeError(f"The 10th parameter expected float | int | None, got {p8}")
                                    else:
                                        raise TypeError(f"The 9th parameter expected float | int | None, got {p7}")
                                else:
                                    raise TypeError(f"The 8th parameter expected float | int | None, got {p6}")
                            else:
                                raise TypeError(f"The 7th parameter expected float | int | None, got {p5}")
                        else:
                            raise TypeError(f"The 6th parameter expected float | int | None, got {p4}")
                    else:
                        raise TypeError(f"The 5th parameter expected float | int | Vec3 | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected float | int | Vec3 | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected float | int | Vec3 | None, got {p1}")
        elif isinstance(p0, Vec3):
            if isinstance(p1, Vec3):
                if isinstance(p2, Vec3):
                    if isinstance(p3, Vec3):
                        if p4 is None:
                            if p5 is None:
                                if p6 is None:
                                    if p7 is None:
                                        if p8 is None:
                                            if p9 is None:
                                                if p10 is None:
                                                    if p11 is None:
                                                        self.___init___2(<Vec3> p0, <Vec3> p1, <Vec3> p2, <Vec3> p3)
                                                        return
                                                    else:
                                                        raise TypeError(f"The 13th parameter expected float | int | None, got {p11}")
                                                else:
                                                    raise TypeError(f"The 12th parameter expected float | int | None, got {p10}")
                                            else:
                                                raise TypeError(f"The 11th parameter expected float | int | None, got {p9}")
                                        else:
                                            raise TypeError(f"The 10th parameter expected float | int | None, got {p8}")
                                    else:
                                        raise TypeError(f"The 9th parameter expected float | int | None, got {p7}")
                                else:
                                    raise TypeError(f"The 8th parameter expected float | int | None, got {p6}")
                            else:
                                raise TypeError(f"The 7th parameter expected float | int | None, got {p5}")
                        else:
                            raise TypeError(f"The 6th parameter expected float | int | None, got {p4}")
                    else:
                        raise TypeError(f"The 5th parameter expected float | int | Vec3 | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected float | int | Vec3 | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected float | int | Vec3 | None, got {p1}")
        elif isinstance(p0, Transform3D):
            if p1 is None:
                if p2 is None:
                    if p3 is None:
                        if p4 is None:
                            if p5 is None:
                                if p6 is None:
                                    if p7 is None:
                                        if p8 is None:
                                            if p9 is None:
                                                if p10 is None:
                                                    if p11 is None:
                                                        self.___init___3(<Transform3D> p0)
                                                        return
                                                    else:
                                                        raise TypeError(f"The 13th parameter expected float | int | None, got {p11}")
                                                else:
                                                    raise TypeError(f"The 12th parameter expected float | int | None, got {p10}")
                                            else:
                                                raise TypeError(f"The 11th parameter expected float | int | None, got {p9}")
                                        else:
                                            raise TypeError(f"The 10th parameter expected float | int | None, got {p8}")
                                    else:
                                        raise TypeError(f"The 9th parameter expected float | int | None, got {p7}")
                                else:
                                    raise TypeError(f"The 8th parameter expected float | int | None, got {p6}")
                            else:
                                raise TypeError(f"The 7th parameter expected float | int | None, got {p5}")
                        else:
                            raise TypeError(f"The 6th parameter expected float | int | None, got {p4}")
                    else:
                        raise TypeError(f"The 5th parameter expected float | int | Vec3 | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected float | int | Vec3 | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected float | int | Vec3 | None, got {p1}")
        elif p0 is None:
            if p1 is None:
                if p2 is None:
                    if p3 is None:
                        if p4 is None:
                            if p5 is None:
                                if p6 is None:
                                    if p7 is None:
                                        if p8 is None:
                                            if p9 is None:
                                                if p10 is None:
                                                    if p11 is None:
                                                        self.___init___0()
                                                        return
                                                    else:
                                                        raise TypeError(f"The 13th parameter expected float | int | None, got {p11}")
                                                else:
                                                    raise TypeError(f"The 12th parameter expected float | int | None, got {p10}")
                                            else:
                                                raise TypeError(f"The 11th parameter expected float | int | None, got {p9}")
                                        else:
                                            raise TypeError(f"The 10th parameter expected float | int | None, got {p8}")
                                    else:
                                        raise TypeError(f"The 9th parameter expected float | int | None, got {p7}")
                                else:
                                    raise TypeError(f"The 8th parameter expected float | int | None, got {p6}")
                            else:
                                raise TypeError(f"The 7th parameter expected float | int | None, got {p5}")
                        else:
                            raise TypeError(f"The 6th parameter expected float | int | None, got {p4}")
                    else:
                        raise TypeError(f"The 5th parameter expected float | int | Vec3 | None, got {p3}")
                else:
                    raise TypeError(f"The 4th parameter expected float | int | Vec3 | None, got {p2}")
            else:
                raise TypeError(f"The 3th parameter expected float | int | Vec3 | None, got {p1}")
        else:
            raise TypeError(f"The 2th parameter expected float | int | Vec3 | Transform3D | None, got {p0}")

    @staticmethod
    def translating(Vec3 translation, /) -> Transform3D:
        """Create a translation transform."""
        cdef Transform3D t = Transform3D.__new__(Transform3D)
        t.identity()
        t.ox += translation.x
        t.oy += translation.y
        t.oz += translation.z
        return t

    @staticmethod
    def rotating(Vec3 axis, py_float angle, /, Vec3 origin = None) -> Transform3D:
        """Create a rotation transform."""
        cdef Transform3D trans = Transform3D.__new__(Transform3D)

        cdef py_float axis_x_sq = axis.x * axis.x
        cdef py_float axis_y_sq = axis.y * axis.y
        cdef py_float axis_z_sq = axis.z * axis.z
        cdef py_float c = cosl(angle)

        trans.xx = axis_x_sq + c * (1.0 - axis_x_sq)
        trans.yy = axis_y_sq + c * (1.0 - axis_y_sq)
        trans.zz = axis_z_sq + c * (1.0 - axis_z_sq)

        cdef py_float s = sinl(angle)
        cdef t = 1.0 - c

        cdef xyzt = axis.x * axis.y * t
        cdef zyxs = axis.z * s
        trans.yx = xyzt - zyxs
        trans.xy = xyzt + zyxs

        xyzt = axis.x * axis.z * t
        zyxs = axis.y * s
        trans.zx = xyzt + zyxs
        trans.xz = xyzt - zyxs

        xyzt = axis.y * axis.z * t
        zyxs = axis.x * s
        trans.zy = xyzt - zyxs
        trans.yz = xyzt + zyxs

        if origin is not None:
            trans.ox = origin.x
            trans.oy = origin.y
            trans.oz = origin.z

        return trans

    @staticmethod
    def scaling(Vec3 scale, /, Vec3 origin = None) -> Transform3D:
        """Create a scale transform."""
        cdef Transform3D t = Transform3D.__new__(Transform3D)
        t.identity()
        t.xx = scale.x
        t.yy = scale.y
        t.zz = scale.z

        if origin is not None:
            t.ox = origin.x
            t.oy = origin.y
            t.oz = origin.z

        return t

    cdef inline Transform3D copy(self):
        cdef Transform3D t = Transform3D.__new__(Transform3D)
        t.xx = self.xx
        t.xy = self.xy
        t.xz = self.xz
        t.yx = self.yx
        t.yy = self.yy
        t.yz = self.yz
        t.zx = self.zx
        t.zy = self.zy
        t.zz = self.zz
        t.ox = self.ox
        t.oy = self.oy
        t.oz = self.oz
        return t
    
    def __repr__(self) -> str:
        return f"⎡X: ({self.xx}, {self.xy}, {self.xz})\n⎢Y: ({self.yx}, {self.yy}, {self.yz})\n⎢Z: ({self.zx}, {self.zy}, {self.zz})\n⎣O: ({self.ox}, {self.oy}, {self.oz})"

    def __eq__(self, object other) -> bool:
        """Perform exact comparison.

        See Also: `Transform3D.is_close()`
        """
        if not isinstance(other, Transform3D):
            return False
        cdef Transform3D trans = <Transform3D> other
        return self.xx == trans.xx and self.xy == trans.xy and self.xz == trans.xz and\
               self.yx == trans.yx and self.yy == trans.yy and self.yz == trans.yz and\
               self.zx == trans.zx and self.zy == trans.zy and self.zz == trans.zz and\
               self.ox == trans.ox and self.oy == trans.oy and self.oz == trans.oz

    def __ne__(self, object other) -> bool:
        """Perform exact comparison.

        See Also: `Transform3D.is_close()`
        """
        if not isinstance(other, Transform3D):
            return True
        cdef Transform3D trans = <Transform3D> other
        return self.xx != trans.xx or self.xy != trans.xy or self.xz != trans.xz or\
               self.yx != trans.yx or self.yy != trans.yy or self.yz != trans.yz or\
               self.zx != trans.zx or self.zy != trans.zy or self.zz != trans.zz or\
               self.ox != trans.ox or self.oy != trans.oy or self.oz != trans.oz

    def is_close(self, Transform3D other, /, py_float rel_tol = DEFAULT_RELATIVE_TOLERANCE, py_float abs_tol = DEFAULT_ABSOLUTE_TOLERANCE) -> bool:
        """Determine if the two transforms are close enough.

        See Also: `math.is_close()`
        """
        return is_close(self.xx, other.xx, rel_tol, abs_tol) and \
               is_close(self.xy, other.xy, rel_tol, abs_tol) and \
               is_close(self.xz, other.xz, rel_tol, abs_tol) and \
               is_close(self.yx, other.yx, rel_tol, abs_tol) and \
               is_close(self.yy, other.yy, rel_tol, abs_tol) and \
               is_close(self.yz, other.yz, rel_tol, abs_tol) and \
               is_close(self.zx, other.zx, rel_tol, abs_tol) and \
               is_close(self.zy, other.zy, rel_tol, abs_tol) and \
               is_close(self.zz, other.zz, rel_tol, abs_tol) and \
               is_close(self.ox, other.ox, rel_tol, abs_tol) and \
               is_close(self.oy, other.oy, rel_tol, abs_tol) and \
               is_close(self.oz, other.oz, rel_tol, abs_tol)

    #TODO: Better hashing
    def __hash__(self) -> py_int:
        cdef py_int h = 0
        h ^= bitcast_float(self.xx)
        h ^= rotl_ratio(bitcast_float(self.xy), 1, 12)
        h ^= rotl_ratio(bitcast_float(self.xz), 2, 12)
        h ^= rotl_ratio(bitcast_float(self.yx), 3, 12)
        h ^= rotl_ratio(bitcast_float(self.yy), 4, 12)
        h ^= rotl_ratio(bitcast_float(self.yz), 5, 12)
        h ^= rotl_ratio(bitcast_float(self.zx), 6, 12)
        h ^= rotl_ratio(bitcast_float(self.zy), 7, 12)
        h ^= rotl_ratio(bitcast_float(self.zz), 8, 12)
        h ^= rotl_ratio(bitcast_float(self.ox), 9, 12)
        h ^= rotl_ratio(bitcast_float(self.oy), 10, 12)
        h ^= rotl_ratio(bitcast_float(self.oz), 11, 12)
        return h

    @property
    def x(self) -> Vec3:
        """Base vector X."""
        cdef Vec3 vec = Vec3.__new__(Vec3)
        vec.x = self.xx
        vec.y = self.xy
        vec.z = self.xz
        return vec

    @property
    def y(self) -> Vec3:
        """Base vector Y."""
        cdef Vec3 vec = Vec3.__new__(Vec3)
        vec.x = self.yx
        vec.y = self.yy
        vec.z = self.yz
        return vec

    @property
    def z(self) -> Vec3:
        """Base vector Z."""
        cdef Vec3 vec = Vec3.__new__(Vec3)
        vec.x = self.zx
        vec.y = self.zy
        vec.z = self.zz
        return vec

    @property
    def origin(self) -> Vec3:
        """Origin vector."""
        cdef Vec3 vec = Vec3.__new__(Vec3)
        vec.x = self.ox
        vec.y = self.oy
        vec.z = self.oz
        return vec

    @x.setter
    def x(self, Vec3 value) -> None:
        """Set the X base of the matrix."""
        self.xx = value.x
        self.xy = value.y
        self.xz = value.z

    @y.setter
    def y(self, Vec3 value) -> None:
        """Set the Y base of the matrix."""
        self.yx = value.x
        self.yy = value.y
        self.yz = value.z

    @z.setter
    def z(self, Vec3 value) -> None:
        """Set the Z base of the matrix."""
        self.zx = value.x
        self.zy = value.y
        self.zz = value.z

    @origin.setter
    def origin(self, Vec3 value) -> None:
        """Set the origin."""
        self.ox = value.x
        self.oy = value.y
        self.oz = value.z

    def __getitem__(self, py_int item) -> Vec3:
        """Get a column of the transformation matrix.

        0: Base vector X
        1: Base vector Y
        2: Base vector Z
        3: Origin vector
        """
        cdef vec = Vec3.__new__(Vec3)

        if item == 0:
            vec.x = self.xx
            vec.y = self.xy
            vec.z = self.xz
        elif item == 1:
            vec.x = self.yx
            vec.y = self.yy
            vec.z = self.yz
        elif item == 2:
            vec.x = self.zx
            vec.y = self.zy
            vec.z = self.zz
        elif item == 3:
            vec.x = self.ox
            vec.y = self.oy
            vec.z = self.oz
        else:
            raise IndexError(item)

        return vec

    def __setitem__(self, py_int key, Vec3 value) -> None:
        """Set a column of the transformation matrix.

        0: Base vector X
        1: Base vector Y
        2: Base vector Z
        3: Origin vector
        """
        if key == 0:
            self.xx = value.x
            self.xy = value.y
            self.xz = value.z
        elif key == 1:
            self.yx = value.x
            self.yy = value.y
            self.yz = value.z
        elif key == 2:
            self.zx = value.x
            self.zy = value.y
            self.zz = value.z
        elif key == 3:
            self.ox = value.x
            self.oy = value.y
            self.oz = value.z
        else:
            raise IndexError(key)

    def __len__(self) -> py_int:
        """The amount of columns. Is always 4 for `Transform3D`s."""
        return 4

    cdef inline py_float tdotx(self, py_float x, py_float y, py_float z) noexcept:
        return x * self.xx + y * self.yx + z * self.zx

    cdef inline py_float mulx(self, py_float x, py_float y, py_float z) noexcept:
        return self.tdotx(x, y, z) + self.ox

    cdef inline py_float tdoty(self, py_float x, py_float y, py_float z) noexcept:
        return x * self.xy + y * self.yy + z * self.zy

    cdef inline py_float muly(self, py_float x, py_float y, py_float z) noexcept:
        return self.tdoty(x, y, z) + self.oy

    cdef inline py_float tdotz(self, py_float x, py_float y, py_float z) noexcept:
        return x * self.xz + y * self.yz + z * self.zz

    cdef inline py_float mulz(self, py_float x, py_float y, py_float z) noexcept:
        return self.tdotz(x, y, z) + self.oz

    def __mul__(self, Vec3 other) -> Vec3:
        """Transform a copy of the vector.

        See Also: `Vec3.__mul__()`
        """
        cdef Vec3 vec = Vec3.__new__(Vec3)
        vec.x = self.mulx(other.x, other.y, other.z)
        vec.y = self.muly(other.x, other.y, other.z)
        vec.z = self.mulz(other.x, other.y, other.z)
        return vec

    cdef inline Vec3 ___call___0(self, Vec3 other):
        """Transform a copy of the vector.
        
        See Also: `Vec3.__mul__()`
        """
        cdef Vec3 vec = Vec3.__new__(Vec3)
        vec.x = self.mulx(other.x, other.y, other.z)
        vec.y = self.muly(other.x, other.y, other.z)
        vec.z = self.mulz(other.x, other.y, other.z)
        return vec

    cdef inline Transform3D ___call___1(self, Transform3D other):
        """Transform a copy of the passed in `Transform3D`."""
        cdef Transform3D t = Transform3D.__new__(Transform3D)
        t.xx = self.tdotx(other.xx, other.xy, other.xz)
        t.xy = self.tdoty(other.xx, other.xy, other.xz)
        t.xz = self.tdotz(other.xx, other.xy, other.xz)
        t.yx = self.tdotx(other.yx, other.yy, other.yz)
        t.yy = self.tdoty(other.yx, other.yy, other.yz)
        t.yz = self.tdotz(other.yx, other.yy, other.yz)
        t.zx = self.tdotx(other.zx, other.zy, other.zz)
        t.zy = self.tdoty(other.zx, other.zy, other.zz)
        t.zz = self.tdotz(other.zx, other.zy, other.zz)
        t.ox = self.mulx(other.ox, other.oy, other.oz)
        t.oy = self.muly(other.ox, other.oy, other.oz)
        t.oz = self.mulz(other.ox, other.oy, other.oz)
        return t

    def __call__(self, object p0, /) -> Transform3D | Vec3:
        if isinstance(p0, Vec3):
            return self.___call___0(<Vec3> p0)
        elif isinstance(p0, Transform3D):
            return self.___call___1(<Transform3D> p0)
        else:
            raise TypeError(f"The 2th parameter expected Vec3 | Transform3D, got {p0}")

    def __matmul__(self, Transform3D other) -> Transform3D:
        """Transform a copy of the `Transform3D` on the right."""
        cdef Transform3D t = Transform3D.__new__(Transform3D)
        t.xx = self.tdotx(other.xx, other.xy, other.xz)
        t.xy = self.tdoty(other.xx, other.xy, other.xz)
        t.xz = self.tdotz(other.xx, other.xy, other.xz)
        t.yx = self.tdotx(other.yx, other.yy, other.yz)
        t.yy = self.tdoty(other.yx, other.yy, other.yz)
        t.yz = self.tdotz(other.yx, other.yy, other.yz)
        t.zx = self.tdotx(other.zx, other.zy, other.zz)
        t.zy = self.tdoty(other.zx, other.zy, other.zz)
        t.zz = self.tdotz(other.zx, other.zy, other.zz)
        t.ox = self.mulx(other.ox, other.oy, other.oz)
        t.oy = self.muly(other.ox, other.oy, other.oz)
        t.oz = self.mulz(other.ox, other.oy, other.oz)
        return t

    def __imatmul__(self, Transform3D other) -> Transform3D:
        #<RETURN_SELF>
        """Transform this `Transform3D` inplace with the other `Transform2D`."""
        cdef py_float xx = other.tdotx(self.xx, self.xy, self.xz)
        cdef py_float xy = other.tdoty(self.xx, self.xy, self.xz)
        cdef py_float xz = other.tdotz(self.xx, self.xy, self.xz)
        cdef py_float yx = other.tdotx(self.yx, self.yy, self.yz)
        cdef py_float yy = other.tdoty(self.yx, self.yy, self.yz)
        cdef py_float yz = other.tdotz(self.yx, self.yy, self.yz)
        cdef py_float zx = other.tdotx(self.zx, self.zy, self.zz)
        cdef py_float zy = other.tdoty(self.zx, self.zy, self.zz)
        cdef py_float zz = other.tdotz(self.zx, self.zy, self.zz)
        cdef py_float ox = other.mulx(self.ox, self.oy, self.oz)
        cdef py_float oy = other.muly(self.ox, self.oy, self.oz)
        cdef py_float oz = other.mulz(self.ox, self.oy, self.oz)
        self.xx, self.xy, self.xz = xx, xy, xz
        self.yx, self.yy, self.yz = yx, yy, yz
        self.zx, self.zy, self.zz = zx, zy, zz
        self.ox, self.oy, self.oz = ox, oy, oz
        return self

    cdef inline py_float _determinant(self) noexcept:
        return (self.xx * (self.yy * self.zz - self.yz * self.zy) -
                self.yx * (self.xy * self.zz - self.xz * self.zy) +
                self.zx * (self.xy * self.yz - self.yy * self.xz))

    @property
    def determinant(self) -> py_float:
        """Compute the determinant of the matrix."""
        return self._determinant()

    def __invert__(self) -> Transform3D:
        """Get the invert transform.

        See Also: `Vec3.__mul__()`
        """
        cdef py_float cox = self.yy * self.zz - self.yz * self.zy
        cdef py_float coy = self.xz * self.zy - self.xy * self.zz
        cdef py_float coz = self.xy * self.yz - self.yy * self.xz
        cdef py_float det = self.xx * cox + self.yx * coy + self.zx * coz
        cdef py_float i_det = 1.0 / det

        cdef Transform3D t = Transform3D.__new__(Transform3D)
        t.xx = cox * i_det
        t.xy = coy * i_det
        t.xz = coz * i_det
        t.yx = (self.zx * self.yz - self.yx * self.zz) * i_det
        t.yy = (self.xx * self.zz - self.zx * self.xz) * i_det
        t.yz = (self.yx * self.xz - self.xx * self.yz) * i_det
        t.zx = (self.yx * self.zy - self.zx * self.yy) * i_det
        t.zy = (self.zx * self.xy - self.xx * self.zy) * i_det
        t.zz = (self.xx * self.yy - self.yx * self.xy) * i_det
        t.ox = -t.tdotx(self.ox, self.oy, self.oz)
        t.oy = -t.tdoty(self.ox, self.oy, self.oz)
        t.oz = -t.tdotz(self.ox, self.oy, self.oz)
        return t

    def translate_ip(self, Vec3 translation, /) -> Transform3D:
        #<RETURN_SELF>
        """Apply translation to this transform inplace."""
        self.ox += translation.x
        self.oy += translation.y
        self.oz += translation.z
        return self

    def translated(self, Vec3 translation, /) -> Transform3D:
        """Apply translation to a copy of this transform."""
        cdef Transform3D t = self.copy()
        t.translate_ip(translation)
        return t

    def rotate_ip(self, Vec3 axis, py_float angle, /) -> Transform3D:
        #<RETURN_SELF>
        """Apply rotation to this transform inplace."""
        self.__imatmul__(Transform3D.rotating(axis, angle))
        return self

    def rotated(self, Vec3 axis, py_float angle, /) -> Transform3D:
        """Apply rotation to a copy of this transform."""
        cdef Transform3D t = self.copy()
        t.rotate_ip(axis, angle)
        return t

    def scale_ip(self, Vec3 scale, /) -> Transform3D:
        #<RETURN_SELF>
        """Apply scaling to this transform inplace."""
        self.xx *= scale.x
        self.yx *= scale.x
        self.zx *= scale.x
        self.xy *= scale.y
        self.yy *= scale.y
        self.zy *= scale.y
        self.xz *= scale.z
        self.yz *= scale.z
        self.zz *= scale.z
        return self

    def scaled(self, Vec3 scale, /) -> Transform3D:
        """Apply scaling to a copy of this transform."""
        cdef Transform3D t = self.copy()
        t.scale_ip(scale)
        return t
