§
    µ³ÙgIo  ã                   óž  — d dl Z d dlZd dlZd dlmZmZmZmZm	Z	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZmZmZmZ d dlmZmZmZ d dlmZ  G d	„ d
¦  «        Z G d„ de¦  «        Z G d„ d¦  «        Z G d„ de¦  «        Zd„ Z d„ Z!d„ Z"e j#         $                     ej%        ¦   «         dk    d¬¦  «        d„ ¦   «         Z&e j#         $                     ej%        ¦   «         dk    d¬¦  «        e j#         '                    d¬¦  «        d„ ¦   «         ¦   «         Z(e j#         $                     ej%        ¦   «         dk    d¬¦  «        d„ ¦   «         Z)dS )é    N)ÚTestCaseÚassert_array_almost_equalÚassert_array_equalÚassert_Úassert_allcloseÚassert_equal)Úassert_deallocated)Ú
csr_matrix)ÚLinearOperator)ÚScalarFunctionÚVectorFunctionÚLinearVectorFunctionÚIdentityVectorFunction)ÚrosenÚ	rosen_derÚ
rosen_hess)ÚBFGSc                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚExScalarFunctionc                 ó0   — d| _         d| _        d| _        d S ©Nr   )ÚnfevÚngevÚnhev©Úselfs    úh/granary/edev/quantum/lib/python3.11/site-packages/scipy/optimize/tests/test_differentiable_functions.pyÚ__init__zExScalarFunction.__init__   ó   € ØˆŒ	ØˆŒ	ØˆŒ	ˆ	ˆ	ó    c                 ón   — | xj         dz  c_         d|d         dz  |d         dz  z   dz
  z  |d         z
  S )Né   é   r   )r   ©r   Úxs     r   ÚfunzExScalarFunction.fun   s?   € Øˆ	Œ	�Q‰ˆ	Œ	Ø�!�A”$˜‘'˜A˜aœD !™GÑ# aÑ'Ñ(¨1¨Q¬4Ñ/Ð/r    c                 óx   — | xj         dz  c_         t          j        d|d         z  dz
  d|d         z  g¦  «        S )Nr"   é   r   )r   ÚnpÚarrayr$   s     r   ÚgradzExScalarFunction.grad   s:   € Øˆ	Œ	�Q‰ˆ	Œ	ÝŒx˜˜1˜Qœ4™ ™ 1 Q q¤T¡6Ð*Ñ+Ô+Ð+r    c                 óP   — | xj         dz  c_         dt          j        d¦  «        z  S )Nr"   r(   r#   )r   r)   Úeyer$   s     r   ÚhesszExScalarFunction.hess!   s#   € Øˆ	Œ	�Q‰ˆ	Œ	Ø•”˜‘”‰{Ðr    N)Ú__name__Ú
__module__Ú__qualname__r   r&   r+   r.   © r    r   r   r      sP   € € € € € ðð ð ð
0ð 0ð 0ð,ð ,ð ,ðð ð ð ð r    r   c                   óV   — e Zd Zd„ Zd„ Zd„ Zej        j        d„ ¦   «         Z	d„ Z
d„ ZdS )ÚTestScalarFunctionc           
      ó¼  — t          ¦   «         }d}d}ddg}t          |j        |d|j        |j        d t
          j         t
          j        f¦  «        }|dz  }|dz  }t          |j        |¦  «         t          |j        |¦  «         t          |j	        |¦  «         t          |j	        |¦  «         t          |j        |dd|j        d t
          j         t
          j        f¦  «        }|dz  }|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |j	        z   |¦  «         t          |j
        |j
        ¦  «         t          |j        |j        ¦  «         dd	g}|                     |¦  «        }|                     |¦  «        }	|dz  }|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |j	        z   |¦  «         |                     |¦  «        }
|                     |¦  «        }|dz  }|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |j	        z   |¦  «         t          ||
¦  «         t          |	|¦  «         d
dg}|                     |¦  «        }	|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |j	        z   |¦  «         |                     |¦  «        }|dz  }|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |j	        z   |¦  «         t          |	|¦  «         dd	g}|                     |¦  «        }|                     |¦  «        }	|dz  }|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |j	        z   |¦  «         |                     |¦  «        }
|                     |¦  «        }|dz  }|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |j	        z   |¦  «         t          ||
¦  «         t          |	|¦  «         dd	g}|                     |¦  «        }|                     |¦  «        }	|dz  }|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |j	        z   |¦  «         |                     |¦  «        }
|                     |¦  «        }|dz  }|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |j	        z   |¦  «         t          ||
¦  «         t          |	|¦  «         d S )Nr   ç      ð?ç        r2   r"   ú2-pointé   é
   ç333333Ó?ç       @ç      @r#   )r   r   r&   r+   r.   r)   Úinfr   r   r   Úfr   Úg)r   Úexr   r   Úx0ÚanalitÚapproxr%   Úf_analitÚg_analitÚf_approxÚg_approxs               r   Útest_finite_difference_gradz.TestScalarFunction.test_finite_difference_grad(   sk  € ÝÑÔˆØˆØˆà�3ˆZˆÝ ¤¨¨B°´Ø "¤¨µ´°½¼Ð/@ñBô Bˆà�‰	ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ;¨Ñ-Ô-Ð-Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ;¨Ñ-Ô-Ð-Ý ¤¨¨B°	Ø "¤¨µ´°½¼Ð/@ñBô Bˆà�‰	ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜6œ8 V¤XÑ.Ô.Ð.Ý! &¤(¨F¬HÑ5Ô5Ð5à�ˆIˆØ—:’:˜a‘=”=ˆØ—;’;˜q‘>”>ˆØ�‰	ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ø—:’:˜a‘=”=ˆØ—;’;˜q‘>”>ˆØ�‰	ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý! (¨HÑ5Ô5Ð5Ý! (¨HÑ5Ô5Ð5à�#ˆJˆØ—;’;˜q‘>”>ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9à—;’;˜q‘>”>ˆØ�‰	ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý! (¨HÑ5Ô5Ð5à�#ˆJˆØ—:’:˜a‘=”=ˆØ—;’;˜q‘>”>ˆØ�‰	ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ø—:’:˜a‘=”=ˆØ—;’;˜q‘>”>ˆØ�‰	ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý! (¨HÑ5Ô5Ð5Ý! (¨HÑ5Ô5Ð5à�ˆHˆØ—:’:˜a‘=”=ˆØ—;’;˜q‘>”>ˆØ�‰	ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ø—:’:˜a‘=”=ˆØ—;’;˜q‘>”>ˆØ�‰	ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý! (¨HÑ5Ô5Ð5Ý! (¨HÑ5Ô5Ð5Ð5Ð5r    c           
      óÄ  — t          ¦   «         }d„ }ddg}t          |j        |d|j        |j        d t
          j         t
          j        f¦  «        }|                     |¦  «        |                     |¦  «        f} ||                     |¦  «        |¦  «         |j        dk    sJ ‚d|d<   |                     |¦  «        |                     |¦  «        f} ||                     |¦  «        |¦  «         ddg}t          |j        |dd|j        d t
          j         t
          j        f¦  «        }|j        dk    sJ ‚|                     |¦  «        |                     |¦  «        f} ||                     |¦  «        |¦  «         |j        dk    sJ ‚d|d<   |                     |¦  «        |                     |¦  «        f} ||                     |¦  «        |¦  «         d S )Nc                 óv   — t          | d         |d         ¦  «         t          | d         |d         ¦  «         d S )Nr   r"   )r   )r%   Úys     r   Úfg_allclosez9TestScalarFunction.test_fun_and_grad.<locals>.fg_allcloseˆ   s8   € Ý˜A˜aœD ! A¤$Ñ'Ô'Ð'Ý˜A˜aœD ! A¤$Ñ'Ô'Ð'Ð'Ð'r    r<   r;   r2   r"   r6   ú3-point)	r   r   r&   r+   r.   r)   r>   Úfun_and_gradr   )r   rA   rM   rB   rC   ÚfgÚsfs          r   Útest_fun_and_gradz$TestScalarFunction.test_fun_and_grad…   sÑ  € ÝÑÔˆð	(ð 	(ð 	(ð
 �3ˆZˆÝ ¤¨¨B°´Ø "¤¨µ´°½¼Ð/@ñBô Bˆð �VŠV�B‰ZŒZ˜Ÿš ™œÐ$ˆØˆ�F×'Ò'¨Ñ+Ô+¨RÑ0Ô0Ð0ØŒ{˜aÒÐÐÐàˆˆ1‰Ø�VŠV�B‰ZŒZ˜Ÿš ™œÐ$ˆØˆ�F×'Ò'¨Ñ+Ô+¨RÑ0Ô0Ð0ð �3ˆZˆÝ˜BœF B¨¨IØ "¤¨µ´°½¼Ð/@ñBô BˆàŒw˜!Š|ˆ|ˆ|ˆ|Ø�VŠV�B‰ZŒZ˜Ÿš ™œÐ$ˆØˆ�B—O’O BÑ'Ô'¨Ñ,Ô,Ð,ØŒw˜!Š|ˆ|ˆ|ˆ|àˆˆ1‰Ø�VŠV�B‰ZŒZ˜Ÿš ™œÐ$ˆØˆ�B—O’O BÑ'Ô'¨Ñ,Ô,Ð,Ð,Ð,r    c           
      óÐ  — t          ¦   «         }d}d}d}ddg}t          |j        |d|j        |j        d t
          j         t
          j        f¦  «        }|dz  }|dz  }|dz  }t          |j        |¦  «         t          |j        |¦  «         t          |j	        |¦  «         t          |j	        |¦  «         t          |j
        |¦  «         t          |j
        |¦  «         t          |j        |d|j        dd t
          j         t
          j        f¦  «        }t          t          |j        t          ¦  «        ¦  «         ddgdd	gd
dgfD ]v}t          |j        |j        ¦  «         t!          |j        |j        ¦  «         t!          |j                             |¦  «        |j                             |¦  «        ¦  «         Œw|dz  }|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         t          |j
        |¦  «         t          |j
        |j
        z   |¦  «         ddg}	|                     |	¦  «        }
|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         t          |j
        |¦  «         t          |j
        |j
        z   |¦  «         |                     |	¦  «        }t          t          |t          ¦  «        ¦  «         ddgdd	gd
dgfD ]8}t!          |
                     |¦  «        |                     |¦  «        ¦  «         Œ9|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         t          |j
        |¦  «         t          |j
        |j
        z   |¦  «         ddg}	|                     |	¦  «        }
|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         t          |j
        |¦  «         t          |j
        |j
        z   |¦  «         |                     |	¦  «        }t          t          |t          ¦  «        ¦  «         ddgdd	gd
dgfD ]8}t!          |
                     |¦  «        |                     |¦  «        ¦  «         Œ9|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         t          |j
        |¦  «         t          |j
        |j
        z   |¦  «         ddg}	|                     |	¦  «        }|                     |	¦  «        }
|dz  }|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         t          |j
        |¦  «         t          |j
        |j
        z   |¦  «         |                     |	¦  «        }|                     |	¦  «        }t          t          |t          ¦  «        ¦  «         ddgdd	gd
dgfD ]8}t!          |
                     |¦  «        |                     |¦  «        ¦  «         Œ9|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         t          |j
        |¦  «         t          |j
        |j
        z   |¦  «         ddg}	|                     |	¦  «        }|                     |	¦  «        }
|dz  }|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         t          |j
        |¦  «         t          |j
        |j
        z   |¦  «         |                     |	¦  «        }|                     |	¦  «        }t          t          |t          ¦  «        ¦  «         ddgdd	gd
dgfD ]8}t!          |
                     |¦  «        |                     |¦  «        ¦  «         Œ9|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         t          |j
        |¦  «         t          |j
        |j
        z   |¦  «         d S )Nr   r6   r7   r2   r"   r8   r<   ç      @ç      @ç      @r(   çÍÌÌÌÌÌ @ç333333ó?r=   r;   çÍÌÌÌÌÌ@çffffff@)r   r   r&   r+   r.   r)   r>   r   r   r   r   r   Ú
isinstanceÚHr   r?   r   r@   Údot)r   rA   r   r   r   rB   rC   rD   Úvr%   ÚH_analitÚH_approxÚ_s                r   Ú+test_finite_difference_hess_linear_operatorz>TestScalarFunction.test_finite_difference_hess_linear_operator¦   sü  € ÝÑÔˆØˆØˆØˆà�3ˆZˆÝ ¤¨¨B°´Ø "¤¨µ´°½¼Ð/@ñBô Bˆà�‰	ˆØ�‰	ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ;¨Ñ-Ô-Ð-Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ;¨Ñ-Ô-Ð-Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ;¨Ñ-Ô-Ð-Ý ¤¨¨B°´Ø )¨4µ2´6°'½2¼6Ð1BñDô Dˆå•
˜6œ8¥^Ñ4Ô4Ñ5Ô5Ð5Ø˜�*˜s C˜j¨3°¨*Ð5ð 	Hð 	HˆAÝ˜vœx¨¬Ñ2Ô2Ð2Ý% f¤h°´Ñ9Ô9Ð9Ý% f¤h§l¢l°1¡o¤o°v´x·|²|ÀA±´ÑGÔGÐGÐGØ�‰	ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9à�#ˆJˆØ—;’;˜q‘>”>ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ø—;’;˜q‘>”>ˆÝ•
˜8¥^Ñ4Ô4Ñ5Ô5Ð5Ø˜�*˜s C˜j¨3°¨*Ð5ð 	Hð 	HˆAÝ% h§l¢l°1¡o¤o°x·|²|ÀA±´ÑGÔGÐGÐGØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9à�#ˆJˆØ—;’;˜q‘>”>ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ø—;’;˜q‘>”>ˆÝ•
˜8¥^Ñ4Ô4Ñ5Ô5Ð5Ø˜�*˜s C˜j¨3°¨*Ð5ð 	Hð 	HˆAÝ% h§l¢l°1¡o¤o°x·|²|ÀA±´ÑGÔGÐGÐGØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9à�#ˆJˆØ�KŠK˜‰NŒNˆØ—;’;˜q‘>”>ˆØ�‰	ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ø�KŠK˜‰NŒNˆØ—;’;˜q‘>”>ˆÝ•
˜8¥^Ñ4Ô4Ñ5Ô5Ð5Ø˜�*˜s C˜j¨3°¨*Ð5ð 	Hð 	HˆAÝ% h§l¢l°1¡o¤o°x·|²|ÀA±´ÑGÔGÐGÐGØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9à�#ˆJˆØ�KŠK˜‰NŒNˆØ—;’;˜q‘>”>ˆØ�‰	ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ø�KŠK˜‰NŒNˆØ—;’;˜q‘>”>ˆÝ•
˜8¥^Ñ4Ô4Ñ5Ô5Ð5Ø˜�*˜s C˜j¨3°¨*Ð5ð 	Hð 	HˆAÝ% h§l¢l°1¡o¤o°x·|²|ÀA±´ÑGÔGÐGÐGØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ð9Ð9r    c           
      óâ  — d„ }t          j        g d¢¦  «        }t          ||ddd„ d t           j         t           j        f¦  «        }||j        usJ ‚t          |                     |¦  «        d¦  «         ||j        usJ ‚d|d<   |                     |¦  «        }t          |d	¦  «         d
|d<   |                     |¦  «        }t          |d¦  «         ||j        usJ ‚t          ¦   «         }t          j        g d¢¦  «        }t          ||dd|d t           j         t           j        f¦  «        }||j        usJ ‚t          |                     |¦  «        d¦  «         ||j        usJ ‚d|d<   |                     |¦  «        }t          |d	¦  «         d
|d<   |                     |¦  «        }t          |d¦  «         ||j        usJ ‚d„ }t          j        g d¢¦  «        }t          ||ddd„ d t           j         t           j        f¦  «        }||j        usJ ‚t          |                     |¦  «        d¦  «         t          |j        t          j        g d¢¦  «        ¦  «         ||j        usJ ‚d S )Nc                 óT   — t          j        t          j        | ¦  «        dz  ¦  «        S )Nr#   )r)   ÚsumÚasarray©r%   s    r   r?   z4TestScalarFunction.test_x_storage_overlap.<locals>.f(  s   € Ý”6�"œ* Q™-œ-¨1Ñ,Ñ-Ô-Ð-r    )r6   r<   rT   r2   rN   c                 ó   — | S ©Nr2   rg   s    r   ú<lambda>z;TestScalarFunction.test_x_storage_overlap.<locals>.<lambda>,  s   € ¸1€ r    g      ,@r7   r   g      *@r"   c                 ó4   — | | z  } t          j        | ¦  «        S ri   )r)   re   rg   s    r   Úffz5TestScalarFunction.test_x_storage_overlap.<locals>.ffN  s   € Ø�‰FˆAÝ”6˜!‘9”9Ðr    c                 ó   — | S ri   r2   rg   s    r   rj   z;TestScalarFunction.test_x_storage_overlap.<locals>.<lambda>T  s   € ¨A€ r    )r)   r*   r   r>   r%   r   r&   r   )r   r?   r%   rQ   Úf1Úf2r.   rl   s           r   Útest_x_storage_overlapz)TestScalarFunction.test_x_storage_overlap"  si  € ð	.ð 	.ð 	.õ ŒH�\�\�\Ñ"Ô"ˆÝ˜A˜q " i°°¸dÅbÄfÀWÍbÌfÐDUÑVÔVˆà˜œˆ}ˆ}ˆ}ˆ}Ý�R—V’V˜A‘Y”Y Ñ%Ô%Ð%Ø˜œˆ}ˆ}ˆ}ˆ}àˆˆ!‰Ø�VŠV�A‰YŒYˆÝ�R˜ÑÔÐàˆˆ!‰Ø�VŠV�A‰YŒYˆÝ�R˜ÑÔÐØ˜œˆ}ˆ}ˆ}ˆ}õ ‰vŒvˆÝŒH�\�\�\Ñ"Ô"ˆÝ˜A˜q " i°°t½r¼v¸gÅrÄvÐ=NÑOÔOˆà˜œˆ}ˆ}ˆ}ˆ}Ý�R—V’V˜A‘Y”Y Ñ%Ô%Ð%Ø˜œˆ}ˆ}ˆ}ˆ}àˆˆ!‰Ø�VŠV�A‰YŒYˆÝ�R˜ÑÔÐàˆˆ!‰Ø�VŠV�A‰YŒYˆÝ�R˜ÑÔÐØ˜œˆ}ˆ}ˆ}ˆ}ð	ð 	ð 	õ ŒH�\�\�\Ñ"Ô"ˆÝØ��2�y + +¨tµr´v°g½r¼vÐ5Fñ
ô 
ˆð ˜œˆ}ˆ}ˆ}ˆ}Ý�R—V’V˜A‘Y”Y Ñ%Ô%Ð%Ý�R”T�2œ8 L L LÑ1Ô1Ñ2Ô2Ð2Ø˜œˆ}ˆ}ˆ}ˆ}ˆ}ˆ}r    c           
      óþ  — t          j        g d¢¦  «        }t          t          |dt          t
          d d ¦  «        }|                     g d¢¦  «         |                     |¦  «         |                     g d¢¦  «         |                     g d¢¦  «         t          |j	        d¦  «         t          |j
        g d¢¦  «         t          t          |ddt
          d t           j         t           j        f¦  «        }|                     g d¢¦  «         |                     |¦  «         |                     g d¢¦  «         |                     g d¢¦  «         t          |j	        d¦  «         t          |j
        g d¢¦  «         d S )N©r#   r9   r(   r2   )r"   r"   r"   )g)\�Âõ(ð?r"   r6   r7   )r6   r6   r6   r8   )r)   r*   r   r   r   r   r&   r+   r   Ú	_lowest_fÚ	_lowest_xr>   )r   rB   rQ   s      r   Útest_lowest_xz TestScalarFunction.test_lowest_x[  sT  € åŒX�i�i�iÑ Ô ˆÝ�E 2 r­9µjØ  $ñ(ô (ˆà
�ŠˆyˆyˆyÑÔÐØ
�Šˆr‰
Œ
ˆ
Ø
�Šˆ~ˆ~ˆ~ÑÔÐØ
�Š���ÑÔÐÝ�R”\ 3Ñ'Ô'Ð'Ý�R”\ ? ? ?Ñ3Ô3Ð3å�E 2 r¨9µjØ ¥B¤F 7­B¬FÐ"3ñ5ô 5ˆà
�ŠˆyˆyˆyÑÔÐØ
�Šˆr‰
Œ
ˆ
Ø
�Šˆ~ˆ~ˆ~ÑÔÐØ
�Š���ÑÔÐÝ�R”\ 3Ñ'Ô'Ð'Ý�R”\ ? ? ?Ñ3Ô3Ð3Ð3Ð3r    c           
      ó,  — t          j        g d¢¦  «                             t           j        ¦  «        }d„ }t	          ||ddt
          d t           j         t           j        f¦  «        }|                     |¦  «        }|j        t           j        k    sJ ‚d S )Nrr   c                 óN   — | j         t          j        k    sJ ‚t          | ¦  «        S ri   )Údtyper)   Úfloat32r   rg   s    r   Úrosen_z2TestScalarFunction.test_float_size.<locals>.rosen_u  s"   € Ø”7�bœjÒ(Ð(Ð(Ð(Ý˜‘8”8ˆOr    r2   r8   )	r)   r*   Úastypery   r   r   r>   r&   rx   )r   rB   rz   rQ   Úress        r   Útest_float_sizez"TestScalarFunction.test_float_sizep  s‰   € ÝŒX�i�i�iÑ Ô ×'Ò'­¬
Ñ3Ô3ˆð	ð 	ð 	õ ˜F B¨¨IµzØ ¥B¤F 7­B¬FÐ"3ñ5ô 5ˆà�fŠf�R‰jŒjˆØŒy�BœJÒ&Ð&Ð&Ð&Ð&Ð&r    N)r/   r0   r1   rI   rR   rb   ÚpytestÚmarkÚthread_unsaferp   ru   r}   r2   r    r   r4   r4   &   sŠ   € € € € € ð[6ð [6ð [6ðz-ð -ð -ðBz:ð z:ð z:ðx „[Ôð6ð 6ñ Ôð6ðp4ð 4ð 4ð*'ð 'ð 'ð 'ð 'r    r4   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚExVectorialFunctionc                 ó0   — d| _         d| _        d| _        d S r   )r   Únjevr   r   s    r   r   zExVectorialFunction.__init__�  r   r    c                 óò   — | xj         dz  c_         t          j        d|d         dz  |d         dz  z   dz
  z  |d         z
  d|d         dz  |d         dz  z   dz
  z  d|d         z  z
  g|j        ¬¦  «        S )Nr"   r#   r   r(   r9   ©rx   )r   r)   r*   rx   r$   s     r   r&   zExVectorialFunction.fun†  s‘   € Øˆ	Œ	�Q‰ˆ	Œ	ÝŒx˜˜A˜aœD !™G a¨¤d¨A¡gÑ-°Ñ1Ñ2°Q°q´TÑ9Ø˜A˜aœD !™G a¨¤d¨A¡gÑ-°Ñ1Ñ2°Q°q¸´t±VÑ;ð=ØDEÄGðMñ Mô Mð 	Mr    c                 ó¾   — | xj         dz  c_         t          j        d|d         z  dz
  d|d         z  gd|d         dz  z  dz
  d|d         z  gg|j        ¬¦  «        S )	Nr"   r(   r   é   r#   r9   é   r†   )r„   r)   r*   rx   r$   s     r   ÚjaczExVectorialFunction.jac‹  ss   € Øˆ	Œ	�Q‰ˆ	Œ	ÝŒx˜!˜A˜aœD™& ™( A a¨¤d¡FÐ+Ø˜Q˜qœT 1™W™* Q™,¨¨!¨A¬$©Ð/ð1Ø89¼ðAñ Aô Að 	Ar    c                 ó¼   — | xj         dz  c_         |d         dz  t          j        d¦  «        z  |d         t          j        d|d         z  dgddgg¦  «        z  z   S )Nr"   r   r(   r#   é   r‰   )r   r)   r-   r*   )r   r%   r^   s      r   r.   zExVectorialFunction.hess�  sf   € Øˆ	Œ	�Q‰ˆ	Œ	Ø�Œt�A‰v•b”f˜Q‘i”iÑ ! A¤$¥r¤x°"°Q°q´T±'¸1°Ø23°Q°ð19ñ (:ô (:ñ #:ñ :ð 	:r    N)r/   r0   r1   r   r&   rŠ   r.   r2   r    r   r‚   r‚     sV   € € € € € ðð ð ð
Mð Mð Mð
Að Að Að
:ð :ð :ð :ð :r    r‚   c                   óJ   — e Zd Zd„ Zd„ Zej        j        d„ ¦   «         Zd„ Z	dS )ÚTestVectorialFunctionc           
      ó  — t          ¦   «         }d}d}ddg}t          |j        ||j        |j        d d t
          j         t
          j        fd ¦  «        }|dz  }|dz  }t          |j        |¦  «         t          |j        |¦  «         t          |j	        |¦  «         t          |j	        |¦  «         t          |j        |d|j        d d t
          j         t
          j        fd ¦  «        }|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         t          |j
        |j
        ¦  «         t          |j        |j        ¦  «         ddg}|                     |¦  «        }|                     |¦  «        }	|dz  }|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         |                     |¦  «        }
|                     |¦  «        }|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         t          ||
¦  «         t          |	|d	¬
¦  «         ddg}|                     |¦  «        }	|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         |                     |¦  «        }|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         t          |	|¦  «         ddg}|                     |¦  «        }|                     |¦  «        }	|dz  }|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         |                     |¦  «        }
|                     |¦  «        }|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         t          ||
¦  «         t          |	|¦  «         ddg}|                     |¦  «        }|                     |¦  «        }	|dz  }|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         |                     |¦  «        }
|                     |¦  «        }|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         t          ||
¦  «         t          |	|¦  «         d S )Nr   r6   r7   r"   r8   r9   r:   r;   r(   ©Údecimalr<   r=   r#   )r‚   r   r&   rŠ   r.   r)   r>   r   r   r„   r?   r   ÚJ)r   rA   r   r„   rB   rC   rD   r%   rE   ÚJ_analitrG   ÚJ_approxs               r   Útest_finite_difference_jacz0TestVectorialFunction.test_finite_difference_jac˜  så  € Ý Ñ"Ô"ˆØˆØˆà�3ˆZˆÝ ¤¨¨B¬F°B´G¸TÀ4Ý"$¤& ­"¬&Ð 1°4ñ9ô 9ˆà�‰	ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ;¨Ñ-Ô-Ð-Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ;¨Ñ-Ô-Ð-Ý ¤¨¨I°r´wÀÀdÝ"$¤& ­"¬&Ð 1°4ñ9ô 9ˆà�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜6œ8 V¤XÑ.Ô.Ð.Ý! &¤(¨F¬HÑ5Ô5Ð5à�ˆIˆØ—:’:˜a‘=”=ˆØ—:’:˜a‘=”=ˆØ�‰	ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ø—:’:˜a‘=”=ˆØ—:’:˜a‘=”=ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý! (¨HÑ5Ô5Ð5Ý! (¨H¸aÐ@Ñ@Ô@Ð@à�#ˆJˆØ—:’:˜a‘=”=ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ø—:’:˜a‘=”=ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý! (¨HÑ5Ô5Ð5à�#ˆJˆØ—:’:˜a‘=”=ˆØ—:’:˜a‘=”=ˆØ�‰	ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ø—:’:˜a‘=”=ˆØ—:’:˜a‘=”=ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý! (¨HÑ5Ô5Ð5Ý! (¨HÑ5Ô5Ð5à�ˆHˆØ—:’:˜a‘=”=ˆØ—:’:˜a‘=”=ˆØ�‰	ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ø—:’:˜a‘=”=ˆØ—:’:˜a‘=”=ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý! (¨HÑ5Ô5Ð5Ý! (¨HÑ5Ô5Ð5Ð5Ð5r    c           
      ó  — t          ¦   «         }d}d}d}ddg}ddg}t          |j        ||j        |j        d d t
          j         t
          j        fd ¦  «        }|dz  }|dz  }|dz  }t          |j        |¦  «         t          |j        |¦  «         t          |j	        |¦  «         t          |j	        |¦  «         t          |j
        |¦  «         t          |j
        |¦  «         t          |j        ||j        dd d t
          j         t
          j        fd ¦  «        }t          t          |j        t          ¦  «        ¦  «         ddgddgd	dgfD ]v}	t          |j        |j        ¦  «         t!          |j        |j        ¦  «         t!          |j                             |	¦  «        |j                             |	¦  «        ¦  «         Œw|dz  }|d
z  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         t          |j
        |¦  «         t          |j
        |j
        z   |¦  «         ddg}
|                     |
|¦  «        }|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         t          |j
        |¦  «         t          |j
        |j
        z   |¦  «         |                     |
|¦  «        }t          t          |t          ¦  «        ¦  «         ddgddgd	dgfD ]:}	t!          |                     |	¦  «        |                     |	¦  «        d¬¦  «         Œ;|d
z  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         t          |j
        |¦  «         t          |j
        |j
        z   |¦  «         ddg}
ddg}|                     |
|¦  «        }|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         t          |j
        |¦  «         t          |j
        |j
        z   |¦  «         |                     |
|¦  «        }t          t          |t          ¦  «        ¦  «         ddgddgd	dgfD ]8}t!          |                     |¦  «        |                     |¦  «        ¦  «         Œ9|d
z  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         t          |j
        |¦  «         t          |j
        |j
        z   |¦  «         ddg}
|                     |
¦  «        }|                     |
|¦  «        }|dz  }|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         t          |j
        |¦  «         t          |j
        |j
        z   |¦  «         |                     |
¦  «        }|                     |
|¦  «        }t          t          |t          ¦  «        ¦  «         ddgddgd	dgfD ]:}t!          |                     |¦  «        |                     |¦  «        d
¬¦  «         Œ;|d
z  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         t          |j
        |¦  «         t          |j
        |j
        z   |¦  «         ddg}
ddg}|                     |
¦  «        }|                     |
|¦  «        }|dz  }|dz  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         t          |j
        |¦  «         t          |j
        |j
        z   |¦  «         |                     |
¦  «        }|                     |
|¦  «        }t          t          |t          ¦  «        ¦  «         ddgddgd	dgfD ]:}t!          |                     |¦  «        |                     |¦  «        d
¬¦  «         Œ;|d
z  }t          |j        |¦  «         t          |j        |j        z   |¦  «         t          |j	        |¦  «         t          |j	        |j	        z   |¦  «         t          |j
        |¦  «         t          |j
        |j
        z   |¦  «         d S )Nr   r6   r7   r<   r"   r8   rT   rU   rV   r(   é   r�   rW   rX   r=   r;   rY   rZ   )r‚   r   r&   rŠ   r.   r)   r>   r   r   r„   r   r   r[   r\   r   r?   r   r’   r]   )r   rA   r   r„   r   rB   Úv0rC   rD   Úpr%   r_   r`   r^   ra   s                  r   rb   zATestVectorialFunction.test_finite_difference_hess_linear_operatorø  sQ	  € Ý Ñ"Ô"ˆØˆØˆØˆà�3ˆZˆØ�3ˆZˆÝ ¤¨¨B¬F°B´G¸TÀ4Ý"$¤& ­"¬&Ð 1°4ñ9ô 9ˆà�‰	ˆØ�‰	ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ;¨Ñ-Ô-Ð-Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ;¨Ñ-Ô-Ð-Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ;¨Ñ-Ô-Ð-Ý ¤¨¨B¬F°I¸tÀTÝ"$¤& ­"¬&Ð 1°4ñ9ô 9ˆå•
˜6œ8¥^Ñ4Ô4Ñ5Ô5Ð5Ø˜�*˜s C˜j¨3°¨*Ð5ð 	Hð 	HˆAÝ˜vœx¨¬Ñ2Ô2Ð2Ý% f¤h°´Ñ9Ô9Ð9Ý% f¤h§l¢l°1¡o¤o°v´x·|²|ÀA±´ÑGÔGÐGÐGØ�‰	ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9à�#ˆJˆØ—;’;˜q "Ñ%Ô%ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ø—;’;˜q "Ñ%Ô%ˆÝ•
˜8¥^Ñ4Ô4Ñ5Ô5Ð5Ø˜�*˜s C˜j¨3°¨*Ð5ð 	1ð 	1ˆAÝ% h§l¢l°1¡o¤o°x·|²|ÀA±´Ø./ð1ñ 1ô 1ð 1ð 1à�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9à�#ˆJˆØ�#ˆJˆØ—;’;˜q !Ñ$Ô$ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ø—;’;˜q !Ñ$Ô$ˆÝ•
˜8¥^Ñ4Ô4Ñ5Ô5Ð5Ø˜�*˜s C˜j¨3°¨*Ð5ð 	Hð 	HˆAÝ% h§l¢l°1¡o¤o°x·|²|ÀA±´ÑGÔGÐGÐGØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9à�#ˆJˆØ�JŠJ�q‰MŒMˆØ—;’;˜q "Ñ%Ô%ˆØ�‰	ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ø�JŠJ�q‰MŒMˆØ—;’;˜q "Ñ%Ô%ˆÝ•
˜8¥^Ñ4Ô4Ñ5Ô5Ð5Ø˜�*˜s C˜j¨3°¨*Ð5ð 	Sð 	SˆAÝ% h§l¢l°1¡o¤o°x·|²|ÀA±´ÐPQÐRÑRÔRÐRÐRØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9à�#ˆJˆØ�#ˆJˆØ�JŠJ�q‰MŒMˆØ—;’;˜q !Ñ$Ô$ˆØ�‰	ˆØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ø�JŠJ�q‰MŒMˆØ—;’;˜q !Ñ$Ô$ˆÝ•
˜8¥^Ñ4Ô4Ñ5Ô5Ð5Ø˜�*˜s C˜j¨3°¨*Ð5ð 	Sð 	SˆAÝ% h§l¢l°1¡o¤o°x·|²|ÀA±´ÐPQÐRÑRÔRÐRÐRØ�‰	ˆÝ˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ý˜2œ7 DÑ)Ô)Ð)Ý˜6œ; v¤{Ñ2°DÑ9Ô9Ð9Ð9Ð9r    c           
      ó.  — t          ¦   «         }t          j        ddg¦  «        }t          |j        |d|j        d d t          j         t          j        fd ¦  «        }||j        usJ ‚t          |                     |¦  «        |                     |¦  «        ¦  «         ||j        usJ ‚d|d<   t          |                     |¦  «        |                     |¦  «        ¦  «         ||j        usJ ‚d|d<   t          |                     |¦  «        |                     |¦  «        ¦  «         ||j        usJ ‚t          ¦   «         }t          j        ddg¦  «        }t          |j        |d|d d t          j         t          j        fd ¦  «        }t          j        t          ¦  «        5  ||j        usJ ‚t          |                     |¦  «        |                     |¦  «        ¦  «         ||j        usJ ‚d|d<   t          |                     |¦  «        |                     |¦  «        ¦  «         ||j        usJ ‚d|d<   t          |                     |¦  «        |                     |¦  «        ¦  «         ||j        usJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr6   r7   rN   r<   r   )r‚   r)   r*   r   r&   r.   r>   r%   r   r   r~   ÚwarnsÚUserWarning)r   rA   rB   Úvfr.   s        r   rp   z,TestVectorialFunction.test_x_storage_overlapx  sŒ  € õ
 !Ñ"Ô"ˆÝŒX�s˜C�jÑ!Ô!ˆå˜BœF B¨	°2´7¸DÀ$Ý œf˜W¥b¤fÐ-¨tñ5ô 5ˆð ˜œˆ~ˆ~ˆ~ˆ~Ý�R—V’V˜B‘Z”Z §¢¨¡¤Ñ,Ô,Ð,Ø˜œˆ~ˆ~ˆ~ˆ~àˆˆ1‰Ý�R—V’V˜B‘Z”Z §¢¨¡¤Ñ,Ô,Ð,Ø˜œˆ~ˆ~ˆ~ˆ~àˆˆ1‰Ý�R—V’V˜B‘Z”Z §¢¨¡¤Ñ,Ô,Ð,Ø˜œˆ~ˆ~ˆ~ˆ~õ ‰vŒvˆÝŒX�s˜C�jÑ!Ô!ˆÝ˜BœF B¨	°4¸¸tÝ œf˜W¥b¤fÐ-¨tñ5ô 5ˆõ Œ\�+Ñ&Ô&ð 	"ð 	"ð ˜RœT�>�>�>�>Ý˜Ÿš ™œ R§V¢V¨B¡Z¤ZÑ0Ô0Ð0Ø˜RœT�>�>�>�>àˆBˆq‰EÝ˜Ÿš ™œ R§V¢V¨B¡Z¤ZÑ0Ô0Ð0Ø˜RœT�>�>�>�>àˆBˆq‰EÝ˜Ÿš ™œ R§V¢V¨B¡Z¤ZÑ0Ô0Ð0Ø˜RœT�>�>�>�>�>ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"s   Æ#CJ
Ê
JÊJc           
      ó°  — t          ¦   «         }t          j        ddg¦  «                             t          j        ¦  «        }t          |j        ||j        |j        d d t          j	         t          j	        fd ¦  «        }|                     |¦  «        }|j
        t          j        k    sJ ‚|                     |¦  «        }|j
        t          j        k    sJ ‚d S )Nr6   r7   )r‚   r)   r*   r{   ry   r   r&   rŠ   r.   r>   rx   )r   rA   rB   r�   r|   s        r   r}   z%TestVectorialFunction.test_float_size¤  s±   € Ý Ñ"Ô"ˆÝŒX�s˜C�jÑ!Ô!×(Ò(­¬Ñ4Ô4ˆå˜BœF B¨¬°´¸¸tÝ œf˜W¥b¤fÐ-¨tñ5ô 5ˆð �fŠf�R‰jŒjˆØŒy�BœJÒ&Ð&Ð&Ð&à�fŠf�R‰jŒjˆØŒy�BœJÒ&Ð&Ð&Ð&Ð&Ð&r    N)
r/   r0   r1   r•   rb   r~   r   r€   rp   r}   r2   r    r   rŽ   rŽ   –  sk   € € € € € ð^6ð ^6ð ^6ð@~:ð ~:ð ~:ð@ „[Ôð)"ð )"ñ Ôð)"ðV'ð 'ð 'ð 'ð 'r    rŽ   c                  ó¶  — t          j        g d¢g d¢g¦  «        } t          j        d¦  «        }t          | ¦  «        }t          j        g d¢¦  «        }t          j        ddg¦  «        }t          j        ddg¦  «        }t	          | |d ¦  «        }t          |j         ¦  «         t	          | |d	¦  «        }t          |j        ¦  «         t	          | |d
¦  «        }t          |j         ¦  «         t	          ||d ¦  «        }	t          |	j        ¦  «         t	          ||d	¦  «        }
t          |
j        ¦  «         t	          ||d
¦  «        }t          |j         ¦  «         t          |                     |¦  «        |¦  «         t          |                     |¦  «        |¦  «         t          | 	                    |¦  «        | ¦  «         t          | 	                    |¦  «         
                    ¦   «         | 
                    ¦   «         ¦  «         t          |                     ||¦  «         
                    ¦   «         t          j        d¦  «        ¦  «         d S )N©éÿÿÿÿr#   r   ©r   r(   r#   r9   )r"   r¡   r   r¡   r"   éýÿÿÿéüÿÿÿTF©r9   r9   )r)   r*   Úzerosr
   r   r   Úsparse_jacobianr   r&   rŠ   Útoarrayr.   )ÚA_denserB   ÚA_sparser%   r^   ÚAxrn   ro   Úf3Úf4Úf5Úf6s               r   Útest_LinearVectorFunctionr°   ²  s  € ÝŒhØˆ
ˆ
Øˆ	ˆ	ðñ ô €Gõ 
Œ�!‰Œ€BÝ˜'Ñ"Ô"€HÝ
Œ���ÑÔ€AÝ
Œ�"�a�ÑÔ€AÝ	Œ�2�r�(Ñ	Ô	€Bå	˜g r¨4Ñ	0Ô	0€BÝ�Ô"Ð"Ñ#Ô#Ð#å	˜g r¨4Ñ	0Ô	0€BÝˆBÔÑÔÐå	˜g r¨5Ñ	1Ô	1€BÝ�Ô"Ð"Ñ#Ô#Ð#å	˜h¨¨DÑ	1Ô	1€BÝˆBÔÑÔÐå	˜h¨¨DÑ	1Ô	1€BÝˆBÔÑÔÐå	˜h¨¨EÑ	2Ô	2€BÝ�Ô"Ð"Ñ#Ô#Ð#å�r—v’v˜a‘y”y "Ñ%Ô%Ð%Ý�r—v’v˜a‘y”y "Ñ%Ô%Ð%Ý�r—v’v˜a‘y”y 'Ñ*Ô*Ð*Ý�r—v’v˜a‘y”y×(Ò(Ñ*Ô*¨H×,<Ò,<Ñ,>Ô,>Ñ?Ô?Ð?Ý�r—w’w˜q !‘}”}×,Ò,Ñ.Ô.µ´¸Ñ0@Ô0@ÑAÔAÐAÐAÐAr    c                  óª  — t          j        g d¢g d¢g¦  «        } t          j        g d¢¦  «        }t          | |d¦  «        }t          ||j        ¦  «         t          |                      |¦  «        |j        ¦  «         t          j        g d¢¦  «        }t          | |                     |¦  «        ¦  «         t          ||j        ¦  «         t          |                      |¦  «        |j        ¦  «         t          |                      |¦  «        |                     |¦  «        ¦  «         t          |                      |¦  «        |j        ¦  «         d S )Nr    r¢   )r"   r#   r¡   F)r¡   r9   r:   )	r)   r*   r   r   r%   r]   r?   rŠ   r&   )ÚArB   r&   Úx1s       r   Ú%test_LinearVectorFunction_memoizationr´   Ö  s  € Ý
Œ�*�*�*˜i˜i˜iÐ(Ñ)Ô)€AÝ	Œ�*�*�*Ñ	Ô	€BÝ
˜q " eÑ
,Ô
,€Cå�r˜3œ5Ñ!Ô!Ð!Ý�q—u’u˜R‘y”y #¤%Ñ(Ô(Ð(å	Œ�+�+�+Ñ	Ô	€BÝ�q˜#Ÿ'š' "™+œ+Ñ&Ô&Ð&Ý�r˜3œ5Ñ!Ô!Ð!Ý�q—u’u˜R‘y”y #¤%Ñ(Ô(Ð(Ý�q—u’u˜R‘y”y #§'¢'¨"¡+¤+Ñ.Ô.Ð.Ý�q—u’u˜R‘y”y #¤%Ñ(Ô(Ð(Ð(Ð(r    c                  ót  — t          j        d¦  «        } t          | d ¦  «        }t          | d¦  «        }t          | d¦  «        }t          |j        ¦  «         t          |j         ¦  «         t          |j        ¦  «         t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          |                     |¦  «        |¦  «         t          |                     |¦  «        |¦  «         t          |                     |¦  «         	                    ¦   «         t          j
        d¦  «        ¦  «         t          |                     |¦  «        t          j
        d¦  «        ¦  «         t          |                     ||¦  «         	                    ¦   «         t          j        d¦  «        ¦  «         d S )Nr9   FT)r¡   r#   r"   )éþÿÿÿr9   r   r¥   )r)   r¦   r   r   r§   r*   r   r&   rŠ   r¨   r-   r.   )rB   rn   ro   r¬   r%   r^   s         r   Útest_IdentityVectorFunctionr·   æ  sT  € Ý	Œ�!‰Œ€Bå	  DÑ	)Ô	)€BÝ	  EÑ	*Ô	*€BÝ	  DÑ	)Ô	)€BåˆBÔÑÔÐÝ�Ô"Ð"Ñ#Ô#Ð#ÝˆBÔÑÔÐå
Œ���ÑÔ€AÝ
Œ���ÑÔ€Aå�r—v’v˜a‘y”y !Ñ$Ô$Ð$Ý�r—v’v˜a‘y”y !Ñ$Ô$Ð$å�r—v’v˜a‘y”y×(Ò(Ñ*Ô*­B¬F°1©I¬IÑ6Ô6Ð6Ý�r—v’v˜a‘y”y¥"¤&¨¡)¤)Ñ,Ô,Ð,å�r—w’w˜q !‘}”}×,Ò,Ñ.Ô.µ´¸Ñ0@Ô0@ÑAÔAÐAÐAÐAr    ÚPyPyz'assert_deallocate not available on PyPy)Úreasonc                  ó¨   ‡ ‡— t          ¦   «         Š t          j        d¦  «        Št          ˆ ˆfd„¦  «        5  	 ddd¦  «         dS # 1 swxY w Y   dS )úRegression test for gh-20768.r9   c            
      óz   •— t          ‰ j        ‰d‰ j        ‰ j        d t          j         t          j        f¦  «        S )Nr2   )r   r&   r+   r.   r)   r>   ©rA   rB   s   €€r   rj   z5test_ScalarFunctionNoReferenceCycle.<locals>.<lambda>  s1   ø€ ¥N°2´6¸2¸rÀ2Ä7ØœG T­R¬V¨GµR´VÐ+<ñ%>ô %>€ r    N)r   r)   r¦   r	   r½   s   @@r   Ú#test_ScalarFunctionNoReferenceCycler¾   ý  s®   øø€ õ 
Ñ	Ô	€BÝ	Œ�!‰Œ€BÝ	ð >ð >ð >ð >ð >ñ 
?ô 
?ð ð àðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ¸AÁAÁAz/TODO remove reference cycle from VectorFunctionc                  óˆ   ‡ ‡— t          ¦   «         Š ddgŠt          ˆ ˆfd„¦  «        5  	 ddd¦  «         dS # 1 swxY w Y   dS )r»   r6   r7   c            
      ó|   •— t          ‰ j        ‰‰ j        ‰ j        d d t          j         t          j        fd ¦  «        S ri   )r   r&   rŠ   r.   r)   r>   r½   s   €€r   rj   z5test_VectorFunctionNoReferenceCycle.<locals>.<lambda>  s5   ø€ ¥N°2´6¸2¸r¼vØœG T¨4µ2´6°'½2¼6Ð1BÀDñ%Jô %J€ r    N)r‚   r	   r½   s   @@r   Ú#test_VectorFunctionNoReferenceCyclerÁ   
  s±   øø€ õ 
Ñ	Ô	€BØ
ˆsˆ€BÝ	ð Jð Jð Jð Jð Jñ 
Kô 
Kð ð àðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ¨7·;¾;c                  óÞ   ‡‡— t          j        g d¢g d¢g¦  «        } t          j        d¦  «        Št          | ¦  «        Št	          ˆˆfd„¦  «        5  	 ddd¦  «         dS # 1 swxY w Y   dS )r»   r    r¢   r9   c                  ó&   •— t          ‰ ‰d ¦  «        S ri   )r   )rª   rB   s   €€r   rj   z;test_LinearVectorFunctionNoReferenceCycle.<locals>.<lambda>$  s   ø€ Õ$8¸À2ÀtÑ$LÔ$L€ r    N)r)   r*   r¦   r
   r	   )r©   rª   rB   s    @@r   Ú)test_LinearVectorFunctionNoReferenceCyclerÄ     sÈ   øø€ õ ŒhØˆ
ˆ
Øˆ	ˆ	ðñ ô €Gõ 
Œ�!‰Œ€BÝ˜'Ñ"Ô"€HÝ	ÐLÐLÐLÐLÐLÑ	MÔ	Mð ð Øðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁA"Á"A&Á)A&)*r~   ÚplatformÚnumpyr)   Únumpy.testingr   r   r   r   r   r   Úscipy._lib._gcutilsr	   Úscipy.sparser
   Úscipy.sparse.linalgr   Ú(scipy.optimize._differentiable_functionsr   r   r   r   Úscipy.optimizer   r   r   Ú'scipy.optimize._hessian_update_strategyr   r   r4   r‚   rŽ   r°   r´   r·   r   ÚskipifÚpython_implementationr¾   ÚxfailrÁ   rÄ   r2   r    r   ú<module>rÑ      s  ðØ €€€Ø €€€Ø Ð Ð Ð ð)ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð 3Ð 2Ð 2Ð 2Ð 2Ð 2Ø #Ð #Ð #Ð #Ð #Ð #Ø .Ð .Ð .Ð .Ð .Ð .ðNð Nð Nð Nð Nð Nð Nð Nð Nð Nð Nð Nð 8Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8ðð ð ð ð ñ ô ð ð(V'ð V'ð V'ð V'ð V'˜ñ V'ô V'ð V'ðr
:ð :ð :ð :ð :ñ :ô :ð :ð.Y'ð Y'ð Y'ð Y'ð Y'˜Hñ Y'ô Y'ð Y'ðx!Bð !Bð !BðH)ð )ð )ð Bð Bð Bð. „×ÒØ"€HÔ"Ñ$Ô$¨Ò.Ø4ð ñ ô ðð ñ	ô ðð „×ÒØ"€HÔ"Ñ$Ô$¨Ò.Ø4ð ñ ô ð „×ÒÐKÐÑLÔLðð ñ MÔLñ	ô ð
ð „×ÒØ"€HÔ"Ñ$Ô$¨Ò.Ø4ð ñ ô ð	ð 	ñ	ô ð	ð 	ð 	r    