Generated by Cython 0.29.14
Yellow lines hint at Python interaction.
Click on a line that starts with a "+
" to see the C code that Cython generated for it.
Raw output: matrixes.cpp
+001: from libc.math cimport sin, cos, pi, fabs
__pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+002: import numpy as np
__pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
003: from .vectors cimport CMP_TOL
004: from cpython.object cimport Py_LT, Py_LE, Py_EQ, Py_GE, Py_GT, Py_NE
005: cimport cython
006:
007:
008: @cython.final
+009: cdef class Mat2:
struct __pyx_vtabstruct_7easyvec_8matrixes_Mat2 { struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*copy)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*clone)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_7vectors_Vec2 *(*i_axis)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_7vectors_Vec2 *(*j_axis)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_7vectors_Vec2 *(*x_axis)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_7vectors_Vec2 *(*y_axis)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*transpose)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); __pyx_t_7easyvec_7vectors_real (*det)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*inverse)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*mul_mat_elements_)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*mul_mat_elements)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*mul_mat_)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*mul_mat)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_7vectors_Vec2 *(*mul_vec)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, struct __pyx_obj_7easyvec_7vectors_Vec2 *, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*mul_num_)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, __pyx_t_7easyvec_7vectors_real, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*mul_num)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, __pyx_t_7easyvec_7vectors_real, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*add_num_)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, __pyx_t_7easyvec_7vectors_real, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*add_num)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, __pyx_t_7easyvec_7vectors_real, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*add_mat_)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*add_mat)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*neg_)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*neg)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); PyObject *(*keys)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); __Pyx_memviewslice (*as_np)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); PyObject *(*as_tuple)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*sub_num_)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, __pyx_t_7easyvec_7vectors_real, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*sub_num)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, __pyx_t_7easyvec_7vectors_real, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*sub_mat_)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*sub_mat)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*div_num_)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, __pyx_t_7easyvec_7vectors_real, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*div_num)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, __pyx_t_7easyvec_7vectors_real, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*div_mat_)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); struct __pyx_obj_7easyvec_8matrixes_Mat2 *(*div_mat)(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); }; static struct __pyx_vtabstruct_7easyvec_8matrixes_Mat2 *__pyx_vtabptr_7easyvec_8matrixes_Mat2; static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_copy(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_clone(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_7vectors_Vec2 *__pyx_f_7easyvec_8matrixes_4Mat2_i_axis(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_7vectors_Vec2 *__pyx_f_7easyvec_8matrixes_4Mat2_j_axis(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_7vectors_Vec2 *__pyx_f_7easyvec_8matrixes_4Mat2_x_axis(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_7vectors_Vec2 *__pyx_f_7easyvec_8matrixes_4Mat2_y_axis(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_transpose(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); static __pyx_t_7easyvec_7vectors_real __pyx_f_7easyvec_8matrixes_4Mat2_det(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_inverse(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_mul_mat_elements_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_mul_mat_elements(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_mul_mat_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_mul_mat(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_7vectors_Vec2 *__pyx_f_7easyvec_8matrixes_4Mat2_mul_vec(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, struct __pyx_obj_7easyvec_7vectors_Vec2 *, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_mul_num_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, __pyx_t_7easyvec_7vectors_real, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_mul_num(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, __pyx_t_7easyvec_7vectors_real, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_add_num_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, __pyx_t_7easyvec_7vectors_real, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_add_num(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, __pyx_t_7easyvec_7vectors_real, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_add_mat_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_add_mat(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_neg_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_neg(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); static PyObject *__pyx_f_7easyvec_8matrixes_4Mat2_keys(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); static __Pyx_memviewslice __pyx_f_7easyvec_8matrixes_4Mat2_as_np(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); static PyObject *__pyx_f_7easyvec_8matrixes_4Mat2_as_tuple(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_sub_num_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, __pyx_t_7easyvec_7vectors_real, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_sub_num(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, __pyx_t_7easyvec_7vectors_real, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_sub_mat_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_sub_mat(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_div_num_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, __pyx_t_7easyvec_7vectors_real, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_div_num(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, __pyx_t_7easyvec_7vectors_real, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_div_mat_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch); static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_div_mat(struct __pyx_obj_7easyvec_8matrixes_Mat2 *, struct __pyx_obj_7easyvec_8matrixes_Mat2 *, int __pyx_skip_dispatch);
+010: @classmethod
__pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2->tp_dict, __pyx_n_s_from_xaxis, __pyx_t_2) < 0) __PYX_ERR(0, 11, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; PyType_Modified(__pyx_ptype_7easyvec_8matrixes_Mat2);
+011: def from_xaxis(cls, xaxis):
/* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_1from_xaxis(PyObject *__pyx_v_cls, PyObject *__pyx_v_xaxis); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_from_xaxis[] = "Mat2.from_xaxis(type cls, xaxis)"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_1from_xaxis(PyObject *__pyx_v_cls, PyObject *__pyx_v_xaxis) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("from_xaxis (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_from_xaxis(((PyTypeObject*)__pyx_v_cls), ((PyObject *)__pyx_v_xaxis)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_from_xaxis(PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_xaxis) { struct __pyx_obj_7easyvec_7vectors_Vec2 *__pyx_v_yaxis = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("from_xaxis", 0); __Pyx_INCREF(__pyx_v_xaxis); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("easyvec.matrixes.Mat2.from_xaxis", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_yaxis); __Pyx_XDECREF(__pyx_v_xaxis); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2, __pyx_n_s_from_xaxis); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
+012: if not isinstance(xaxis, Vec2):
__pyx_t_1 = __Pyx_TypeCheck(__pyx_v_xaxis, __pyx_ptype_7easyvec_7vectors_Vec2);
__pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);
if (__pyx_t_2) {
/* … */
}
+013: if isinstance(xaxis, dict):
__pyx_t_2 = PyDict_Check(__pyx_v_xaxis);
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L4;
}
+014: xaxis = Vec2.from_dict(xaxis)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7easyvec_7vectors_Vec2), __pyx_n_s_from_dict); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_xaxis) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_xaxis); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_xaxis, __pyx_t_3); __pyx_t_3 = 0;
015: else:
+016: xaxis = Vec2.from_list(xaxis)
/*else*/ { __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7easyvec_7vectors_Vec2), __pyx_n_s_from_list); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 16, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_xaxis) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_xaxis); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_xaxis, __pyx_t_3); __pyx_t_3 = 0; } __pyx_L4:;
+017: xaxis.norm_()
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_xaxis, __pyx_n_s_norm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 17, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+018: cdef Vec2 yaxis = xaxis.rotate90()
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_xaxis, __pyx_n_s_rotate90); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_7easyvec_7vectors_Vec2))))) __PYX_ERR(0, 18, __pyx_L1_error) __pyx_v_yaxis = ((struct __pyx_obj_7easyvec_7vectors_Vec2 *)__pyx_t_3); __pyx_t_3 = 0;
+019: return cls(xaxis, yaxis)
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_xaxis); __Pyx_GIVEREF(__pyx_v_xaxis); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_xaxis); __Pyx_INCREF(((PyObject *)__pyx_v_yaxis)); __Pyx_GIVEREF(((PyObject *)__pyx_v_yaxis)); PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_yaxis)); __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_cls), __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 19, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
020:
+021: @classmethod
__pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2->tp_dict, __pyx_n_s_from_yaxis, __pyx_t_1) < 0) __PYX_ERR(0, 22, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; PyType_Modified(__pyx_ptype_7easyvec_8matrixes_Mat2);
+022: def from_yaxis(cls, yaxis):
/* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_3from_yaxis(PyObject *__pyx_v_cls, PyObject *__pyx_v_yaxis); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_2from_yaxis[] = "Mat2.from_yaxis(type cls, yaxis)"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_3from_yaxis(PyObject *__pyx_v_cls, PyObject *__pyx_v_yaxis) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("from_yaxis (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_2from_yaxis(((PyTypeObject*)__pyx_v_cls), ((PyObject *)__pyx_v_yaxis)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_2from_yaxis(PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_yaxis) { struct __pyx_obj_7easyvec_7vectors_Vec2 *__pyx_v_xaxis = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("from_yaxis", 0); __Pyx_INCREF(__pyx_v_yaxis); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("easyvec.matrixes.Mat2.from_yaxis", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_xaxis); __Pyx_XDECREF(__pyx_v_yaxis); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __Pyx_GetNameInClass(__pyx_t_2, (PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2, __pyx_n_s_from_yaxis); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+023: if not isinstance(yaxis, Vec2):
__pyx_t_1 = __Pyx_TypeCheck(__pyx_v_yaxis, __pyx_ptype_7easyvec_7vectors_Vec2);
__pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);
if (__pyx_t_2) {
/* … */
}
+024: if isinstance(yaxis, dict):
__pyx_t_2 = PyDict_Check(__pyx_v_yaxis);
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L4;
}
+025: yaxis = Vec2.from_dict(yaxis)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7easyvec_7vectors_Vec2), __pyx_n_s_from_dict); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_yaxis) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_yaxis); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_yaxis, __pyx_t_3); __pyx_t_3 = 0;
026: else:
+027: yaxis = Vec2.from_list(yaxis)
/*else*/ { __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7easyvec_7vectors_Vec2), __pyx_n_s_from_list); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_yaxis) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_yaxis); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_yaxis, __pyx_t_3); __pyx_t_3 = 0; } __pyx_L4:;
+028: yaxis.norm_()
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_yaxis, __pyx_n_s_norm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+029: cdef Vec2 xaxis = yaxis.rotate_minus90()
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_yaxis, __pyx_n_s_rotate_minus90); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_7easyvec_7vectors_Vec2))))) __PYX_ERR(0, 29, __pyx_L1_error) __pyx_v_xaxis = ((struct __pyx_obj_7easyvec_7vectors_Vec2 *)__pyx_t_3); __pyx_t_3 = 0;
+030: return cls(xaxis, yaxis)
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_xaxis)); __Pyx_GIVEREF(((PyObject *)__pyx_v_xaxis)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_xaxis)); __Pyx_INCREF(__pyx_v_yaxis); __Pyx_GIVEREF(__pyx_v_yaxis); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_yaxis); __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_cls), __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
031:
+032: @classmethod
__pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 32, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2->tp_dict, __pyx_n_s_from_angle, __pyx_t_2) < 0) __PYX_ERR(0, 33, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; PyType_Modified(__pyx_ptype_7easyvec_8matrixes_Mat2);
+033: def from_angle(cls, angle, degrees=0):
/* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_5from_angle(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_4from_angle[] = "Mat2.from_angle(type cls, angle, degrees=0)"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_5from_angle(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_angle = 0; PyObject *__pyx_v_degrees = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("from_angle (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_angle,&__pyx_n_s_degrees,0}; PyObject* values[2] = {0,0}; values[1] = ((PyObject *)__pyx_int_0); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_angle)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_degrees); if (value) { values[1] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "from_angle") < 0)) __PYX_ERR(0, 33, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_angle = values[0]; __pyx_v_degrees = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("from_angle", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 33, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("easyvec.matrixes.Mat2.from_angle", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_4from_angle(((PyTypeObject*)__pyx_v_cls), __pyx_v_angle, __pyx_v_degrees); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_4from_angle(PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_angle, PyObject *__pyx_v_degrees) { __pyx_t_7easyvec_7vectors_real __pyx_v_s; __pyx_t_7easyvec_7vectors_real __pyx_v_c; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("from_angle", 0); __Pyx_INCREF(__pyx_v_angle); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("easyvec.matrixes.Mat2.from_angle", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_angle); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2, __pyx_n_s_from_angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 33, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
+034: if degrees:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_degrees); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 34, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+035: angle /= 180/pi
if (unlikely(M_PI == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "float division"); __PYX_ERR(0, 35, __pyx_L1_error) } __pyx_t_2 = PyFloat_FromDouble((180.0 / ((double)M_PI))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyNumber_InPlaceDivide(__pyx_v_angle, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_angle, __pyx_t_3); __pyx_t_3 = 0;
+036: cdef real s = sin(angle)
__pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_angle); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 36, __pyx_L1_error) __pyx_v_s = sin(__pyx_t_4);
+037: cdef real c = cos(angle)
__pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_angle); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 37, __pyx_L1_error) __pyx_v_c = cos(__pyx_t_4);
+038: return cls([c, s], [-s, c])
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_c); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyFloat_FromDouble((-__pyx_v_s)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_c); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_3); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_6); __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_cls), __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0;
039:
+040: @classmethod
__pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2->tp_dict, __pyx_n_s_eye, __pyx_t_1) < 0) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; PyType_Modified(__pyx_ptype_7easyvec_8matrixes_Mat2);
+041: def eye(cls):
/* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_7eye(PyObject *__pyx_v_cls, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_6eye[] = "Mat2.eye(type cls)"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_7eye(PyObject *__pyx_v_cls, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("eye (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_6eye(((PyTypeObject*)__pyx_v_cls)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_6eye(PyTypeObject *__pyx_v_cls) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("eye", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.eye", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __Pyx_GetNameInClass(__pyx_t_2, (PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2, __pyx_n_s_eye); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+042: return cls(1,0,0,1)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_cls), __pyx_tuple_, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* … */ __pyx_tuple_ = PyTuple_Pack(4, __pyx_int_1, __pyx_int_0, __pyx_int_0, __pyx_int_1); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple_); __Pyx_GIVEREF(__pyx_tuple_);
043:
+044: @classmethod
__pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2->tp_dict, __pyx_n_s_zeros, __pyx_t_2) < 0) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; PyType_Modified(__pyx_ptype_7easyvec_8matrixes_Mat2);
+045: def zeros(cls):
/* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_9zeros(PyObject *__pyx_v_cls, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_8zeros[] = "Mat2.zeros(type cls)"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_9zeros(PyObject *__pyx_v_cls, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("zeros (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_8zeros(((PyTypeObject*)__pyx_v_cls)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_8zeros(PyTypeObject *__pyx_v_cls) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("zeros", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.zeros", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
+046: return cls(0,0,0,0)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_cls), __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* … */ __pyx_tuple__2 = PyTuple_Pack(4, __pyx_int_0, __pyx_int_0, __pyx_int_0, __pyx_int_0); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__2); __Pyx_GIVEREF(__pyx_tuple__2);
047:
+048: def __cinit__(self, *args):
/* Python wrapper */ static int __pyx_pw_7easyvec_8matrixes_4Mat2_11__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7easyvec_8matrixes_4Mat2_11__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_args = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; __Pyx_INCREF(__pyx_args); __pyx_v_args = __pyx_args; __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_10__cinit__(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), __pyx_v_args); /* function exit code */ __Pyx_XDECREF(__pyx_v_args); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7easyvec_8matrixes_4Mat2_10__cinit__(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, PyObject *__pyx_v_args) { int __pyx_v_alen; int __pyx_v_alen2; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__", 0); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("easyvec.matrixes.Mat2.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
+049: cdef int alen = len(args)
__pyx_t_1 = PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 49, __pyx_L1_error) __pyx_v_alen = __pyx_t_1;
050: cdef int alen2
051:
+052: if alen == 2:
switch (__pyx_v_alen) { case 2: /* … */ break; case 1:
053: # 2 вектора или 2 списка/кортежа
+054: self.m11 = args[0][0]
__pyx_t_2 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 54, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 54, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 54, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_self->m11 = __pyx_t_4;
+055: self.m12 = args[0][1]
__pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->m12 = __pyx_t_4;
+056: self.m21 = args[1][0]
__pyx_t_2 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 56, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 56, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 56, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_self->m21 = __pyx_t_4;
+057: self.m22 = args[1][1]
__pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 57, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->m22 = __pyx_t_4;
058:
+059: elif alen == 1:
break; case 4:
+060: if isinstance(args[0], Mat2):
__pyx_t_2 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_TypeCheck(__pyx_t_2, __pyx_ptype_7easyvec_8matrixes_Mat2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { /* … */ goto __pyx_L3; }
+061: self.m11 = args[0].m11
__pyx_t_2 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_m11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 61, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_self->m11 = __pyx_t_4;
+062: self.m12 = args[0].m12
__pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_m12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->m12 = __pyx_t_4;
+063: self.m21 = args[0].m21
__pyx_t_2 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_m21); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 63, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_self->m21 = __pyx_t_4;
+064: self.m22 = args[0].m22
__pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_m22); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 64, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->m22 = __pyx_t_4;
065: else:
+066: alen2 = len(args[0])
/*else*/ { __pyx_t_2 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 66, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 66, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_alen2 = __pyx_t_1;
+067: if alen2 == 2:
switch (__pyx_v_alen2) { case 2: /* … */ break; case 4:
068: # 1 список списков
+069: self.m11 = args[0][0][0]
__pyx_t_2 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->m11 = __pyx_t_4;
+070: self.m12 = args[0][0][1]
__pyx_t_2 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->m12 = __pyx_t_4;
+071: self.m21 = args[0][1][0]
__pyx_t_2 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->m21 = __pyx_t_4;
+072: self.m22 = args[0][1][1]
__pyx_t_2 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->m22 = __pyx_t_4;
+073: elif alen2 == 4:
break; default:
074: # 1 список
+075: self.m11 = args[0][0]
__pyx_t_2 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_self->m11 = __pyx_t_4;
+076: self.m12 = args[0][1]
__pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->m12 = __pyx_t_4;
+077: self.m21 = args[0][2]
__pyx_t_2 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_self->m21 = __pyx_t_4;
+078: self.m22 = args[0][3]
__pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->m22 = __pyx_t_4;
079: else:
+080: raise ValueError(f'Невозможно создать экземпляр Mat2 из параметров {args}')
__pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_args, __pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Mat2, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 80, __pyx_L1_error) break; } } __pyx_L3:;
+081: elif alen == 4:
break; case 0:
082: # просто 4 числа
+083: self.m11 = args[0]
__pyx_t_2 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 83, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 83, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->m11 = __pyx_t_4;
+084: self.m12 = args[1]
__pyx_t_2 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->m12 = __pyx_t_4;
+085: self.m21 = args[2]
__pyx_t_2 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 85, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 85, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->m21 = __pyx_t_4;
+086: self.m22 = args[3]
__pyx_t_2 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 86, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->m22 = __pyx_t_4;
+087: elif alen == 0:
break; default:
+088: self.m11 = 0.0
__pyx_v_self->m11 = 0.0;
+089: self.m12 = 0.0
__pyx_v_self->m12 = 0.0;
+090: self.m21 = 0.0
__pyx_v_self->m21 = 0.0;
+091: self.m22 = 0.0
__pyx_v_self->m22 = 0.0;
092: else:
+093: raise ValueError(f'Невозможно создать экземпляр Mat2 из параметров {args}')
__pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_args, __pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Mat2, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 93, __pyx_L1_error) break; }
094:
095:
+096: cpdef Mat2 copy(self):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_13copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_copy(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("copy", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("easyvec.matrixes.Mat2.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_13copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_12copy[] = "Mat2.copy(self) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_13copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("copy (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_12copy(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_12copy(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("copy", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_copy(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+097: return Mat2(self.m11, self.m12, self.m21, self.m22)
__Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->m11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 97, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->m12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 97, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->m21); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 97, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->m22); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 97, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 97, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 97, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L0;
098:
+099: cpdef Mat2 clone(self):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_15clone(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_clone(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("clone", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("easyvec.matrixes.Mat2.clone", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_15clone(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_14clone[] = "Mat2.clone(self) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_15clone(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("clone (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_14clone(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_14clone(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("clone", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_clone(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 99, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.clone", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+100: return Mat2(self.m11, self.m12, self.m21, self.m22)
__Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->m11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->m12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->m21); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->m22); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L0;
101:
+102: def __str__(self):
/* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_17__str__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_17__str__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_16__str__(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_16__str__(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("easyvec.matrixes.Mat2.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+103: return f'[[{self.m11:.2f}, {self.m12:.2f}], [{self.m21:.2f}, {self.m22:.2f}]]'
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = 127; __Pyx_INCREF(__pyx_kp_u__3); __pyx_t_2 += 2; __Pyx_GIVEREF(__pyx_kp_u__3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u__3); __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->m11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_Format(__pyx_t_4, __pyx_kp_u_2f); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u__4); __pyx_t_2 += 2; __Pyx_GIVEREF(__pyx_kp_u__4); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_u__4); __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->m12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_Format(__pyx_t_5, __pyx_kp_u_2f); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_kp_u__5); __pyx_t_2 += 4; __Pyx_GIVEREF(__pyx_kp_u__5); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_kp_u__5); __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->m21); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_Format(__pyx_t_4, __pyx_kp_u_2f); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u__4); __pyx_t_2 += 2; __Pyx_GIVEREF(__pyx_kp_u__4); PyTuple_SET_ITEM(__pyx_t_1, 6, __pyx_kp_u__4); __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->m22); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_Format(__pyx_t_5, __pyx_kp_u_2f); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 7, __pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_kp_u__6); __pyx_t_2 += 2; __Pyx_GIVEREF(__pyx_kp_u__6); PyTuple_SET_ITEM(__pyx_t_1, 8, __pyx_kp_u__6); __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 9, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
104:
+105: def __repr__(self):
/* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_19__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_19__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_18__repr__(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_18__repr__(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("easyvec.matrixes.Mat2.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+106: return f'Mat2([[{self.m11}, {self.m12}], [{self.m21}, {self.m22}]])'
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = 127; __Pyx_INCREF(__pyx_kp_u_Mat2_2); __pyx_t_2 += 7; __Pyx_GIVEREF(__pyx_kp_u_Mat2_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_Mat2_2); __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->m11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_t_4, __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u__4); __pyx_t_2 += 2; __Pyx_GIVEREF(__pyx_kp_u__4); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_u__4); __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->m12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_kp_u__5); __pyx_t_2 += 4; __Pyx_GIVEREF(__pyx_kp_u__5); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_kp_u__5); __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->m21); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_t_4, __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u__4); __pyx_t_2 += 2; __Pyx_GIVEREF(__pyx_kp_u__4); PyTuple_SET_ITEM(__pyx_t_1, 6, __pyx_kp_u__4); __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->m22); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 7, __pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_kp_u__7); __pyx_t_2 += 3; __Pyx_GIVEREF(__pyx_kp_u__7); PyTuple_SET_ITEM(__pyx_t_1, 8, __pyx_kp_u__7); __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 9, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
107:
+108: cpdef real[:,:] as_np(self):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_21as_np(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static __Pyx_memviewslice __pyx_f_7easyvec_8matrixes_4Mat2_as_np(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, CYTHON_UNUSED int __pyx_skip_dispatch) { __Pyx_memviewslice __pyx_r = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("as_np", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __PYX_XDEC_MEMVIEW(&__pyx_t_7, 1); __pyx_r.data = NULL; __pyx_r.memview = NULL; __Pyx_AddTraceback("easyvec.matrixes.Mat2.as_np", __pyx_clineno, __pyx_lineno, __pyx_filename); goto __pyx_L2; __pyx_L0:; if (unlikely(!__pyx_r.memview)) { PyErr_SetString(PyExc_TypeError, "Memoryview return value is not initialized"); } __pyx_L2:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_21as_np(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_20as_np[] = "Mat2.as_np(self) -> real[:, :]"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_21as_np(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("as_np (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_20as_np(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_20as_np(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("as_np", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_7easyvec_8matrixes_4Mat2_as_np(__pyx_v_self, 1); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 108, __pyx_L1_error) __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_t_1, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_7easyvec_7vectors_real, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_7easyvec_7vectors_real, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1); __pyx_t_1.memview = NULL; __pyx_t_1.data = NULL; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("easyvec.matrixes.Mat2.as_np", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+109: return np.array([[self.m11, self.m12], [self.m21, self.m22]])
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_array); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->m11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->m12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); __pyx_t_2 = 0; __pyx_t_4 = 0; __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->m21); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->m22); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); __pyx_t_4 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_t_6); __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_6, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn___pyx_t_7easyvec_7vectors_real(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_7; __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL; goto __pyx_L0;
110:
+111: cpdef Vec2 i_axis(self):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_23i_axis(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static struct __pyx_obj_7easyvec_7vectors_Vec2 *__pyx_f_7easyvec_8matrixes_4Mat2_i_axis(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_7vectors_Vec2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("i_axis", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("easyvec.matrixes.Mat2.i_axis", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_23i_axis(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_22i_axis[] = "Mat2.i_axis(self) -> Vec2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_23i_axis(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("i_axis (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_22i_axis(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_22i_axis(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("i_axis", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_i_axis(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.i_axis", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+112: return Vec2(self.m11, self.m12)
__Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->m11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->m12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7easyvec_7vectors_Vec2), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = ((struct __pyx_obj_7easyvec_7vectors_Vec2 *)__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L0;
113:
+114: cpdef Vec2 j_axis(self):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_25j_axis(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static struct __pyx_obj_7easyvec_7vectors_Vec2 *__pyx_f_7easyvec_8matrixes_4Mat2_j_axis(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_7vectors_Vec2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("j_axis", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("easyvec.matrixes.Mat2.j_axis", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_25j_axis(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_24j_axis[] = "Mat2.j_axis(self) -> Vec2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_25j_axis(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("j_axis (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_24j_axis(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_24j_axis(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("j_axis", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_j_axis(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.j_axis", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+115: return Vec2(self.m21, self.m22)
__Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->m21); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->m22); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7easyvec_7vectors_Vec2), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = ((struct __pyx_obj_7easyvec_7vectors_Vec2 *)__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L0;
116:
+117: cpdef Vec2 x_axis(self):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_27x_axis(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static struct __pyx_obj_7easyvec_7vectors_Vec2 *__pyx_f_7easyvec_8matrixes_4Mat2_x_axis(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_7vectors_Vec2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("x_axis", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("easyvec.matrixes.Mat2.x_axis", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_27x_axis(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_26x_axis[] = "Mat2.x_axis(self) -> Vec2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_27x_axis(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("x_axis (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_26x_axis(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_26x_axis(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("x_axis", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_x_axis(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.x_axis", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+118: return Vec2(self.m11, self.m12)
__Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->m11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->m12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7easyvec_7vectors_Vec2), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = ((struct __pyx_obj_7easyvec_7vectors_Vec2 *)__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L0;
119:
+120: cpdef Vec2 y_axis(self):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_29y_axis(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static struct __pyx_obj_7easyvec_7vectors_Vec2 *__pyx_f_7easyvec_8matrixes_4Mat2_y_axis(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_7vectors_Vec2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("y_axis", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("easyvec.matrixes.Mat2.y_axis", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_29y_axis(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_28y_axis[] = "Mat2.y_axis(self) -> Vec2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_29y_axis(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("y_axis (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_28y_axis(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_28y_axis(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("y_axis", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_y_axis(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.y_axis", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+121: return Vec2(self.m21, self.m22)
__Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->m21); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->m22); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7easyvec_7vectors_Vec2), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = ((struct __pyx_obj_7easyvec_7vectors_Vec2 *)__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L0;
122:
+123: cpdef Mat2 transpose(self):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_31transpose(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_transpose(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("transpose", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("easyvec.matrixes.Mat2.transpose", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_31transpose(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_30transpose[] = "Mat2.transpose(self) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_31transpose(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("transpose (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_30transpose(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_30transpose(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("transpose", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_transpose(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.transpose", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+124: return Mat2(self.m11, self.m21, self.m12, self.m22)
__Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->m11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->m21); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->m12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->m22); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L0;
125:
126: @property
+127: def T(self) -> Mat2:
/* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_1T_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_1T_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_1T___get__(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_1T___get__(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.T.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+128: return self.transpose()
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_transpose(__pyx_v_self, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
129:
+130: cpdef real det(self):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_33det(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static __pyx_t_7easyvec_7vectors_real __pyx_f_7easyvec_8matrixes_4Mat2_det(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, CYTHON_UNUSED int __pyx_skip_dispatch) { __pyx_t_7easyvec_7vectors_real __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("det", 0); /* … */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_33det(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_32det[] = "Mat2.det(self) -> real"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_33det(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("det (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_32det(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_32det(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("det", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_f_7easyvec_8matrixes_4Mat2_det(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.det", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+131: return self.m11*self.m22 - self.m12*self.m21
__pyx_r = ((__pyx_v_self->m11 * __pyx_v_self->m22) - (__pyx_v_self->m12 * __pyx_v_self->m21)); goto __pyx_L0;
132:
133: @cython.nonecheck(False)
134: @cython.cdivision(True)
+135: cpdef Mat2 inverse(self):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_35inverse(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_inverse(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, CYTHON_UNUSED int __pyx_skip_dispatch) { __pyx_t_7easyvec_7vectors_real __pyx_v_det; struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("inverse", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("easyvec.matrixes.Mat2.inverse", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_35inverse(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_34inverse[] = "Mat2.inverse(self) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_35inverse(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("inverse (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_34inverse(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_34inverse(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("inverse", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_inverse(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.inverse", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+136: cdef real det = self.det()
__pyx_v_det = __pyx_f_7easyvec_8matrixes_4Mat2_det(__pyx_v_self, 0);
+137: if fabs(det) - 1.0 < CMP_TOL:
__pyx_t_1 = (((fabs(__pyx_v_det) - 1.0) < __pyx_v_7easyvec_7vectors_CMP_TOL) != 0); if (__pyx_t_1) { /* … */ }
+138: return self.transpose()
__Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_2 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_transpose(__pyx_v_self, 0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L0;
+139: if fabs(det) < CMP_TOL:
__pyx_t_1 = ((fabs(__pyx_v_det) < __pyx_v_7easyvec_7vectors_CMP_TOL) != 0); if (__pyx_t_1) { /* … */ }
+140: return Mat2()
__Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L0;
+141: return Mat2(
__Pyx_XDECREF(((PyObject *)__pyx_r)); /* … */ __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_5); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2), __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_r = ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L0;
+142: self.m22 / det, -self.m12 / det,
__pyx_t_2 = PyFloat_FromDouble((__pyx_v_self->m22 / __pyx_v_det)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(((-__pyx_v_self->m12) / __pyx_v_det)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+143: -self.m21 / det, self.m11 / det
__pyx_t_4 = PyFloat_FromDouble(((-__pyx_v_self->m21) / __pyx_v_det)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyFloat_FromDouble((__pyx_v_self->m11 / __pyx_v_det)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
144: )
145:
146: @property
+147: def _1(self) -> Mat2:
/* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_2_1_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_2_1_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_2_1___get__(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_2_1___get__(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2._1.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+148: return self.inverse()
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_inverse(__pyx_v_self, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
149:
150: @cython.nonecheck(False)
+151: cpdef Mat2 mul_mat_elements_(self, Mat2 right):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_37mul_mat_elements_(PyObject *__pyx_v_self, PyObject *__pyx_v_right); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_mul_mat_elements_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_right, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mul_mat_elements_", 0); /* … */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_37mul_mat_elements_(PyObject *__pyx_v_self, PyObject *__pyx_v_right); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_36mul_mat_elements_[] = "Mat2.mul_mat_elements_(self, Mat2 right) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_37mul_mat_elements_(PyObject *__pyx_v_self, PyObject *__pyx_v_right) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mul_mat_elements_ (wrapper)", 0); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_7easyvec_8matrixes_Mat2, 1, "right", 0))) __PYX_ERR(0, 151, __pyx_L1_error) __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_36mul_mat_elements_(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_right)); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_36mul_mat_elements_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_right) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mul_mat_elements_", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_mul_mat_elements_(__pyx_v_self, __pyx_v_right, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.mul_mat_elements_", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+152: self.m11 *= right.m11
__pyx_v_self->m11 = (__pyx_v_self->m11 * __pyx_v_right->m11);
+153: self.m12 *= right.m12
__pyx_v_self->m12 = (__pyx_v_self->m12 * __pyx_v_right->m12);
+154: self.m21 *= right.m21
__pyx_v_self->m21 = (__pyx_v_self->m21 * __pyx_v_right->m21);
+155: self.m22 *= right.m22
__pyx_v_self->m22 = (__pyx_v_self->m22 * __pyx_v_right->m22);
+156: return self
__Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __pyx_r = __pyx_v_self; goto __pyx_L0;
157:
158: @cython.nonecheck(False)
+159: cpdef Mat2 mul_mat_elements(self, Mat2 right):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_39mul_mat_elements(PyObject *__pyx_v_self, PyObject *__pyx_v_right); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_mul_mat_elements(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_right, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mul_mat_elements", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("easyvec.matrixes.Mat2.mul_mat_elements", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_39mul_mat_elements(PyObject *__pyx_v_self, PyObject *__pyx_v_right); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_38mul_mat_elements[] = "Mat2.mul_mat_elements(self, Mat2 right) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_39mul_mat_elements(PyObject *__pyx_v_self, PyObject *__pyx_v_right) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mul_mat_elements (wrapper)", 0); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_7easyvec_8matrixes_Mat2, 1, "right", 0))) __PYX_ERR(0, 159, __pyx_L1_error) __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_38mul_mat_elements(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_right)); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_38mul_mat_elements(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_right) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mul_mat_elements", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_mul_mat_elements(__pyx_v_self, __pyx_v_right, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.mul_mat_elements", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+160: return Mat2(
__Pyx_XDECREF(((PyObject *)__pyx_r)); /* … */ __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L0;
+161: self.m11 * right.m11,
__pyx_t_1 = PyFloat_FromDouble((__pyx_v_self->m11 * __pyx_v_right->m11)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
+162: self.m12 * right.m12,
__pyx_t_2 = PyFloat_FromDouble((__pyx_v_self->m12 * __pyx_v_right->m12)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+163: self.m21 * right.m21,
__pyx_t_3 = PyFloat_FromDouble((__pyx_v_self->m21 * __pyx_v_right->m21)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+164: self.m22 * right.m22
__pyx_t_4 = PyFloat_FromDouble((__pyx_v_self->m22 * __pyx_v_right->m22)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
165: )
166:
167: @cython.nonecheck(False)
+168: cpdef Mat2 mul_mat_(self, Mat2 right):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_41mul_mat_(PyObject *__pyx_v_self, PyObject *__pyx_v_right); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_mul_mat_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_right, CYTHON_UNUSED int __pyx_skip_dispatch) { __pyx_t_7easyvec_7vectors_real __pyx_v_m11; __pyx_t_7easyvec_7vectors_real __pyx_v_m12; __pyx_t_7easyvec_7vectors_real __pyx_v_m21; __pyx_t_7easyvec_7vectors_real __pyx_v_m22; struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mul_mat_", 0); /* … */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_41mul_mat_(PyObject *__pyx_v_self, PyObject *__pyx_v_right); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_40mul_mat_[] = "Mat2.mul_mat_(self, Mat2 right) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_41mul_mat_(PyObject *__pyx_v_self, PyObject *__pyx_v_right) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mul_mat_ (wrapper)", 0); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_7easyvec_8matrixes_Mat2, 1, "right", 0))) __PYX_ERR(0, 168, __pyx_L1_error) __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_40mul_mat_(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_right)); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_40mul_mat_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_right) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mul_mat_", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_mul_mat_(__pyx_v_self, __pyx_v_right, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.mul_mat_", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+169: cdef real m11 = self.m11 * right.m11 + self.m12 * right.m21
__pyx_v_m11 = ((__pyx_v_self->m11 * __pyx_v_right->m11) + (__pyx_v_self->m12 * __pyx_v_right->m21));
+170: cdef real m12 = self.m11 * right.m12 + self.m12 * right.m22
__pyx_v_m12 = ((__pyx_v_self->m11 * __pyx_v_right->m12) + (__pyx_v_self->m12 * __pyx_v_right->m22));
+171: cdef real m21 = self.m11 * right.m12 + self.m12 * right.m22
__pyx_v_m21 = ((__pyx_v_self->m11 * __pyx_v_right->m12) + (__pyx_v_self->m12 * __pyx_v_right->m22));
+172: cdef real m22 = self.m21 * right.m12 + self.m22 * right.m22
__pyx_v_m22 = ((__pyx_v_self->m21 * __pyx_v_right->m12) + (__pyx_v_self->m22 * __pyx_v_right->m22));
+173: self.m11 = m11
__pyx_v_self->m11 = __pyx_v_m11;
+174: self.m12 = m12
__pyx_v_self->m12 = __pyx_v_m12;
+175: self.m21 = m21
__pyx_v_self->m21 = __pyx_v_m21;
+176: self.m22 = m22
__pyx_v_self->m22 = __pyx_v_m22;
+177: return self
__Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __pyx_r = __pyx_v_self; goto __pyx_L0;
178:
179: @cython.nonecheck(False)
+180: cpdef Mat2 mul_mat(self, Mat2 right):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_43mul_mat(PyObject *__pyx_v_self, PyObject *__pyx_v_right); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_mul_mat(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_right, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mul_mat", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("easyvec.matrixes.Mat2.mul_mat", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_43mul_mat(PyObject *__pyx_v_self, PyObject *__pyx_v_right); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_42mul_mat[] = "Mat2.mul_mat(self, Mat2 right) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_43mul_mat(PyObject *__pyx_v_self, PyObject *__pyx_v_right) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mul_mat (wrapper)", 0); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_7easyvec_8matrixes_Mat2, 1, "right", 0))) __PYX_ERR(0, 180, __pyx_L1_error) __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_42mul_mat(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_right)); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_42mul_mat(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_right) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mul_mat", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_mul_mat(__pyx_v_self, __pyx_v_right, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.mul_mat", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+181: return Mat2(
__Pyx_XDECREF(((PyObject *)__pyx_r)); /* … */ __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L0;
+182: self.m11 * right.m11 + self.m12 * right.m21,
__pyx_t_1 = PyFloat_FromDouble(((__pyx_v_self->m11 * __pyx_v_right->m11) + (__pyx_v_self->m12 * __pyx_v_right->m21))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
+183: self.m11 * right.m12 + self.m12 * right.m22,
__pyx_t_2 = PyFloat_FromDouble(((__pyx_v_self->m11 * __pyx_v_right->m12) + (__pyx_v_self->m12 * __pyx_v_right->m22))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+184: self.m11 * right.m12 + self.m12 * right.m22,
__pyx_t_3 = PyFloat_FromDouble(((__pyx_v_self->m11 * __pyx_v_right->m12) + (__pyx_v_self->m12 * __pyx_v_right->m22))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+185: self.m21 * right.m12 + self.m22 * right.m22
__pyx_t_4 = PyFloat_FromDouble(((__pyx_v_self->m21 * __pyx_v_right->m12) + (__pyx_v_self->m22 * __pyx_v_right->m22))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
186: )
187:
188: @cython.nonecheck(False)
+189: cpdef Vec2 mul_vec(self, Vec2 vec):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_45mul_vec(PyObject *__pyx_v_self, PyObject *__pyx_v_vec); /*proto*/ static struct __pyx_obj_7easyvec_7vectors_Vec2 *__pyx_f_7easyvec_8matrixes_4Mat2_mul_vec(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, struct __pyx_obj_7easyvec_7vectors_Vec2 *__pyx_v_vec, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_7vectors_Vec2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mul_vec", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("easyvec.matrixes.Mat2.mul_vec", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_45mul_vec(PyObject *__pyx_v_self, PyObject *__pyx_v_vec); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_44mul_vec[] = "Mat2.mul_vec(self, Vec2 vec) -> Vec2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_45mul_vec(PyObject *__pyx_v_self, PyObject *__pyx_v_vec) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mul_vec (wrapper)", 0); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_7easyvec_7vectors_Vec2, 1, "vec", 0))) __PYX_ERR(0, 189, __pyx_L1_error) __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_44mul_vec(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((struct __pyx_obj_7easyvec_7vectors_Vec2 *)__pyx_v_vec)); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_44mul_vec(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, struct __pyx_obj_7easyvec_7vectors_Vec2 *__pyx_v_vec) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mul_vec", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_mul_vec(__pyx_v_self, __pyx_v_vec, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.mul_vec", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+190: return Vec2(
__Pyx_XDECREF(((PyObject *)__pyx_r)); /* … */ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7easyvec_7vectors_Vec2), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = ((struct __pyx_obj_7easyvec_7vectors_Vec2 *)__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L0;
+191: self.m11 * vec.x + self.m12 * vec.y,
__pyx_t_1 = PyFloat_FromDouble(((__pyx_v_self->m11 * __pyx_v_vec->x) + (__pyx_v_self->m12 * __pyx_v_vec->y))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
+192: self.m21 * vec.x + self.m22 * vec.y
__pyx_t_2 = PyFloat_FromDouble(((__pyx_v_self->m21 * __pyx_v_vec->x) + (__pyx_v_self->m22 * __pyx_v_vec->y))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
193: )
194:
195: @cython.nonecheck(False)
+196: cpdef Mat2 mul_num_(self, real num):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_47mul_num_(PyObject *__pyx_v_self, PyObject *__pyx_arg_num); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_mul_num_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, __pyx_t_7easyvec_7vectors_real __pyx_v_num, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mul_num_", 0); /* … */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_47mul_num_(PyObject *__pyx_v_self, PyObject *__pyx_arg_num); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_46mul_num_[] = "Mat2.mul_num_(self, real num) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_47mul_num_(PyObject *__pyx_v_self, PyObject *__pyx_arg_num) { __pyx_t_7easyvec_7vectors_real __pyx_v_num; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mul_num_ (wrapper)", 0); assert(__pyx_arg_num); { __pyx_v_num = __pyx_PyFloat_AsDouble(__pyx_arg_num); if (unlikely((__pyx_v_num == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 196, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("easyvec.matrixes.Mat2.mul_num_", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_46mul_num_(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((__pyx_t_7easyvec_7vectors_real)__pyx_v_num)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_46mul_num_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, __pyx_t_7easyvec_7vectors_real __pyx_v_num) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mul_num_", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_mul_num_(__pyx_v_self, __pyx_v_num, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.mul_num_", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+197: self.m11 *= num
__pyx_v_self->m11 = (__pyx_v_self->m11 * __pyx_v_num);
+198: self.m12 *= num
__pyx_v_self->m12 = (__pyx_v_self->m12 * __pyx_v_num);
+199: self.m21 *= num
__pyx_v_self->m21 = (__pyx_v_self->m21 * __pyx_v_num);
+200: self.m22 *= num
__pyx_v_self->m22 = (__pyx_v_self->m22 * __pyx_v_num);
+201: return self
__Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __pyx_r = __pyx_v_self; goto __pyx_L0;
202:
203: @cython.nonecheck(False)
+204: cpdef Mat2 mul_num(self, real num):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_49mul_num(PyObject *__pyx_v_self, PyObject *__pyx_arg_num); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_mul_num(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, __pyx_t_7easyvec_7vectors_real __pyx_v_num, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mul_num", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("easyvec.matrixes.Mat2.mul_num", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_49mul_num(PyObject *__pyx_v_self, PyObject *__pyx_arg_num); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_48mul_num[] = "Mat2.mul_num(self, real num) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_49mul_num(PyObject *__pyx_v_self, PyObject *__pyx_arg_num) { __pyx_t_7easyvec_7vectors_real __pyx_v_num; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mul_num (wrapper)", 0); assert(__pyx_arg_num); { __pyx_v_num = __pyx_PyFloat_AsDouble(__pyx_arg_num); if (unlikely((__pyx_v_num == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 204, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("easyvec.matrixes.Mat2.mul_num", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_48mul_num(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((__pyx_t_7easyvec_7vectors_real)__pyx_v_num)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_48mul_num(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, __pyx_t_7easyvec_7vectors_real __pyx_v_num) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mul_num", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_mul_num(__pyx_v_self, __pyx_v_num, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.mul_num", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+205: return Mat2(
__Pyx_XDECREF(((PyObject *)__pyx_r)); /* … */ __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L0;
+206: self.m11 * num,
__pyx_t_1 = PyFloat_FromDouble((__pyx_v_self->m11 * __pyx_v_num)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
+207: self.m12 * num,
__pyx_t_2 = PyFloat_FromDouble((__pyx_v_self->m12 * __pyx_v_num)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+208: self.m21 * num,
__pyx_t_3 = PyFloat_FromDouble((__pyx_v_self->m21 * __pyx_v_num)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+209: self.m22 * num
__pyx_t_4 = PyFloat_FromDouble((__pyx_v_self->m22 * __pyx_v_num)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
210: )
211:
+212: def __mul__(left, right):
/* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_51__mul__(PyObject *__pyx_v_left, PyObject *__pyx_v_right); /*proto*/ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_51__mul__(PyObject *__pyx_v_left, PyObject *__pyx_v_right) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__mul__ (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_50__mul__(((PyObject *)__pyx_v_left), ((PyObject *)__pyx_v_right)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_50__mul__(PyObject *__pyx_v_left, PyObject *__pyx_v_right) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__mul__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("easyvec.matrixes.Mat2.__mul__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+213: if isinstance(left, Mat2):
__pyx_t_1 = __Pyx_TypeCheck(__pyx_v_left, __pyx_ptype_7easyvec_8matrixes_Mat2);
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L3;
}
+214: if isinstance(right, Vec2):
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_right, __pyx_ptype_7easyvec_7vectors_Vec2);
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
/* … */
}
+215: return (<Mat2>left).mul_vec(<Vec2>right)
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_mul_vec(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_left), ((struct __pyx_obj_7easyvec_7vectors_Vec2 *)__pyx_v_right), 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+216: elif isinstance(right, Mat2):
__pyx_t_1 = __Pyx_TypeCheck(__pyx_v_right, __pyx_ptype_7easyvec_8matrixes_Mat2);
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+217: return (<Mat2>left).mul_mat(<Mat2>right)
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_mul_mat(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_left), ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_right), 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+218: elif isinstance(right, np.ndarray) or isinstance(right, tuple) or isinstance(right, list) or isinstance(right, memoryview):
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ndarray); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = PyObject_IsInstance(__pyx_v_right, __pyx_t_4); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = (__pyx_t_1 != 0); if (!__pyx_t_5) { } else { __pyx_t_2 = __pyx_t_5; goto __pyx_L5_bool_binop_done; } __pyx_t_5 = PyTuple_Check(__pyx_v_right); __pyx_t_1 = (__pyx_t_5 != 0); if (!__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L5_bool_binop_done; } __pyx_t_1 = PyList_Check(__pyx_v_right); __pyx_t_5 = (__pyx_t_1 != 0); if (!__pyx_t_5) { } else { __pyx_t_2 = __pyx_t_5; goto __pyx_L5_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_memoryview); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_IsInstance(__pyx_v_right, __pyx_t_4); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = (__pyx_t_5 != 0); __pyx_t_2 = __pyx_t_1; __pyx_L5_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+219: return (<Mat2>left).mul_vec(Vec2(right[0], right[1]))
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_right, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_right, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7easyvec_7vectors_Vec2), __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_mul_vec(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_left), ((struct __pyx_obj_7easyvec_7vectors_Vec2 *)__pyx_t_3), 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0;
+220: elif isinstance(right, int) or isinstance(right, float):
__pyx_t_1 = PyInt_Check(__pyx_v_right); __pyx_t_5 = (__pyx_t_1 != 0); if (!__pyx_t_5) { } else { __pyx_t_2 = __pyx_t_5; goto __pyx_L9_bool_binop_done; } __pyx_t_5 = PyFloat_Check(__pyx_v_right); __pyx_t_1 = (__pyx_t_5 != 0); __pyx_t_2 = __pyx_t_1; __pyx_L9_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+221: return (<Mat2>left).mul_num(<real>right)
__Pyx_XDECREF(__pyx_r); __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_v_right); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 221, __pyx_L1_error) __pyx_t_6 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_mul_num(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_left), ((__pyx_t_7easyvec_7vectors_real)__pyx_t_7), 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0;
+222: elif isinstance(left, int) or isinstance(left, float):
__pyx_t_1 = PyInt_Check(__pyx_v_left); __pyx_t_5 = (__pyx_t_1 != 0); if (!__pyx_t_5) { } else { __pyx_t_2 = __pyx_t_5; goto __pyx_L11_bool_binop_done; } __pyx_t_5 = PyFloat_Check(__pyx_v_left); __pyx_t_1 = (__pyx_t_5 != 0); __pyx_t_2 = __pyx_t_1; __pyx_L11_bool_binop_done:; if (__pyx_t_2) { /* … */ } __pyx_L3:;
+223: return (<Mat2>right).mul_num(<real>left)
__Pyx_XDECREF(__pyx_r); __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_v_left); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 223, __pyx_L1_error) __pyx_t_6 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_mul_num(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_right), ((__pyx_t_7easyvec_7vectors_real)__pyx_t_7), 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0;
+224: raise NotImplementedError(f"Перемножить данные сущности нельзя left={left}, right={right}")
__pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = 0; __pyx_t_9 = 127; __Pyx_INCREF(__pyx_kp_u_left); __pyx_t_9 = (65535 > __pyx_t_9) ? 65535 : __pyx_t_9; __pyx_t_8 += 40; __Pyx_GIVEREF(__pyx_kp_u_left); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_kp_u_left); __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_left, __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_9) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_9; __pyx_t_8 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3); __pyx_t_3 = 0; __Pyx_INCREF(__pyx_kp_u_right); __pyx_t_8 += 8; __Pyx_GIVEREF(__pyx_kp_u_right); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_kp_u_right); __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_right, __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_9) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_9; __pyx_t_8 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_6, 4, __pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_NotImplementedError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 224, __pyx_L1_error)
225:
226:
+227: def __imul__(self, right):
/* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_53__imul__(PyObject *__pyx_v_self, PyObject *__pyx_v_right); /*proto*/ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_53__imul__(PyObject *__pyx_v_self, PyObject *__pyx_v_right) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__imul__ (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_52__imul__(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((PyObject *)__pyx_v_right)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_52__imul__(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, PyObject *__pyx_v_right) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__imul__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("easyvec.matrixes.Mat2.__imul__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+228: if isinstance(right, Mat2):
__pyx_t_1 = __Pyx_TypeCheck(__pyx_v_right, __pyx_ptype_7easyvec_8matrixes_Mat2);
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+229: return self.mul_mat_(<Mat2>right)
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_mul_mat_(__pyx_v_self, ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_right), 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+230: elif isinstance(right, int) or isinstance(right, float):
__pyx_t_1 = PyInt_Check(__pyx_v_right); __pyx_t_4 = (__pyx_t_1 != 0); if (!__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = PyFloat_Check(__pyx_v_right); __pyx_t_1 = (__pyx_t_4 != 0); __pyx_t_2 = __pyx_t_1; __pyx_L4_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+231: return self.mul_num_(<real>right)
__Pyx_XDECREF(__pyx_r); __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_v_right); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 231, __pyx_L1_error) __pyx_t_3 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_mul_num_(__pyx_v_self, ((__pyx_t_7easyvec_7vectors_real)__pyx_t_5), 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+232: raise NotImplementedError(f"Перемножить данные сущности нельзя left={self}, right={right}")
__pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = 0; __pyx_t_7 = 127; __Pyx_INCREF(__pyx_kp_u_left); __pyx_t_7 = (65535 > __pyx_t_7) ? 65535 : __pyx_t_7; __pyx_t_6 += 40; __Pyx_GIVEREF(__pyx_kp_u_left); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_left); __pyx_t_8 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self), __pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) : __pyx_t_7; __pyx_t_6 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_8); __pyx_t_8 = 0; __Pyx_INCREF(__pyx_kp_u_right); __pyx_t_6 += 8; __Pyx_GIVEREF(__pyx_kp_u_right); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u_right); __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_v_right, __pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) : __pyx_t_7; __pyx_t_6 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_3, 4, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_NotImplementedError, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 232, __pyx_L1_error)
233:
234: @cython.nonecheck(False)
+235: cpdef Mat2 add_num_(self, real num):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_55add_num_(PyObject *__pyx_v_self, PyObject *__pyx_arg_num); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_add_num_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, __pyx_t_7easyvec_7vectors_real __pyx_v_num, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("add_num_", 0); /* … */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_55add_num_(PyObject *__pyx_v_self, PyObject *__pyx_arg_num); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_54add_num_[] = "Mat2.add_num_(self, real num) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_55add_num_(PyObject *__pyx_v_self, PyObject *__pyx_arg_num) { __pyx_t_7easyvec_7vectors_real __pyx_v_num; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("add_num_ (wrapper)", 0); assert(__pyx_arg_num); { __pyx_v_num = __pyx_PyFloat_AsDouble(__pyx_arg_num); if (unlikely((__pyx_v_num == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 235, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("easyvec.matrixes.Mat2.add_num_", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_54add_num_(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((__pyx_t_7easyvec_7vectors_real)__pyx_v_num)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_54add_num_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, __pyx_t_7easyvec_7vectors_real __pyx_v_num) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("add_num_", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_add_num_(__pyx_v_self, __pyx_v_num, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.add_num_", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+236: self.m11 += num
__pyx_v_self->m11 = (__pyx_v_self->m11 + __pyx_v_num);
+237: self.m12 += num
__pyx_v_self->m12 = (__pyx_v_self->m12 + __pyx_v_num);
+238: self.m21 += num
__pyx_v_self->m21 = (__pyx_v_self->m21 + __pyx_v_num);
+239: self.m22 += num
__pyx_v_self->m22 = (__pyx_v_self->m22 + __pyx_v_num);
+240: return self
__Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __pyx_r = __pyx_v_self; goto __pyx_L0;
241:
242: @cython.nonecheck(False)
+243: cpdef Mat2 add_num(self, real num):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_57add_num(PyObject *__pyx_v_self, PyObject *__pyx_arg_num); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_add_num(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, __pyx_t_7easyvec_7vectors_real __pyx_v_num, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("add_num", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("easyvec.matrixes.Mat2.add_num", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_57add_num(PyObject *__pyx_v_self, PyObject *__pyx_arg_num); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_56add_num[] = "Mat2.add_num(self, real num) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_57add_num(PyObject *__pyx_v_self, PyObject *__pyx_arg_num) { __pyx_t_7easyvec_7vectors_real __pyx_v_num; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("add_num (wrapper)", 0); assert(__pyx_arg_num); { __pyx_v_num = __pyx_PyFloat_AsDouble(__pyx_arg_num); if (unlikely((__pyx_v_num == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 243, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("easyvec.matrixes.Mat2.add_num", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_56add_num(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((__pyx_t_7easyvec_7vectors_real)__pyx_v_num)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_56add_num(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, __pyx_t_7easyvec_7vectors_real __pyx_v_num) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("add_num", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_add_num(__pyx_v_self, __pyx_v_num, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.add_num", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+244: return Mat2(
__Pyx_XDECREF(((PyObject *)__pyx_r)); /* … */ __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L0;
+245: self.m11 + num,
__pyx_t_1 = PyFloat_FromDouble((__pyx_v_self->m11 + __pyx_v_num)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
+246: self.m12 + num,
__pyx_t_2 = PyFloat_FromDouble((__pyx_v_self->m12 + __pyx_v_num)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+247: self.m21 + num,
__pyx_t_3 = PyFloat_FromDouble((__pyx_v_self->m21 + __pyx_v_num)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+248: self.m22 + num
__pyx_t_4 = PyFloat_FromDouble((__pyx_v_self->m22 + __pyx_v_num)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
249: )
250:
251:
252: @cython.nonecheck(False)
+253: cpdef Mat2 add_mat_(self, Mat2 mat):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_59add_mat_(PyObject *__pyx_v_self, PyObject *__pyx_v_mat); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_add_mat_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_mat, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("add_mat_", 0); /* … */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_59add_mat_(PyObject *__pyx_v_self, PyObject *__pyx_v_mat); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_58add_mat_[] = "Mat2.add_mat_(self, Mat2 mat) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_59add_mat_(PyObject *__pyx_v_self, PyObject *__pyx_v_mat) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("add_mat_ (wrapper)", 0); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_7easyvec_8matrixes_Mat2, 1, "mat", 0))) __PYX_ERR(0, 253, __pyx_L1_error) __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_58add_mat_(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_mat)); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_58add_mat_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_mat) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("add_mat_", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_add_mat_(__pyx_v_self, __pyx_v_mat, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.add_mat_", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+254: self.m11 += mat.m11
__pyx_v_self->m11 = (__pyx_v_self->m11 + __pyx_v_mat->m11);
+255: self.m12 += mat.m12
__pyx_v_self->m12 = (__pyx_v_self->m12 + __pyx_v_mat->m12);
+256: self.m21 += mat.m21
__pyx_v_self->m21 = (__pyx_v_self->m21 + __pyx_v_mat->m21);
+257: self.m22 += mat.m22
__pyx_v_self->m22 = (__pyx_v_self->m22 + __pyx_v_mat->m22);
+258: return self
__Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __pyx_r = __pyx_v_self; goto __pyx_L0;
259:
260: @cython.nonecheck(False)
+261: cpdef Mat2 add_mat(self, Mat2 mat):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_61add_mat(PyObject *__pyx_v_self, PyObject *__pyx_v_mat); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_add_mat(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_mat, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("add_mat", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("easyvec.matrixes.Mat2.add_mat", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_61add_mat(PyObject *__pyx_v_self, PyObject *__pyx_v_mat); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_60add_mat[] = "Mat2.add_mat(self, Mat2 mat) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_61add_mat(PyObject *__pyx_v_self, PyObject *__pyx_v_mat) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("add_mat (wrapper)", 0); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_7easyvec_8matrixes_Mat2, 1, "mat", 0))) __PYX_ERR(0, 261, __pyx_L1_error) __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_60add_mat(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_mat)); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_60add_mat(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_mat) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("add_mat", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_add_mat(__pyx_v_self, __pyx_v_mat, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.add_mat", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+262: return Mat2(
__Pyx_XDECREF(((PyObject *)__pyx_r)); /* … */ __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L0;
+263: self.m11 + mat.m11,
__pyx_t_1 = PyFloat_FromDouble((__pyx_v_self->m11 + __pyx_v_mat->m11)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
+264: self.m12 + mat.m12,
__pyx_t_2 = PyFloat_FromDouble((__pyx_v_self->m12 + __pyx_v_mat->m12)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+265: self.m21 + mat.m21,
__pyx_t_3 = PyFloat_FromDouble((__pyx_v_self->m21 + __pyx_v_mat->m21)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+266: self.m22 + mat.m22
__pyx_t_4 = PyFloat_FromDouble((__pyx_v_self->m22 + __pyx_v_mat->m22)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
267: )
268:
+269: def __add__(left, right):
/* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_63__add__(PyObject *__pyx_v_left, PyObject *__pyx_v_right); /*proto*/ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_63__add__(PyObject *__pyx_v_left, PyObject *__pyx_v_right) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__add__ (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_62__add__(((PyObject *)__pyx_v_left), ((PyObject *)__pyx_v_right)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_62__add__(PyObject *__pyx_v_left, PyObject *__pyx_v_right) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__add__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("easyvec.matrixes.Mat2.__add__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+270: if isinstance(left, Mat2):
__pyx_t_1 = __Pyx_TypeCheck(__pyx_v_left, __pyx_ptype_7easyvec_8matrixes_Mat2);
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L3;
}
+271: if isinstance(right, Mat2):
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_right, __pyx_ptype_7easyvec_8matrixes_Mat2);
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
/* … */
}
+272: return (<Mat2>left).add_mat(<Mat2>right)
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_add_mat(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_left), ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_right), 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+273: elif isinstance(right, int) or isinstance(right, float):
__pyx_t_2 = PyInt_Check(__pyx_v_right); __pyx_t_4 = (__pyx_t_2 != 0); if (!__pyx_t_4) { } else { __pyx_t_1 = __pyx_t_4; goto __pyx_L5_bool_binop_done; } __pyx_t_4 = PyFloat_Check(__pyx_v_right); __pyx_t_2 = (__pyx_t_4 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L5_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+274: return (<Mat2>left).add_num(<real>right)
__Pyx_XDECREF(__pyx_r); __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_v_right); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 274, __pyx_L1_error) __pyx_t_3 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_add_num(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_left), ((__pyx_t_7easyvec_7vectors_real)__pyx_t_5), 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+275: elif isinstance(left, int) or isinstance(left, float):
__pyx_t_2 = PyInt_Check(__pyx_v_left); __pyx_t_4 = (__pyx_t_2 != 0); if (!__pyx_t_4) { } else { __pyx_t_1 = __pyx_t_4; goto __pyx_L7_bool_binop_done; } __pyx_t_4 = PyFloat_Check(__pyx_v_left); __pyx_t_2 = (__pyx_t_4 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L7_bool_binop_done:; if (__pyx_t_1) { /* … */ } __pyx_L3:;
+276: return (<Mat2>right).add_num(<real>left)
__Pyx_XDECREF(__pyx_r); __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_v_left); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 276, __pyx_L1_error) __pyx_t_3 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_add_num(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_right), ((__pyx_t_7easyvec_7vectors_real)__pyx_t_5), 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+277: raise NotImplementedError(f"Сложить данные сущности нельзя left={left}, right={right}")
__pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = 0; __pyx_t_7 = 127; __Pyx_INCREF(__pyx_kp_u_left_2); __pyx_t_7 = (65535 > __pyx_t_7) ? 65535 : __pyx_t_7; __pyx_t_6 += 36; __Pyx_GIVEREF(__pyx_kp_u_left_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_left_2); __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_v_left, __pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) : __pyx_t_7; __pyx_t_6 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_8); __pyx_t_8 = 0; __Pyx_INCREF(__pyx_kp_u_right); __pyx_t_6 += 8; __Pyx_GIVEREF(__pyx_kp_u_right); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u_right); __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_v_right, __pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) : __pyx_t_7; __pyx_t_6 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_3, 4, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_NotImplementedError, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 277, __pyx_L1_error)
278:
+279: def __iadd__(self, right):
/* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_65__iadd__(PyObject *__pyx_v_self, PyObject *__pyx_v_right); /*proto*/ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_65__iadd__(PyObject *__pyx_v_self, PyObject *__pyx_v_right) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__iadd__ (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_64__iadd__(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((PyObject *)__pyx_v_right)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_64__iadd__(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, PyObject *__pyx_v_right) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__iadd__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("easyvec.matrixes.Mat2.__iadd__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+280: if isinstance(right, Mat2):
__pyx_t_1 = __Pyx_TypeCheck(__pyx_v_right, __pyx_ptype_7easyvec_8matrixes_Mat2);
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+281: return self.add_mat_(<Mat2>right)
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_add_mat_(__pyx_v_self, ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_right), 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+282: elif isinstance(right, int) or isinstance(right, float):
__pyx_t_1 = PyInt_Check(__pyx_v_right); __pyx_t_4 = (__pyx_t_1 != 0); if (!__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = PyFloat_Check(__pyx_v_right); __pyx_t_1 = (__pyx_t_4 != 0); __pyx_t_2 = __pyx_t_1; __pyx_L4_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+283: return self.add_num_(<real>right)
__Pyx_XDECREF(__pyx_r); __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_v_right); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 283, __pyx_L1_error) __pyx_t_3 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_add_num_(__pyx_v_self, ((__pyx_t_7easyvec_7vectors_real)__pyx_t_5), 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+284: raise NotImplementedError(f"Сложить данные сущности нельзя self={self}, right={right}")
__pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = 0; __pyx_t_7 = 127; __Pyx_INCREF(__pyx_kp_u_self); __pyx_t_7 = (65535 > __pyx_t_7) ? 65535 : __pyx_t_7; __pyx_t_6 += 36; __Pyx_GIVEREF(__pyx_kp_u_self); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_self); __pyx_t_8 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self), __pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) : __pyx_t_7; __pyx_t_6 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_8); __pyx_t_8 = 0; __Pyx_INCREF(__pyx_kp_u_right); __pyx_t_6 += 8; __Pyx_GIVEREF(__pyx_kp_u_right); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u_right); __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_v_right, __pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) : __pyx_t_7; __pyx_t_6 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_3, 4, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_NotImplementedError, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 284, __pyx_L1_error)
285:
286: @cython.nonecheck(False)
+287: cpdef Mat2 neg_(self):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_67neg_(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_neg_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("neg_", 0); /* … */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_67neg_(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_66neg_[] = "Mat2.neg_(self) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_67neg_(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("neg_ (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_66neg_(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_66neg_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("neg_", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_neg_(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.neg_", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+288: self.m11 = -self.m11
__pyx_v_self->m11 = (-__pyx_v_self->m11);
+289: self.m12 = -self.m12
__pyx_v_self->m12 = (-__pyx_v_self->m12);
+290: self.m21 = -self.m21
__pyx_v_self->m21 = (-__pyx_v_self->m21);
+291: self.m22 = -self.m22
__pyx_v_self->m22 = (-__pyx_v_self->m22);
+292: return self
__Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __pyx_r = __pyx_v_self; goto __pyx_L0;
293:
294: @cython.nonecheck(False)
+295: cpdef Mat2 neg(self):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_69neg(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_neg(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("neg", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("easyvec.matrixes.Mat2.neg", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_69neg(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_68neg[] = "Mat2.neg(self) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_69neg(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("neg (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_68neg(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_68neg(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("neg", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_neg(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.neg", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+296: return Mat2(
__Pyx_XDECREF(((PyObject *)__pyx_r)); /* … */ __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L0;
+297: -self.m11,
__pyx_t_1 = PyFloat_FromDouble((-__pyx_v_self->m11)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
+298: -self.m12,
__pyx_t_2 = PyFloat_FromDouble((-__pyx_v_self->m12)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+299: -self.m21,
__pyx_t_3 = PyFloat_FromDouble((-__pyx_v_self->m21)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+300: -self.m22
__pyx_t_4 = PyFloat_FromDouble((-__pyx_v_self->m22)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
301: )
302:
+303: def __neg__(self):
/* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_71__neg__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_71__neg__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__neg__ (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_70__neg__(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_70__neg__(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__neg__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.__neg__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+304: return self.neg()
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_neg(__pyx_v_self, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
305:
306: @cython.nonecheck(False)
+307: def __richcmp__(v1, v2, int op):
/* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_73__richcmp__(PyObject *__pyx_v_v1, PyObject *__pyx_v_v2, int __pyx_v_op); /*proto*/ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_73__richcmp__(PyObject *__pyx_v_v1, PyObject *__pyx_v_v2, int __pyx_v_op) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__richcmp__ (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_72__richcmp__(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_v1), ((PyObject *)__pyx_v_v2), ((int)__pyx_v_op)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_72__richcmp__(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_v1, PyObject *__pyx_v_v2, int __pyx_v_op) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__richcmp__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("easyvec.matrixes.Mat2.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+308: if op == Py_EQ:
__pyx_t_1 = ((__pyx_v_op == Py_EQ) != 0); if (__pyx_t_1) { /* … */ }
+309: return fabs(v1[0][0] - v2[0][0]) < CMP_TOL and fabs(v1[0][1] - v2[0][1]) < CMP_TOL \
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_GetItemInt(((PyObject *)__pyx_v_v1), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_v2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Subtract(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = (fabs(__pyx_t_6) < __pyx_v_7easyvec_7vectors_CMP_TOL); if (__pyx_t_1) { } else { __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L4_bool_binop_done; } /* … */ __pyx_t_3 = __Pyx_GetItemInt(((PyObject *)__pyx_v_v1), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* … */ __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_3, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_v2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Subtract(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = (fabs(__pyx_t_6) < __pyx_v_7easyvec_7vectors_CMP_TOL); if (__pyx_t_1) { } else { __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L4_bool_binop_done; }
+310: and fabs(v1[1][0] - v2[1][0]) < CMP_TOL and fabs(v1[1][1] - v2[1][1]) < CMP_TOL
__pyx_t_3 = __Pyx_GetItemInt(((PyObject *)__pyx_v_v1), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_v2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Subtract(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 310, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = (fabs(__pyx_t_6) < __pyx_v_7easyvec_7vectors_CMP_TOL); if (__pyx_t_1) { } else { __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = __Pyx_GetItemInt(((PyObject *)__pyx_v_v1), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_3, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_v2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Subtract(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 310, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = (fabs(__pyx_t_6) < __pyx_v_7easyvec_7vectors_CMP_TOL); __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __pyx_t_3; __pyx_t_3 = 0; __pyx_L4_bool_binop_done:; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
+311: elif op == Py_NE:
__pyx_t_1 = ((__pyx_v_op == Py_NE) != 0); if (__pyx_t_1) { /* … */ }
+312: return fabs(v1[0][0] - v2[0][0]) >= CMP_TOL or fabs(v1[0][1] - v2[0][1]) >= CMP_TOL \
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_GetItemInt(((PyObject *)__pyx_v_v1), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_v2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Subtract(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 312, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = (fabs(__pyx_t_6) >= __pyx_v_7easyvec_7vectors_CMP_TOL); if (!__pyx_t_1) { } else { __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L8_bool_binop_done; } /* … */ __pyx_t_3 = __Pyx_GetItemInt(((PyObject *)__pyx_v_v1), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* … */ __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_3, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_v2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Subtract(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 312, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = (fabs(__pyx_t_6) >= __pyx_v_7easyvec_7vectors_CMP_TOL); if (!__pyx_t_1) { } else { __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L8_bool_binop_done; }
+313: or fabs(v1[1][0] - v2[1][0]) >= CMP_TOL or fabs(v1[1][1] - v2[1][1]) >= CMP_TOL
__pyx_t_3 = __Pyx_GetItemInt(((PyObject *)__pyx_v_v1), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_v2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Subtract(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = (fabs(__pyx_t_6) >= __pyx_v_7easyvec_7vectors_CMP_TOL); if (!__pyx_t_1) { } else { __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L8_bool_binop_done; } __pyx_t_3 = __Pyx_GetItemInt(((PyObject *)__pyx_v_v1), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_3, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_v2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Subtract(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = (fabs(__pyx_t_6) >= __pyx_v_7easyvec_7vectors_CMP_TOL); __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __pyx_t_3; __pyx_t_3 = 0; __pyx_L8_bool_binop_done:; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
+314: raise NotImplementedError("Такой тип сравнения не поддерживается")
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_NotImplementedError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 314, __pyx_L1_error) /* … */ __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_u__8); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(0, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__9); __Pyx_GIVEREF(__pyx_tuple__9);
315:
+316: def __getitem__(self, key):
/* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_75__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_75__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_74__getitem__(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((PyObject *)__pyx_v_key)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_74__getitem__(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, PyObject *__pyx_v_key) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getitem__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("easyvec.matrixes.Mat2.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+317: if key == 0:
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_key, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 317, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+318: return self.x_axis()
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_x_axis(__pyx_v_self, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
+319: if key == 1:
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_key, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+320: return self.y_axis()
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_y_axis(__pyx_v_self, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
+321: if isinstance(key, str):
__pyx_t_2 = PyUnicode_Check(__pyx_v_key);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
goto __pyx_L5;
}
+322: if key == 'm11':
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_key, __pyx_n_u_m11, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 322, __pyx_L1_error) if (__pyx_t_3) { /* … */ }
+323: return self.m11
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->m11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
+324: if key == 'm12':
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_key, __pyx_n_u_m12, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 324, __pyx_L1_error) if (__pyx_t_3) { /* … */ }
+325: return self.m12
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->m12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
+326: if key == 'm21':
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_key, __pyx_n_u_m21, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 326, __pyx_L1_error) if (__pyx_t_3) { /* … */ }
+327: return self.m21
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->m21); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
+328: if key == 'm22':
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_key, __pyx_n_u_m22, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 328, __pyx_L1_error) if (__pyx_t_3) { /* … */ }
+329: return self.m22
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->m22); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
+330: elif isinstance(key, tuple) and (len(key)==2):
__pyx_t_2 = PyTuple_Check(__pyx_v_key); __pyx_t_4 = (__pyx_t_2 != 0); if (__pyx_t_4) { } else { __pyx_t_3 = __pyx_t_4; goto __pyx_L10_bool_binop_done; } __pyx_t_5 = PyObject_Length(__pyx_v_key); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 330, __pyx_L1_error) __pyx_t_4 = ((__pyx_t_5 == 2) != 0); __pyx_t_3 = __pyx_t_4; __pyx_L10_bool_binop_done:; if (__pyx_t_3) { /* … */ } __pyx_L5:;
+331: if key[0] == 0 and key[1] == 0:
__pyx_t_1 = __Pyx_GetItemInt(__pyx_v_key, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_4) { } else { __pyx_t_3 = __pyx_t_4; goto __pyx_L13_bool_binop_done; } __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_key, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_t_6, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __pyx_t_4; __pyx_L13_bool_binop_done:; if (__pyx_t_3) { /* … */ }
+332: return self.m11
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->m11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
+333: if key[0] == 0 and key[1] == 1:
__pyx_t_1 = __Pyx_GetItemInt(__pyx_v_key, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 333, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_4) { } else { __pyx_t_3 = __pyx_t_4; goto __pyx_L16_bool_binop_done; } __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_key, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_t_6, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 333, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __pyx_t_4; __pyx_L16_bool_binop_done:; if (__pyx_t_3) { /* … */ }
+334: return self.m12
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->m12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 334, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
+335: if key[0] == 1 and key[1] == 0:
__pyx_t_1 = __Pyx_GetItemInt(__pyx_v_key, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 335, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_4) { } else { __pyx_t_3 = __pyx_t_4; goto __pyx_L19_bool_binop_done; } __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_key, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_t_6, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 335, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __pyx_t_4; __pyx_L19_bool_binop_done:; if (__pyx_t_3) { /* … */ }
+336: return self.m21
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->m21); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
+337: if key[0] == 1 and key[1] == 1:
__pyx_t_1 = __Pyx_GetItemInt(__pyx_v_key, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_4) { } else { __pyx_t_3 = __pyx_t_4; goto __pyx_L22_bool_binop_done; } __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_key, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_t_6, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __pyx_t_4; __pyx_L22_bool_binop_done:; if (__pyx_t_3) { /* … */ }
+338: return self.m22
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->m22); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
+339: raise KeyError(f'Неправильный индекс {key}')
__pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_key, __pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u__10, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_KeyError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 339, __pyx_L1_error)
340:
+341: cpdef list keys(self):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_77keys(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_f_7easyvec_8matrixes_4Mat2_keys(CYTHON_UNUSED struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, CYTHON_UNUSED int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("keys", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.keys", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_77keys(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_76keys[] = "Mat2.keys(self) -> list"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_77keys(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("keys (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_76keys(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_76keys(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("keys", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_7easyvec_8matrixes_4Mat2_keys(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.keys", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+342: return ['m11', 'm12', 'm21', 'm22']
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_m11); __Pyx_GIVEREF(__pyx_n_u_m11); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_m11); __Pyx_INCREF(__pyx_n_u_m12); __Pyx_GIVEREF(__pyx_n_u_m12); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_m12); __Pyx_INCREF(__pyx_n_u_m21); __Pyx_GIVEREF(__pyx_n_u_m21); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_m21); __Pyx_INCREF(__pyx_n_u_m22); __Pyx_GIVEREF(__pyx_n_u_m22); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_u_m22); __pyx_r = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0;
343:
+344: def __iter__(self):
/* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_79__iter__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_79__iter__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_78__iter__(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_78__iter__(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__iter__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("easyvec.matrixes.Mat2.__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7easyvec_8matrixes_4Mat2_82generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
+345: return self.get_generator()
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_generator); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
346:
+347: def get_generator(self):
/* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_81get_generator(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_80get_generator[] = "Mat2.get_generator(self)"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_81get_generator(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_generator (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_80get_generator(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_80get_generator(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self) { struct __pyx_obj_7easyvec_8matrixes___pyx_scope_struct__get_generator *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_generator", 0); __pyx_cur_scope = (struct __pyx_obj_7easyvec_8matrixes___pyx_scope_struct__get_generator *)__pyx_tp_new_7easyvec_8matrixes___pyx_scope_struct__get_generator(__pyx_ptype_7easyvec_8matrixes___pyx_scope_struct__get_generator, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7easyvec_8matrixes___pyx_scope_struct__get_generator *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(0, 347, __pyx_L1_error) } else { __Pyx_GOTREF(__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_self = __pyx_v_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7easyvec_8matrixes_4Mat2_82generator, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_get_generator, __pyx_n_s_Mat2_get_generator, __pyx_n_s_easyvec_matrixes); if (unlikely(!gen)) __PYX_ERR(0, 347, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("easyvec.matrixes.Mat2.get_generator", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7easyvec_8matrixes_4Mat2_82generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_generator", 0); __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 347, __pyx_L1_error) /* … */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("get_generator", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ struct __pyx_obj_7easyvec_8matrixes___pyx_scope_struct__get_generator { PyObject_HEAD struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self; };
+348: yield (self.m11, self.m12)
__pyx_t_1 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_self->m11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_self->m12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L4_resume_from_yield:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 348, __pyx_L1_error)
+349: yield (self.m21, self.m22)
__pyx_t_3 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_self->m21); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_self->m22); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2); __pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, yielding value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L5_resume_from_yield:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 349, __pyx_L1_error) CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
350:
351:
+352: cpdef tuple as_tuple(self):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_84as_tuple(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_f_7easyvec_8matrixes_4Mat2_as_tuple(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, CYTHON_UNUSED int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("as_tuple", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("easyvec.matrixes.Mat2.as_tuple", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_84as_tuple(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_83as_tuple[] = "Mat2.as_tuple(self) -> tuple"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_84as_tuple(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("as_tuple (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_83as_tuple(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_83as_tuple(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("as_tuple", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_7easyvec_8matrixes_4Mat2_as_tuple(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.as_tuple", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+353: return ((self.m11, self.m12), (self.m21, self.m22))
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->m11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->m12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->m21); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->m22); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_r = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0;
354:
355: @cython.nonecheck(False)
+356: cpdef Mat2 sub_num_(self, real num):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_86sub_num_(PyObject *__pyx_v_self, PyObject *__pyx_arg_num); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_sub_num_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, __pyx_t_7easyvec_7vectors_real __pyx_v_num, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("sub_num_", 0); /* … */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_86sub_num_(PyObject *__pyx_v_self, PyObject *__pyx_arg_num); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_85sub_num_[] = "Mat2.sub_num_(self, real num) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_86sub_num_(PyObject *__pyx_v_self, PyObject *__pyx_arg_num) { __pyx_t_7easyvec_7vectors_real __pyx_v_num; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("sub_num_ (wrapper)", 0); assert(__pyx_arg_num); { __pyx_v_num = __pyx_PyFloat_AsDouble(__pyx_arg_num); if (unlikely((__pyx_v_num == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 356, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("easyvec.matrixes.Mat2.sub_num_", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_85sub_num_(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((__pyx_t_7easyvec_7vectors_real)__pyx_v_num)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_85sub_num_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, __pyx_t_7easyvec_7vectors_real __pyx_v_num) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("sub_num_", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_sub_num_(__pyx_v_self, __pyx_v_num, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.sub_num_", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+357: self.m11 -= num
__pyx_v_self->m11 = (__pyx_v_self->m11 - __pyx_v_num);
+358: self.m12 -= num
__pyx_v_self->m12 = (__pyx_v_self->m12 - __pyx_v_num);
+359: self.m21 -= num
__pyx_v_self->m21 = (__pyx_v_self->m21 - __pyx_v_num);
+360: self.m22 -= num
__pyx_v_self->m22 = (__pyx_v_self->m22 - __pyx_v_num);
+361: return self
__Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __pyx_r = __pyx_v_self; goto __pyx_L0;
362:
363: @cython.nonecheck(False)
+364: cpdef Mat2 sub_num(self, real num):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_88sub_num(PyObject *__pyx_v_self, PyObject *__pyx_arg_num); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_sub_num(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, __pyx_t_7easyvec_7vectors_real __pyx_v_num, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("sub_num", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("easyvec.matrixes.Mat2.sub_num", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_88sub_num(PyObject *__pyx_v_self, PyObject *__pyx_arg_num); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_87sub_num[] = "Mat2.sub_num(self, real num) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_88sub_num(PyObject *__pyx_v_self, PyObject *__pyx_arg_num) { __pyx_t_7easyvec_7vectors_real __pyx_v_num; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("sub_num (wrapper)", 0); assert(__pyx_arg_num); { __pyx_v_num = __pyx_PyFloat_AsDouble(__pyx_arg_num); if (unlikely((__pyx_v_num == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 364, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("easyvec.matrixes.Mat2.sub_num", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_87sub_num(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((__pyx_t_7easyvec_7vectors_real)__pyx_v_num)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_87sub_num(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, __pyx_t_7easyvec_7vectors_real __pyx_v_num) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("sub_num", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_sub_num(__pyx_v_self, __pyx_v_num, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.sub_num", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+365: return Mat2(
__Pyx_XDECREF(((PyObject *)__pyx_r)); /* … */ __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L0;
+366: self.m11 - num,
__pyx_t_1 = PyFloat_FromDouble((__pyx_v_self->m11 - __pyx_v_num)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
+367: self.m12 - num,
__pyx_t_2 = PyFloat_FromDouble((__pyx_v_self->m12 - __pyx_v_num)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+368: self.m21 - num,
__pyx_t_3 = PyFloat_FromDouble((__pyx_v_self->m21 - __pyx_v_num)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+369: self.m22 - num
__pyx_t_4 = PyFloat_FromDouble((__pyx_v_self->m22 - __pyx_v_num)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
370: )
371:
372:
373: @cython.nonecheck(False)
+374: cpdef Mat2 sub_mat_(self, Mat2 mat):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_90sub_mat_(PyObject *__pyx_v_self, PyObject *__pyx_v_mat); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_sub_mat_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_mat, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("sub_mat_", 0); /* … */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_90sub_mat_(PyObject *__pyx_v_self, PyObject *__pyx_v_mat); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_89sub_mat_[] = "Mat2.sub_mat_(self, Mat2 mat) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_90sub_mat_(PyObject *__pyx_v_self, PyObject *__pyx_v_mat) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("sub_mat_ (wrapper)", 0); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_7easyvec_8matrixes_Mat2, 1, "mat", 0))) __PYX_ERR(0, 374, __pyx_L1_error) __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_89sub_mat_(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_mat)); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_89sub_mat_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_mat) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("sub_mat_", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_sub_mat_(__pyx_v_self, __pyx_v_mat, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.sub_mat_", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+375: self.m11 -= mat.m11
__pyx_v_self->m11 = (__pyx_v_self->m11 - __pyx_v_mat->m11);
+376: self.m12 -= mat.m12
__pyx_v_self->m12 = (__pyx_v_self->m12 - __pyx_v_mat->m12);
+377: self.m21 -= mat.m21
__pyx_v_self->m21 = (__pyx_v_self->m21 - __pyx_v_mat->m21);
+378: self.m22 -= mat.m22
__pyx_v_self->m22 = (__pyx_v_self->m22 - __pyx_v_mat->m22);
+379: return self
__Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __pyx_r = __pyx_v_self; goto __pyx_L0;
380:
381: @cython.nonecheck(False)
+382: cpdef Mat2 sub_mat(self, Mat2 mat):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_92sub_mat(PyObject *__pyx_v_self, PyObject *__pyx_v_mat); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_sub_mat(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_mat, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("sub_mat", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("easyvec.matrixes.Mat2.sub_mat", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_92sub_mat(PyObject *__pyx_v_self, PyObject *__pyx_v_mat); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_91sub_mat[] = "Mat2.sub_mat(self, Mat2 mat) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_92sub_mat(PyObject *__pyx_v_self, PyObject *__pyx_v_mat) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("sub_mat (wrapper)", 0); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_7easyvec_8matrixes_Mat2, 1, "mat", 0))) __PYX_ERR(0, 382, __pyx_L1_error) __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_91sub_mat(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_mat)); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_91sub_mat(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_mat) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("sub_mat", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_sub_mat(__pyx_v_self, __pyx_v_mat, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.sub_mat", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+383: return Mat2(
__Pyx_XDECREF(((PyObject *)__pyx_r)); /* … */ __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L0;
+384: self.m11 - mat.m11,
__pyx_t_1 = PyFloat_FromDouble((__pyx_v_self->m11 - __pyx_v_mat->m11)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
+385: self.m12 - mat.m12,
__pyx_t_2 = PyFloat_FromDouble((__pyx_v_self->m12 - __pyx_v_mat->m12)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+386: self.m21 - mat.m21,
__pyx_t_3 = PyFloat_FromDouble((__pyx_v_self->m21 - __pyx_v_mat->m21)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+387: self.m22 - mat.m22
__pyx_t_4 = PyFloat_FromDouble((__pyx_v_self->m22 - __pyx_v_mat->m22)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
388: )
389:
+390: def __sub__(left, right):
/* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_94__sub__(PyObject *__pyx_v_left, PyObject *__pyx_v_right); /*proto*/ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_94__sub__(PyObject *__pyx_v_left, PyObject *__pyx_v_right) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__sub__ (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_93__sub__(((PyObject *)__pyx_v_left), ((PyObject *)__pyx_v_right)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_93__sub__(PyObject *__pyx_v_left, PyObject *__pyx_v_right) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__sub__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("easyvec.matrixes.Mat2.__sub__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+391: if isinstance(left, Mat2):
__pyx_t_1 = __Pyx_TypeCheck(__pyx_v_left, __pyx_ptype_7easyvec_8matrixes_Mat2);
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L3;
}
+392: if isinstance(right, Mat2):
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_right, __pyx_ptype_7easyvec_8matrixes_Mat2);
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
/* … */
}
+393: return (<Mat2>left).sub_mat(<Mat2>right)
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_sub_mat(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_left), ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_right), 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+394: elif isinstance(right, int) or isinstance(right, float):
__pyx_t_2 = PyInt_Check(__pyx_v_right); __pyx_t_4 = (__pyx_t_2 != 0); if (!__pyx_t_4) { } else { __pyx_t_1 = __pyx_t_4; goto __pyx_L5_bool_binop_done; } __pyx_t_4 = PyFloat_Check(__pyx_v_right); __pyx_t_2 = (__pyx_t_4 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L5_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+395: return (<Mat2>left).sub_num(<real>right)
__Pyx_XDECREF(__pyx_r); __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_v_right); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 395, __pyx_L1_error) __pyx_t_3 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_sub_num(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_left), ((__pyx_t_7easyvec_7vectors_real)__pyx_t_5), 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+396: elif isinstance(left, int) or isinstance(left, float):
__pyx_t_2 = PyInt_Check(__pyx_v_left); __pyx_t_4 = (__pyx_t_2 != 0); if (!__pyx_t_4) { } else { __pyx_t_1 = __pyx_t_4; goto __pyx_L7_bool_binop_done; } __pyx_t_4 = PyFloat_Check(__pyx_v_left); __pyx_t_2 = (__pyx_t_4 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L7_bool_binop_done:; if (__pyx_t_1) { /* … */ } __pyx_L3:;
+397: return ((<Mat2>right).sub_num(<real>left)).neg()
__Pyx_XDECREF(__pyx_r); __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_v_left); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 397, __pyx_L1_error) __pyx_t_3 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_sub_num(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_right), ((__pyx_t_7easyvec_7vectors_real)__pyx_t_5), 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_neg(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_t_3), 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0;
+398: raise NotImplementedError(f"Вычесть данные сущности нельзя left={left}, right={right}")
__pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 0; __pyx_t_8 = 127; __Pyx_INCREF(__pyx_kp_u_left_3); __pyx_t_8 = (65535 > __pyx_t_8) ? 65535 : __pyx_t_8; __pyx_t_7 += 36; __Pyx_GIVEREF(__pyx_kp_u_left_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_kp_u_left_3); __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_left, __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_8; __pyx_t_7 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3); __pyx_t_3 = 0; __Pyx_INCREF(__pyx_kp_u_right); __pyx_t_7 += 8; __Pyx_GIVEREF(__pyx_kp_u_right); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_kp_u_right); __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_right, __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_8; __pyx_t_7 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_6, 4, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_NotImplementedError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 398, __pyx_L1_error)
399:
+400: def __isub__(self, right):
/* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_96__isub__(PyObject *__pyx_v_self, PyObject *__pyx_v_right); /*proto*/ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_96__isub__(PyObject *__pyx_v_self, PyObject *__pyx_v_right) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__isub__ (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_95__isub__(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((PyObject *)__pyx_v_right)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_95__isub__(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, PyObject *__pyx_v_right) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__isub__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("easyvec.matrixes.Mat2.__isub__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+401: if isinstance(right, Mat2):
__pyx_t_1 = __Pyx_TypeCheck(__pyx_v_right, __pyx_ptype_7easyvec_8matrixes_Mat2);
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+402: return self.sub_mat_(<Mat2>right)
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_sub_mat_(__pyx_v_self, ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_right), 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+403: elif isinstance(right, int) or isinstance(right, float):
__pyx_t_1 = PyInt_Check(__pyx_v_right); __pyx_t_4 = (__pyx_t_1 != 0); if (!__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = PyFloat_Check(__pyx_v_right); __pyx_t_1 = (__pyx_t_4 != 0); __pyx_t_2 = __pyx_t_1; __pyx_L4_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+404: return self.sub_num_(<real>right)
__Pyx_XDECREF(__pyx_r); __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_v_right); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 404, __pyx_L1_error) __pyx_t_3 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_sub_num_(__pyx_v_self, ((__pyx_t_7easyvec_7vectors_real)__pyx_t_5), 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+405: raise NotImplementedError(f"Сложить данные сущности нельзя self={self}, right={right}")
__pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = 0; __pyx_t_7 = 127; __Pyx_INCREF(__pyx_kp_u_self); __pyx_t_7 = (65535 > __pyx_t_7) ? 65535 : __pyx_t_7; __pyx_t_6 += 36; __Pyx_GIVEREF(__pyx_kp_u_self); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_self); __pyx_t_8 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self), __pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) : __pyx_t_7; __pyx_t_6 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_8); __pyx_t_8 = 0; __Pyx_INCREF(__pyx_kp_u_right); __pyx_t_6 += 8; __Pyx_GIVEREF(__pyx_kp_u_right); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u_right); __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_v_right, __pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) : __pyx_t_7; __pyx_t_6 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_3, 4, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_NotImplementedError, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 405, __pyx_L1_error)
406:
407: @cython.nonecheck(False)
408: @cython.cdivision(True)
+409: cpdef Mat2 div_num_(self, real num):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_98div_num_(PyObject *__pyx_v_self, PyObject *__pyx_arg_num); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_div_num_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, __pyx_t_7easyvec_7vectors_real __pyx_v_num, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("div_num_", 0); /* … */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_98div_num_(PyObject *__pyx_v_self, PyObject *__pyx_arg_num); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_97div_num_[] = "Mat2.div_num_(self, real num) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_98div_num_(PyObject *__pyx_v_self, PyObject *__pyx_arg_num) { __pyx_t_7easyvec_7vectors_real __pyx_v_num; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("div_num_ (wrapper)", 0); assert(__pyx_arg_num); { __pyx_v_num = __pyx_PyFloat_AsDouble(__pyx_arg_num); if (unlikely((__pyx_v_num == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 409, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("easyvec.matrixes.Mat2.div_num_", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_97div_num_(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((__pyx_t_7easyvec_7vectors_real)__pyx_v_num)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_97div_num_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, __pyx_t_7easyvec_7vectors_real __pyx_v_num) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("div_num_", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_div_num_(__pyx_v_self, __pyx_v_num, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.div_num_", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+410: self.m11 /= num
__pyx_v_self->m11 = (__pyx_v_self->m11 / __pyx_v_num);
+411: self.m12 /= num
__pyx_v_self->m12 = (__pyx_v_self->m12 / __pyx_v_num);
+412: self.m21 /= num
__pyx_v_self->m21 = (__pyx_v_self->m21 / __pyx_v_num);
+413: self.m22 /= num
__pyx_v_self->m22 = (__pyx_v_self->m22 / __pyx_v_num);
+414: return self
__Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __pyx_r = __pyx_v_self; goto __pyx_L0;
415:
416: @cython.nonecheck(False)
417: @cython.cdivision(True)
+418: cpdef Mat2 div_num(self, real num):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_100div_num(PyObject *__pyx_v_self, PyObject *__pyx_arg_num); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_div_num(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, __pyx_t_7easyvec_7vectors_real __pyx_v_num, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("div_num", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("easyvec.matrixes.Mat2.div_num", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_100div_num(PyObject *__pyx_v_self, PyObject *__pyx_arg_num); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_99div_num[] = "Mat2.div_num(self, real num) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_100div_num(PyObject *__pyx_v_self, PyObject *__pyx_arg_num) { __pyx_t_7easyvec_7vectors_real __pyx_v_num; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("div_num (wrapper)", 0); assert(__pyx_arg_num); { __pyx_v_num = __pyx_PyFloat_AsDouble(__pyx_arg_num); if (unlikely((__pyx_v_num == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 418, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("easyvec.matrixes.Mat2.div_num", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_99div_num(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((__pyx_t_7easyvec_7vectors_real)__pyx_v_num)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_99div_num(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, __pyx_t_7easyvec_7vectors_real __pyx_v_num) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("div_num", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_div_num(__pyx_v_self, __pyx_v_num, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.div_num", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+419: return Mat2(
__Pyx_XDECREF(((PyObject *)__pyx_r)); /* … */ __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L0;
+420: self.m11 / num,
__pyx_t_1 = PyFloat_FromDouble((__pyx_v_self->m11 / __pyx_v_num)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
+421: self.m12 / num,
__pyx_t_2 = PyFloat_FromDouble((__pyx_v_self->m12 / __pyx_v_num)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+422: self.m21 / num,
__pyx_t_3 = PyFloat_FromDouble((__pyx_v_self->m21 / __pyx_v_num)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+423: self.m22 / num
__pyx_t_4 = PyFloat_FromDouble((__pyx_v_self->m22 / __pyx_v_num)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
424: )
425:
426:
427: @cython.nonecheck(False)
428: @cython.cdivision(True)
+429: cpdef Mat2 div_mat_(self, Mat2 mat):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_102div_mat_(PyObject *__pyx_v_self, PyObject *__pyx_v_mat); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_div_mat_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_mat, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("div_mat_", 0); /* … */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_102div_mat_(PyObject *__pyx_v_self, PyObject *__pyx_v_mat); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_101div_mat_[] = "Mat2.div_mat_(self, Mat2 mat) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_102div_mat_(PyObject *__pyx_v_self, PyObject *__pyx_v_mat) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("div_mat_ (wrapper)", 0); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_7easyvec_8matrixes_Mat2, 1, "mat", 0))) __PYX_ERR(0, 429, __pyx_L1_error) __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_101div_mat_(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_mat)); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_101div_mat_(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_mat) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("div_mat_", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_div_mat_(__pyx_v_self, __pyx_v_mat, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.div_mat_", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+430: self.m11 /= mat.m11
__pyx_v_self->m11 = (__pyx_v_self->m11 / __pyx_v_mat->m11);
+431: self.m12 /= mat.m12
__pyx_v_self->m12 = (__pyx_v_self->m12 / __pyx_v_mat->m12);
+432: self.m21 /= mat.m21
__pyx_v_self->m21 = (__pyx_v_self->m21 / __pyx_v_mat->m21);
+433: self.m22 /= mat.m22
__pyx_v_self->m22 = (__pyx_v_self->m22 / __pyx_v_mat->m22);
+434: return self
__Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __pyx_r = __pyx_v_self; goto __pyx_L0;
435:
436: @cython.nonecheck(False)
437: @cython.cdivision(True)
+438: cpdef Mat2 div_mat(self, Mat2 mat):
static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_104div_mat(PyObject *__pyx_v_self, PyObject *__pyx_v_mat); /*proto*/ static struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_f_7easyvec_8matrixes_4Mat2_div_mat(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_mat, CYTHON_UNUSED int __pyx_skip_dispatch) { struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("div_mat", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("easyvec.matrixes.Mat2.div_mat", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_104div_mat(PyObject *__pyx_v_self, PyObject *__pyx_v_mat); /*proto*/ static char __pyx_doc_7easyvec_8matrixes_4Mat2_103div_mat[] = "Mat2.div_mat(self, Mat2 mat) -> Mat2"; static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_104div_mat(PyObject *__pyx_v_self, PyObject *__pyx_v_mat) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("div_mat (wrapper)", 0); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_7easyvec_8matrixes_Mat2, 1, "mat", 0))) __PYX_ERR(0, 438, __pyx_L1_error) __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_103div_mat(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_mat)); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_103div_mat(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_mat) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("div_mat", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_div_mat(__pyx_v_self, __pyx_v_mat, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("easyvec.matrixes.Mat2.div_mat", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+439: return Mat2(
__Pyx_XDECREF(((PyObject *)__pyx_r)); /* … */ __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7easyvec_8matrixes_Mat2), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L0;
+440: self.m11 / mat.m11,
__pyx_t_1 = PyFloat_FromDouble((__pyx_v_self->m11 / __pyx_v_mat->m11)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 440, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
+441: self.m12 / mat.m12,
__pyx_t_2 = PyFloat_FromDouble((__pyx_v_self->m12 / __pyx_v_mat->m12)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+442: self.m21 / mat.m21,
__pyx_t_3 = PyFloat_FromDouble((__pyx_v_self->m21 / __pyx_v_mat->m21)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+443: self.m22 / mat.m22
__pyx_t_4 = PyFloat_FromDouble((__pyx_v_self->m22 / __pyx_v_mat->m22)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
444: )
445:
+446: def __truediv__(left, right):
/* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_106__truediv__(PyObject *__pyx_v_left, PyObject *__pyx_v_right); /*proto*/ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_106__truediv__(PyObject *__pyx_v_left, PyObject *__pyx_v_right) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__truediv__ (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_105__truediv__(((PyObject *)__pyx_v_left), ((PyObject *)__pyx_v_right)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_105__truediv__(PyObject *__pyx_v_left, PyObject *__pyx_v_right) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__truediv__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("easyvec.matrixes.Mat2.__truediv__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+447: if isinstance(left, Mat2):
__pyx_t_1 = __Pyx_TypeCheck(__pyx_v_left, __pyx_ptype_7easyvec_8matrixes_Mat2);
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+448: if isinstance(right, Mat2):
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_right, __pyx_ptype_7easyvec_8matrixes_Mat2);
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
/* … */
}
+449: return (<Mat2>left).div_mat(<Mat2>right)
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_div_mat(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_left), ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_right), 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+450: elif isinstance(right, int) or isinstance(right, float):
__pyx_t_2 = PyInt_Check(__pyx_v_right); __pyx_t_4 = (__pyx_t_2 != 0); if (!__pyx_t_4) { } else { __pyx_t_1 = __pyx_t_4; goto __pyx_L5_bool_binop_done; } __pyx_t_4 = PyFloat_Check(__pyx_v_right); __pyx_t_2 = (__pyx_t_4 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L5_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+451: return (<Mat2>left).div_num(<real>right)
__Pyx_XDECREF(__pyx_r); __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_v_right); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 451, __pyx_L1_error) __pyx_t_3 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_div_num(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_left), ((__pyx_t_7easyvec_7vectors_real)__pyx_t_5), 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 451, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+452: raise NotImplementedError(f"Вычесть данные сущности нельзя left={left}, right={right}")
__pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = 0; __pyx_t_7 = 127; __Pyx_INCREF(__pyx_kp_u_left_3); __pyx_t_7 = (65535 > __pyx_t_7) ? 65535 : __pyx_t_7; __pyx_t_6 += 36; __Pyx_GIVEREF(__pyx_kp_u_left_3); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_left_3); __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_v_left, __pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) : __pyx_t_7; __pyx_t_6 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_8); __pyx_t_8 = 0; __Pyx_INCREF(__pyx_kp_u_right); __pyx_t_6 += 8; __Pyx_GIVEREF(__pyx_kp_u_right); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u_right); __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_v_right, __pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) : __pyx_t_7; __pyx_t_6 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_3, 4, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_NotImplementedError, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 452, __pyx_L1_error)
453:
+454: def __itruediv__(self, right):
/* Python wrapper */ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_108__itruediv__(PyObject *__pyx_v_self, PyObject *__pyx_v_right); /*proto*/ static PyObject *__pyx_pw_7easyvec_8matrixes_4Mat2_108__itruediv__(PyObject *__pyx_v_self, PyObject *__pyx_v_right) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__itruediv__ (wrapper)", 0); __pyx_r = __pyx_pf_7easyvec_8matrixes_4Mat2_107__itruediv__(((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_self), ((PyObject *)__pyx_v_right)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7easyvec_8matrixes_4Mat2_107__itruediv__(struct __pyx_obj_7easyvec_8matrixes_Mat2 *__pyx_v_self, PyObject *__pyx_v_right) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__itruediv__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("easyvec.matrixes.Mat2.__itruediv__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+455: if isinstance(right, Mat2):
__pyx_t_1 = __Pyx_TypeCheck(__pyx_v_right, __pyx_ptype_7easyvec_8matrixes_Mat2);
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+456: return self.div_mat_(<Mat2>right)
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_div_mat_(__pyx_v_self, ((struct __pyx_obj_7easyvec_8matrixes_Mat2 *)__pyx_v_right), 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+457: elif isinstance(right, int) or isinstance(right, float):
__pyx_t_1 = PyInt_Check(__pyx_v_right); __pyx_t_4 = (__pyx_t_1 != 0); if (!__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = PyFloat_Check(__pyx_v_right); __pyx_t_1 = (__pyx_t_4 != 0); __pyx_t_2 = __pyx_t_1; __pyx_L4_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+458: return self.div_num_(<real>right)
__Pyx_XDECREF(__pyx_r); __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_v_right); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 458, __pyx_L1_error) __pyx_t_3 = ((PyObject *)__pyx_f_7easyvec_8matrixes_4Mat2_div_num_(__pyx_v_self, ((__pyx_t_7easyvec_7vectors_real)__pyx_t_5), 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+459: raise NotImplementedError(f"Сложить данные сущности нельзя self={self}, right={right}")
__pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = 0; __pyx_t_7 = 127; __Pyx_INCREF(__pyx_kp_u_self); __pyx_t_7 = (65535 > __pyx_t_7) ? 65535 : __pyx_t_7; __pyx_t_6 += 36; __Pyx_GIVEREF(__pyx_kp_u_self); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_self); __pyx_t_8 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self), __pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) : __pyx_t_7; __pyx_t_6 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_8); __pyx_t_8 = 0; __Pyx_INCREF(__pyx_kp_u_right); __pyx_t_6 += 8; __Pyx_GIVEREF(__pyx_kp_u_right); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u_right); __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_v_right, __pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) : __pyx_t_7; __pyx_t_6 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_3, 4, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_NotImplementedError, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 459, __pyx_L1_error)
460: