1:45 PM 11/12/2025 ���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC ‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!
Warning: Undefined variable $authorization in C:\xampp\htdocs\demo\fi.php on line 57

Warning: Undefined variable $translation in C:\xampp\htdocs\demo\fi.php on line 118

Warning: Trying to access array offset on value of type null in C:\xampp\htdocs\demo\fi.php on line 119

Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\xampp\htdocs\demo\fi.php on line 120

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 247

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 248

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 249

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 250

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 251

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 252
// Copyright (c) 2008 Max-Planck-Institute Saarbruecken (Germany) // // This file is part of CGAL (www.cgal.org) // // $URL: https://github.com/CGAL/cgal/blob/v6.1/Polynomial/include/CGAL/Polynomial/bezout_matrix.h $ // $Id: include/CGAL/Polynomial/bezout_matrix.h b26b07a1242 $ // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // // Author(s) : Michael Hemmer // // ============================================================================ // TODO: The comments are all original EXACUS comments and aren't adapted. So // they may be wrong now. #ifndef CGAL_POLYNOMIAL_BEZOUT_MATRIX_H #define CGAL_POLYNOMIAL_BEZOUT_MATRIX_H #include #include #include #include #include #include namespace CGAL { namespace internal { /*! \ingroup CGAL_resultant_matrix * \brief construct hybrid Bezout matrix of two polynomials * * If \c sub=0 , this function returns the hybrid Bezout matrix * of \c f and \c g. * The hybrid Bezout matrix of two polynomials \e f and \e g * (seen as polynomials in one variable) is a * square matrix of size max(deg(f), deg(g)) whose entries * are expressions in the polynomials' coefficients. * Its determinant is the resultant of \e f and \e g, maybe up to sign. * The function computes the same matrix as the Maple command * BezoutMatrix. * * If \c sub>0 , this function returns the matrix obtained by chopping * off the \c sub topmost rows and the \c sub rightmost columns. * Its determinant is the sub-th (scalar) subresultant * of \e f and \e g, maybe up to sign. * * If specified, \c sub must be less than the degrees of both \e f and \e g. * * See also \c CGAL::hybrid_bezout_subresultant() and \c CGAL::sylvester_matrix() . * * A formal definition of the hybrid Bezout matrix and a proof for the * subresultant property can be found in: * * Gema M.Diaz-Toca, Laureano Gonzalez-Vega: Various New Expressions for * Subresultants and Their Applications. AAECC 15, 233-266 (2004) * */ template typename internal::Simple_matrix< typename Polynomial_traits_d::Coefficient_type > hybrid_bezout_matrix(typename Polynomial_traits_d::Polynomial_d f, typename Polynomial_traits_d::Polynomial_d g, int sub = 0) { typedef typename Polynomial_traits_d::Polynomial_d Polynomial; typedef typename Polynomial_traits_d::Coefficient_type NT; typename Polynomial_traits_d::Degree degree; typename CGAL::Algebraic_structure_traits::Is_zero is_zero; typename Polynomial_traits_d::Get_coefficient coeff; typedef typename internal::Simple_matrix Matrix; int n = degree(f); int m = degree(g); CGAL_precondition((n >= 0) && !is_zero(f)); CGAL_precondition((m >= 0) && !is_zero(g)); CGAL_precondition(n > sub || sub == 0); CGAL_precondition(m > sub || sub == 0); int i, j, k, l; NT s; if (m > n) { std::swap(f, g); std::swap(m, n); } Matrix B(n-sub); for (i = 1+sub; i <= m; i++) { for (j = 1; j <= n-sub; j++) { s = NT(0); for (k = 0; k <= i-1; k++) { l = n+i-j-k; if ((l <= n) and (l >= n-(m-i))) { s += coeff(f,l) * coeff(g,k); } } for (k = 0; k <= n-(m-i+1); k++) { l = n+i-j-k; if ((l <= m) and (l >= i)) { s -= coeff(f,k) * coeff(g,l); } } B[i-sub-1][j-1] = s; } } for (i = (std::max)(m+1, 1+sub); i <= n; i++) { for (j = i-m; j <= (std::min)(i, n-sub); j++) { B[i-sub-1][j-1] = coeff(g,i-j); } } return B; // g++ 3.1+ has NRVO, so this should not be too expensive } /*! \ingroup CGAL_resultant_matrix * \brief construct the symmetric Bezout matrix of two polynomials * * This function returns the (symmetric) Bezout matrix of \c f and \c g. * The Bezout matrix of two polynomials \e f and \e g * (seen as polynomials in one variable) is a * square matrix of size max(deg(f), deg(g)) whose entries * are expressions in the polynomials' coefficients. * Its determinant is the resultant of \e f and \e g, maybe up to sign. * */ template typename internal::Simple_matrix symmetric_bezout_matrix (typename Polynomial_traits_d::Polynomial_d f, typename Polynomial_traits_d::Polynomial_d g, int sub = 0) { // Note: The algorithm is taken from: // Chionh, Zhang, Goldman: Fast Computation of the Bezout and Dixon Resultant // Matrices. J.Symbolic Computation 33, 13-29 (2002) typedef typename Polynomial_traits_d::Polynomial_d Polynomial; typedef typename Polynomial_traits_d::Coefficient_type NT; typename Polynomial_traits_d::Degree degree; CGAL_assertion_code(typename CGAL::Algebraic_structure_traits::Is_zero is_zero;) CGAL_USE_TYPE(Polynomial); typename Polynomial_traits_d::Get_coefficient coeff; typedef typename internal::Simple_matrix Matrix; int n = degree(f); int m = degree(g); CGAL_precondition((n >= 0) && !is_zero(f)); CGAL_precondition((m >= 0) && !is_zero(g)); int i,j,stop; NT sum1,sum2; if (m > n) { std::swap(f, g); std::swap(m, n); } CGAL_precondition((sub>=0) && sub < n); int d = n - sub; Matrix B(d); // 1st step: initialization for(i=0;im) ? NT(0) : -coeff(f,i+sub)*coeff(g,(j+sub)+1); sum2 = ((i+sub)>m) ? NT(0) : coeff(g,i+sub)*coeff(f,(j+sub)+1); B[i][j]=sum1+sum2; } } // 2nd Step: Recursion adding // First, set up the first line correctly for(i=0;im) ? NT(0) : -coeff(f,sub-j)*coeff(g,(i+sub+j)+1); sum2 = ((sub-j)>m) ? NT(0) : coeff(g,sub-j)*coeff(f,(i+sub+j)+1); B[0][i]+=sum1+sum2; } } // Now, compute the rest for(i=1;ihybrid_bezout_matrix(f, g, sub) which is the * resultant of \c f and \c g, maybe up to sign; * or rather the sub-th (scalar) subresultant, if a non-zero third * argument is given. * * If specified, \c sub must be less than the degrees of both \e f and \e g. * * This function might be faster than \c CGAL::Polynomial<..>::resultant() , * which computes the resultant from a subresultant remainder sequence. * See also \c CGAL::sylvester_subresultant(). */ template typename Polynomial_traits_d::Coefficient_type hybrid_bezout_subresultant( typename Polynomial_traits_d::Polynomial_d f, typename Polynomial_traits_d::Polynomial_d g, int sub = 0 ) { typedef typename Polynomial_traits_d::Polynomial_d Polynomial; typedef typename Polynomial_traits_d::Coefficient_type NT; typename Polynomial_traits_d::Degree degree; typename CGAL::Algebraic_structure_traits::Is_zero is_zero; typedef internal::Simple_matrix Matrix; CGAL_precondition((degree(f) >= 0)); CGAL_precondition((degree(g) >= 0)); if (is_zero(f) || is_zero(g)) return NT(0); Matrix S = hybrid_bezout_matrix(f, g, sub); CGAL_assertion(S.row_dimension() == S.column_dimension()); if (S.row_dimension() == 0) { return NT(1); } else { return internal::determinant(S); } } // Transforms the minors of the symmetric bezout matrix into the subresultant. // Needs the appropriate power of the leading coedfficient of f and the // degrees of f and g template void symmetric_minors_to_subresultants(InputIterator in, OutputIterator out, NT divisor, int n, int m, bool swapped) { typename CGAL::Algebraic_structure_traits::Integral_division idiv; for(int i=0;i>1; // (n-m+i+1)==2 or 3 mod 4 negate=negate ^ (swapped & ((n-m+i+1)*(i+1))); //...XOR (swapped AND (n-m+i+1)* (i+1) is odd) *out = idiv(*in, negate ? -divisor : divisor); in++; out++; } } /*! \ingroup CGAL_resultant_matrix * \brief compute the principal subresultant coefficients as minors * of the symmetric Bezout matrix. * * Returns the sequence sres0,..,sresm, where * sresi denotes the ith principal subresultant coefficient * * The function uses an extension of the Berkowitz method to compute the * determinant * See also \c CGAL::minors_berkowitz */ template OutputIterator symmetric_bezout_subresultants( typename Polynomial_traits_d::Polynomial_d f, typename Polynomial_traits_d::Polynomial_d g, OutputIterator sres) { typedef typename Polynomial_traits_d::Polynomial_d Polynomial; typedef typename Polynomial_traits_d::Coefficient_type NT; typename Polynomial_traits_d::Degree degree; typename CGAL::Algebraic_structure_traits::Is_zero is_zero; typename Polynomial_traits_d::Leading_coefficient lcoeff; typedef typename internal::Simple_matrix Matrix; int n = degree(f); int m = degree(g); bool swapped=false; if(n < m) { std::swap(f,g); std::swap(n,m); swapped=true; } Matrix B = symmetric_bezout_matrix(f,g); // Compute a_0^{n-m} NT divisor=ipower(lcoeff(f),n-m); std::vector minors; minors_berkowitz(B,std::back_inserter(minors),n,m); CGAL::internal::symmetric_minors_to_subresultants(minors.begin(),sres, divisor,n,m,swapped); return sres; } /* * Return a modified version of the hybrid bezout matrix such that the minors * from the last k rows and columns give the subresultants */ template typename internal::Simple_matrix modified_hybrid_bezout_matrix (typename Polynomial_traits_d::Polynomial_d f, typename Polynomial_traits_d::Polynomial_d g) { typedef typename Polynomial_traits_d::Coefficient_type NT; typedef typename internal::Simple_matrix Matrix; typename Polynomial_traits_d::Degree degree; int n = degree(f); int m = degree(g); int i,j; bool negate, swapped=false; if(n < m) { std::swap(f,g); //(*) std::swap(n,m); swapped=true; } Matrix B = CGAL::internal::hybrid_bezout_matrix(f,g); // swap columns i=0; while(i0,...,sresm$, where * sresi denotes the ith principal subresultant coefficient * * The function uses an extension of the Berkowitz method to compute the * determinant * See also \c CGAL::minors_berkowitz */ template OutputIterator hybrid_bezout_subresultants( typename Polynomial_traits_d::Polynomial_d f, typename Polynomial_traits_d::Polynomial_d g, OutputIterator sres) { typedef typename Polynomial_traits_d::Coefficient_type NT; typename Polynomial_traits_d::Degree degree; typedef typename internal::Simple_matrix Matrix; int n = degree(f); int m = degree(g); Matrix B = CGAL::internal::modified_hybrid_bezout_matrix (f,g); if(n void swap_entries(typename internal::Simple_matrix & A) { CGAL_precondition(A.row_dimension()==A.column_dimension()); int n = A.row_dimension(); int i=0; while(i typename internal::Simple_matrix s_matrix( const typename internal::Simple_matrix& B, InputIterator num,int size) { typename internal::Simple_matrix S(size); CGAL_precondition_code(int n = B.row_dimension();) CGAL_precondition(n==(int)B.column_dimension()); int curr_num; bool negate; for(int i=0;i OutputIterator s_matrix_integer_sequence(OutputIterator it, int c,int s,int n) { CGAL_precondition(0A such that Ai,j is * the coefficient of xj-1 in the ith polynomial * subresultant. In particular, the main diagonal contains the scalar * subresultants. * * If \c d > 0 is specified, only the first \c d diagonals of A are * computed. In particular, setting \c d to one yields exactly the same * result as applying \c hybrid_subresultants or \c symmetric_subresultants * (except the different output format). * * These coefficients are computed as special minors of the hybrid Bezout matrix. * See also \c CGAL::minors_berkowitz */ template typename internal::Simple_matrix polynomial_subresultant_matrix(typename Polynomial_traits_d::Polynomial_d f, typename Polynomial_traits_d::Polynomial_d g, int d=0) { typedef typename Polynomial_traits_d::Coefficient_type NT; typename Polynomial_traits_d::Degree degree; typename Polynomial_traits_d::Leading_coefficient lcoeff; int n = degree(f); int m = degree(g); CGAL_precondition(n>=0); CGAL_precondition(m>=0); CGAL_precondition(d>=0); typedef internal::Simple_matrix Matrix; bool swapped=false; if(n < m) { std::swap(f,g); std::swap(n,m); swapped=true; } if(d==0) { d=m; }; Matrix B = CGAL::internal::symmetric_bezout_matrix(f,g); // For easier notation, we swap all entries: internal::swap_entries(B); // Compute the S-matrices and collect the minors std::vector s_mat(m); std::vector > coeffs(d); for(int i = 1; i<=d;i++) { std::vector intseq; internal::s_matrix_integer_sequence(std::back_inserter(intseq),i,d,n); Matrix S = internal::s_matrix(B,intseq.begin(),(int)intseq.size()); internal::swap_entries(S); //std::cout << S << std::endl; int Sdim = S.row_dimension(); int number_of_minors=(Sdim < m) ? Sdim : Sdim; internal::minors_berkowitz(S,std::back_inserter(coeffs[i-1]), Sdim,number_of_minors); } // Now, rearrange the minors in the matrix Matrix Ret(m,m,NT(0)); for(int i = 0; i < d; i++) { for(int j = 0;j < m-i ; j++) { int s_index=(n-m+j+i+1)%d; if(s_index==0) { s_index=d; } s_index--; Ret[j][j+i]=coeffs[s_index][n-m+j]; } } typename CGAL::Algebraic_structure_traits::Integral_division idiv; NT divisor = ipower(lcoeff(f),n-m); int bit_mask = swapped ? 1 : 0; // Divide through the divisor and set the correct sign for(int i=0;i>1; // (n-m+i+1)==2 or 3 mod 4 negate^=(bit_mask & ((n-m+i+1)*(i+1))); //...XOR (swapped AND (n-m+i+1)* (i+1) is odd) Ret[i][j] = idiv(Ret[i][j], negate>0 ? -divisor : divisor); } } return Ret; } } } //namespace CGAL #endif // CGAL_POLYNOMIAL_BEZOUT_MATRIX_H // EOF