
    \h?                       S SK JrJrJr  S SKJr  S SKJrJrJ	r	  S SK
Jr  S SKJr  S SKJrJr  S SKJr  S SKJr  S S	KJr  S S
KJr  S SKJrJrJrJrJrJrJ r J!r!  S SK"J#r#J$r$  S SK%J&r&  S SK'J(r(  S SK)J*r*  S SK+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7  S SKJ8r8J9r9  S SK:J;r;  S SK<J=r=  S SK>J?r?J@r@JArAJBrB  \" S5      u  rCrDrErFrGrHrIrJrKrLrM\" S5      rN\" S5      rO\" S5      rP\" S5      rQS rRS rSS rTS rUS rV\@S 5       rWS  rXS! rY\@S" 5       rZS# r[S$ r\\@S% 5       r]S& r^S' r_\@S( 5       r`S) raS* rbS+ rc\@S, 5       rd\@S- 5       re\AS. 5       rf\@S/ 5       rgS0 rh\@S1 5       ri\@S2 5       rjS3 rkS4 rl\@S5 5       rm\A\BS6 5       5       rn\AS7 5       ro\AS8 5       rpS9 rqS: rr\@S; 5       rsS< rt\A\BS= 5       5       ru\BS> 5       rv\A\BS? 5       5       rw\BS@ 5       rxSA rySB rz\@SC 5       r{SD r|SE r}gF)G    )
DerivativeFunctiondiff)Mul)IRationalpi)Eq)S)Symbolsymbols)sinh)sqrt)Matrix)Tuple)expcossinlogCiSierferfi)dotprodsimpNonSquareMatrixError)dsolve)constant_renumber)checksysodesol)_classify_linear_systemlinear_ode_to_matrixODEOrderErrorODENonlinearError_simpsol_is_commutative_anti_derivativelinodesolvecanonical_odesdsolve_system_component_division	_eqs2dict_dict2graph)airyaiairybi)Integral)ratsimp)raisesslowtooslowXFAILzC0:11xfghc            	      X  ^^^^ [        S[        S9u  pn[        S5      mU " T5      U" T5      U" T5      /mU " T5      R                  T5      nU" T5      R                  T5      nU" T5      R                  T5      nU " T5      R                  TS5      nU" T5      R                  TS5      nU" T5      R                  TS5      n[	        X1" T5      5      [	        X@" T5      5      /n	[        SS/SS//5      [        SS/SS//5      /[        S/S//5      4n
[        U	TS S TS5      U
:X  d   e[	        X0" T5      SU" T5      -  -   5      [	        XB" T5      5      [	        XQ" T5      U" T5      -   U " T5      -   5      /n[        / SQ/ S	Q/ S
Q/5      [        / SQ/ S
Q/ SQ/5      /[        S/S/S//5      4n[        UTTS5      U:X  d   e[	        SU-  SU-  -   U " T5      U" T5      -   5      [	        SU-  SU-  -   U " T5      U" T5      -   5      [	        SU-  SU-  -   U" T5      U" T5      -   5      /n[        / SQ/ SQ/ SQ/5      [        / SQ/ SQ/ SQ/5      /[        S/S/S//5      4n[        UTTS5      U:X  d   e[	        Xb" T5      -   X1" T5      -   5      [	        SU-  U-   U-   U" T5      -   S5      [	        SU-  S5      /n[        / SQ/ SQ/ SQ/5      [        / SQ/ SQ/ SQ/5      [        / SQ/ SQ/ SQ/5      /[        S/S/S//5      4n[        UTTS5      U:X  d   e[	        Xa" T5      5      [	        X4-   U " T5      5      /m[        [        UUU4S j5        [	        X0" T5      S-  5      [	        X@" T5      U" T5      -   5      /m[        [        UUU4S j5        g )Nf, g, hclst      r   )r=   r   r   )r   r=   r   )r   r   r=   )r=   r<   r   )r=   r=   r=            )r<   r   r?   )r   rA   r@   )rA   r@   r   )r=   r=   r   )r=   r   r=   )r   r=   r=   )r   r=   r<   r   r   r   )r   r>   r   )r   r   )r   r=   r>   c                  &   > [        T TS S TS5      $ Nr>   r=   r    )eqs_5funcsr;   s   \/var/www/auris/envauris/lib/python3.13/site-packages/sympy/solvers/ode/tests/test_systems.py<lambda>+test_linear_ode_to_matrix.<locals>.<lambda>A   s    "6ueCRj!Q"O    c                  &   > [        T TS S TS5      $ rE   rF   )eqs_6rH   r;   s   rI   rJ   rK   D   s    &:5%*aQR&SrL   )
r   r   r   r   r
   r   r    r/   r!   r"   )r4   r5   r6   f1g1h1f2g2h2eqs_1sol_1eqs_2sol_2eqs_3sol_3eqs_4sol_4rG   rN   rH   r;   s                    @@@@rI   test_linear_ode_to_matrixr]   "   s   iX.GA!sAqT1Q41E	
11B	
11B	
11B	
11aB	
11aB	
11aBAaD\2b!A$<(Eq!fq!f%&!Q!a/A(BCVaSRSQTIEVWEuSbz1a8EAAAAaD1QqT6M"Br1Q4L"R1!qt9K2LMEiI67[Zc@d9efaS1#sO$&Eua3u<<<"qtQqTAaD[)2adQrTk1Q4!A$;+GAbDSTUWSWKYZ[\Y]`abc`dYdIefEiI67ZYb@c9deaS1#sO$&Eua3u<<<QqT	2!9%r!B$)b.1Q4*?'CR"a[QEiI67JXb@c9dj+y9:<=CaS1#PQsO=TVEua3u<<<AaD\2bgqt,-E
=OPAaD!G_bQqTAaD[12E
STrL   c                  X  ^8^9^: [        S[        S9u  pp#[        S5      u  m:pE[        U " T:5      T:5      n[        U" T:5      T:5      n[        U" T:5      T:5      n[        U" T:5      T:5      n	[        U " T:5      T:T:5      n
[        U" T:5      T:T:5      nU " T:5      U" T:5      /m9T9U" T:5      U" T:5      /-   nSU-  SU " T:5      -  -   SU" T:5      -  -
  SU-  ST:-  U " T:5      -  -
  S	U" T:5      -  -   T:-   4n[        UT9T:5      b   eSUS-  -  SU " T:5      -  -   SU" T:5      -  -
  SU-  ST:-  U " T:5      -  -
  S	U" T:5      -  -   T:-   4nS
[	        [        U " T:5      T:5      [        SU " T:5      -  S-  SU" T:5      -  S-  -   5      * 5      [	        [        U" T:5      T:5      ST:-  U " T:5      -  S-  T:S-  -
  S	U" T:5      -  S-  -
  5      /[	        [        U " T:5      T:5      [        SU " T:5      -  S-  SU" T:5      -  S-  -   5      5      [	        [        U" T:5      T:5      ST:-  U " T:5      -  S-  T:S-  -
  S	U" T:5      -  S-  -
  5      //S.n[        UT9T:5      U:X  d   e[	        [        U " T:5      T:5      [        SU " T:5      -  S-  SU" T:5      -  S-  -   5      * 5      [	        [        U" T:5      T:5      ST:-  U " T:5      -  S-  T:S-  -
  S	U" T:5      -  S-  -
  5      /n[        UT9T:5      b   e[	        [        U " T:5      T:5      [        SU " T:5      -  S-  SU" T:5      -  S-  -   5      5      [	        [        U" T:5      T:5      ST:-  U " T:5      -  S-  T:S-  -
  S	U" T:5      -  S-  -
  5      /n[        UT9T:5      b   eSU-  SU " T:5      -  -   SU" T:5      -  -
  SU-  SU " T:5      -  -
  S	U" T:5      -  -   SU	-  U" T:5      -   X" T:5      -   4nSSU " T:5      -  SU" T:5      -  -
  S[        U " T:5      T:5      -  -   SU " T:5      -  S	U" T:5      -  -   S[        U" T:5      T:5      -  -   U" T:5      S[        U" T:5      T:5      -  -   U" T:5      [        U" T:5      T:5      -   4U " T:5      U" T:5      U" T:5      U" T:5      /U " T:5      SU" T:5      SU" T:5      SU" T:5      S0S
S
S
[        [        SS5      [        SS5      SS/[        SS5      [        S	S5      SS// SQSS[        SS5      S//5      * SS
S.
n[        UUT:5      U:X  d   eSU-  SU " T:5      -  -   SU" T:5      -  -
  SU-  SU " T:5      -  -
  S	U" T:5      -  -   X" T:5      -
  X" T:5      -
  4nSSU " T:5      -  SU" T:5      -  -
  S[        U " T:5      T:5      -  -   SU " T:5      -  S	U" T:5      -  -   S[        U" T:5      T:5      -  -   U" T:5      * [        U" T:5      T:5      -   U" T:5      * [        U" T:5      T:5      -   4U " T:5      U" T:5      U" T:5      U" T:5      /U " T:5      SU" T:5      SU" T:5      SU" T:5      S0S
S
S
[        [        SS5      [        SS5      SS/[        SS5      [        S	S5      SS// SQ/ SQ/5      * SS
S.
n[        UUT:5      U:X  d   eSU-  SU " T:5      -  -   SU" T:5      -  -
  U
-   SU-  SU " T:5      -  -
  S	U" T:5      -  -   X" T:5      -
  X" T:5      -
  4nSSU " T:5      -  SU" T:5      -  -
  S[        U " T:5      T:5      -  -   [        U " T:5      T:S45      -   SU " T:5      -  S	U" T:5      -  -   S[        U" T:5      T:5      -  -   U" T:5      * [        U" T:5      T:5      -   U" T:5      * [        U" T:5      T:5      -   4U " T:5      U" T:5      U" T:5      U" T:5      /U " T:5      SU" T:5      SU" T:5      SU" T:5      S0S
S
S
SS
S.	n[        UUT:5      U:X  d   e[	        US	U" T:5      -  SU" T:5      -  -
  5      [	        USU" T:5      -  S	U " T:5      -  -
  5      [	        USU " T:5      -  SU" T:5      -  -
  5      4nS	[	        [        U " T:5      T:5      S	U" T:5      -  SU" T:5      -  -
  5      [	        [        U" T:5      T:5      SU " T:5      -  SU" T:5      -  -   5      [	        [        U" T:5      T:5      SU " T:5      -  SU" T:5      -  -
  5      4U " T:5      U" T:5      U" T:5      /U " T:5      SU" T:5      SU" T:5      S0S
S
S
[        / SQ/ SQ/ SQ/5      * SS
S.
n[        UUS S T:5      U:X  d   e[	        Xa" T:5      5      [	        Xp" T:5      5      4nS[	        [        U " T:5      T:5      U" T:5      5      [	        [        U" T:5      T:5      U " T:5      5      4U " T:5      U" T:5      /U " T:5      SU" T:5      S0S
S
S
[        SS/SS//5      * SS
S.
n[        UT9T:5      U:X  d   e[	        USU " T:5      -  5      [	        US U " T:5      -  S	U" T:5      -  -   5      [	        USU " T:5      -  SU" T:5      -  -   S!U" T:5      -  -   5      4nS	[	        [        U " T:5      T:5      SU " T:5      -  5      [	        [        U" T:5      T:5      S U " T:5      -  S	U" T:5      -  -   5      [	        [        U" T:5      T:5      SU " T:5      -  SU" T:5      -  -   S!U" T:5      -  -   5      4U " T:5      U" T:5      U" T:5      /U " T:5      SU" T:5      SU" T:5      S0S
S
S
[        / S"Q/ S#Q/ S$Q/5      * SS
S.
n[        UUS S T:5      U:X  d   e[	        USU " T:5      -  SU" T:5      -  -   SU" T:5      -  -   5      [	        Xp" T:5      S%U" T:5      -  -   S!U" T:5      -  -   5      [	        US&U " T:5      -  S'U" T:5      -  -   SU" T:5      -  -   5      4nS	[	        [        U " T:5      T:5      SU " T:5      -  SU" T:5      -  -   SU" T:5      -  -   5      [	        [        U" T:5      T:5      U " T:5      S%U" T:5      -  -   S!U" T:5      -  -   5      [	        [        U" T:5      T:5      S&U " T:5      -  S'U" T:5      -  -   SU" T:5      -  -   5      4U " T:5      U" T:5      U" T:5      /U " T:5      SU" T:5      SU" T:5      S0S
S
S
[        / S(Q/ S)Q/ S*Q/5      * SS
S.
n[        UUS S T:5      U:X  d   e[	        S	U-  S+U" T:5      U" T:5      -
  -  5      [	        SU-  S,U" T:5      U " T:5      -
  -  5      [	        SU-  SU " T:5      U" T:5      -
  -  5      4n S	[	        S	[        U " T:5      T:5      -  S+U" T:5      -  S+U" T:5      -  -
  5      [	        S[        U" T:5      T:5      -  S-U " T:5      -  S,U" T:5      -  -   5      [	        S[        U" T:5      T:5      -  SU " T:5      -  SU" T:5      -  -
  5      4U " T:5      U" T:5      U" T:5      /U " T:5      SU" T:5      SU" T:5      S0S
S
S
[        S[        S.S	5      [        S+S	5      /[        S,S5      S[        S-S5      /[        SS5      [        SS5      S//5      * SS
S.
n![        U US S T:5      U!:X  d   e[	        US	U" T:5      -  SU" T:5      -  -
  5      [	        USU" T:5      -  S	U " T:5      -  -
  5      [	        USU " T:5      -  SU" T:5      -  -
  5      4n"S	[	        [        U " T:5      T:5      S	U" T:5      -  SU" T:5      -  -
  5      [	        [        U" T:5      T:5      SU " T:5      -  SU" T:5      -  -   5      [	        [        U" T:5      T:5      SU " T:5      -  SU" T:5      -  -
  5      4U " T:5      U" T:5      U" T:5      /U " T:5      SU" T:5      SU" T:5      S0S
S
S
[        / SQ/ SQ/ SQ/5      * SS
S.
n#[        U"US S T:5      U#:X  d   e[	        [        U " T:5      T:5      U" T:5      5      [	        [        U" T:5      T:5      U " T:5      5      4n$S[	        [        U " T:5      T:5      U" T:5      5      [	        [        U" T:5      T:5      U " T:5      5      4U " T:5      U" T:5      /U " T:5      SU" T:5      S0S
S
S
[        SS/SS//5      * SS
S.
n%[        U$U " T:5      U" T:5      /T:5      U%:X  d   e[	        [        U " T:5      T:5      SU " T:5      -  5      [	        [        U" T:5      T:5      S U " T:5      -  S	U" T:5      -  -   5      [	        [        U" T:5      T:5      SU " T:5      -  SU" T:5      -  -   S!U" T:5      -  -   5      4n&S	[	        [        U " T:5      T:5      SU " T:5      -  5      [	        [        U" T:5      T:5      S U " T:5      -  S	U" T:5      -  -   5      [	        [        U" T:5      T:5      SU " T:5      -  SU" T:5      -  -   S!U" T:5      -  -   5      4U " T:5      U" T:5      U" T:5      /U " T:5      SU" T:5      SU" T:5      S0S
S
S
[        / S"Q/ S#Q/ S$Q/5      * SS
S.
n'[        U&U " T:5      U" T:5      U" T:5      /T:5      U':X  d   e[	        [        U " T:5      T:5      SU " T:5      -  SU" T:5      -  -   SU" T:5      -  -   5      [	        [        U" T:5      T:5      U " T:5      S%U" T:5      -  -   S!U" T:5      -  -   5      [	        [        U" T:5      T:5      S&U " T:5      -  S'U" T:5      -  -   SU" T:5      -  -   5      4n(S	[	        [        U " T:5      T:5      SU " T:5      -  SU" T:5      -  -   SU" T:5      -  -   5      [	        [        U" T:5      T:5      U " T:5      S%U" T:5      -  -   S!U" T:5      -  -   5      [	        [        U" T:5      T:5      S&U " T:5      -  S'U" T:5      -  -   SU" T:5      -  -   5      4U " T:5      U" T:5      U" T:5      /U " T:5      SU" T:5      SU" T:5      S0S
S
S
[        / S(Q/ S)Q/ S*Q/5      * SS
S.
n)[        U(U " T:5      U" T:5      U" T:5      /T:5      U):X  d   e[	        S	[        U " T:5      T:5      -  S+U" T:5      -  S+U" T:5      -  -
  5      [	        S[        U" T:5      T:5      -  S-U " T:5      -  S,U" T:5      -  -   5      [	        S[        U" T:5      T:5      -  SU " T:5      -  SU" T:5      -  -
  5      4n*S	[	        S	[        U " T:5      T:5      -  S+U" T:5      -  S+U" T:5      -  -
  5      [	        S[        U" T:5      T:5      -  S-U " T:5      -  S,U" T:5      -  -   5      [	        S[        U" T:5      T:5      -  SU " T:5      -  SU" T:5      -  -
  5      4U " T:5      U" T:5      U" T:5      /U " T:5      SU" T:5      SU" T:5      S0S
S
S
[        S[        S.S	5      [        S+S	5      /[        S,S5      S[        S-S5      /[        SS5      [        SS5      S//5      * SS
S.
n+[        U*U " T:5      U" T:5      U" T:5      /T:5      U+:X  d   e[	        [        U " T:5      T:5      U " T:5      U" T:5      -   S!-   5      [	        [        U" T:5      T:5      SU " T:5      -  SU" T:5      -  -   S/-   5      4m8S[	        [        U " T:5      T:5      U " T:5      U" T:5      -   S!-   5      [	        [        U" T:5      T:5      SU " T:5      -  SU" T:5      -  -   S/-   5      4U " T:5      U" T:5      /U " T:5      SU" T:5      S0S
S
S0S
[        SS/S1S2//5      * [        S!/S///5      S3S4.n,[        T8T9T:5      U,:X  d   e[	        [        U " T:5      T:5      ST:-  U " T:5      -  SU" T:5      -  -   5      [	        [        U" T:5      T:5      SU " T:5      -  ST:-  U" T:5      -  -   5      4m8S[	        [        U " T:5      T:5      ST:-  U " T:5      -  SU" T:5      -  -   5      [	        [        U" T:5      T:5      ST:-  U" T:5      -  SU " T:5      -  -   5      4U " T:5      U" T:5      /U " T:5      SU" T:5      S0S
S0S
[        S2T:-  S1/S1S2T:-  //5      * [        ST:S-  -  S-  ST:-  /ST:-  ST:S-  -  S-  //5      S5S
S6.n,[        T8T9T:5      U,:X  d   e[	        X`" T:5      T:U" T:5      -  -   T:-   5      [	        UT:U " T:5      -  U" T:5      -   5      /m8S[	        [        U " T:5      T:5      T:U" T:5      -  T:-   U " T:5      -   5      [	        [        U" T:5      T:5      T:U " T:5      -  U" T:5      -   5      /U " T:5      U" T:5      /U " T:5      SU" T:5      S0S
S0S0S
[        ST:* /T:* S//5      * [        T:T:S-  S-  /T:S-  S-  T://5      [        T:/S//5      S7S8.n,[        T8T9T:5      U,:X  d   e[	        UT:U " T:5      -  T:U" T:5      -  -   T:-   5      [	        UT:U " T:5      -  T:U" T:5      -  -   [        T:5      -   5      /n-S[	        [        U " T:5      T:5      T:U " T:5      -  T:U" T:5      -  -   T:-   5      [	        [        U" T:5      T:5      T:U " T:5      -  T:U" T:5      -  -   [        T:5      -   5      /U " T:5      U" T:5      /U " T:5      SU" T:5      S0S
S0S
[        T:/[        T:5      //5      [        T:T:/T:T://5      S0S7[        T:S-  S-  T:S-  S-  /T:S-  S-  T:S-  S-  //5      S9.n[        U-T9T:5      U:X  d   e[	        UT:U " T:5      U" T:5      -   U" T:5      -   S-   -  5      [	        UT:U " T:5      U" T:5      -   U" T:5      -   -  5      [	        UT:U " T:5      U" T:5      -   U" T:5      -   -  5      /n.S	[	        [        U " T:5      T:5      T:U " T:5      U" T:5      -   U" T:5      -   S-   -  5      [	        [        U" T:5      T:5      T:U " T:5      U" T:5      -   U" T:5      -   -  5      [	        [        U" T:5      T:5      T:U " T:5      U" T:5      -   U" T:5      -   -  5      /U " T:5      U" T:5      U" T:5      /U " T:5      SU" T:5      SU" T:5      S0S
S0S0S
[        T:* T:* T:* /T:* T:* T:* /T:* T:* T:* //5      * [        T:S-  S-  T:S-  S-  T:S-  S-  /T:S-  S-  T:S-  S-  T:S-  S-  /T:S-  S-  T:S-  S-  T:S-  S-  //5      [        T:/S/S//5      S7S8.n/[        U.US S T:5      U/:X  d   e[	        X`" T:5      U" T:5      -   T:U" T:5      -  -   S-   5      [	        Xp" T:5      T:U" T:5      -  -   U" T:5      -   S:-   5      [	        UT:U " T:5      -  U" T:5      -   U" T:5      -   T:-   5      /n0S	[	        [        U " T:5      T:5      T:U" T:5      -  U " T:5      -   U" T:5      -   S-   5      [	        [        U" T:5      T:5      T:U" T:5      -  U " T:5      -   U" T:5      -   S:-   5      [	        [        U" T:5      T:5      T:U " T:5      -  T:-   U" T:5      -   U" T:5      -   5      /U " T:5      U" T:5      U" T:5      /U " T:5      SU" T:5      SU" T:5      S0S
S0S0S
[        SST:* /ST:* S/T:* SS//5      * [        T:T:T:S-  S-  /T:T:S-  S-  T:/T:S-  S-  T:T://5      [        S/S:/T://5      S7S8.n1[        U0US S T:5      U1:X  d   eT:U " T:5      U" T:5      -   U" T:5      -   U" T:5      -   -  n2[	        UU25      [	        UU25      [	        UU2S-   5      [	        U	U25      /n3S[	        [        U " T:5      T:5      T:U" T:5      U " T:5      -   U" T:5      -   U" T:5      -   -  5      [	        [        U" T:5      T:5      T:U" T:5      U " T:5      -   U" T:5      -   U" T:5      -   -  5      [	        [        U" T:5      T:5      T:U" T:5      U " T:5      -   U" T:5      -   U" T:5      -   -  S-   5      [	        [        U" T:5      T:5      T:U" T:5      U " T:5      -   U" T:5      -   U" T:5      -   -  5      /U " T:5      U" T:5      U" T:5      U" T:5      /U " T:5      SU" T:5      SU" T:5      SU" T:5      S0S
S0S0S
[        T:* T:* T:* T:* /T:* T:* T:* T:* /T:* T:* T:* T:* /T:* T:* T:* T:* //5      * [        T:S-  S-  T:S-  S-  T:S-  S-  T:S-  S-  /T:S-  S-  T:S-  S-  T:S-  S-  T:S-  S-  /T:S-  S-  T:S-  S-  T:S-  S-  T:S-  S-  /T:S-  S-  T:S-  S-  T:S-  S-  T:S-  S-  //5      [        S/S/S/S//5      S7S8.n4[        U3UT:5      U4:X  d   e[        S;5      n5[	        S!U " T:5      -  SU" T:5      -  -   S[        U " T:5      T:5      -  -   [        U " T:5      T:S45      -   S	[        U" T:5      T:5      -  -   S[        [        T:-  5      -  5      [	        S	U " T:5      -  SU" T:5      -  -   S[        U " T:5      T:5      -  -   S<[        U" T:5      T:5      -  -   [        U" T:5      T:S45      -   S[        [        T:-  5      -  5      4m8S[	        S!U " T:5      -  SU" T:5      -  -   S[        U " T:5      T:5      -  -   [        U " T:5      T:S45      -   S	[        U" T:5      T:5      -  -   S[        [        T:-  5      -  5      [	        S	U " T:5      -  SU" T:5      -  -   S[        U " T:5      T:5      -  -   S<[        U" T:5      T:5      -  -   [        U" T:5      T:S45      -   S[        [        T:-  5      -  5      4U " T:5      U" T:5      /U " T:5      SU" T:5      S0S
S0S
[        S[        [        T:-  5      -  /S[        [        T:-  5      -  //5      SS
S
S=.n,[        T8T9T:5      U,:X  d   e[	        ST:S-  -  ST:-  -   S-   S-  [        U " T:5      T:S45      -  SU " T:5      -  S>U" T:5      -  -   5      [	        ST:S-  -  ST:-  -   S-   S-  [        U" T:5      T:S45      -  U " T:5      S!U" T:5      -  -   5      4n-S[	        ST:S-  -  ST:-  -   S-   S-  [        U " T:5      T:S45      -  SU " T:5      -  S>U" T:5      -  -   5      [	        ST:S-  -  ST:-  -   S-   S-  [        U" T:5      T:S45      -  U " T:5      S!U" T:5      -  -   5      4U " T:5      U" T:5      /U " T:5      SU" T:5      S0S
S
S
S3[        [        S?S5      S>/S[        S@S5      //5      [        ST:S-  -  ST:-  -   S-   5      [        SA5      [        T:[        SA5      S<-  -
  [        SS<5      -   5      -  SA-  [        SA5      [        T:[        SA5      S<-  -   [        SS<5      -   5      -  SA-  -
  S
U5S
S
SB.n[        U-T9T:5      U:X  d   eT:[        U " T:5      T:5      -  U " T:5      -
  [        T:5      -  T:[        U" T:5      T:5      -  U" T:5      -
  [        T:5      -  -   [        U " T:5      T:S45      -   T:S-  T:[        U " T:5      T:5      -  U " T:5      -
  -  T:T:[        U" T:5      T:5      -  U" T:5      -
  -  -   [        U" T:5      T:S45      -   4n.ST:[        U " T:5      T:5      -  U " T:5      -
  [        T:5      -  T:[        U" T:5      T:5      -  U" T:5      -
  [        T:5      -  -   [        U " T:5      T:S45      -   T:S-  T:[        U " T:5      T:5      -  U " T:5      -
  -  T:T:[        U" T:5      T:5      -  U" T:5      -
  -  -   [        U" T:5      T:S45      -   4U " T:5      U" T:5      /U " T:5      SU" T:5      S0S
S
S
S[        T:* [        T:5      -  T:* [        T:5      -  /T:S	-  * T:S-  * //5      S
S
SC.n/[        U.T9T:5      U/:X  d   e[	        XU " T:5      -  XW-  -
  5      [	        XU-  XA" T:5      -  -   5      4n0S[	        [        U " T:5      T:S45      X@" T:5      -  U[        U" T:5      T:5      -  -
  5      [	        [        U" T:5      T:S45      XA" T:5      -  U[        U " T:5      T:5      -  -   5      4U " T:5      U" T:5      /U " T:5      SU" T:5      S0S
S
S
SS
S
SD.
n1[        U0T9T:5      U1:X  d   e[        SE[        S9u  n6n7[        SF5      u  nn5U6" T:5      U7" T:5      /m9[	        [        U6" T:5      T:5      S-  S[        U6" T:5      T:5      -  -
  S-   S5      [	        U* U6" T:5      -  [        U7" T:5      T:5      -   S5      /m8S
[	        [        U6" T:5      T:5      S5      [	        [        U7" T:5      T:5      UU6" T:5      -  5      /[	        [        U6" T:5      T:5      S	5      [	        [        U7" T:5      T:5      UU6" T:5      -  5      //S.n,[        T8T9T:5      U,:X  d   e[        [        U8U9U:4SG j5        [	        [        U6" T:5      T:5      SU6" T:5      -  U7" T:5      -   S-   T:-  5      [	        [        U7" T:5      T:5      U6" T:5      SU7" T:5      -  -   T:-  5      /n-S[	        [        U6" T:5      T:5      SU6" T:5      -  U7" T:5      -   S-   T:-  5      [	        [        U7" T:5      T:5      U6" T:5      SU7" T:5      -  -   T:-  5      /U6" T:5      U7" T:5      /U6" T:5      SU7" T:5      S0S
S0S
[        S/S//5      [        SS/SS//5      S0SHU5[        T:5      [        S[        T:5      -  [        T:5      /[        T:5      S[        T:5      -  //5      SI.n[        U-T9T:5      U:X  d   e[	        [        U6" T:5      T:5      SU6" T:5      -  U7" T:5      -   T:-  5      [	        [        U7" T:5      T:5      U6" T:5      SU7" T:5      -  -   T:-  5      /n.S[	        [        U6" T:5      T:5      SU6" T:5      -  U7" T:5      -   T:-  5      [	        [        U7" T:5      T:5      U6" T:5      SU7" T:5      -  -   T:-  5      /U6" T:5      U7" T:5      /U6" T:5      SU7" T:5      S0S
S
S
[        SS/SS//5      S0SJU5[        S/S//5      [        T:5      [        S[        T:5      -  [        T:5      /[        T:5      S[        T:5      -  //5      SK.n/[        U.T9T:5      U/:X  d   eg )LNz
x, y, z, wr9   zt k lrA         r<      r?   Ti)is_implicit	canon_eqsr@   r=   r   r   r   r   r=   type1)
no_of_equationeqfuncorder	is_linearis_constantis_homogeneous
func_coefftype_of_equation
is_general)r   r   r   r>   r   r   r>   r   type0)	rh   ri   rj   rk   rl   rn   rq   rp   is_higher_order   rC   )r   rC   ra   )r?   r   )rd   ru   r   r>         	   )r   r   )irC   r   )rv          )   )r{   )r>   ir|   )iird         i   Fr   r{   type2)rh   ri   rj   rk   rl   rm   rn   rq   ro   rhsrp   type3)rh   ri   rj   rk   rl   rm   rn   ro   commutative_antiderivativerp   rq   type4)rh   ri   rj   rk   rl   rm   rn   rq   ro   r   r   rp   )rh   ri   rj   rk   rl   rn   rq   r   ro   rm   rp   r   
   t_   )rh   ri   rj   rk   rl   rn   rq   r   rp   is_second_orderrt   #   5   E   !   )rh   ri   rj   rk   rl   rn   rq   rp   A0zg(t)tauis_transformedr   r   rt   )rh   ri   rj   rk   rl   rn   rq   rp   A1r   rt   )
rh   ri   rj   rk   rl   rn   rq   rp   r   rt   f gzy t_c                  $   > [        T TS S T5      $ Nr=   )r   )eq1rH   r;   s   rI   rJ   .test__classify_linear_system.<locals>.<lambda>x  s    6sE"1IqIrL   type6)rh   ri   rj   rk   rl   rn   rq   r   ro   rm   rp   r   r   r   type5)rh   ri   rj   rk   rl   rn   rq   ro   rm   rp   r   r   r   r   )r   r   r   r   r
   r   r   r   r   r   r   r   r   r/   
ValueError);r3   yzwklx1y1z1w1x2y2funcs_2rU   rW   sol2eqs_2_1eqs_2_2rY   answer_3r[   answer_4rG   answer_5rN   answer_6eqs_7answer_7eqs_8answer_8eqs_9answer_9eqs_10	answer_10eq11sol11eq12sol12eq13sol13eq14sol14eq15sol15sol1eq2eq3sol3eq4sol4	sum_termseq5sol5r   r4   r5   r   rH   r;   s;                                                           @@@rI   test__classify_linear_systemr   G   s2   84JA!gGAq	adAB	adAB	adAB	adAB	adAq	B	adAq	BqT1Q4LEqtQqTl"GVb1Q4i!qt*,q2vQ1/EAaD/PST/TVE"5%3;;;"a%[2!9$qAaDz1AFR!Vad]4JQQRSTQUX4UXY4Y[Ej1q1DQqT!a!fQh9N4O3OPz!A$"BqD1IaK!A#$5!A$q$@AC
1Q4#T#ad(1*q1vax*?%@Az!A$"BqD1IaK!A#$5!A$q$@ACDED
 #5%3t;;;*QqT1%S1XaZ!AaD&(-B(C'CDz!A$"BqD1IaK!A#$5!A$q$@ACG"7E15===*QqT1%tC!HQJ1Q4,A'BCz!A$"BqD1IaK!A#$5!A$q$@ACG"7E15===Vb1Q4i!qt*,q2vQqT	/AA!H/LPQTVPVYZ[\Y]P]acfghifjajlE"#qtGa!fqAaD!!444	!A$h1Q4!JqtQ///dQz!A$"""dZ!a  " dAaD!A$!%tQ!a1q!A$2r1oxA1-sA!Q1a0HQNA	  ! !
 !!H" #5'15AAAVb1Q4i!qt*,q2vQqT	/AA!H/LPRUVWXUYPY]_bcdebf]fhE"#1IAaD 1z!A$':#::!A$JQqT!A
1Q4(;$;;qTEJqtQ''qTEJqtQ'') dAaD!A$!%tQ!a1q!A$2
2q/8B?Aq	1
3
HQNAq	1			  
 !!H" #5'15AAArTBqtG^a1h&+adR!Wnq1v.EaPQdVX[\]^[_V_aE"#BqtGa!f,<qAaDRSAT?T,TWabcdebfijlmhnWo,oAaD1QqT6!Aj1q&9$99AaD5:aPQdTUCV;VYZ[\Y]X]`jklmnkoa Y,dAaD!A$!51q!A$PQSTUVSWYZ\]^_\`bc@dDV]rvxH #5'15AAAAadFR!W$%r"a!fq1vo'>2r!A$wQRSTUVSWQWGW@XYE"#Bz!A$/BAadFRPQRSPTWDT,UWYZdefgheiklZmoqrsturvovyz{|}~{yo  XAz!A$"BqtGa!f$45,7AB1qtQqT@R^_`a^bdeghijgkmnpqrsptvw]xdd!&&&#( ) ) !(t=H #5'#2,:hFFFAaD\2b!A$<(E"#Bz!A$/BAaD,I2jYZ[\Y]_`NacdefcgKh+i1qt!a1q/APTei"&v:;R9;a?B 8C 7C %,4AH #5%3x???BqtG_bR!Wq1v%562q1v!A$QRSTUVSWQW?W8XYE"#Bz!A$/BBqtG,LbQ[\]^_\`bcQdfhijklimfmpqrsturvpvfvNwz!A$"AadFQqtVOa!f$<=,?IJ1qQRtUVWXUYHZfghifjlmopqrosuvxyz{x|~  fAdd!)))#+ , , !(t=H #5'#2,:hFFFAadFQqtVOa!f,-r"adR!Wnq1v6M/NPRSUWYZ[\]Z^W^acdefgdhahWhkmnopqnrkrWrPstE"#Bz!A$/BAadFQqQRtVOVWXYZ[X\V\D\,]:adA&!r!A$w1Q4(?@"ZPQRSPTVWEXZ\]^_`]aZadfghijgkdkZknpqrstqunuZuBv,x1qtQqT*adAqtQ!a5P_c#t%+++'-  . . %,4AH #5'#2,:hFFF2sAaD1Q4K()2adC1!4E+F1R4QTVWXYVZ]^_`]aVaQbHcdF#$R*QqT12E0Er!A$wQSTUVWTXQXGX-Y1Z!a((#ad(R!W*<=r!JqQRtUVDWBWY[\]^_\`Y`cefghifjcjYj?k-m1qtQqT*adAqtQ!a5P_c#t%#$hsA&6"a I!)"aa#q9I J!)#q!18B?Q G'I  J J %,4AI #673B<;yHHHr1QqT6BqtG#$bQqtVa!f_&=r"b1gPQRSTURVPVFV?WXD JqtQ,?1Q4"QqT'AQ)RTVWabcdebfhiWjlnopqroslsvwxyz{x|v|l|T}z!A$"BqtGa!f$45)7AB1qtQqT@R^_`a^bdeghijgkmnpqrsptvw]xdd[a=-c9 \: [:OVfjlE #4"q9UBBBz!A$"AaD)2j1q.A1Q4+HID JqtQ,?1)F:VWXYVZ\]K^`abc`dHe(fdAaD\QqT1adA,>Tbf#FGG< 5 4+2$	HE
 #4!A$!q9UBBBz!A$"BqtG,bAaD!1Db1gPQRSTURVPVFV.Wz!A$"AadFQqtVOa!f$<=?D z!A$B1I&:adA+>QqT	APQRSPTH@T(Uz!A$A!Hq1Q4x/!ad(:;)=GHtQqTSTUVSWFXtQ!a1q1UYmq"$     6=DRE #4!A$!ad);Q?5HHH 	:adA!A$1Q4!AaD& 892j1q>QSTUVSWZ\]^_`]aZaSadefghifjdjSj;k
:adA1Q4"QqT' 1BqtG ;<>D  !z!A$A!Hq1Q4x/!ad(:;R
1Q4QR@SUVWXUY\^abcdae\eUehilmnolphpUp=qz!A$B1IQqT	1B1I=>)@JKA$PQRSPTVWXYVZI[tQ!a1q1UYmq" $" # # 9@tUE #4!A$!ad);Q?5HHHqAaD!$$b1g1Q4&78"Qz!A$PQ?R=RTWXYZ[X\T\_abcdebf_fTf:gqAaD!$$b1g1Q4&78:D q:adAQqT	B1I 561z!A$PQ?R;RTWZ[\]Z^T^acfghifjajTj8kq:adAQqT	B1I 56)8BCA$!aPQdAStQ!a1q1UYmq"Xc1%xA72q/1hsA&673"HROQ7$9 : : PWfjlE #4!A$!ad);Q?5HHH d1Q4mQqTAaD[1_-r$qtQ-1Q4!AaD&SUAU/V
WC:adA+>!qta(P
:adA!A$1Q4" 45(7AB1qtA$1Q4#$t_dtxBx"b233FaD2$<<PfmoD #3q1T999 d1Q4mQqS1X!A$./D1qM1QqT6AaCPQRSPTHCT1U
VC:adA+>!AaD1QqT6@Q(RTVWabcdebfhiWjlmnolopqrsptltwxyz{|y}w}l}T~'qT1Q4LAaD!QqT1+=Daf"6RTRLRQSTUQU,:W3X2Xx~q!tVAXAaC !Qq!tVAX"6@8 y9NUeikD #3q1T999 b!A$1Q4-!#$bQqtVad]&;
<C:adA+>!A$
QqT@Q(RTVWabcdebfhiWjadFQqTMU (&'dAaD\QqT1adA<N]a E^dhjmnlngoRHf _ ^6<Q1Q?ORSUVRVWXRX_`Qa=b6caS1#;W	>D
 #3q1T999b!AaD&1QqT6/A%&2q1v!A$Q/G(H
IC:adA+>!A$1Q4RS@S(TVXYcdefgdhjkYladFQqtVOc!f$W& ('121qt!aQRSTQUWXGYhl#4qTWXYTZS[G\@]aVaV$%eQX*0AqDFAqDF3Cad1faQRdSTfEU1V*W	YD
 #3q1T999b!QqTAaD[1Q4'!+,-r"a1!qt9K6L/MrRTVWYZ[\Y]`abc`dYdghijgkYkVlOm
nC:adA+>1Q4!A$;QRSTQUCUXYCY@Z([z!A$"Aqtad{QqT'9$:;R
1Q4QR@SUVXYZ[X\_`ab_cXcfghifjXjUk=l(nqT1Q41&!A$1Q4AaD!1L[_U$vZ[Y[^_]_bcacXdhigilmkmBg"qb1"W P  O ?EAaQRTUQUVWQWYZ\]Y]^_Y_H`cdfgcghiciqDFAqDFcd1fad1fad1f5G7 @8@F!qcTUSVGW@XD #3a8D@@@b!A$1+!A$&*+RAaD1QqT6MAaD4H24M-NPRSUWXYZ[\Y]W]`abc`dWdghijgkWknoWoPp
qC:adA+>!A$1PQRSPT@TWX@X(Y[]^hijklim_!A$1!$r)\+,.z!A$/BAadFQJQRSTQUDUXYZ[X\D\,](_ijklimaD!A$i#$Q4AaD!QqT1"=Daf#4RTVX[\Z\Q]`befdfhj_kopnpn P I H5;AAqRStTUv>V^_abdeaefgagYAaaa(=* 6+39aD2$!:M3NdkmD #3a8D@@@1Q4!A$;1%!,-Ib)bY/B	A1F2yHY
ZC:adA+>1Q4!A$;QRSTQUCUXYZ[X\C\@](^z!A$"Aqtad{QqT'9AaD'@$ABBzRSTURVXYGZ\]_`ab_cfghifj_jaD`Q4` ]] E!*QqT1"5q!A$1+!:LqQRt:S7TU(WabcdaeghijgkaD!A$a#$Q4AaD!QqT1adA"FUYjo#4STRTWXVX[\Z\_`^`QaefdfijhjmnlnBd"qb1"qb!QBQB#3P5 I6 H6U[_`bc_cde_eghjkgklmgmqDFAqDF_d1fad1fad1fad1f=1Q1QPQSTPTUVPVXY[\X\]^X^?_bcefbfghbhqDFAqDFAqDFb$]% V&.4sQC!qc5J.KahjD #33t;;; 
Ba!fq1vo*QqT1"5 55
1Q4!Q8PPSTU_`abc`dfgUhShhjlmpqrstqtmujuva!fr!A$w:adA#6!66:adA;N9NNQ[\]^_\`cdfgbhQiiklmpqrstqtmukuvxC1QqT6AadF?Qz!A$PQ?R=R+RU_`abc`dghjkflUm+mj1q!!,"#%c!A#h;)013AadFR!W4DqTUVWTXZ[I\G\4\j1q!!5"$.qtaV$<5=>?AaCj2J(KUVWXUY[\]^[_T`qT1adATUZ^gmAaC[MQs1Q3xZ=o* h+@G\`#%D #3q1T999qAv!|a!#JqtaV$<<a!fr!A$w>NOqAv!|a!#JqtaV$<<adQqtVmLNCAadFQqSL1,<q+@AaDSTVWRXAY+Y[\]^_`]a[adfghijgkdk[k(l!Q$1q 1$Z!q!f%==qta!f}M(OYZ[\Y]_`ab_cXdqT1adATTY] 'v"aB8OUVX`acefXgQh6i/jtxyz{|~{y  CD  EF  CF  zFz ub#a$r(1*nx1~&E"FFrIDQSHUXYZ]abd]efg]gYgjrstvwjxYxUyLyz|L||""Z^`D #3q1T999j1q!!AaD(#a&0Aj1q6I4IAaD4PRUVWRX3XX[efghifjmnpqlr[ssqD!JqtQ''!A$./!Qz!A$7J5JQqT5Q2RRU_`abc`dghjkflUmmoC:adA+>)>1)Es1v(MQRS]^_`a^bdeSfQfaDRa&Q )%adQF3)456T1Z!a=P;PSTUVSW;W5X[\^_`jklmnkoa _1_ \ 6#AaD1a&162(3=>qT1Q4LTUVWTXZ[]^_`]acdSeT_fqbQi!CF+1a4%adU-CDEZ^#%D #3q1T999bAaD&14- "R2!A$"7
8C:adQF+CQqtVaPZ[\]^[_abPcNcEc(dz!A$A'1Q4!JqtQ4G2G)GH(JTUVWTXZ[\]Z^S_klmnkoqtQk&*dRVGD #3q1T999
 5h'DAqFOEArqT1Q4LEj1q!1$qAaD!)<'<<q@!Dr!A$wAaD!,,a02Cz!A$2B7JqtQ<OQRSTUVSWQW9XY*QqT1%q)2j1q.A1QqT6+JKMND #3q1T999
:IJj1q!AadFQqTMA$5q#892j1q>QTUVWTX[\]^_`]a[aTacdSd;e
fC:adA+>1Q4!A$QRARTU@U(VXZ[efghifjlm[nqTAadF]AY ( *+A$!1q!A$PQ@Rae#4!qc{@ScimnmAk d).GSU^abc^d*0Ac!fHA3GCPQFTUVYZ[V\T\I]1^*_	aD
 #3q1T999j1q!AadFQqTM1#45r*QqT1:MPQRSPTWXYZ[\Y]W]P]_`O`7a
bC:adA+>1Q4!A$PQ@Q(RTVWabcdebfhiWjqTAadF]AU ( *+A$!1q!A$PQ@Rae"$fPQSTvXY[\W]M^F_wb1#PQsAT]`ab]c*0Ac!fHA3GCPQFTUVYZ[V\T\I]1^*_	aD
 #3q1T999rL   c                    ^^^^	 SSK Jn JnJn  SSKJm  [        S5      m	[        SS5       H  nT" U" U5      T	5      U" U5      :X  a  M   e   [        SS5       H.  nU" U5      n[        T	5      U" U5      -  nT" UT	5      U:X  a  M.   e   [        SS5       H)  nU " X3S 5      nU " X3U	4S j5      nT" UT	5      U:X  a  M)   e   U " SS/S	S//5      nU " [        T	5      [        T	5      /[        T	5      * [        T	5      //5      nT" UT	5      U:X  d   eU " S
S/S
S//5      nU " S[        T	* 5      -  [        T	5      -  [        T	* 5      [        T	5      -  -   S[        T	* 5      -  [        T	5      -  /S
[        T	* 5      -  [        T	5      -  S[        T	* 5      -  [        T	5      -  [        T	* 5      [        T	5      -  -   //5      nT" UT	5      U:X  d   eU " / SQ/ SQ/ SQ/5      nU " S
T	-  [        ST	-  5      -  S[        ST	-  5      -  S-  -   [        ST	-  5      S-  -
  S
T	-  [        ST	-  5      -  S[        ST	-  5      -  S-  -   S[        ST	-  5      -  S-  -
  [        ST	-  5      S
-  [        ST	-  5      S
-  -
  /ST	-  [        ST	-  5      -  [        ST	-  5      S-  -
  [        ST	-  5      S-  -   ST	-  [        ST	-  5      -  [        ST	-  5      S-  -
  S[        ST	-  5      -  S-  -   [        ST	-  5      * S
-  [        ST	-  5      S
-  -   /ST	-  [        ST	-  5      -  ST	-  [        ST	-  5      -  [        ST	-  5      //5      nT" UT	5      U:X  d   eU " / SQ/ SQSSS[        S5      * S-  /SS[        S5      S
-  [        S5      S
-  //5      nU " [        T	5      T	[        T	5      -  ST	-  [        ST	-  S-  5      -  ST	-  [        T	5      -  -   S[        ST	-  S-  5      -  -   S[        T	5      -  -
  ST	-  [        ST	-  S-  5      -  S
T	-  [        T	5      -  -
  S[        ST	-  S-  5      -  -
  S[        T	5      -  -   /S[        T	5      T	* [        ST	-  S-  5      -  S[        ST	-  S-  5      -  -
  S[        T	5      -  -   T	[        ST	-  S-  5      -  S
-  S
[        ST	-  S-  5      -  -   S
[        T	5      -  -
  /SST	[        ST	-  S-  5      -  S-  [        ST	-  S-  5      -   T	* [        ST	-  S-  5      -  S-  /SST	[        ST	-  S-  5      -  S
-  T	* [        ST	-  S-  5      -  S-  [        ST	-  S-  5      -   //5      nT" UT	5      U:X  d   eU " / SQ/ SQ/ SQ/ SQ/5      nU " [        T	5      [        T	5      SS/[        T	5      * [        T	5      SS/SS[        T	5      [        T	5      /SS[        T	5      * [        T	5      //5      nT" UT	5      U:X  d   eU " / SQ/ SQ/ SQ/ SQ/5      nU " [        T	5      [        T	5      T	[        T	5      -  T	[        T	5      -  /[        T	5      * [        T	5      T	* [        T	5      -  T	[        T	5      -  /SS[        T	5      [        T	5      /SS[        T	5      * [        T	5      //5      nT" UT	5      U:X  d   eU " S[        /[        S//5      nU " [        [        T	-  5      S
-  [        [        * T	-  5      S
-  -   [        [        T	-  5      S
-  [        [        * T	-  5      S
-  -
  /[        [        T	-  5      S
-  [        [        * T	-  5      S
-  -
  [        [        T	-  5      S
-  [        [        * T	-  5      S
-  -   //5      nT" UT	5      U:X  d   eU " / SQ/ S Q/ S!Q/5      mU " T	S/SS//5      m[        [        UUU	4S" j5        [        [        UUU	4S# j5        [        [        UUU	4S$ j5        [        [        UUU	4S% j5        g )&Nr   )r   eyezeros)
matrix_expr;   r=   ru   c                     X:X  a  U S-   $ S$ Nr=   r    )ijs     rI   rJ   !test_matrix_exp.<locals>.<lambda>  s    ADQqS%7a%7rL   c                 4   > X:X  a  [        U S-   T-  5      $ S$ r   )r   )r   r   r;   s     rI   rJ   r     s    ac1W)D1)DrL   r>   r<   r{   r   r?   rC   )rw   rx   r`   )r{   r>   re   )r@   r@      r   rA   r@   r   )r=   r=   r   r   )r   r=   r=   r   r   0   )r   r=   r   r   )r>   r   r   r   rf   rr   )r>   r   r   r=   )r=   r<   r?   )r@   rA   r`   )ru   ru   ru   c                  (   > T" T S S 2S S24   T5      $ Nr<   r   Mr   r;   s   rI   rJ   r     s    z!ArrE(A6rL   c                  (   > T" T S S2S S 24   T5      $ r   r   r   s   rI   rJ   r     s    z!BQBE(A6rL   c                     > T" T T5      $ Nr   M1r   r;   s   rI   rJ   r     s    z"a0rL   c                  (   > T" T S S2S S24   T5      $ r   r   r   s   rI   rJ   r     s    z"RaR!V*a8rL   )sympy.matrices.denser   r   r   sympy.solvers.ode.systemsr   r   ranger   r   r   r   r   r/   r   )
r   r   r   nAexpAtr   r   r   r;   s
         @@@@rI   test_matrix_expr     sM   774sA1c]%(A&#a&000  1c]FAQ!Q5((( 
 1c]178qDE!Q5((( 
 	AQ !ASVSV$AwA&789Eau$$$B!R!"AsA2wYs1vQBA.3r7
3q60ABsA2wYs1vr#qb'z#a&03r73q6>AB E au$$$\:67A 	
1SAY3r!t9Q	&QqS!	3QqSRT]Qs2a4y[QR]5RUVWZ[\]^[^W_U_`aUa5adghjklhldmnodoruvwxyvyrz{|r|d|}
Q$s2a4y.3r!t9Q;
&QqS!
3bd3r!t9ns2a4yQR{6RUVWZ[\]^[^W_U_`aUa6adghjklhldmcmnocoruvwxyvyrz{|r|c|}&'c#bd)mTUVWTWX[\^_`\`XaTasvwyz{w{s|}
 E
 au$$$Aq1Q4%'"AqtAvqtAv&( 	)A 	Q3q61Q3s1Q3q5z>AaCAJ6C!AJFCPQFRqDQqSUOac#a&j82c!A#a%j=H2cRSf9T	V	
CFQBs1Q3q5zMAc!A#a%jL01SV8;Qs1Q3q5z\!^aPSTUVWTWXYTYPZl=Z]^_bcd_e]e=ef	
AqQqSU|A~AaCE
*QBs1Q3q5zM!O<	
AqQqSU|A~r#ac!e*}QQqSU;<
 E au$$$	 	A 	!fc!fa*	!fWc!fa*1Q3q6*1Q3q6*	, -E
 au$$$	 	A 	!fc!fqQx3q6*	!fWc!fqbQi3q6*1Q3q6*1Q3q6*	, -E
 au$$$ 	AA A1XaZ#qbd)A+s1Q3xzC1IaK781XaZ#qbd)A+s1Q3xzC1IaK78: ;E au$$$ 		9i01A	!Q!Q 	!B
:67
:67
:01
:89rL   c                  ^   [        S[        S9u  pn[        S5      nU " U5      U" U5      U" U5      /n[        U " U5      R                  X35      U " U5      SU" U5      -  -   5      [        U" U5      S-   U" U5      R                  U5      U " U5      -   5      /n[        [	        U " U5      US45      U " U5      SU" U5      -  -   5      [        [	        U" U5      U5      U " U5      * U" U5      -   S-   5      //n[        XTS S U5      U:X  d   e[        U " U5      R                  U5      U" U5      R                  U5      U " U5      -   5      [        U" U5      R                  U5      S-  U " U5      U" U5      -   5      [        U" U5      R                  U5      U " U5      5      /n[        [	        U " U5      U5      SU " U5      -  5      [        [	        U" U5      U5      [        U " U5      U" U5      -   5      * 5      [        [	        U" U5      U5      U " U5      5      /[        [	        U " U5      U5      SU " U5      -  5      [        [	        U" U5      U5      [        U " U5      U" U5      -   5      5      [        [	        U" U5      U5      U " U5      5      //n[        XtU5      U:X  d   eg )Nf g hr9   r3   r<   r=   )r   r   r
   r   r   r&   r   )	r4   r5   r6   r3   rH   eqs1r   eqs2r   s	            rI   test_canonical_odesr     sl   g8,GA!AqT1Q41Eqtyy!q1v.1Q4!8QqTYYq\AaD=P0QRD
1Q4!Q(!A$1Q4-8"Z!a=PSTUVSWRWZ[\]Z^R^abRb:cdeD$bq	1-555qtyy|QqTYYq\AaD012adiilAoqtaPQd{3SUWXYZ[X\XaXabcXdfghifjUklD
1Q4#QqtV,bAaD!1DtAaDSTUVSWKGXFX.Y[]^hijklimop^qstuvsw[xy
1Q4#QqtV,bAaD!1Dd1Q4RSTURV;FW.XZ\]ghijkhlno]prsturvZwxzD$q)T111rL   c                  )   [        S[        S9u  pp#n[        S5      u  pVpx[        [        U" U5      U5      U" U5      5      [        [        U" U5      U5      U" U5      5      /n	[        U" U5      [        [        U5      -  5      [        U" U5      [        [        U5      -  5      /n
[        U	5      U
:X  d   e[        X5      SSS/4:X  d   e[        [        U" U5      U5      SU" U5      -  5      [        [        U" U5      U5      SU" U5      -  5      /n[        U" U5      [        [        SU-  5      -  5      [        U" U5      [        [        SU-  5      -  5      /n[        U5      U:X  d   e[        X5      SSS/4:X  d   e[        [        U" U5      U5      XR" U5      -  5      [        [        U" U5      U5      XS" U5      -  5      /n[        U" U5      [        [        XX-  5      -  5      [        U" U5      [        [        XX-  5      -  5      /n[        U5      U:X  d   e[        X5      SSS/4:X  d   e[        [        U" U5      U5      XR" U5      -  5      [        [        U" U5      U5      Xc" U5      -  5      /n[        U" U5      [        [        XX-  5      -  5      [        U" U5      [        [        Xh-  5      -  5      /n[        U5      U:X  d   e[        UU5      SSS/4:X  d   e[        [        U" U5      U5      U" U5      * 5      [        [        U" U5      U5      U" U5      5      /n[        U" U5      [        * [        U5      -  [        [        U5      -  -
  5      [        U" U5      [        [        U5      -  [        [        U5      -  -
  5      /n[        U5      U:X  d   e[        UU5      SSS/4:X  d   e[        [        U" U5      U5      SU" U5      -  5      [        [        U" U5      U5      SU" U5      -  5      /n[        U" U5      [        * [        SU-  5      -  [        [        SU-  5      -  -
  5      [        U" U5      [        [        SU-  5      -  [        [        SU-  5      -  -
  5      /n[        U5      U:X  d   e[        UU5      SSS/4:X  d   e[        [        U" U5      U5      [        U" U5      -  5      [        [        U" U5      U5      [        U" U5      -  5      /n[        U" U5      [        * [        [        * U-  5      -  [        [        [        U-  5      -  -   5      [        U" U5      [        [        [        * U-  5      -  [        [        [        U-  5      -  -   5      /n[        U5      U:X  d   e[        UU5      SSS/4:X  d   e[        [        U" U5      U5      U* U" U5      -  5      [        [        U" U5      U5      XR" U5      -  5      /n[        U" U5      [        * [        -  [        [        * U-  U-  5      -  [        [        -  [        [        U-  U-  5      -  -   5      [        U" U5      [        [        [        * U-  U-  5      -  [        [        [        U-  U-  5      -  -   5      /n[        U5      U:X  d   e[        UU5      SSS/4:X  d   e[        [        U" U5      U5      U" U5      U" U5      -   5      [        [        U" U5      U5      U" U5      U" U5      -
  5      /n[        U" U5      [        S	[        S5      -
  -  [        [        S5      * U-  5      -  [        S	[        S5      -   -  [        [        S5      U-  5      -  -   5      [        U" U5      [        [        [        S5      * U-  5      -  [        [        [        S5      U-  5      -  -   5      /n[        U5      U:X  d   e[        UU5      SSS/4:X  d   e[        [        U" U5      U5      U" U5      U" U5      -   5      [        [        U" U5      U5      U" U5      U" U5      -   5      /n[        U" U5      [        * [        [        SU-  5      -  -   5      [        U" U5      [        [        [        SU-  5      -  -   5      /n[        U5      U:X  d   e[        UU5      SSS/4:X  d   e[        [        U" U5      U5      SU" U5      -  U" U5      -   5      [        [        U" U5      U5      U" U5      * SU" U5      -  -   5      /n[        U" U5      [        [        SU-  5      -  [        U5      -  [        [        SU-  5      -  [        U5      -  -   5      [        U" U5      [        [        SU-  5      -  [        U5      -  [        [        SU-  5      -  [        U5      -  -
  5      /n[        U5      U:X  d   e[        UU5      SSS/4:X  d   e[        [        U" U5      U5      U" U5      SU" U5      -  -   5      [        [        U" U5      U5      SU" U5      -  U" U5      -   5      /n[        U" U5      [        * [        U* 5      -  [        [        SU-  5      -  -   5      [        U" U5      [        [        U* 5      -  [        [        SU-  5      -  -   5      /n [        U5      U :X  d   e[        UU 5      SSS/4:X  d   e[        [        U" U5      U5      S
U" U5      -  U" U5      -   5      [        [        U" U5      U5      U" U5      * SU" U5      -  -   5      /n![        U" U5      [        U-  [        SU-  5      -  [        [        -   [        SU-  5      -  -   5      [        U" U5      [        * [        SU-  5      -  [        U-  [        SU-  5      -  -
  5      /n"[        U!5      U":X  d   e[        U!U"5      SSS/4:X  d   e[        [        U" U5      U5      XS" U5      -  5      [        [        U" U5      U5      XR" U5      -  5      /n#[        U" U5      [        * [        U* U-  5      -  [        [        XX-  5      -  -   5      [        U" U5      [        [        U* U-  5      -  [        [        XX-  5      -  -   5      /n$[        U#5      U$:X  d   e[        U#U$5      SSS/4:X  d   e[        [        U" U5      U5      XS" U5      -  5      [        [        U" U5      U5      Xb" U5      -  5      /n%[        U" U5      [        * U-  [        U* [        XV-  5      -  5      -  [        XV-  5      -  [        U-  [        U[        XV-  5      -  5      -  [        XV-  5      -  -   5      [        U" U5      [        [        U* [        XV-  5      -  5      -  [        [        U[        XV-  5      -  5      -  -   5      /n&[        U%5      U&:X  d   e[        U%U&5      SSS/4:X  d   e[        [        U" U5      U5      XR" U5      -  Xc" U5      -  -   5      [        [        U" U5      U5      Xr" U5      -  5      /n'[        U" U5      S[        -  U-  [        X[        US-  S
U-  U-  -   5      -   -  S-  5      -  U[        US-  S
U-  U-  -   5      -
  -  S[        -  U-  [        X[        US-  S
U-  U-  -   5      -
  -  S-  5      -  U[        US-  S
U-  U-  -   5      -   -  -
  5      [        U" U5      [        [        X[        US-  S
U-  U-  -   5      -   -  S-  5      -  [        [        X[        US-  S
U-  U-  -   5      -
  -  S-  5      -  -   5      /n([        U'5      U(:X  d   e[        U'U(5      SSS/4:X  d   e[        [        U" U5      U5      XS" U5      -  U" U5      -   5      [        [        U" U5      U5      XR" U5      -  U" U5      -
  5      /n)[        U" U5      [        U-  [        U[        US-  S	-   5      -  5      -  [        US-  S	-   5      S	-
  -  [        U-  [        U* [        US-  S	-   5      -  5      -  [        US-  S	-   5      S	-   -  -
  5      [        U" U5      [        [        U[        US-  S	-   5      -  5      -  [        [        U* [        US-  S	-   5      -  5      -  -   5      /n*[        U)5      U*:X  d   e[        U)U*5      SSS/4:X  d   e[        [        U" U5      U5      S5      [        [        U" U5      U5      S5      /n+[        U" U5      [        5      [        U" U5      [        5      /n,[        U+5      U,:X  d   e[        U+U,5      SSS/4:X  d   e[        [        U" U5      U5      SU" U5      -  U" U5      -
  5      [        [        U" U5      U5      U" U5      5      /n-[        U" U5      [        U-  [        U5      -  [        [        -   [        U5      -  -   5      [        U" U5      [        [        U5      -  [        U-  [        U5      -  -   5      /n.[        U-5      U.:X  d   e[        U-U.5      SSS/4:X  d   e[        [        U" U5      U5      U" U5      5      [        [        U" U5      U5      U" U5      U" U5      -   5      /n/[        U" U5      [        [        U5      -  5      [        U" U5      [        U-  [        U5      -  [        [        U5      -  -   5      /n0[        U/5      U0:X  d   e[        U/U05      SSS/4:X  d   e[        [        U" U5      U5      SU" U5      -  5      [        [        U" U5      U5      U" U5      U" U5      -   5      /n1[        U" U5      S[        -  [        SU-  5      -  5      [        U" U5      [        [        SU-  5      -  [        [        U5      -  -   5      /n2[        U15      U2:X  d   e[        U1U25      SSS/4:X  d   e[        [        U" U5      U5      SU" U5      -  5      [        [        U" U5      U5      U" U5      5      /n3[        U" U5      [        [        SU-  5      -  5      [        U" U5      [        [        U5      -  5      /n4[        U35      U4:X  d   e[        U3U45      SSS/4:X  d   eg )Nz	f g x y hr9   za b c tTr   r<   r?   r   r=   r@   )r   r   r
   r   C1r   C2r   r   r   r   r   r   )5r4   r5   r3   r   r6   abcr;   r   r   r   r   eqs3r   eqs4r   eqs5r   eqs6sol6eqs7sol7eqs8sol8eqs9sol9eqs10sol10eqs11r   eqs12r   eqs13r   eqs14r   eqs15r   eqs16sol16eqs17sol17eqs18sol18eqs19sol19eqs20sol20eqs21sol21eqs22sol22s5                                                        rI   #test_sysode_linear_neq_order1_type1r    s+   KX6MA!#JA!z!A$"AaD)z!A$"AaD)+DqtRAYqtRAY!D$<4$%$A777z!A$"AadF+z!A$"AadF+-DqtRAaC[!qtRAaC[!#D$<4$%$A777z!A$"AadF+z!A$"AadF+-DqtRAC[!qtRAC[!#D$<4$%$A777 z!A$"AadF+z!A$"AadF+-DqtRAC[!qtRAC[!#D$<4$%$A777z!A$"QqTE*z!A$"AaD)+DqtbSQZ"SV)+,qtRAYCF*+-D$<4$%$A777z!A$"BqtG,z!A$"AadF+-DqtbSQqS\Bs1Q3xK/0qtRAaC[2c!A#h;./1D$<4$%$A777z!A$"AadF+z!A$"AadF+-DqtbSaRT]RAaC[01qtRQBqD	\Bs1Q3xK/02D$<4$%$A777z!A$"QBqtG,z!A$"AadF+-DqtaRU3r!tAv;&2c!A#a%j89qtRQBqDF^bQqSUm346D$<4$%$A777z!A$"AaD1Q4K0z!A$"AaD1Q4K02DqtRT!W%c47(1*o5AQK8HTRSWUVY8WWXqtRT!WHQJ'"Sa^*;;<>D$<4$%$A777
1Q4#QqTAaD[1
1Q4#QqTAaD[13E!rcBs1Q3xK'(!b2c!A#h;&')E%=E!!!%'D1a&>999
1Q4#QqtVad]3
1Q4#adUQqtV^46E!bQqSk#a&(2c!A#h;s1v+==>!bQqSk#a&(2c!A#h;s1v+==>@E%=E!!!%'D1a&>999
1Q4#QqTAadF]3
1Q4#QqtVad]35E!rc#qb'kBs1Q3xK/0!baRj2c!A#h;./1E%=E!!!%'D1a&>999
1Q4#QqtVad]3
1Q4#adUQqtV^46E!bd3qs8mrBwAaC&889!rc#ac(lRT#ac(]235E%=E!!!%'D1a&>999
1Q4#QqtV,
1Q4#QqtV,.E!rc#qbd)mbQSk12!baRTlRAC[013E%=E!!!%'D1a&>999
1Q4#QqtV,
1Q4#QqtV,.E!rc!eC49--d13i7"Q$s1T!#Y;?O:OPTUVUXPY:YYZ!baRQS	\**RAd13iK0@-@@ACE%=E!!!%'D1a&>999
1Q4#QqtVa!f_5
1Q4#QqtV,.E!beAgc!adQqSUl);%;"<Q">??T!Q$QRSTQTUVQV,EWAWX[\]_[_`a[abefg1a4!A#a%< j! g""#g$ c% \%&'$q!tac!e|*<&<\> > ?!bQDA!A$6 679::RA4PQSTPTWXYZWZ[\W\P\K]G]D^_`D`@a=aabdE %=E!!!%'D1a&>999 
1Q4#QqtVad]3z!A$"AadFQqTM24E!bd3qadQh/00$q!tax.12DE1SRSQSTXYZ\]Y]`aYaTbQbMcHceijkmnjnk ff I  qtRAd1a4!8n,--3r$q!tax.7H3I0IIJLE %=E!!!%'D1a&>999
1Q4#Q'z!A$"A&(E!b\qtRLE%=E!!!%'D1a&>999
1Q4#QqtVad]3z!A$"AaD)+E!bd3q6kR"Wc!f$445qtRAYAc!f,-/E%=E!!!%'D1a&>999
1Q4#QqT*z!A$"AaD1Q4K02E!bQi qtRT#a&[2c!f9,-/E%=E!!!%'D1a&>999
1Q4#QqtV,z!A$"AaD1Q4K02E!ad3qs8m$qtRAaC[2c!f9,-/E%=E!!!%'D1a&>999
1Q4#QqtV,z!A$"AaD)+E!bQqSk"qtRAY!E%=E!!!%'D1a&>999rL   c                  o   [        S5      n [        S5      n[        S5      n[        S5      n[        S5      n[        S5      u  pVpxp[        [	        U" U 5      U 5      U* U" U 5      -  Xb" U 5      -  -   Xs" U 5      -  -   X" U 5      -  -   5      [        [	        U" U 5      U 5      XQ" U 5      -  Xb" U 5      -  -
  X" U 5      -  -   5      [        [	        U" U 5      U 5      U* U-
  U	-
  U" U 5      -  5      [        [	        U" U 5      U 5      X" U 5      -  X" U 5      -  -
  5      /n[        U" U 5      [
        U-  U-  [        Xj-
  -  [        U
* U -  5      -  XV-   U
-
  -  -
  [        XgU-   U
-
  -  US-  -
  XxU	-   U
-
  -  -
  X-  -   -  [        U * Xx-   U	-   -  5      -  X* U-
  U-   U-   U	-   -  -  -
  [        [        U * XV-   -  5      -  -
  5      [        U" U 5      [
        [        U-  [        U
* U -  5      -  XV-   U
-
  -  -
  [        U* Xx-   U
-
  -  Xx-  -   US-  -   XU
-
  -  -   -  [        U * Xx-   U	-   -  5      -  X* U-
  U-   U-   U	-   -  -  -   [        [        U * UU-   -  5      -  -   5      [        U" U 5      [        * Xx-   U	-   U
-
  -  [        U * Xx-   U	-   -  5      -  U	-  5      [        U" U 5      [        [        U
* U -  5      -  [        [        U * Xx-   U	-   -  5      -  -   5      /n[        U5      U:X  d   e[        X5      S/ S	Q4:X  d   e[        S
[        S9u  pnnnn[        S5      u  nn[        SSS9u  nn[        [	        U" U 5      U 5      UU" U 5      -  5      [        [	        U" U 5      U 5      UU" U 5      -  5      [        [	        U" U 5      U 5      U* U-
  U" U 5      -  5      /n[        U" U 5      [
        [        U-  [        U * UU-   -  5      -  UU-   -  -
  5      [        U" U 5      [        * U-  [        U * UU-   -  5      -  UU-   -  [        -   5      [        U" U 5      [        [        U * UU-   -  5      -  5      /n[        U5      U:X  d   e[        UU5      S/ SQ4:X  d   eSU" U 5      -  U" U 5      -
  SU" U 5      -  -
  [	        U" U 5      U 5      -   SU" U 5      -  U" U 5      -   SU" U 5      -  -
  [	        U" U 5      U 5      -   SU" U 5      -  U" U 5      -   SU" U 5      -  -
  [	        U" U 5      U 5      -   /n[        U" U 5      [        [        SU -  5      -  [
        S-  [        S5      [        -  S-  -   [        [        S5      U -  5      -  -   [        [        S5      U -  5      [        S5      [
        -  S-  [        [        SS5      -  -   -  -   5      [        U" U 5      [
        S-  [        S5      [        -  S-  -   [        [        S5      U -  5      -  [        [        S5      U -  5      [        S5      [
        -  S-  [        [        SS5      -  -   -  -   5      [        U" U 5      [
        [        [        S5      U -  5      -  [        [        [        S5      U -  5      -  -
  [        [        SU -  5      -  -   5      /n[        U5      U:X  d   e[        UU5      S/ SQ4:X  d   e[        [	        U" U 5      U 5      U" U 5      [        SS5      -  SU" U 5      -  -   U" U 5      -   U" U 5      [        SS5      -  -   5      [        [	        U" U 5      U 5      U" U 5      [        SS5      -  SU" U 5      -  -   U" U 5      [        SS5      -  -   5      [        [	        U" U 5      U 5      U" U 5      [        SS5      -  U" U 5      [        SS5      -  -   5      [        [	        U" U 5      U 5      U" U 5      [        SS5      -  U" U 5      [        SS5      -  -   5      /n[        U" U 5      [
        [        SU -  5      -  [        U -  [        SU -  5      -  -   5      [        U" U 5      [        [        SU -  5      -  S[        -  [        SU -  5      -  -   5      [        U" U 5      S[        -  [        SU -  5      -  [        [        SU -  5      -  [        SS5      -  -   5      [        U" U 5      [        [        SU -  5      -  [        [        SU -  5      -  -   5      /n[        U5      U:X  d   e[        UU5      S/ S	Q4:X  d   e[        U" U 5      R!                  U 5      U" U 5      5      [        U" U 5      R!                  U 5      U" U 5      5      [        U" U 5      R!                  U 5      U" U 5      5      [        U" U 5      R!                  U 5      U" U 5      5      /n[        U" U 5      [
        [        U 5      -  5      [        U" U 5      [        [        U 5      -  5      [        U" U 5      [        [        U 5      -  5      [        U" U 5      [        [        U 5      -  5      /n[        U5      U:X  d   e[        UU5      S/ S	Q4:X  d   e[        [	        U" U 5      U 5      U" U 5      U" U 5      -   5      [        [	        U" U 5      U 5      U" U 5      U" U 5      -   5      [        [	        U" U 5      U 5      U" U 5      [        SS5      -  U" U 5      -   5      [        [	        U" U 5      U 5      U" U 5      S-  U" U 5      S-  -   5      /n[        U" U 5      [
        [        U 5      -  [        U -  [        U 5      -  -   S[        -  U -  [        U [        SS5      -  5      -  -   S[        -  S[        -  -   [        U [        SS5      -  5      -  -   5      [        U" U 5      [        [        U 5      -  [        U -  [        U [        SS5      -  5      -  -
  [        S[        -  -   [        U [        SS5      -  5      -  -
  5      [        U" U 5      [        U -  [        U [        SS5      -  5      -  S-  [        S-  [        -   [        U [        SS5      -  5      -  -   5      [        U" U 5      [        [        U [        SS5      -  5      -  S-  [        U -  [        U [        SS5      -  5      -  S-  -   5      /n [        U5      U :X  d   e[        UU 5      S/ S	Q4:X  d   e[        [	        U" U 5      U 5      U" U 5      5      [        [	        U" U 5      U 5      U" U 5      5      [        [	        U" U 5      U 5      U" U 5      5      [        [	        U" U 5      U 5      U" U 5      5      [        [	        U" U 5      U 5      U" U 5      5      /n![        U" U 5      [
        [        U 5      -  5      [        U" U 5      [        [        U 5      -  5      [        U" U 5      [        [        U 5      -  5      [        U" U 5      [        [        U 5      -  5      [        U" U 5      ["        [        U 5      -  5      /n"[        U!5      U":X  d   e[        U!U"5      S/ SQ4:X  d   e[        [	        U" U 5      U 5      SU" U 5      -  U" U 5      -   5      [        [	        U" U 5      U 5      SU" U 5      -  5      [        [	        U" U 5      U 5      SU" U 5      -  5      [        [	        U" U 5      U 5      U" U 5      SU" U 5      -  -   5      [        [	        U" U 5      U 5      SU" U 5      -  5      /n#[        U" U 5      [
        [        SU -  5      -  [        U -  [        SU -  5      -  -   5      [        U" U 5      [        [        SU -  5      -  5      [        U" U 5      [        [        SU -  5      -  5      [        U" U 5      [        [        SU -  5      -  ["        U -  [        SU -  5      -  -   5      [        U" U 5      ["        [        SU -  5      -  5      /n$[        U#5      U$:X  d   e[        U#U$5      S/ SQ4:X  d   e[        [	        U" U 5      U 5      U" U 5      5      [        [	        U" U 5      U 5      U" U 5      5      [        [	        U" U 5      U 5      U" U 5      5      /n%[        U" U 5      [
        [        U 5      -  5      [        U" U 5      [        [        U 5      -  5      [        U" U 5      [        [        U 5      -  5      /n&[        U%5      U&:X  d   e[        U%U&5      S/ SQ4:X  d   e[        [	        U" U 5      U 5      U* U-
  U" U 5      -  5      [        [	        U" U 5      U 5      UU" U 5      -  5      [        [	        U" U 5      U 5      UU" U 5      -  5      /n'[        U" U 5      [
        * UU-   -  [        U * UU-   -  5      -  U-  5      [        U" U 5      [        [        UU -  5      -  5      [        U" U 5      [
        [        U * UU-   -  5      -  [        -   5      /n([        U'5      U(:X  d   e[        U'U(5      S/ SQ4:X  d   e[        [	        U" U 5      U 5      UU" U 5      -  5      [        [	        U" U 5      U 5      U* U-
  U" U 5      -  5      [        [	        U" U 5      U 5      UU" U 5      -  5      /n)[        U" U 5      [
        [        U-  [        U * UU-   -  5      -  U-  -   5      [        U" U 5      [        * UU-   -  [        U * UU-   -  5      -  U-  5      [        U" U 5      [        [        U * UU-   -  5      -  [        -   5      /n*[        U)5      U*:X  d   e[        U)U*5      S/ SQ4:X  d   e[        [	        U" U 5      U 5      UU" U 5      -  5      [        [	        U" U 5      U 5      UU" U 5      -  5      [        [	        U" U 5      U 5      U* U-
  U" U 5      -  5      /n+[        U" U 5      [
        [        U-  [        U * UU-   -  5      -  UU-   -  -
  5      [        U" U 5      [        * U-  [        U * UU-   -  5      -  UU-   -  [        -   5      [        U" U 5      [        [        U * UU-   -  5      -  5      /n,[        U+5      U,:X  d   e[        U+U,5      S/ SQ4:X  d   e[        S[        S9u  n-n.n/[        S 5      u  n0n1n2[        [	        U-" U 5      U 5      SU-" U 5      -  U." U 5      -   5      [        [	        U." U 5      U 5      U0U-" U 5      -  5      /n3[        U-" U 5      [
        [        U [        U0S!-   5      S!-   -  5      -  [        U0S!-   5      S!-
  -  [        [        U * [        U0S!-   5      S!-
  -  5      -  [        U0S!-   5      S!-   -  -
  5      [        U." U 5      [
        [        U [        U0S!-   5      S!-   -  5      -  [        [        U * [        U0S!-   5      S!-
  -  5      -  -   5      /n4[        U35      U4:X  d   e[        U3U45      SS"S"/4:X  d   e[        [	        U-" U 5      U 5      SU." U 5      -  SU/" U 5      -  -
  5      [        [	        U." U 5      U 5      SU-" U 5      -  SU/" U 5      -  -   5      [        [	        U/" U 5      U 5      SU-" U 5      -  SU." U 5      -  -
  5      /n5[        U-" U 5      S[
        -  [        [        S#5      U -  5      [        S#5      [        -  [        SS$5      -  [        [        SS$5      -  -   -  -
  [        [        S#5      U -  5      [        [        SS$5      -  [        S#5      [        -  [        SS$5      -  -   -  -
  5      [        U." U 5      [
        [        SS5      -  [        [        S#5      U -  5      [        S#5      [        -  [        SS$5      -  [        [        SS$5      -  -   -  -   [        [        S#5      U -  5      [        [        SS$5      -  [        S#5      [        -  [        SS$5      -  -   -  -
  5      [        U/" U 5      [
        [        [        [        S#5      U -  5      -  -   [        [        [        S#5      U -  5      -  -
  5      /n6[        U55      U6:X  d   e[        U5U65      S/ SQ4:X  d   e[        S[	        U-" U 5      U 5      -  S%U." U 5      -  S%U/" U 5      -  -
  5      [        S[	        U." U 5      U 5      -  SU-" U 5      -  SU/" U 5      -  -   5      [        S[	        U/" U 5      U 5      -  SU-" U 5      -  SU." U 5      -  -
  5      /n7[        U-" U 5      [
        [        [        S#5      U -  5      [        S#5      [        -  [        SS&5      -  [        [        S'S&5      -  -   -  -
  [        [        S#5      U -  5      [        [        SS&5      -  [        S#5      [        -  [        SS&5      -  -   -  -
  5      [        U." U 5      [
        [        [        S#5      U -  5      [        S#5      [        -  [        SS(5      -  [        [        SS&5      -  -   -  -   [        [        S#5      U -  5      [        [        SS&5      -  [        S#5      [        -  [        SS(5      -  -   -  -
  5      [        U/" U 5      [
        [        [        [        S#5      U -  5      -  -   [        [        [        S#5      U -  5      -  -
  5      /n8[        U75      U8:X  d   e[        U7U85      S/ SQ4:X  d   e[        [!        U" U 5      U 5      S)U" U 5      -  5      [        [!        U" U 5      U 5      S*U" U 5      -  SU" U 5      -  -   5      [        [!        U" U 5      U 5      SU" U 5      -  S+U" U 5      -  -   SU" U 5      -  -   5      4n9[        U" U 5      S,[
        -  [        S)U -  5      -  S--  5      [        U" U 5      S.[
        -  [        S)U -  5      -  S--  S[        -  [        SU -  5      -  S+-  -
  5      [        U" U 5      [
        [        S)U -  5      -  [        [        SU -  5      -  -   [        [        SU -  5      -  -   5      /n:[        U95      U::X  d   e[        U9U:5      S/ SQ4:X  d   e[        [	        U" U 5      U 5      SU" U 5      -  S/U" U 5      -  -
  5      [        [	        U" U 5      U 5      S0U" U 5      -  S+U" U 5      -  -   5      [        [	        U" U 5      U 5      S/U" U 5      -  S+U" U 5      -  -
  5      /n;[        U" U 5      [
        [        S+S5      -  [        [        S15      U -  5      [        S15      [        -  [        S/S25      -  [        [        S3S25      -  -   -  -
  [        [        S15      U -  5      [        [        S)S25      -  [        S15      [        -  [        S/S25      -  -   -  -
  5      [        U" U 5      [
        [        S/S5      -  [        [        S15      U -  5      [        S15      [        -  [        S+S25      -  [        [        S4S25      -  -   -  -   [        [        S15      U -  5      [        [        S4S25      -  [        S15      [        -  [        S5S25      -  -   -  -
  5      [        U" U 5      [
        [        [        [        S15      U -  5      -  -   [        [        [        S15      U -  5      -  -
  5      /n<[        U;5      U<:X  d   e[        U;U<5      S/ SQ4:X  d   e[        S[	        U" U 5      U 5      -  S6U" U 5      -  S6U" U 5      -  -
  5      [        S[	        U" U 5      U 5      -  S7U" U 5      -  S8U" U 5      -  -   5      [        S[	        U" U 5      U 5      -  S%U" U 5      -  S%U" U 5      -  -
  5      /n=[        U" U 5      [
        [        S[        S5      -  U -  5      [        S5      [        -  [        SS5      -  [        -
  -  -
  [        S[        S5      -  U -  5      [        [        S5      [        -  [        SS5      -  -   -  -
  5      [        U" U 5      [
        [        S[        S5      -  U -  5      [        S5      [        -  [        SS5      -  [        -   -  -   [        S[        S5      -  U -  5      [        [        S5      [        -  [        S0S5      -  -   -  -
  5      [        U" U 5      [
        [        [        S[        S5      -  U -  5      -  -   [        [        S[        S5      -  U -  5      -  -
  5      /n>[        U=5      U>:X  d   e[        U=U>5      S/ SQ4:X  d   e[        [	        U" U 5      U 5      SU" U 5      -  U" U 5      -
  5      [        [	        U" U 5      U 5      SU" U 5      -  SU" U 5      -  -   U" U 5      -
  5      [        [	        U" U 5      U 5      SU" U 5      -  U" U 5      -   5      /n?[        U" U 5      [        U S-  -  [        SU -  5      -  S-  U S[        -  [        -   -  [        SU -  5      -  -   [
        [        -   S[        -  -   [        SU -  5      -  -   5      [        U" U 5      [        U S-  -  [        SU -  5      -  S-  U S[        -  [        -   -  [        SU -  5      -  -   [
        S[        -  -   [        SU -  5      -  -   5      [        U" U 5      [        U S-  -  [        SU -  5      -  U S[        -  S[        -  -   -  [        SU -  5      -  -   S[
        -  S[        -  -   [        SU -  5      -  -   5      /n@[        U?5      U@:X  d   e[        U?W@5      S/ SQ4:X  d   e[        [	        U" U 5      U 5      SU" U 5      -  U" U 5      -
  SU" U 5      -  -
  5      [        [	        U" U 5      U 5      SU" U 5      -  U" U 5      -   SU" U 5      -  -
  5      [        [	        U" U 5      U 5      SU" U 5      -  SU" U 5      -  -
  5      /nA[        U" U 5      [
        [        SU -  5      -  [        U 5      [        [        SS5      -  [        S-  -   -  -
  [        U 5      [        S-  [        [        S0S5      -  -   -  -
  5      [        U" U 5      [        U 5      * [        [        SS5      -  [        S-  -   -  [        U 5      [        S-  [        [        S0S5      -  -   -  -
  5      [        U" U 5      [
        [        SU -  5      -  [        [        U 5      -  -
  [        [        U 5      -  -   5      /nB[        UA5      UB:X  d   e[        WAWB5      S/ SQ4:X  d   e[        [!        U" U 5      U 5      SU" U 5      -  5      [        [!        U" U 5      U 5      S%U" U 5      -  5      4nC[        U" U 5      [        S5      * [
        -  [        S9[        S5      -  U -  5      -  S-  [        S5      [        -  [        S[        S5      -  U -  5      -  S-  -   5      [        U" U 5      [
        [        S9[        S5      -  U -  5      -  [        [        S[        S5      -  U -  5      -  -   5      /nD[        UC5      UD:X  d   e[        WCWD5      SS"S"/4:X  d   e[        [	        U" U 5      U 5      SU" U 5      -  SU" U 5      -  -   5      [        [	        U" U 5      U 5      S%U" U 5      -  S:U" U 5      -  -   5      /nE[        U" U 5      [
        S([        S;5      -
  -  [        U [        S;5      S<-   -  S-  5      -  [        SS=5      -  [        S([        S;5      -   -  [        U S<[        S;5      -
  -  S-  5      -  [        SS=5      -  -   5      [        U" U 5      [
        [        U [        S;5      S<-   -  S-  5      -  [        [        U S<[        S;5      -
  -  S-  5      -  -   5      /nF[        UE5      UF:X  d   e[        WEWF5      SS"S"/4:X  d   e[        [	        U" U 5      U 5      U" U 5      U" U 5      -   5      [        [	        U" U 5      U 5      SU" U 5      -  SU" U 5      -  -   5      /nG[        U" U 5      [
        S-  [        S+5      [        -  S-  -   [        [        S+5      U -  S-  5      -  [        U [        SS5      -  5      -  [        [        S+5      U -  S-  5      [        S+5      [
        -  S-  [        [        SS5      -  -   -  [        U [        SS5      -  5      -  -   5      [        U" U 5      [
        [        [        S+5      U -  S-  5      -  [        U [        SS5      -  5      -  [        [        [        S+5      U -  S-  5      -  [        U [        SS5      -  5      -  -
  5      /nH[        UG5      UH:X  d   e[        WGWH5      SS"S"/4:X  d   e[        S>SS9n0U" U 5      R!                  U 5      U0U" U 5      -  -
  U" U 5      R!                  U 5      U0U" U 5      -  -   /nI[        U" U 5      [
        [        U0U -  5      -  [        [        U0U -  5      -  -   5      [        U" U 5      [
        [        U0U -  5      -  [        [        U0U -  5      -  -
  5      /nJ[        UI5      UJ:X  d   e[        WIWJ5      SS"S"/4:X  d   e[        [	        U-" U 5      U 5      S"5      [        [	        U." U 5      U 5      U-" U 5      SU." U 5      -  -
  U" U 5      -   U1U2-  -  5      [        [	        U" U 5      U 5      U." U 5      SU" U 5      -  -
  U" U 5      -   U1U2-  -  5      [        [	        U" U 5      U 5      U/" U 5      U" U 5      -   SU" U 5      -  -
  U1U2-  -  5      [        [	        U/" U 5      U 5      S"5      /nK[        U-" U 5      S0[
        -  S[        -  -   5      [        U." U 5      S[
        -  S[        -  -   [        [        SU -  U1U2-  -  5      -  -
  [        [        U * [        S5      S-   -  U1U2-  -  5      -  -   ["        [        U * S[        S5      -
  -  U1U2-  -  5      -  -   5      [        U" U 5      [
        * S[        -  -   [        S5      [        -  [        U * [        S5      S-   -  U1U2-  -  5      -  -
  [        S5      ["        -  [        U * S[        S5      -
  -  U1U2-  -  5      -  -   5      [        U" U 5      [        [        [        SU -  U1U2-  -  5      -  -   [        [        U * [        S5      S-   -  U1U2-  -  5      -  -   ["        [        U * S[        S5      -
  -  U1U2-  -  5      -  -   5      [        U/" U 5      [
        5      /nL[        UK5      UL:X  d   e[        WKWL5      S/ SQ4:X  d   e[        [	        U-" U 5      U 5      SU-" U 5      -  5      [        [	        U." U 5      U 5      SU-" U 5      -  S+U." U 5      -  -   5      /nM[        U-" U 5      S?[
        -  [        SU -  5      -  S-  5      [        U." U 5      [
        [        SU -  5      -  [        [        S+U -  5      -  -   5      /nN[        UM5      UN:X  d   e[        WMWN5      SS"S"/4:X  d   e[        [	        U-" U 5      U 5      S@[$        -  U-" U 5      -  SU." U 5      -  -
  5      [        [	        U." U 5      U 5      S[$        -  U." U 5      -  5      /nO[        U-" U 5      S[$        -  [
        -  [        S[$        -  U -  5      -  S-  [        [        S@[$        -  U -  5      -  -   5      [        U." U 5      [
        [        S[$        -  U -  5      -  5      /nP[        UO5      UP:X  d   e[        WOWP5      SS"S"/4:X  d   e[        [	        U-" U 5      U 5      S@[$        -  U-" U 5      -  5      [        [	        U." U 5      U 5      S[$        -  U." U 5      -  5      /nQ[        U-" U 5      [
        [        S@[$        -  U -  5      -  5      [        U." U 5      [        [        S[$        -  U -  5      -  5      /nR[        UQ5      UR:X  d   e[        WQWR5      SS"S"/4:X  d   e[        [	        U-" U 5      U 5      S"5      [        [	        U." U 5      U 5      S"5      /nS[        U-" U 5      [
        5      [        U." U 5      [        5      /nT[        US5      UT:X  d   e[        WSWT5      SS"S"/4:X  d   e[        [	        U-" U 5      U 5      U-" U 5      5      [        [	        U." U 5      U 5      S"5      /nU[        U-" U 5      [
        [        U 5      -  5      [        U." U 5      [        5      /nV[        UU5      UV:X  d   e[        WUWV5      SS"S"/4:X  d   e[        [	        U-" U 5      U 5      U." U 5      5      [        [	        U." U 5      U 5      S"5      /nW[        U-" U 5      [
        [        U -  -   5      [        U." U 5      [        5      /nX[        UW5      UX:X  d   e[        WWWX5      SS"S"/4:X  d   e[        [	        U-" U 5      U 5      S"5      [        [	        U." U 5      U 5      U-" U 5      5      /nY[        U-" U 5      [
        5      [        U." U 5      [
        U -  [        -   5      /nZ[        UY5      UZ:X  d   e[        WYWZ5      SS"S"/4:X  d   e[        [	        U-" U 5      U 5      S"5      [        [	        U." U 5      U 5      U." U 5      5      /n[[        U-" U 5      [
        5      [        U." U 5      [        [        U 5      -  5      /n\[        U[5      U\:X  d   e[        W[W\5      SS"S"/4:X  d   e[        [	        U-" U 5      U 5      U-" U 5      5      [        [	        U." U 5      U 5      [$        U." U 5      -  5      /n][        U-" U 5      [
        [        U 5      -  5      [        U." U 5      [        [        [$        U -  5      -  5      /n^[        U]5      U^:X  d   e[        W]W^5      SS"S"/4:X  d   e[        [	        U-" U 5      U 5      [$        U-" U 5      -  5      [        [	        U." U 5      U 5      [$        * U." U 5      -  5      /n_[        U-" U 5      [
        [        [$        U -  5      -  5      [        U." U 5      [        [        [$        * U -  5      -  5      /n`[        U_5      U`:X  d   e[        W_W`5      SS"S"/4:X  d   e[        [	        U-" U 5      U 5      [$        U." U 5      -  5      [        [	        U." U 5      U 5      S"5      /na[        U-" U 5      [$        [
        -  [$        [        -  U -  -   5      [        U." U 5      [        5      /nb[        Ua5      Ub:X  d   e[        WaWb5      SS"S"/4:X  d   e[        [	        U-" U 5      U 5      [$        U." U 5      -  5      [        [	        U." U 5      U 5      [$        U-" U 5      -  5      /nc[        U-" U 5      [
        * [        [$        * U -  5      -  [        [        [$        U -  5      -  -   5      [        U." U 5      [
        [        [$        * U -  5      -  [        [        [$        U -  5      -  -   5      /nd[        Uc5      Ud:X  d   e[        WcWd5      SS"S"/4:X  d   e[        [	        U-" U 5      U 5      S-  U." U 5      S-  5      [        U-" U 5      * [	        U." U 5      U 5      -   S"5      /ne[        U-" U 5      [
        * [        U 5      -  [        [        U 5      -  -
  5      [        U." U 5      [
        [        U 5      -  [        [        U 5      -  -
  5      /[        U-" U 5      [
        * [        U * 5      -  [        [        U 5      -  -   5      [        U." U 5      [
        [        U * 5      -  [        [        U 5      -  -   5      //n[        Ue5      U:X  d   eU H  nf[        WeUf5      SS"S"/4:X  a  M   e   g )ANr;   Z0Z1Z2Z3zk01 k10 k20 k21 k23 k30r<   Tr   r   r   r   zx y z u v wr9   zk2 k3za_b a_crealrB   r@   rA   r?   r   r`   r>   ry   ir   %   ,   r   r   r   )r   r   r   r   r   r8   za, b, cr=   r         r_   r}   i'   rw   rx   ru            ra   rC         rz   r   rv   r   r   r   re   r   i  +      r   r{   r|   )r   r   r   r
   r   r   r   r   C3C4r   r   r   r   r   r   r   C5r   )gr;   r  r  r  r  k01k10k20k21k23k30r   r   r3   r   r   uvr   k2k3a_ba_cr   r   r   r   r   r   r   r   r   r   eq7r   r   r   eq9r  r  r  r  r   r  r   r4   r5   r6   r   r   r   r  r   r  r   r  r   eq16r
  r  r  r  r  r  r  r  r  eq21r  r  r  eqs23sol23eq24sol24eqs25sol25eq26sol26eq27sol27eq28sol28eq29sol29eq30sol30eq31sol31eq32sol32eq33sol33eq34sol34eq35sol35eq36sol36eq37sol37r   solsg                                                                                                          rI   (test_sysode_linear_neq_order1_type1_slowr^    s"3    	sA	$B	$B	$B	$B#*+D#E Ccz"Q%#cT"Q%Z#be)%;c"Q%i%G#bQRe)%STz"Q%#SAYRU%:SAY%FGz"Q%#sdSj3&61%=>z"Q%#SAYRU%:;=D r!ubfSj2sy>#sd1f+#=sy3#OORTVYad[dgj[jVk!VW9s?+W,.1gW6 S77:A2sy3;O7PSQRUW[^aWadgWgjmWmX SS QB	N++, - r!ub2c6#sd1f+-sy3??"sdCIX[OF\_b_fFfilnoioFo#IG C  #QB	C$8 9C:;>s
S@PSV@VY\@\;]C_ _acdgijhjlom i e b  r!urc39s?S01#qb#)c/6J2KKCOPr!ubcT!Vnr#qb#)c/.B*C'CCDFD $<4$%$)====}(;A!Q1WFByt,HCz!A$"BqtG,z!A$"BqtG,z!A$"bS2XqtO46D qtR"R%QBRL 1127;;<qtbSVCBG--rBw7"<=qtRQBRL))*,D $<4$%$	)::::adFQqTMAadF"Z!a%88adFQqTMAadF"Z!a%88adFQqTMAadF"Z!a%88:D qtRBqD	\RTDGBJqL%8#d1gai.$HH3tTUwWXy>[_`a[bce[efg[gQ\  L! ! "qtbdT!WRZ\)3tAwqy>9CQ	NDQRGTVJWXL[]^fgikl^m[mLm<nnoqtRDGAI&CQ	N)::RBqD	\IJLD $<4$%$	)::::z!A$"AaD"a$81QqT6$AAaD$H1Q4PXY[]^P_K_$_`z!A$"AaD!Q$7!AaD&$@1Q4QSUVCW$WXz!A$"AaD"a$81Q4Q;O$OPz!A$"AaD"a$81Q4Q;O$OPRD qtRAaC[2a4AaC=01qtRAaC[1R4AaC=01qtQrT#ac(]RAaC["a%@@AqtRAaC[2c!A#h;./1D $<4$%$)==== adiilAaD!2adiilAaD#92adiilAaD;QSUVWXYVZV_V_`aVbdefgdhSi
jCqtRAYAaD"SV)!4b1r#a&y6I2aPQdTVWZ[\W]T]K^_D#;$#t$|(<<<<z!A$"AaD1Q4K0z!A$"AaD1Q4K0z!A$"AaD"a$81Q4$?@z!A$"AaDFQqT!VO46D qtRAYAc!f,qtAvc!HQN:J6K/KKqQStVXY[V[|]`abcklmd b ^ O  qtRAYAc!HQN*:&;!;;rAbDy#aPXYZ\]P^N^J_>__`qtRT#aA.//1RTBYAhqRSnDT@U4UUVqtRAhq!n,--a/"Q$s1Xa^;K7L2LQ2NNO	QD
 $<4$%$)==== j1q!1Q4("Z!a-@!A$*GJWXYZW[]^L_abcdaeIfj1q!1Q4("Z!a-@!A$*GICqtRAYAaD"SV)!4b1r#a&y6I2aPQdTVWZ[\W]T]K^qtRAY!D#;$#t$(????z!A$"AadFQqTM2z!A$"AadF+z!A$"AadF+z!A$"AaD1QqT6M2z!A$"AadF+	-D
 qtRAaC[2a4AaC=01qtRAaC[!qtRAaC[!qtRAaC[2a4AaC=01qtRAaC[!	#D
 $<4$%$)@@@@ j1q!1Q4("Z!a-@!A$*GJWXYZW[]^L_abcdaeIf
gCqtRAYAaD"SV)!4b1r#a&y6IJD#;$#t$y(9999 
1Q4#sdSj!A$%67
1Q4#S1X.
1Q4#S1X.0E !rc39oc1"cCi.&99#=>!bSUm$!baRs^,,r124E %=E!!!%'D)+<<<< 
1Q4#R!W-
1Q4#rcBh!_5
1Q4#R!W-/E !b2b5aRb\!222556!rc27mCBG$55b89!baRb\**R/02E %=E!!!%'D)+<<<< 
1Q4#R!W-
1Q4#R!W-
1Q4#rcBh!_57E !b2b5aRb\!22BG<<=!rc"fS!R"W..R82=>!baRb\**+-E %=E!!!%'D)+<<<<iX.GAq!i GAq! 
1Q4#QqtVad]3
1Q4#QqtV,.E!bQQUa0114A;?CbaRQUVWZ[V[Q\_`Q`MaIbFbdhijmnindoe G  !bQQUa011BsA2tAE{Q;O7P4PPQSE %=E!!!%'D1a&>999
1Q4#QqtVa!f_5
1Q4#R!Wq1v%56
1Q4#QqtVa!f_57E !adSb!_d2hrk(1b/.IBxXZ\^O_L_._``$r(1*or(1b/1DHRKB4OOPQ R!b!Q'#d2hqj/48B;xPQSU;VY[\defhj\kYk;k*ll$r(1*or(1b/1DHRKR@P4PPQR S!b2c$r(1*o--3tBxz?0BBC	EE
 %=E!!!%'D)+<<<<*QqT1%%r!A$wAaD'89*QqT1%%r!A$w1Q4'78*QqT1%%q1v!A$79E !b3tBxz?DHRKB,G"XVY[]M^J^,^__$r(1*or(2r"22T"Xb[!R5PPQR S!b3tBxz?DHRKB,G"XVXZ\M]J],]^^$r(1*or(2r"22T"Xb["bAQ5QQRS T!b2c$r(1*o--3tBxz?0BBC	EE
 %=E!!!%'D)+<<<<tAaD!}b1g&4!a="QqT'AadF:J(KtAaD!}a!fq1vo!A$679D!c"fSAY&s*+!c"fSAY&s*QrT#ac(]1_<=!bRTlRAaC[02c!A#h;>?AE $<5   $&4*;;;;
1Q4#QqtVb1g%56
1Q4#R!Wq1v%56
1Q4#R!Wq1v%568E !b!Q'#d3ik*:DIbLRTVYIZ<Z]_`hila ^ = + $s)A+&8B+<(<tCy|HUWY\L]?](]^_ `!b"a(3tCy{+;T#Yr\(STVYJZ=Z]_`hika ^ > , $s)A+&8B+<(<tCy|HUWY\L]?](]^_ `!b2c$s)A+...CS	!4D1DDE	GE
 %=E!!!%'D)+<<<<*QqT1%%r!A$wAaD'89*QqT1%%s1Q4x"QqT''9:*QqT1%%r!A$wAaD'89;E !b3qay{+T!WRZA-F-KLLsSTUYZ[U\S\]^S^O_ac1gbj!Q'b( P) ) *!b3qay{+T!WRZA-F-KLLsSTUYZ[U\S\]^S^O_ac1gbj"a(b) P* * +!b2c!DG)A+...C$q'	!4D1DDE	GE
 %=E!!!%'D)+<<<<
1Q4#QqtVad]3
1Q4#QqtVa!f_qt%;<
1Q4#QqtVad]35E !bAgc!A#h&q(1adRi=QqS+AAR"WqQSt^UXYZ[\Y\U]D]]^!bAgc!A#h&q(1adRi=QqS+AAR!B$YPSTUVWTWPXDXXY!bAgc!A#h&AbD1R4KQqS)AAQrTAbD[RUVWXYVYRZDZZ[]E %=E!!!%'D)+<<<<
1Q4#QqtVad]QqtV%;<
1Q4#QqtVad]QqtV%;<
1Q4#QqtVa!f_57E !bQqSkCFBx1~,=1,D$EEAPRSTPTWYZbceghZiWiPiHjjk!s1vgr(1a.02a4783q62a4"XVXZ[_J\C\;]]^!bQqSkBs1vI-3q6	9:<E %=E!!!%'D)+<<<<tAaD!}a!f%r$qtQ-AaD'ABD!tAwhrk#bajl"33A5Q
3qayQR{CS8STU8UUV!bRQZ\**RAd1gIaK0@-@@ACE $<5   $&4!Q.888
1Q4#QqtVa!f_5
1Q4#R!Wr!A$w%679E!b"tDz/*3q$t*r//B1/D+EEhrSUFVVY[]_4j^ Zad4j1!34Z55=b"5EZF F G!bQT
R0233bQT$Z=PQR=R9S6SSTVE %=E!!!%'D1a&>999
1Q4#QqTAaD[1
1Q4#R!Wq1v%568E!r!td1gbjl*CQ	!,<<S8Aq>AQ=RR$q'!)A+Q
1r(2q//A AB3qRSUVGWCXXY Z!bT!WQYq[))#aA.>*??"SaQRSTEUBUVYZ[\defhi\jZjVkBkklnE %=E!!!%'D1a&>999 	sAaDIIaL1QqT6!1Q499Q<!AaD&#89D!bQqSkBs1Q3xK/0"QqT2c!A#h;CPQRSPSH;T2UVE$<5   $&4!Q.888 
1Q4#Q'
1Q4#adQqtVmad&:QqS%AB
1Q4#adQqtVmad&:QqS%AB
1Q4#adQqTkAadF&:QqS%AB
1Q4#Q'	)E
 !beadl#!beadlRBqD!A#J%77"S!T!Wq[AQSTUVSVAW=X:XX[]^acdbdfg1gg c!c _ \  !rcAbDj472:c1"d1gk2BAaC2H.I#IIDQRGTVJWZ\][]_`1g` \!\ X M  !b2c"Q$!*o--3r47Q;7G17M3N0NNQSTWYZXZ\]`def`g\gXhjklmjmXnToQoop!b\E %=E!!!%'D/+BBBBz!A$"AadF+R
1Q40CQqtVaPQRSPTf_-UVD!beC!HnQ&'AaD"S1X+3qs82K)LME$<5   $&4!Q.888z!A$"BqD1I!A$$67JqtQ<OQSTUQUVWXYVZQZ9[\D!ac"fSAa[(*RBqDF^;<b1r#bQRdSTf+~>VWE$<5   $&4!Q.888z!A$"BqD1I.:adA3F1QqT	0RSD!bRT!Vn%r!A$3r!tAv;'?@E$<5   $&4!Q.888z!A$"A&:adA+>(BCD!b\2adB<(E$<5   $&4!Q.888z!A$"AaD)2j1q.A1+EFD!bQi "QqT2,/E$<5   $&4!Q.888z!A$"AaD)2j1q.A1+EFD!b2a4i "QqT2,/E$<5   $&4!Q.888z!A$"A&:adA+>!(EFD!b\2adBqD2I./E$<5   $&4!Q.888z!A$"A&:adA+>!(EFD!b\2adBs1vI./E$<5   $&4!Q.888z!A$"AaD)2j1q.A1QqT6+JKD!bQi "QqT2c!A#h;"78E$<5   $&4!Q.888z!A$"AadF+R
1Q40CaR!W-MND!bQqSk"BqtRQBqD	\$:;E$<5   $&4!Q.888z!A$"AadF+R
1Q40CQ-GHD!adQrT!Vm$b1rl3E$<5   $&4!Q.888z!A$"AadF+R
1Q40CQqtV-LMD!rc#qbd)mbQqSk12BqtRQBqD	\BsSTUVSVxK=W4XYE$<5   $&4!Q.888 j1q!1$adAg.AaD5:adA;N3NPQ0R
SC!rc#a&j2c!f9,-!bQi"SV)+,.!rc#qb'kBs1vI-.!baRj2c!f9,-/0D #;$c3'D1a&>999 rL   c                  A   [        S[        S9u  pp#[        S5      u  pEpgpn
[        S5      u  p[        [        U " U5      U5      U " U5      U" U5      -   S-   5      [        [        U" U5      U5      U " U5      * U" U5      -
  S-   5      /n[        U " U5      [        [
        -   SUS-  -  -   U[
        S-   -  -   5      [        U" U5      [        * SUS-  -  -
  U[
        S-
  -  -
  5      /n[        U5      U:X  d   e[        X5      S	S
S
/4:X  d   e[        [        U " U5      U5      U " U5      U" U5      -   S-   5      [        [        U" U5      U5      U " U5      U" U5      -   S-   5      /n[        U " U5      [        * [
        [        SU-  5      -  -   U-
  S-
  5      [        U" U5      [        [
        [        SU-  5      -  -   U-   S-
  5      /n[        U5      U:X  d   e[        UU5      S	S
S
/4:X  d   e[        [        U " U5      U5      U " U5      S-   5      [        [        U" U5      U5      U " U5      S-   5      /n[        U " U5      [        [        U5      -  S-
  5      [        U" U5      [        [        U5      -  [
        -   SU-  -   S-
  5      /n[        U5      U:X  d   e[        UU5      S	S
S
/4:X  d   e[        [        U " U5      U5      U " U5      [        U5      -   5      [        [        U" U5      U5      U[        U5      -  U " U5      -   U" U5      -   5      /n[        U " U5      [        [        U5      -  U[        U5      -  -   5      [        U" U5      [        U-  [        U5      -  [
        [        U5      -  -   US-  [        U5      -  -   5      /n[        U5      U:X  d   e[        UU5      S	S
S
/4:X  d   e[        [        U " U5      U5      SU-  U " U5      -   U" U5      -   5      [        [        U" U5      U5      U " U5      U" U5      -
  5      /n[        U " U5      [        S[        S5      -   -  [        [        S5      U-  5      -  [
        S[        S5      -
  -  [        [        S5      * U-  5      -  -   U[        SS5      -  -   [        SS5      -   5      [        U" U5      [        [        [        S5      U-  5      -  [
        [        [        S5      * U-  5      -  -   U[        SS5      -  -   5      /n[        U5      U:X  d   e[        UU5      S	S
S
/4:X  d   e[        [        U " U5      U5      SU " U5      -  SU" U5      -  -
  5      [        [        U" U5      U5      SU" U5      -  5      [        [        U" U5      U5      U" U5      [        U5      -   5      /n[        U " U5      [
        [        SU-  5      -  [        SS5      -  [        [        SU-  5      -  -   5      [        U" U5      [
        [        SU-  5      -  5      [        U" U5      [        [        U5      -  U[        U5      -  -   5      /n[        U5      U:X  d   e[        UU5      S	/ SQ4:X  d   e[        [        U " U5      U5      SU-  U " U5      -   5      [        [        U" U5      U5      U" U5      5      /n[        U " U5      [        [        U5      -  SU-  -
  S-
  5      [        U" U5      [
        [        U5      -  5      /n[        U5      U:X  d   e[        UU5      S	S
S
/4:X  d   e[        [        U " U5      U5      U " U5      SU" U5      -  -   5      [        [        U" U5      U5      SU " U5      -  U" U5      -   S[        U5      -  -   5      /n[        U " U5      [        [        U5      -  [        SU-  5      -  [
        [        U5      -  [        SU-  5      -  -   [        U5      [        SU-  5      S-  -  -   [        U5      [        SU-  5      S-  -  -   5      [        U" U5      [        [        U5      -  [        SU-  5      -  [
        [        U5      -  [        SU-  5      -  -
  5      /n[        U5      U:X  d   e[        UU5      S	S
S
/4:X  d   e[        [        U " U5      U5      USU " U5      -  -
  U" U5      -   Xg-  -  5      [        [        U" U5      U5      U " U5      SU" U5      -  -
  U" U5      -   Xg-  -  5      [        [        U" U5      U5      X" U5      -   SU" U5      -  -
  Xg-  -  5      /n[        U " U5      [        * [        SU-  Xg-  -  5      -  [
        [        U* [        S5      S-   -  Xg-  -  5      -  -   [        [        U* S[        S5      -
  -  Xg-  -  5      -  -   [        [        SS5      SU-  U	-   SS9-   5      [        U" U5      [        S5      * [
        -  [        U* [        S5      S-   -  Xg-  -  5      -  [        S5      [        -  [        U* S[        S5      -
  -  Xg-  -  5      -  -   [        [        SS5      X-   SS9-   5      [        U" U5      [        [        SU-  Xg-  -  5      -  [
        [        U* [        S5      S-   -  Xg-  -  5      -  -   [        [        U* S[        S5      -
  -  Xg-  -  5      -  -   [        [        SS5      USU	-  -   SS9-   5      /n[        U5      U:X  d   e[        UU5      S	/ SQ4:X  d   e[        [        U " U5      U5      SU-  U " U5      -   U" U5      -
  S-
  5      [        [        U" U5      U5      SU-  U " U5      -   U" U5      -
  S-
  5      /n[        U " U5      [        [
        -   SUS-  -  -   SUS-  -  -   U[
        S-
  -  -   5      [        U" U5      [        SUS-  -  -   SUS-  -  -
  U[
        S-
  -  -   5      /n [        U5      U :X  d   e[        UU 5      S	S
S
/4:X  d   e[        [        U " U5      U5      S-  S[        U " U5      U5      -  -
  S-   S5      [        U
* U " U5      -  [        U" U5      U5      -   S
5      /n![        U " U5      [        U-
  5      [        U" U5      [        U-  U
-  [
        U
-  -   US-  U
-  [        SS5      -  -   5      /[        U " U5      [        SU-  -   5      [        U" U5      [        U-  U
-  [
        U
-  -   US-  U
-  [        SS5      -  -   5      //n"[        U!5      U":X  d   eU" H  n#[        U!U#5      S	S
S
/4:X  a  M   e   [        SS	S9n$[        S5      n%[        S5      n&[        S5      n'[        S5      n([        S5      n[        S5      n[        S5      n
[        S 5      n)[        [        U
" U5      U5      U" U5      5      [        [        U" U5      U5      U$U
" U5      S-   -  5      /n*[        U
" U5      [        [        [        U$5      U-  5      -  U$[        SS5      -  -  [
        [        [        U$5      * U-  5      -  U$[        SS5      -  -  -
  S-
  5      [        U" U5      [        [        [        U$5      U-  5      -  [
        [        [        U$5      * U-  5      -  -   5      /n+[        U*5      U+:X  d   e[        U*U+5      S	S
S
/4:X  d   e[        U
" U5      U)[        [        U$5      * U(-  5      -  S-  [        [        U$5      * U(-  5      S-  -   U'[        [        U$5      * U(-  5      -  S[        U$5      -  -  -   [        [        U$5      U-  5      -  U)[        [        U$5      U(-  5      -  S-  [        [        U$5      U(-  5      S-  -   U'[        [        U$5      U(-  5      -  S[        U$5      -  -  -
  [        [        U$5      * U-  5      -  -   S-
  5      [        U" U5      U)[        U$5      -  [        [        U$5      * U(-  5      -  S-  [        U$5      [        [        U$5      * U(-  5      -  S-  -   U'[        [        U$5      * U(-  5      -  S-  -   [        [        U$5      U-  5      -  U)[        U$5      -  [        [        U$5      U(-  5      -  S-  [        U$5      [        [        U$5      U(-  5      -  S-  -   U'[        [        U$5      U(-  5      -  S-  -
  [        [        U$5      * U-  5      -  -
  5      /n,[        U*U
" U&5      U)U" U&5      U%0S!9U,:X  d   e[        U*U,5      S	S
S
/4:X  d   e[        [        U " U5      U5      U " U5      U" U5      -   S"-   5      [        [        U" U5      U5      SU " U5      -  SU" U5      -  -   S#-   5      /n-[        U " U5      [        * S[        S5      -   -  [        US[        S5      -
  -  5      -  S-  [
        S[        S5      -
  -  [        U[        S5      S-   -  5      -  S-  -
  [        S$S5      -
  5      [        U" U5      [        [        US[        S5      -
  -  5      -  [
        [        U[        S5      S-   -  5      -  -   [        SS5      -
  5      /n.[        U-5      U.:X  d   e[        U-U.5      S	S
S
/4:X  d   e[        [        U " U5      U5      U " U5      U" U5      -   S%-   5      [        [        U" U5      U5      SU " U5      -  U" U5      -   S#-   5      /n/[        U " U5      [        S5      [        -  [        U5      -  [        [        S5      U-  5      -  S-  [        S5      [
        -  [        U5      -  [        [        S5      U-  5      -  S-  -   S&[        [        S5      U-  5      S-  -  S-  -
  S&[        [        S5      U-  5      S-  -  S-  -
  5      [        U" U5      [        [        U5      -  [        [        S5      U-  5      -  [
        [        U5      -  [        [        S5      U-  5      -  -
  S'[        [        S5      U-  5      S-  -  S-  -
  S'[        [        S5      U-  5      S-  -  S-  -
  5      /n0[        U/5      U0:X  d   e[        U/U05      S	S
S
/4:X  d   e[        [        U " U5      U5      U " U5      SU" U5      -  -   U-   5      [        [        U" U5      U5      SU " U5      -  SU" U5      -  -   U-   5      /n1[        U " U5      [        * S[        S(5      -
  -  [        US[        S(5      -   -  S-  5      -  S-  [
        S[        S(5      -   -  [        US[        S(5      -
  -  S-  5      -  S-  -
  SU-  -   U-
  5      [        U" U5      [        [        US[        S(5      -   -  S-  5      -  [
        [        US[        S(5      -
  -  S-  5      -  -   [        [        SS5      SU-  U-
  SS9-
  5      /n2[        U15      U2:X  d   e[        U1U25      S	S
S
/4:X  d   e[        [        U " U5      U5      U5      [        [        U" U5      U5      U5      /n3[        U " U5      [        X-  -   5      [        U" U5      [
        X-  -   5      /n4[        U35      U4:X  d   e[        U3U45      S	S
S
/4:X  d   e[        [        U " U5      U5      S
5      [        [        U" U5      U5      X" U5      -  U-   5      /n5[        U " U5      [        5      [        U" U5      [
        U-  U[        U-  U-   -  -   5      /n6[        U55      U6:X  d   e[        U5U65      S	S
S
/4:X  d   e[        [        U " U5      U5      U5      [        [        U" U5      U5      U " U5      U-   5      /n7[        U " U5      [        X-  -   5      [        U" U5      [
        XS-  -  S-  -   U[        U-   -  -   5      /n8[        U75      U8:X  d   e[        U7U85      S	S
S
/4:X  d   e[        [        U " U5      U5      U5      [        [        U" U5      U5      U " U5      SU" U5      -  -   U-   5      /n9[        U " U5      S[        -  X-  -   5      [        U" U5      [        [
        [        SU-  5      -  -   X-  S-  -
  [        [        SS5      USU-  -   SS9-
  5      /n:[        U95      U::X  d   e[        U9U:5      S	S
S
/4:X  d   e[        [        U " U5      U5      U " U5      U-   5      [        [        U" U5      U5      U5      /n;[        U " U5      [        [        U5      -  U-
  5      [        U" U5      [
        X-  -   5      /n<[        U;5      U<:X  d   e[        U;U<5      S	S
S
/4:X  d   e[        [        U " U5      U5      U" U5      U-   5      [        [        U" U5      U5      S
5      /n=[        U " U5      [        U[
        U-   -  -   5      [        U" U5      [
        5      /n>[        U=5      U>:X  d   e[        U=U>5      S	S
S
/4:X  d   e[        [        U " U5      U5      U " U5      SU" U5      -  -   U-   5      [        [        U" U5      U5      U5      /n?[        U " U5      S[        -  [
        [        U5      -  -   U-
  SU-  U-  -
  SU-  -
  5      [        U" U5      [        X-  -   5      /n@[        U?5      U@:X  d   e[        U?W@5      S	S
S
/4:X  d   e[        [        U " U5      U5      U" U5      U-   5      [        [        U" U5      U5      SU" U5      -  U-   5      /nA[        U " U5      [        [
        [        SU-  5      -  S-  -   US-  -
  USU-  U-
  -  S-  -   5      [        U" U5      [
        [        SU-  5      -  US-  -
  5      /nB[        UA5      UB:X  d   e[        WAWB5      S	S
S
/4:X  d   e[        [        U " U5      U5      U " U5      U-   5      [        [        U" U5      U5      SU " U5      -  U-   5      /nC[        U " U5      [        [        U5      -  S-  U-
  5      [        U" U5      [        [        U5      -  [
        -   SU-  -
  USU-  U-
  -  -
  5      /nD[        UC5      UD:X  d   e[        WCWD5      S	S
S
/4:X  d   e[        [        U " U5      U5      U " U5      SU" U5      -  -   U-   5      [        [        U" U5      U5      SU " U5      -  SU" U5      -  -   U-   5      /nE[        U " U5      S[        -  [
        [        SU-  5      -  S-  -   SU-  SU-  U-
  -  S-  -   [        [        SS)5      USU-  -   SS9-
  5      [        U" U5      [        [
        [        SU-  5      -  -   USU-  U-
  -  S-  -
  [        [        SS)5      USU-  -   SS9-
  5      /nF[        UE5      UF:X  d   e[        WEWF5      S	S
S
/4:X  d   e[        [        U " U5      U5      SU " U5      -  U" U5      -
  U-   5      [        [        U" U5      U5      SU " U5      -  SU" U5      -  -
  SU-  -   5      /nG[        U " U5      [        S[
        -  -   US[        -  U-   -  -   5      [        U" U5      S[
        -  US[        -  SU-  -   -  -   5      /nH[        UG5      UH:X  d   e[        WGWH5      S	S
S
/4:X  d   e[        [        U" U5      U5      SU
" U5      -  S-   5      [        [        U
" U5      U5      SU" U5      -  SU
" U5      -  -
  S-   5      /nI[        U" U5      [        S-  S[
        -  S-  -
  [        U* 5      -  [        SU-  5      -  S[        -  S-  [
        S-  -   [        U* 5      -  [        SU-  5      -  -
  S*[        SU-  5      S-  -  S-  -   S*[        SU-  5      S-  -  S-  -   5      [        U
" U5      [        [        U* 5      -  [        SU-  5      -  [
        [        U* 5      -  [        SU-  5      -  -
  S[        SU-  5      S-  -  -   S[        SU-  5      S-  -  -   5      /nJ[        UI5      UJ:X  d   e[        WIWJ5      S	S
S
/4:X  d   eg )+Nf g h kr9   zx t a b c d yzk1 k2rA   ru   r`   r<   Tr   r?   r=   r{   r|   r@   r   rB   r   Fevaluater   r   r   r>   r   positivex_0t_0r;   r3   r   Ticsry   r      Q   :      r   1   rx   )r   r   r
   r   r   r   r   r   r   r   r   r,  r   r   r   r   )Kr4   r5   r6   r   r3   r;   r   r   r   dr   k1r7  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r   s11r   x0t0re  rf  rg  r  r   sol12br   r   r   r   r   r   r=  r
  eq17r  eq18r  eq19r  eq20r  r>  r  eq22r  eq23r@  rA  rB  eq25rD  rE  rF  rG  rH  sK                                                                              rI   #test_sysode_linear_neq_order1_type2r|    su   1JA!!/2A!aWFB z!A$"AaD1Q4K!O4z!A$"QqTEAaDL1$457DqtR"WqAv%26
23qtbS1QT6\ArAvJ./1D$<4$%$A777z!A$"AaD1Q4K!O4z!A$"AaD1Q4K!O46DqtbS2c!A#h;&*Q./qtR"S1X+%)A-.0D$<4$%$A777z!A$"AaD1H-z!A$"AaD1H-/DqtRAY]#qtRAY^ac)A-.0D$<4$%$A777z!A$"AaD3q6M2z!A$"Ac!fHqtOad$:;=DqtRAY3q6)*qtRT#a&[2c!f9,q!tCF{:;=D$<4$%$A777z!A$"AaC!A$J1$56z!A$"AaD1Q4K02DqtRT!W%c$q'!)n4r1tAw;7GTRSWHUVJ7WWZ[\degij\kZkkb!_ qtRDGAI&Ca
O);;aQ>OOPRD $<4$%$A777z!A$"BqtGa!f$45z!A$"BqtG,z!A$"AaD3q6M24D qtRBqD	\(2q/1Bs2a4yL@AqtRBqD	\"qtRAY3q6)*,D $<4$%$	):::: z!A$"AaC!A$J/z!A$"AaD)+DqtRAY1_q()qtRAY!D$<4$%$A777 z!A$"AaD1QqT6M2z!A$"BqtGadNQs1vX$=>@DqtRAYs1Q3x'"SV)C!H*<<a&QqS1$%'*1vc!A#hk'9: ;qtRAYs1Q3x'"SV)C!H*<<=?D $<4$%$A777 z!A$"Q1Q4Z!A$%6$=>z!A$"QqTAadF]QqT%9AC$@Az!A$"Q1X!A$%6$=>@D qtbSRT13Z(2c1"d1gk2BAC2H.I+IIBsTUSUWX[_`a[bWbScefehSiOjLjj!Q1q59: ;qtd1gXb[aRa1%5qs%;!<<tAwrz#qbRSVZ[\V]R]N^`a`cNdJe?ee!Q78 9qtRBqD!#J'"S!T!Wq[1A131G-H*HH2cSTRTVWZ^_`ZaVaRbdedgRhNiKii!QQqS59: ;	<D $<4$%$	):::: 
1Q4#RTAaD[1Q4%7"%<=
1Q4#SUQqT\AaD%81%<=?E!b2g!Q$&1a4/!R"W+=>!b1QT6kBq!tG+aaj89;E%=E!!!%'D1a&>999 
1Q4#Q&:adA+>)>>BAF1Q4*QqT1--q13E1rAv1Q4Aa"Q$AaQ9O)O PQ1rAaCx "QqT2a46BqD=1a46(1a.;P+P"QRTE%=E!!!eS)dQF^;;; 
 	d#A	B	B
%.C
%.CAAAA
1Q4#QqT*
1Q4#Q!q\24E!bT!WQY'8B?(::RT!WHQJ=OPQS[\^`aSbPb=bbeffg!bT!WQY'"S$q'!_*<<=?E%=E!!!%'D1a&>999 	1Q4!Ca%%a'#tAwhsl*;A*==T!WHSL!!1T!W9-./24719~>s473;!CQ$4Q$66CQ$$aQi0125tAwhqj/BB EFF 	G 	1Q4!DG)Ca--a/$q'#tAwhsl:K2KA2MM#tAwhsl##A%&'*4719~6T!W9Sa--a/$q'#d1gck:J2J12LLDGCK((*+,/a
O<< 	=	F %aeQ"r23v===%(TAq6N:::
 z!A$"AaD1Q4K!O4z!A$"AadFQqtVOb$89;D!rc1tAw;'Aq47{O(<<Q>Qa[AQRUVWY]^_Y`cdYdVeRfAfghAhhr!n !bQDG_--3q$q'A+3G0GG(STUV-WXZE $<5   $&4!Q.888z!A$"AaD1Q4K"$45z!A$"BqtGadNR$78:D!d1gbjQ'DGAI6q81gbjQ'DGAI6q89T!WQY**1,-/1#d1gai.!2C/CA/EF G !bQiDGAI.CF3tAwqy>1II#d1gai.!++A-.03CQ	NA4E0Ea0GH IJE
 $<5   $&4!A-777z!A$"AaD1QqT6MB$67z!A$"AadFQqtVOb$89;D!rc1tBx<(QDH-=a-?)@@B!d2h,Aq48|$4Q$6 779:<=bDACEF G!bQDH-a/002c!Qb\:J1:L6M3MM(1Q-2u=> ?@E $<5   $&4!A-777z!A$"B'z!A$"B')D!b24i !b24i "E$<5   $&4!A-777z!A$"A&z!A$"AadFRK02D!b\!bdQ1r	]*+-E$<5   $'DAa5>999z!A$"B'z!A$"AaD2I.0D!b24i !b2d719nq"r'{235E$<5   $'DAa5>999z!A$"B'z!A$"AaD1QqT6MB$679D!bebdl#qtR"S1X+%Q.Xa]B2I[`1aabdE$<5   $'DAa5>999tAaD!}adRi(tAaD!}b!#D!bQi"n%qtR"$Y!E$<5   $'DAa5>999tAaD!}adRi(tAaD!}a "D!b1b2g;&'qtRLE$<5   $'DAa5>999z!A$"AaD1QqT6MB$67z!A$"B')D!bebQi'",qtAv5"<=qtR"$Y!E$<5   $'DAa5>999z!A$"AaD2I.z!A$"AadFRK02D!b2c!A#h;q=(2a4/!QrTBY-/ABqtRAaC[2a4'(*E$<5   $'DAa5>999z!A$"AaD2I.z!A$"AadFRK02D!bQikB&'qtRAY^ad*Q"r	]:;=E$<5   $'DAa5>999z!A$"AaD1QqT6MB$67z!A$"AadFQqtVOb$89;D!bebQqSk!m+ac1R4"9oa.??(1R."qt)?@ A!b2c!A#h;&AbD2Iq8(1R."qt)?@ ABE $<5   $'DAa5>999z!A$"AadFQqTMB$67z!A$"AadFQqtVOad$:;=D!b1R4i!QrTBY-/0qtQrTAqtad{O+,.E$<5   $'DAa5>999
 tAaD|BqtGBJ'D1aL1Q4!A$q)IJD!r!tad1f}c1"g-c!A#h6tAv1}c1"g-c!A#h67QqS1nQ&')+C!HaK)9: ; qtRQBZAaC(2c1"g:c!A#h+>>QqS1n%')#ac(A+~6 78E
 $<5   $'DAa5>999rL   c                  `)   [        S[        S9u  pp#pE[        S5      u  pgn[        SSS9n	[        [        U " U	5      U	5      X" U	5      -  U " U	5      -   5      [        [        U" U	5      U	5      U	* U " U	5      -  U" U	5      -   5      /n
[        U " U	5      [        [        U	5      -  [        U	S-  S-  5      -  [        [        U	5      -  [        U	S-  S-  5      -  -   5      [        U" U	5      [        [        U	5      -  [        U	S-  S-  5      -  [        [        U	5      -  [        U	S-  S-  5      -  -
  5      /n[        U
5      U:X  d   e[        X5      SSS/4:X  d   e[        [        U " U5      U5      US-  U" U5      -  X`" U5      -  -   5      [        [        U" U5      U5      SUS-  -  U " U5      -  S	US-  -  U-   U" U5      -  -   5      /n[        U " U5      [        S
5      [        -  S
-  [        S
S	[        S
5      -  -
  -  S-  -   [        US	-  S	[        S
5      -   -  S-  US-  S-  -   5      -  [        US	-  S	[        S
5      -
  -  S-  US-  S-  -   5      [        S
5      [        -  S
-  [        S	[        S
5      -  S
-   -  [        SS5      -  -   -  -
  5      [        U" U5      [        US	-  S	[        S
5      -
  -  S-  US-  S-  -   5      [        S
S	[        S
5      -  -
  -  S-  [        S
5      [        -  [        SS
5      -  -   -  [        US	-  S	[        S
5      -   -  S-  US-  S-  -   5      [        S	[        S
5      -  S
-   -  S-  [        S
5      [        -  [        SS
5      -  -   -  -   5      /n[        U5      U:X  d   e[        X5      SSS/4:X  d   e[        U " U5      R                  U5      X`" U5      -  U" U5      -   5      [        U" U5      R                  U5      U " U5      * Xa" U5      -  -   5      /n[        U " U5      [        S-  [        [        -  S-  -   [        US-  S-  [        U-  -
  5      -  [        US-  S-  [        U-  -   5      [        S-  [        [        -  [        SS5      -  -   -  -   5      [        U" U5      [        [        -  S-  [        S-  -   [        US-  S-  [        U-  -   5      -  [        US-  S-  [        U-  -
  5      [        [        -  S-  [        [        SS5      -  -   -  -
  5      /n[        U5      U:X  d   e[        X5      SSS/4:X  d   e[        U " U5      R                  U5      X`" U5      U" U5      -   U" U5      -   -  5      [        U" U5      R                  U5      X`" U5      U" U5      -   U" U5      -   -  5      [        U" U5      R                  U5      X`" U5      U" U5      -   U" U5      -   -  5      /n[        U " U5      [        * S	-  [        S	-  -
  S[        -  S	-  -   [        S	-  [        S	-  -   [        S	-  -   [        S	US-  -  S-  5      -  -   5      [        U" U5      S[        -  S	-  [        S	-  -
  [        S	-  -
  [        S	-  [        S	-  -   [        S	-  -   [        S	US-  -  S-  5      -  -   5      [        U" U5      [        * S	-  S[        -  S	-  -   [        S	-  -
  [        S	-  [        S	-  -   [        S	-  -   [        S	US-  -  S-  5      -  -   5      /n[        U5      U:X  d   e[        UU5      S/ SQ4:X  d   e[        U " U5      R                  U5      US-  U " U5      U" U5      -   U" U5      -   -  5      [        U" U5      R                  U5      US-  U " U5      U" U5      -   U" U5      -   -  5      [        U" U5      R                  U5      US-  U " U5      U" U5      -   U" U5      -   -  5      /n[        U " U5      [        * S	-  [        S	-  -
  S[        -  S	-  -   [        S	-  [        S	-  -   [        S	-  -   [        US	-  5      -  -   5      [        U" U5      S[        -  S	-  [        S	-  -
  [        S	-  -
  [        S	-  [        S	-  -   [        S	-  -   [        US	-  5      -  -   5      [        U" U5      [        * S	-  S[        -  S	-  -   [        S	-  -
  [        S	-  [        S	-  -   [        S	-  -   [        US	-  5      -  -   5      /n[        U5      U:X  d   e[        UU5      S/ SQ4:X  d   e[        [        U " U5      U5      X`" U5      U" U5      -   U" U5      -   U" U5      -   -  5      [        [        U" U5      U5      X`" U5      U" U5      -   U" U5      -   U" U5      -   -  5      [        [        U" U5      U5      X`" U5      U" U5      -   U" U5      -   U" U5      -   -  5      [        [        U" U5      U5      X`" U5      U" U5      -   U" U5      -   U" U5      -   -  5      /n[        U " U5      [        * S-  [        S-  -
  [        S-  -
  S	[         -  S-  -   [        S-  [        S-  -   [        S-  -   [         S-  -   [        SUS-  -  5      -  -   5      [        U" U5      S	[        -  S-  [        S-  -
  [        S-  -
  [         S-  -
  [        S-  [        S-  -   [        S-  -   [         S-  -   [        SUS-  -  5      -  -   5      [        U" U5      [        * S-  S	[        -  S-  -   [        S-  -
  [         S-  -
  [        S-  [        S-  -   [        S-  -   [         S-  -   [        SUS-  -  5      -  -   5      [        U" U5      [        * S-  [        S-  -
  S	[        -  S-  -   [         S-  -
  [        S-  [        S-  -   [        S-  -   [         S-  -   [        SUS-  -  5      -  -   5      /n[        U5      U:X  d   e[        UU5      S/ SQ4:X  d   e[        SSS9n[        [        U " U5      U5      UU " U5      -  U" U5      -   5      [        [        U" U5      U5      UU" U5      -  U " U5      -
  5      /n[        U " U5      [        [        US-  S-  5      -  [        U5      -  [        [        US-  S-  5      -  [        U5      -  -   5      [        U" U5      [        [        US-  S-  5      -  [        U5      -  [        [        US-  S-  5      -  [        U5      -  -
  5      /n[        U5      U:X  d   e[        UU5      SSS/4:X  d   e[        [        U " U5      U5      SU-  U " U5      -  SU" U5      -  -   5      [        [        U" U5      U5      SU " U5      -  SU-  U" U5      -  -   5      /n[        U " U5      [#        S[        S-  [        S-  -
  SS9[        SUS-  -  S-  SU-  -
  5      -  [        S-  [        S-  -   [        SUS-  -  S-  SU-  -   5      -  -   5      [        U" U5      [        S-  [        S-  -
  [        SUS-  -  S-  SU-  -
  5      -  [        S-  [        S-  -   [        SUS-  -  S-  SU-  -   5      -  -   5      /n[        U5      U:X  d   e[        UU5      SSS/4:X  d   e[        [        U " U5      U5      SU-  U " U5      -  US-  U" U5      -  -   5      [        [        U" U5      U5      US-  * U " U5      -  SU-  U" U5      -  -   5      /n[        U " U5      [        S-  [        [        -  S-  -
  [        [        US	-  -  S	-  SUS-  -  S-  -   5      -  [        S-  [        [        -  S-  -   [        [        * US	-  -  S	-  SUS-  -  S-  -   5      -  -   5      [        U" U5      [#        S[        [        -  S-  [        S-  -
  SS9[        [        * US	-  -  S	-  SUS-  -  S-  -   5      -  [        [        -  S-  [        S-  -   [        [        US	-  -  S	-  SUS-  -  S-  -   5      -  -   5      /n[        U5      U:X  d   e[        UU5      SSS/4:X  d   e[        [        U " U5      U5      US-  U" U5      -  SU-  U " U5      -  -   5      [        [        U" U5      U5      US-  * U " U5      -  SUS-  -  SU-  -   U" U5      -  -   5      /n[        U " U5      [        SS[        S5      -  -
  -  S-  [        S5      [        -  S-  -   [        US	-  [        S5      S-   -  S-  SUS-  -  S-  -   5      -  [        SS[        S5      -  -   -  S-  [        S5      [        -  S-  -
  [        US	-  S[        S5      -
  -  S-  SUS-  -  S-  -   5      -  -   5      [        U" U5      [        S5      [        -  S-  [        SS[        S5      -  -
  -  S-  -   [        US	-  S[        S5      -
  -  S-  SUS-  -  S-  -   5      -  [        S5      [        -  S-  [        SS[        S5      -  -   -  S-  -
  [        US	-  [        S5      S-   -  S-  SUS-  -  S-  -   5      -  -
  5      /n[        U5      U:X  d   e[        UU5      SSS/4:X  d   e[        [        U " U5      U5      SU-  U " U5      -  US-  U" U5      -  -   5      [        [        U" U5      U5      SUS-  -
  U " U5      -  SU-  SUS-  -  -   U" U5      -  -   5      /n[        U " U5      [        U" U5      -  [        U" U5      -  [%        US-  [        [%        SU-  U5      5      -  [        [%        SUS-  -  SU-  -   U5      5      -  U" U5      S-  -  U5      -  -   5      [        U" U5      [        U" U5      -  [        U" U5      [%        US-  [        [%        SU-  U5      5      -  [        [%        SUS-  -  SU-  -   U5      5      -  U" U5      S-  -  U5      -  [        [%        SU-  U5      5      [        [%        SUS-  -  SU-  -   U5      5      -  U" U5      -  -   -  -   5      /n [        U5      U :X  d   eg )Nzf g h k x0 y0r9   x t arTr  r<   r   r?   rx   "   r`   r>   r   rB   r@   r  r   rA   Fra  ry   M      r=   )r   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r,  r-  r   r-   )!r4   r5   r6   r   rr  y0r3   r;   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r   s!                                    rI   #test_sysode_linear_neq_order1_type3r    sV   !/x@A!gGA!$Az!A$"AadFQqTM2z!A$"QBqtGadN35DqtRAYs1a46{*RAYs1a46{-BBCqtRAYs1a46{*RAYs1a46{-BBCED$<4$%$A777z!A$"AqD1I!A$$67z!A$"AadF1Q4K1QT6A:qt2C$CDFDqtd2hrk"nr2$r(
?';B'>>AqD!dSUh,DWXYDY\]_`\`ab\bDb@ccAq48|$Q&Aa/0$r(2+b.2qbzTVCWX`acegXhCh2hij kqtSAq48|,Q.Aa78"b1T"X:o:Nr:QTXY[T\]_T_`hika U ; 1a$r(l+A-1Q67QtBxZ"_9Mb9PSWXZS[\^S^_ghikm_nSn9nop qrD $<4$%$A777qtyy|QqtVad]+qtyy|adUQqtV^,.DqtbdQrT!VmSAa!A#%66QT!Vac\9JBqDSTUWSWX`acefXgSgLg9hhiqtad1fr!tmSAa!A#%66QT!Vac\9JAbDQRFUWX`acefXgUgLg9hhikD$<4$%$A777qtyy|Q!qtad 234b11q!A$QRSTQU+XYZ[X\J\G]6^qtyy|Q!qtad 2346DqtbSURT\AbDF*bdRTkBqD.@#a1fQh--OOPqtQrT!Vbd]RT)RTBqD[2a4-?Qq!tVAX,NNOqtbSUQrT!V^bd*bdRTkBqD.@#a1fQh--OOPRD $<4$%$	)::::qtyy|QT1Q4!A$;1#567AaDIIaL!Q$PQRSPTWXYZW[P[^_`a^bPbJc9dqtyy|QT1Q4!A$;1#5679DqtbSURT\AbDF*bdRTkBqD.@#ad)-KKLqtQrT!Vbd]RT)RTBqD[2a4-?QT,JJKqtbSUQrT!V^bd*bdRTkBqD.@#ad)-KKLND $<4$%$	)::::z!A$"Aqtad{QqT'9AaD'@$ABz!A$"Aqtad{QqT'9AaD'@$ABz!A$"Aqtad{QqT'9AaD'@$ABz!A$"Aqtad{QqT'9AaD'@$ABDD qtbSURT\BqD(1R461RTBqD[2a45G"Q$5NPSTUVWYZVZTZP[4[[\qtQrT!Vbd]RT)BqD0BqD2a4K"Q$4FA4MsSTUVXYUYSY{3ZZ[qtbSUQrT!V^bd*RT1RTBqD[2a45G"Q$5NPSTUVWYZVZTZP[4[[\qtbSURT\AbDF*RT1RTBqD[2a45G"Q$5NPSTUVWYZVZTZP[4[[\^D $<4$%$)====$Az!A$"AadFQqTM2z!A$"AadFQqTM24DqtRAqDF^CF*RAqDF^CF-BBCqtRAqDF^CF*RAqDF^CF-BBCED$<4$%$A777
 z!A$"AaC!Hq1v$56z!A$"AadFQqS1X$568DqtSbdRTku=c!AqD&(QqS.>QQUWXYUY\^_`\`U`befghiklhlflmnfnqrstqtftbuTuuvqtbdRTk3qAvax!A#~#66"Q$A+s1QPQT6RS8VWXYVY>GZ9ZZ[]D$<4$%$A777tAaD!}ac!A$hAad23tAaD!}q!teAaDj1Q3qt8346DqtbdQrT!VmS1a4AadF1H)<%==A"QPSUVTVWXZ[W[T[\]T]`abcefbf`fgh`hThPi@iijqtSad1fr!tm%@aR1WQYQRSTVWSWQWXYQYEYAZZ^_`b^bcd^dgijkgk^kmpqrstvwswqwxyqy|}~  BC  C  }C  DE  }E  rE  nF  ^F  F  GHD$<4$&41Q%.888QqT1q!tAaDy1Q3qt834QqT11uQqTzQq!tVac\1Q4,??@BE!r2$r(
?+C/$r(2+b.@#adDQSHWXLFYZ[F[^_`acd`d^def^fFfBggkmoqtuvz{}v~t~o~k  AD  lD  GK  LN  GO  PR  GR  SU  GU  lU  WZ  [\  ^_  [_  ab  ei  jl  em  am  [n  op  [p  st  uv  xy  uy  sy  z{  s{  [{  W|  k|  |  }!tBx{2~B48O(<S(@@#adAPTUWPXLFYZ[F[^_`acd`d^def^fFfBggkoprkstvkvwyky|~  AC  FG  HL  MO  HP  FP  AP  }Q  RU  }U  lU  WZ  [\  ^_  [_  ae  fh  ai  lm  am  [n  op  [p  st  uv  xy  uy  sy  z{  s{  [{  W|  k|  |  }~E%=E!!!%%(TQqEN:::QqT1qs1Q4x!Q$qt)34QqT1!Q$!}!a1fad/BBCEE!bAhBqE(1a4HQqS!<L8M3McRZ[\]^`a]a[adefgdg[gijRkNl3lmopqmrtumu3uwx*y!yyz!bAhRU8AqDXac1=M9N4NsS[\]^_ab^b\befgheh\hjkSlOm4mnpqrnsuvnv4vxy+z%z  ~A  BJ  KL  MN  KN  PQ  BR  ~S  TW  X`  ab  cd  fg  cg  ag  jk  lm  jm  am  op  Xq  Tr  ~r  su  vw  sx  ~x  &x  "y  y  z{E%=E!!!rL   c                  ;   [        S[        S9u  pp#[        S5      u  pEn[        SSS9n[        [        U " U5      U5      U " U5      Xq" U5      -  -   US-  -   5      [        [        U" U5      U5      U* U " U5      -  U" U5      -   U-   5      /n[        U " U5      [        [        U5      -  [        US-  S-  5      -  [        [        U5      -  [        US-  S-  5      -  -   [        U5      [        US-  S-  5      -  [        US-  [        U* 5      -  [        US-  S-  5      -  U[        U* 5      -  [        US-  S-  5      -  -   U5      -  -   [        U5      [        US-  S-  5      -  [        US-  [        U* 5      -  [        US-  S-  5      -  U[        U* 5      -  [        US-  S-  5      -  -
  U5      -  -   5      [        U" U5      [        [        U5      -  [        US-  S-  5      -  [        [        U5      -  [        US-  S-  5      -  -
  [        U5      [        US-  S-  5      -  [        US-  [        U* 5      -  [        US-  S-  5      -  U[        U* 5      -  [        US-  S-  5      -  -
  U5      -  -
  [        U5      [        US-  S-  5      -  [        US-  [        U* 5      -  [        US-  S-  5      -  U[        U* 5      -  [        US-  S-  5      -  -   U5      -  -   5      /n	[        U5      U	:X  d   e[        X5      SSS/4:X  d   e[        [        U " U5      U5      U " U5      Xq" U5      -  -   U-   5      [        [        U" U5      U5      U* U " U5      -  U" U5      -   [        U5      -   5      /n
[        U " U5      [        [        U5      -  [        US-  S-  5      -  [        [        U5      -  [        US-  S-  5      -  -   [        U5      [        US-  S-  5      -  [        U[        U* 5      -  [        US-  S-  5      -  [        U* 5      [        U5      -  [        US-  S-  5      -  -   U5      -  -   [        U5      [        US-  S-  5      -  [        U[        U* 5      -  [        US-  S-  5      -  [        U* 5      [        U5      -  [        US-  S-  5      -  -
  U5      -  -   5      [        U" U5      [        [        U5      -  [        US-  S-  5      -  [        [        U5      -  [        US-  S-  5      -  -
  [        U5      [        US-  S-  5      -  [        U[        U* 5      -  [        US-  S-  5      -  [        U* 5      [        U5      -  [        US-  S-  5      -  -
  U5      -  -
  [        U5      [        US-  S-  5      -  [        U[        U* 5      -  [        US-  S-  5      -  [        U* 5      [        U5      -  [        US-  S-  5      -  -   U5      -  -   5      /n[        U
S	S	S
9U/:X  d   e[        X5      SSS/4:X  d   e[        [        U " U5      U5      X@" U5      U" U5      -   U" U5      -   -  U-   5      [        [        U" U5      U5      X@" U5      U" U5      -   U" U5      -   -  U-   5      [        [        U" U5      U5      X@" U5      U" U5      -   U" U5      -   -  S-   5      /n[        U " U5      [        [        SS5      -  [        [        SS5      -  -   [         [        SS5      -  -   US-  S-  -   U[        SS5      -  -   [        S-  [        S-  -   [         S-  -   [        US-  [        SS5      -  5      -  -   [#        S5      [#        [$        5      -  ['        [#        S5      U-  S-  5      -  [        US-  [        SS5      -  5      -  S-  -   [        SS5      -   5      [        U" U5      [        [        SS5      -  [        [        SS5      -  -   [         [        SS5      -  -   US-  S-  -   U[        SS5      -  -   [        S-  [        S-  -   [         S-  -   [        US-  [        SS5      -  5      -  -   [#        S5      [#        [$        5      -  ['        [#        S5      U-  S-  5      -  [        US-  [        SS5      -  5      -  S-  -   [        SS5      -   5      [        U" U5      [        [        SS5      -  [        [        SS5      -  -   [         [        SS5      -  -   US-  [        SS5      -  -   U[        SS5      -  -   [        S-  [        S-  -   [         S-  -   [        US-  [        SS5      -  5      -  -   [#        S5      [#        [$        5      -  ['        [#        S5      U-  S-  5      -  [        US-  [        SS5      -  5      -  S-  -   [        SS5      -   5      /n[        U5      U:X  d   e[        X5      S/ SQ4:X  d   e[        [        U " U5      U5      X@" U5      U" U5      -   U" U5      -   -  [        U5      -   5      [        [        U" U5      U5      X@" U5      U" U5      -   U" U5      -   -  [        U5      -   5      [        [        U" U5      U5      X@" U5      U" U5      -   U" U5      -   -  [        U5      -   5      /n[        U " U5      [        [        SS5      -  [        [        SS5      -  -   [         [        SS5      -  -   [        S-  [        S-  -   [         S-  -   [        US-  [        SS5      -  5      -  -   [        [        U5      [        US-  [        SS5      -  5      -  U5      [        US-  [        SS5      -  5      -  -   5      [        U" U5      [        [        SS5      -  [        [        SS5      -  -   [         [        SS5      -  -   [        S-  [        S-  -   [         S-  -   [        US-  [        SS5      -  5      -  -   [        [        U5      [        US-  [        SS5      -  5      -  U5      [        US-  [        SS5      -  5      -  -   5      [        U" U5      [        [        SS5      -  [        [        SS5      -  -   [         [        SS5      -  -   [        S-  [        S-  -   [         S-  -   [        US-  [        SS5      -  5      -  -   [        [        U5      [        US-  [        SS5      -  5      -  U5      [        US-  [        SS5      -  5      -  -   5      /n[        U5      U:X  d   e[        X5      S/ SQ4:X  d   e[        [        U " U5      U5      X@" U5      U" U5      -   U" U5      -   U" U5      -   S-   -  5      [        [        U" U5      U5      X@" U5      U" U5      -   U" U5      -   U" U5      -   S-   -  5      [        [        U" U5      U5      X@" U5      U" U5      -   U" U5      -   U" U5      -   S-   -  5      [        [        U" U5      U5      X@" U5      U" U5      -   U" U5      -   U" U5      -   S-   -  5      /n[        U " U5      [        [        SS5      -  [        [        SS5      -  -   [         [        SS5      -  -   [(        [        SS5      -  -   [        S-  [        S-  -   [         S-  -   [(        S-  -   [        SUS-  -  5      -  -   [        SS5      -   5      [        U" U5      [        [        SS5      -  [        [        SS5      -  -   [         [        SS5      -  -   [(        [        SS5      -  -   [        S-  [        S-  -   [         S-  -   [(        S-  -   [        SUS-  -  5      -  -   [        SS5      -   5      [        U" U5      [        [        SS5      -  [        [        SS5      -  -   [         [        SS5      -  -   [(        [        SS5      -  -   [        S-  [        S-  -   [         S-  -   [(        S-  -   [        SUS-  -  5      -  -   [        SS5      -   5      [        U" U5      [        [        SS5      -  [        [        SS5      -  -   [         [        SS5      -  -   [(        [        SS5      -  -   [        S-  [        S-  -   [         S-  -   [(        S-  -   [        SUS-  -  5      -  -   [        SS5      -   5      /n[        U5      U:X  d   e[        UU5      S/ SQ4:X  d   e[        [        U " U5      U5      US-  U " U5      U" U5      -   U" U5      -   U" U5      -   S-   -  5      [        [        U" U5      U5      US-  U " U5      U" U5      -   U" U5      -   U" U5      -   S-   -  5      [        [        U" U5      U5      US-  U " U5      U" U5      -   U" U5      -   U" U5      -   S-   -  5      [        [        U" U5      U5      US-  U " U5      U" U5      -   U" U5      -   U" U5      -   S-   -  5      /n[        U " U5      [        [        SS5      -  [        [        SS5      -  -   [         [        SS5      -  -   [(        [        SS5      -  -   [        S-  [        S-  -   [         S-  -   [(        S-  -   [        US-  [        SS5      -  5      -  -   [        SS5      -   5      [        U" U5      [        [        SS5      -  [        [        SS5      -  -   [         [        SS5      -  -   [(        [        SS5      -  -   [        S-  [        S-  -   [         S-  -   [(        S-  -   [        US-  [        SS5      -  5      -  -   [        SS5      -   5      [        U" U5      [        [        SS5      -  [        [        SS5      -  -   [         [        SS5      -  -   [(        [        SS5      -  -   [        S-  [        S-  -   [         S-  -   [(        S-  -   [        US-  [        SS5      -  5      -  -   [        SS5      -   5      [        U" U5      [        [        SS5      -  [        [        SS5      -  -   [         [        SS5      -  -   [(        [        SS5      -  -   [        S-  [        S-  -   [         S-  -   [(        S-  -   [        US-  [        SS5      -  5      -  -   [        SS5      -   5      /n[        U5      U:X  d   e[        UU5      S/ SQ4:X  d   e[        [        U " U5      U5      U " U5      U" U5      -   U" U5      -   [        U5      -  [        U5      -   5      [        [        U" U5      U5      U " U5      U" U5      -   U" U5      -   [        U5      -  [        U5      -   5      [        [        U" U5      U5      U " U5      U" U5      -   U" U5      -   [        U5      -  [        U5      -   5      /n[        U " U5      [        * S-  [        S-  -
  S[         -  S-  -   [        S-  [        S-  -   [         S-  -   [        US[        U5      -  S-
  -  5      -  -   [        US[        U5      -  S-
  -  5      [        [        SU-  5      [        SU-  [        U5      -  5      -  [        U5      -  U5      -  -   5      [        U" U5      S[        -  S-  [        S-  -
  [         S-  -
  [        S-  [        S-  -   [         S-  -   [        US[        U5      -  S-
  -  5      -  -   [        US[        U5      -  S-
  -  5      [        [        SU-  5      [        SU-  [        U5      -  5      -  [        U5      -  U5      -  -   5      [        U" U5      [        * S-  S[        -  S-  -   [         S-  -
  [        S-  [        S-  -   [         S-  -   [        US[        U5      -  S-
  -  5      -  -   [        US[        U5      -  S-
  -  5      [        [        SU-  5      [        SU-  [        U5      -  5      -  [        U5      -  U5      -  -   5      /n[+        S5         [        US	S	S
9U:X  d   e S S S 5        [        UU5      S/ SQ4:X  d   e[        [        U " U5      U5      U " U5      U" U5      -   U" U5      -   U" U5      -   [        U5      -  [        U5      -   5      [        [        U" U5      U5      U " U5      U" U5      -   U" U5      -   U" U5      -   [        U5      -  [        U5      -   5      [        [        U" U5      U5      U " U5      U" U5      -   U" U5      -   U" U5      -   [        U5      -  [        U5      -   5      [        [        U" U5      U5      U " U5      U" U5      -   U" U5      -   U" U5      -   [        U5      -  [        U5      -   5      /n[        U " U5      [        * S-  [        S-  -
  [         S-  -
  S[(        -  S-  -   [        S-  [        S-  -   [         S-  -   [(        S-  -   [        US[        U5      -  S-
  -  5      -  -   [        US[        U5      -  S-
  -  5      [        [        SU-  5      [        SU-  [        U5      -  5      -  [        U5      -  U5      -  -   5      [        U" U5      S[        -  S-  [        S-  -
  [         S-  -
  [(        S-  -
  [        S-  [        S-  -   [         S-  -   [(        S-  -   [        US[        U5      -  S-
  -  5      -  -   [        US[        U5      -  S-
  -  5      [        [        SU-  5      [        SU-  [        U5      -  5      -  [        U5      -  U5      -  -   5      [        U" U5      [        * S-  S[        -  S-  -   [         S-  -
  [(        S-  -
  [        S-  [        S-  -   [         S-  -   [(        S-  -   [        US[        U5      -  S-
  -  5      -  -   [        US[        U5      -  S-
  -  5      [        [        SU-  5      [        SU-  [        U5      -  5      -  [        U5      -  U5      -  -   5      [        U" U5      [        * S-  [        S-  -
  S[         -  S-  -   [(        S-  -
  [        S-  [        S-  -   [         S-  -   [(        S-  -   [        US[        U5      -  S-
  -  5      -  -   [        US[        U5      -  S-
  -  5      [        [        SU-  5      [        SU-  [        U5      -  5      -  [        U5      -  U5      -  -   5      /n[+        S5         [        U5      U:X  d   e S S S 5        [        UU5      S/ SQ4:X  d   eg ! , (       d  f       GN-= f! , (       d  f       N7= f)Nr`  r9   r~  r  Tr  r<   r   Fsimplifydoitr=   r>   r?   r`      r   ry   rB   rC   r@   r  r   )r   r   r
   r   r   r   r   r   r   r-   r   r   r   r'   r   r   r,  r   r	   r   r-  r   )r4   r5   r6   r   r3   r;   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s                           rI   #test_sysode_linear_neq_order1_type4r  d  sW    1JA!gGA!$AtAaD!}adQqtVmad23RQqT1r!A$wQRSTQU~XYGY5Z[DqtRAYs1a46{*RAYs1a46{-BBSVCPQSTPTUVPVKEWX`abdeaefikljlfmamnqrsuvrvwxrxnyay#qb'	#ad1f+%b&'(Y* F* *,/F3q!tAv;,>x1SRSQSWUXYZ\]Y]^_Y_U`H`cdehjkikelclmpqrtuquvwqwmxcxHxz{?|,|} ~qtRAYs1a46{*RAYs1a46{-BBSVCPQSTPTUVPVKEWX`abdeaefikljlfmamnqrsuvrvwxrxnyay#qb'	#ad1f+%b&'(Y* F* *,/F3q!tAv;,>x1SRSQSWUXYZ\]Y]^_Y_U`H`cdehjkikelclmpqrtuquvwqwmxcxHxz{?|,|} ~D $<4$%$A777tAaD!}adQqtVma/0"T!A$]QBqtGaPQdNUXYZU[D[2\]DqtRAYs1a46{*RAYs1a46{-BBSVCPQSTPTUVPVKEWX`abcfhigicjajknoprsostuoukvavQBAs1a46{*b+,-Y/ F/ /14QAqDF1CHQsTUSUwYWZ[\^_[_`a[aWbMbehjkikelmpqrmsestw1Qu f NE 2  qtRAYs1a46{*RAYs1a46{-BBSVCPQSTPTUVPVKEWX`abcfhigicjajknoprsostuoukvavQBAs1a46{*b+,-Y/ F/ /14QAqDF1CHQsTUSUwYWZ[\^_[_`a[aWbMbehjkikelmpqrmsestw1Qu f NE 2 D E:tfDDD$%$A777z!A$"Aqtad{QqT'9$:Q$>?z!A$"Aqtad{QqT'9$:Q$>?z!A$"Aqtad{QqT'9$:Q$>?AD qtRQ'"Xb!_*<<r(1a.?PPSTVWSWXYSYY\]^fgikl^m\mmdRTkBqD #ad8Aq>&9"::;!WT"Xc$q'!)A+..s1a4A3F/GGJKMUVXZ[_] ^ qtRA&HRO);;b"a>PPSTVWSWXYSYY\]^fgikl^m\mmdRTkBqD #ad8Aq>&9"::;!WT"Xc$q'!)A+..s1a4A3F/GGJKMUVXZ[_] ^ qtRQ'"Xa^*;;b"a>PPSTVWSWX`acefXgSggx1~!#A1r!t!3SAhq!n9L5M MN!WT"Xc$q'!)A+..s1a4A3F/GGJKMUVXZ[_] ^_D $<4$%$	)::::z!A$"Aqtad{QqT'9$:SV$CDz!A$"Aqtad{QqT'9$:SV$CDz!A$"Aqtad{QqT'9$:SV$CDFD qtRQ'"Xb!_*<<r(1a.?PPTVWXTX[]^_[_T_TUq!tHQN*+T, ,.6s1vc!Q$xPRTUBV>W7WYZ.[\_`acd`demnof a ] /  qtRA&HRO);;b"a>PPTVWXTX[]^_[_T_TUq!tHQN*+T, ,.6s1vc!Q$xPRTUBV>W7WYZ.[\_`acd`demnof a ] /  qtRQ'"Xa^*;;b"a>PPTVWXTX[]^_[_T_TUq!tHQN*+T, ,.6s1vc!Q$xPRTUBV>W7WYZ.[\_`acd`demnof a ] / D $<4$%$	)::::z!A$"Aqtad{QqT'9AaD'@1'D$EFz!A$"Aqtad{QqT'9AaD'@1'D$EFz!A$"Aqtad{QqT'9AaD'@1'D$EFz!A$"Aqtad{QqT'9AaD'@1'D$EFHD qtRQ'"Xb!_*<<r(2q/?QQTVW_`acdWeTeeiklmimTjqDja4j !$Qq!tVi- -/7A? @qtRA&HRO);;b"a>PPSUV^_acdVeSeeiklmimTjqDja4j !$Qq!tVi- -/7A? @qtRQ'"Xa^*;;b"a>PPSUV^_acdVeSeeiklmimTjqDja4j !$Qq!tVi- -/7A? @qtRQ'"Xb!_*<<r(1a.?PPSUV^_acdVeSeeiklmimTjqDja4j !$Qq!tVi- -/7A? @AD $<4$%$)====z!A$"AqD!A$1+!*<qt*Ca*G$HIz!A$"AqD!A$1+!*<qt*Ca*G$HIz!A$"AqD!A$1+!*<qt*Ca*G$HIz!A$"AqD!A$1+!*<qt*Ca*G$HIKD qtRQ'"Xb!_*<<r(2q/?QQTVW_`acdWeTeeiklmimTjqDja4j !$QT(1a.%8!9i: :<DROL MqtRA&HRO);;b"a>PPSUV^_acdVeSeeiklmimTjqDja4j !$QT(1a.%8!9i: :<DROL MqtRQ'"Xa^*;;b"a>PPSUV^_acdVeSeeiklmimTjqDja4j !$QT(1a.%8!9i: :<DROL MqtRQ'"Xb!_*<<r(1a.?PPSUV^_acdVeSeeiklmimTjqDja4j !$QT(1a.%8!9i: :<DROL MND $<4$%$)====z!A$"QqTAaD[1Q4%7Q$?#a&$HI2jYZ[\Y]_`NadefgdhklmnkododeFd Vd$ L%&(AaD!)<qtad{QqT?QSVWXSY>Y\_`a\b>b&ceDqtbSURT\AbDF*bdRTk1/!Qs1vX\*+., ,.1!Qs1vX6 3 / QqS#bd3q6k*:!:3q6!A1E/FF G qtQrT!Vbd]RT)RTBqD[1.!Qs1vX\*+-, ,.1!Qs1vX6 3 / QqS#bd3q6k*:!:3q6!A1E/FF G qtbSUQrT!V^bd*bdRTk1/!Qs1vX\*+., ,.1!Qs1vX6 3 / QqS#bd3q6k*:!:3q6!A1E/FF GHD 
T	dU74??? 
$%$	)::::z!A$"QqTAaD[1Q4%7!A$%>A$FQ$OPRTU_`abc`dfgUhklmnkodlqTlaDl!"%a&k)+.q6k2 S346z!A$7JQqTTUVWTX[[\]^[_M_bcdebfMfhklmhnLnFM 5
1Q4+adQqTkAaD.@1Q4.GQ-ORUVWRX-XY[D qtbSURT\BqD(1R461RTBqD[2a45G16!Qs1vX\*+5, ,.1!Qs1vX6 3 / QqS#bd3q6k*:!:3q6!A1E/FF G qtQrT!Vbd]RT)BqD0BqD2a4K"Q$4F15!Qs1vX\*+4, ,.1!Qs1vX6 3 / QqS#bd3q6k*:!:3q6!A1E/FF G qtbSUQrT!V^bd*RT1RTBqD[2a45G16!Qs1vX\*+5, ,.1!Qs1vX6 3 / QqS#bd3q6k*:!:3q6!A1E/FF G qtbSURT\AbDF*RT1RTBqD[2a45G16!Qs1vX\*+5, ,.1!Qs1vX6 3 / QqS#bd3q6k*:!:3q6!A1E/FF GHD 
T	d|t### 
$%$)====+ 
	& 
	s    bAv>vAwv>
Aww
Awc                  ^   [        S[        S9u  p[        S5      u  p#[        [        U " U5      U5      SU " U5      -  U" U5      -   U-  5      [        [        U" U5      U5      U " U5      SU" U5      -  -   U-  5      /n[        U " U5      [        * U-  [
        US-  -  -   5      [        U" U5      [        U-  [
        US-  -  -   5      /n[        U5      U:X  d   e[        XE5      SSS/4:X  d   e[        [        U " U5      U5      SU " U5      -  U" U5      -   S-   U-  5      [        [        U" U5      U5      X " U5      -   SU" U5      -  -   U-  5      /n[        U " U5      [
        US-  -  U[        [        SS	5      -   -  -
  U[        U5      -  [        S
S5      -  -   [        SS5      -   5      [        U" U5      [
        US-  -  U[        U5      -  S-  -   U[        [        S
S	5      -   -  -   [        SS5      -   5      /n[        U5      U:X  d   e[        Xg5      SSS/4:X  d   eg )Nr   r9   zx x_r<   r?   Tr   r=   r@   r>   r   )
r   r   r
   r   r   r   r   r   r   r   )r4   r5   r3   x_r   r   r   r   s           rI   )test_sysode_linear_neq_order1_type5_type6r    s%   5h'DAFOEA z!A$"QqtVad]A$56:adA;NQRSTQUXYZ[\]Z^X^Q^`aPa8bcDqtbSUR1W_%r!A$1r!Q$w'?@D$<4$%$A777 z!A$"QqtVad]Q%6$9:z!A$"Q1X!A$%6$9:<DqtR1Wq"x1~"5663q6(2q/9QQT\]_abTccdqtR1WqQxz)ArHRO/C,DDxPQST~UVXD$<4$%$A777rL   c                  P/   [        S[        S9u  p[        S5      n[        [        U " U5      US45      SU " U5      -  U" U5      -   5      [        [        U" U5      US45      U " U5      * 5      /n[        U " U5      [        * U-  [        U* 5      -  [        U-  [        U5      -  -   [        [        -
  [        U* 5      -  -
  [        [        -   [        U5      -  -   5      [        U" U5      [        U-  [        U* 5      -  [        U-  [        U5      -  -
  [        [        -   [        U* 5      -  -   [        [        -
  [        U5      -  -   5      /n[        U5      U:X  d   e[        X45      SSS/4:X  d   e[        U " U5      R                  US5      S5      [        U" U5      R                  US5      U " U5      5      /n[        U " U5      [        [        U-  -   5      [        U" U5      [        US-  -  S-  [        US-  -  S-  -   [        -   [        U-  -   5      /n[        U5      U:X  d   e[        XV5      SSS/4:X  d   e[        [        U " U5      US45      SU " U5      -  5      [        [        U" U5      US45      U " U5      * SU" U5      -  -   5      /n[        U " U5      S	[        -  [        [        S5      * U-  5      -  S	[        -  [        [        S5      U-  5      -  -   5      [        U" U5      [        S5      [        -  U-  [        [        S5      * U-  5      -  [        S5      [        -  U-  [        [        S5      U-  5      -  -
  [        [        S5      [        -  -   [        [        S5      * U-  5      -  -   [        [        S5      [        -  -
  [        [        S5      U-  5      -  -   5      /n[        U5      U:X  d   e[        Xx5      SSS/4:X  d   e[        [        U " U5      US45      SU " U5      -  U" U5      -   5      [        [        U" U5      US45      SU" U5      -  5      /n	[        U " U5      [        U-  [        [        S5      U-  5      -  S	-  [        U-  [        [        S5      * U-  5      -  S	-  -   [        S	-  [        S5      [        -  S
-  -   [        [        S5      * U-  5      -  -   [        [        S5      U-  5      [        S5      [        -  S
-  [        [        SS	5      -  -   -  -
  5      [        U" U5      [        S5      [        -  [        [        S5      U-  5      -  S-  [        S5      [        -  [        [        S5      * U-  5      -  [        SS5      -  -   5      /n
[        U	5      U
:X  d   e[        X5      SSS/4:X  d   e[        U " U5      R                  US5      U " U5      5      [        U" U5      R                  US5      U " U5      5      /n[        U " U5      [        * [        U* 5      -  [        [        U5      -  -   5      [        U" U5      [        * [        U* 5      -  [        [        U5      -  -   [        -   [        U-  -   5      /n[        U5      U:X  d   e[        X5      SSS/4:X  d   e[        [        U " U5      US45      U " U5      U" U5      -   5      [        [        U" U5      US45      U " U5      * U" U5      -
  5      /n[        U " U5      [        [        US-  -  S-  -   [        -   [        US-  -  S-  -   U[        [        -   -  -   5      [        U" U5      [        * [        US-  -  [        SS5      -  -   [        U-  -
  [        US-  -  [        SS5      -  -   5      /n[        U5      U:X  d   e[        X5      SSS/4:X  d   e[        [        U " U5      US45      U " U5      U" U5      -   S-   5      [        [        U" U5      US45      U " U5      U" U5      -   S-   5      /n[        U " U5      [        * [        U-  -
  [        S5      [        -  [        [        S5      U-  5      -  S-  -   [        S5      [        -  [        [        S5      * U-  5      -  [        SS5      -  -   [        SS5      -   5      [        U" U5      [        [        U-  -   [        S5      [        -  [        [        S5      U-  5      -  S-  -   [        S5      [        -  [        [        S5      * U-  5      -  [        SS5      -  -   [        SS5      -   5      /n[        U5      U:X  d   e[        UU5      SSS/4:X  d   e[        [        U " U5      US45      U " U5      U" U5      -   S-   5      [        [        U" U5      US45      U " U5      * U" U5      -
  S-   5      /n[        U " U5      [        [        -   [        US-  -  S-  -   US	-  S-  -   US-  [        S-  [        SS5      -   -  -   U[        [        -   -  -   5      [        U" U5      [        * [        U-  -
  [        US-  -  [        SS5      -  -   US	-  [        SS5      -  -   US-  [        S-  [        SS5      -   -  -
  5      /n[        U5      U:X  d   e[        UU5      SSS/4:X  d   e[        S[        S9u  nn[        S5      u  nn[        [        U" U5      US45      SU" U5      -  SU" U5      -  -   5      [        [        U" U5      US45      U" U5      SU" U5      -  -   5      /n[        U" U5      [        SS[        S5      -  -
  -  [        [        S5      S-   5      -  [        U* [        [        S5      S-   5      -  5      -  S-  [        [        S[        S5      -
  5      -  SS[        S5      -  -   -  [        U* [        S[        S5      -
  5      -  5      -  S-  -   [        SS[        S5      -  -
  -  [        [        S5      S-   5      -  [        U[        [        S5      S-   5      -  5      -  [        SS5      -  -   [        [        S[        S5      -
  5      -  SS[        S5      -  -   -  [        U[        S[        S5      -
  5      -  5      -  [        SS5      -  -   5      [        U" U5      [        S[        S5      -
  -  [        [        S5      S-   5      -  [        U* [        [        S5      S-   5      -  5      -  [        SS5      -  [        [        S[        S5      -
  5      -  [        S5      S-   -  [        U* [        S[        S5      -
  5      -  5      -  [        SS5      -  -   [        S[        S5      -
  -  [        [        S5      S-   5      -  [        U[        [        S5      S-   5      -  5      -  S-  -   [        [        S[        S5      -
  5      -  [        S5      S-   -  [        U[        S[        S5      -
  5      -  5      -  S-  -   5      /n[        U5      U:X  d   e[        UU5      SSS/4:X  d   e[        SU" U5      -  [        U" U5      US45      -   S[        U" U5      U5      -  -
  S5      [        SU" U5      -  S[        U" U5      U5      -  -   [        U" U5      US45      -   S5      /n[        U" U5      [        S[        S5      -
  -  [        [        S5      U-  [        S[        S5      -  S-   5      -  S-  5      -  S-  [        S[        S5      -
  -  [        [        S5      U-  [        S[        S5      -  S-   5      -  S-  5      -  [        SS5      -  -   [        S[        S5      -   -  [        [        S5      U-  [        SS[        S5      -  -
  5      -  S-  5      -  S-  -   [        S[        S5      -   -  [        [        S5      U-  [        SS[        S5      -  -
  5      -  S-  5      -  [        SS5      -  -   5      [        U" U5      [        S[        S5      -
  -  [        [        S5      U-  [        S[        S5      -  S-   5      -  S-  5      -  [        SS5      -  [        S[        S5      -
  -  [        [        S5      U-  [        S[        S5      -  S-   5      -  S-  5      -  [        SS5      -  -   [        S[        S5      -   -  [        [        S5      U-  [        SS[        S5      -  -
  5      -  S-  5      -  S-  -   [        S[        S5      -   -  [        [        S5      U-  [        SS[        S5      -  -
  5      -  S-  5      -  S-  -   5      /n[        U5      U:X  d   e[        UU5      SSS/4:X  d   e[        [        U " U5      US45      [        U " U5      U5      U-  U " U5      US-  -  -   U" U5      US-  -  -   5      [        [        U" U5      US45      U" U5      US-  -  5      /n[        U " U5      [        [        S5      S-   -  [        SS5      -  U[        SS5      [        S5      [        SS5      -  -   -  -  [        U[        SS5      [        S5      S-  -   -  -  S[        S5      -
  -  [        SS5      -  -   [        US[        S5      -
  -  -  S[        S5      -   -  -
  [        US[        S5      -   -  -  S[        S5      -
  -  -
  5      [        U" U5      [        S[        S5      -   -  [        SS5      -  U[        SS5      [        S5      [        SS5      -  -   -  -  [        U[        SS5      [        S5      S-  -   -  -  S[        S5      -
  -  [        SS5      -  -   5      /n[        U5      U:X  d   e[        UU5      SSS/4:X  d   e[        [        U " U5      US45      UU " U5      -  5      [        [        U" U5      US45      UU" U5      -  5      /n[        U " U5      [        [!        U5      -  [        [#        U5      -  -   5      [        U" U5      [        [!        U5      -  [        [#        U5      -  -   5      /n[        U5      U:X  d   e[        UU5      SSS/4:X  d   e[        [        U" U5      US45      US	[        U" U5      U5      -  S
[        U" U5      U5      -  -   -  5      [        [        U" U5      US45      US[        U" U5      U5      -  S[        U" U5      U5      -  -
  -  5      /n[        U" U5      [        [%        [        S5      U-  5      [        S5      [        [&        5      -  [        -  S-  [        S5      [        [&        5      -  [        -  [        SS5      -  -   -  -
  [)        [        S5      U-  5      [        S5      [        [&        5      -  [        -  [        SS5      -  [        S5      [        [&        5      -  [        -  [        S	S5      -  -   -  -   5      [        U" U5      [        [%        [        S5      U-  5      [        S5      [        [&        5      -  [        -  [        SS5      -  [        S5      [        [&        5      -  [        -  [        SS5      -  -   -  -   [)        [        S5      U-  5      [        S5      [        [&        5      -  [        -  [        SS5      -  [        S5      [        [&        5      -  [        -  [        SS5      -  -   -  -   5      /n[        U5      U:X  d   e[        UU5      SSS/4:X  d   eg )Nr   r9   r3   r<   Tr   r?   r`   r@   r   r>   r=   r_   x, yt, lrA   r*  ry   =   /   ru   m   _      r   r!  7   rj  n   )r   r   r
   r   r   r   r,  r   r-  r   r   r   r   r   r   r   r+   r,   r   r	   r   ) r4   r5   r3   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r;   r   r  r  r  r   r  r   r  r   r  r   s                                    rI    test_higher_order_to_first_orderr    s
   5h'DAAz!A$A'1Q4!A$7z!A$A'!A$/1DqtbSU3r7]RT#a&[0BGS!W3DDRQTUVQWGWWXqtRT#qb'\BqDQK/27CG2CCrBwPSTUPVFVVWYD$<4$%$A777qtyyA"BqtyyA!$=>DqtR"Q$YAaD"QT'!)bAgai*?"*Dr!t*K!LMD$<4$%$A777z!A$A'1Q40z!A$A'!A$1Q48:DqtQrT#tAwhqj/)AbDT!WQY,??@qtT!WRZ\#tAwhqj/1DGBJqLT!WQY4OOSU!WRZTd1gXaZS) ),.aOSa^+KL MND $<4$%$A777z!A$A'1Q4!A$7z!A$A'1Q402DqtRT#d1gai.(*RT#tAwhqj/-A!-CCr!tdSTgVXjYZlGZ\_aefgah`hij`j\kFkka^T!WRZ\BxA,>>?@ AqtT!WRZDGAI.q0472:c47(1*o3MhWY[\o3]]^`D $<4$%$A777qtyyA!%r!A$))Aq/1Q4'@ADqtbSaR[2c!f9,-r!A$CGbQi8ORT8TWYZ[W[8[/\]D$<4$%$A777z!A$A'1!5z!A$A'!A$168DqtR"QT'!)^b(2ad7194q"r'{BCqtbS2ad78B?22RT9Bq!tGHRQRO<SSTVD$<4$%$A777z!A$A'1!q9z!A$A'1!q9;DqtbS2a4Z$q'"*Sa^";A"==Q
3PTUVPWxXYz?@Z[cdfhi[j@jjb!_ qtR"Q$YaCQ	N!:1!<<tAwrz#tTUwhWXj/?YZbceghZi?iib!_ D $<4$%$A777z!A$A'1!q9z!A$A'!A$1)9:<DqtR"Wr!Q$wqy(1a472QT2a4(1a.;P5QQTUWY\^W^T__`qtbS2a4Z"QT'(2q/"99AqD"bAQ<QQTUWXTXZ\]^Z^aijlb [ U  D $<4$%$A7776x(DAq6?DAq
1Q4!Q(!AaD&2ad7*:;
1Q4!Q(!A$1Q4-8:E!b"qbz/*4R1+==c1"T$r(UV,EWBW>XXYZZ]_`def2hf a ^aRj^**-qba$r(l1C.C*D^EEF^G GIKRRSTXY[T\R\_I]^bcghjckd _ JQtDHqL))*J++3B?J;;=?Qb\@R=RTVYZ[_`b[cYcTc=dehijkopqRq l j f >#B?>++ , !b!d2h,'T"X\(::3r$tBxRS|BT?T;UUV^_acdVeehjkopqRq l i8a<i)),aRQb\0B-B)CiDDLRQROiT TVXZ[2h[ WT"X\*W++.qd2hl1C/C+DWEEFWGGIKDQRUYZ\U]Q]L^I^`deg`ha JQtARL))*J++,J-- .	/E %=E!!!%'D1a&>999!A$AaD1a&11Aj1q6I4II1M!A$:adA...AaD1a&1II1MOE!b!d3i-(T!WQYtAd3iK"<L7M-Ma-O)PPQSSVXZ[3i[ WT!WQYtAd3iK",<'==a?@WAAI"bAQWR RTVXY3iY UT!WQYtB49,<'==a?@UAACUDDFH!dSVi-FXY\]abc]def]fgklnS	km h ^^ Z G&r2.G// 0 !b!d3i-(T!WQYtAd3iK"<L7M-Ma-O)PPQYZ\^`Qaadfhi3ii eT!WQYtAd3iK",<'==a?@eAAI"bAQeR RTVXY3iY UT!WQYtB49,<'==a?@UAACUDDFH!dSVi-FXY\]abc]def]fgklnS	km h ^^ Z G G!! "	#E %=E!!!%'D1a&>999 
1Q4!Q(*QqT1*=a*?!A$q!t)*KaPQdSTVWSWi*WX
1Q4!Q(!A$q!t)46E!b$q'A+&xA6q8Aq>QQ'<( 8) )+-a(1a.Q	3 / ,QK,))1"a,99;=a!QC ? <d1g+<'' *,ADG,<)<a$q'k)JK L !b!d1g+&xA6q8Aq>a"a(<) 8* *,.q8Aq>!WQY4 0  - !"T!W-..6r1o->> ?	@E %=E!!!%'D1a&>999 
1Q4!Q(!AaD&1	JqtaV$a!f	-/E!blRq	\12	AaD"VAY,F1I-	.0E%=E!!!%'D1a&>999 
1Q4!Q(!Qz!A$/B-BQzRSTURVXYGZEZ-Z*[\
1Q4!Q(!R
1Q40C-Ca
STUVSWYZH[F[-[*\]_E!b3tAwqy>4748+;B+>r+ADGDQSHDTUWDWX`acegXhDh+hii4719otAwtBx/28Ar?BT!WTRTXEUVXEXYabcegYhEhhij k!b3tAwqy>4748+;B+>x2+NQUVWQXY]^`YaQabdQdemnpf R ,  $q'!)_d1gd2h&6r&9(1c:J&JTRSWUYZ\U]M]^`M`aijkmoapMp&pqr stE %=E!!!%'D1a&>999rL   c                     [        S[        S9u  p[        S5      nU " U5      U" U5      -   S[        [        U-  5      -  -
  S[	        U " U5      U5      -  -   [	        U " U5      US45      -   U " U5      U" U5      -   S[        [        U-  5      -  -
  S[	        U" U5      U5      -  -   [	        U" U5      US45      -   /n[        U " U5      [        * [        [        SU-  5      -  S-  -   [        S-  [        S-  -
  [        U* 5      -  [        U5      -  -
  [        S-  [        S-  -   [        U* 5      -  [        U5      -  -   SSS[        -  -
  [        [        U-  5      -  [        U5      S-  -  S-  -  -   SSS[        -  -
  [        [        U-  5      -  [        U5      S-  -  S-  -  -   5      [        U" U5      [        [        [        SU-  5      -  S-  -
  [        S-  [        S-  -
  [        U* 5      -  [        U5      -  -
  [        S-  [        S-  -   [        U* 5      -  [        U5      -  -   SSS[        -  -
  [        [        U-  5      -  [        U5      S-  -  S-  -  -   SSS[        -  -
  [        [        U-  5      -  [        U5      S-  -  S-  -  -   5      /n[        U5      U:X  d   e[        X45      SS	S	/4:X  d   eg )
Nr   r9   r3   r<   r   r=   rA   Tr   )r   r   r   r   r   r
   r   r-  r   r,  r   r   r   r   )r4   r5   r3   r   r  s        rI   "test_higher_order_to_first_order_9r  k  s   5h'DAAaD1Q4K!C!H*$qAaD!)<'<<z!A$QRTUPV?WWaD1Q4K!C!H*$qAaD!)<'<<z!A$QRTUPV?WWYD!rcBs2a4yLN*bdRTk3r7-B3q6-II!tbd{CG+CF2356QqS#ac(8J3q6ST98TUV8V5WX!ac'3qs8+CFAI5a789 : qtR"SAY,q.(BqD2a4KaR+@Q+GG!tbd{CG+CF2356QqS#ac(8J3q6ST98TUV8V5WX!ac'3qs8+CFAI5a789 :;D $<4$%$A777rL   c                  |   [        S[        S9u  p[        S5      n[        S[        S9u  p#[        S5      u  pE[        SU" U5      -  [        U" U5      US45      -   S[        U" U5      U5      -  -   S	5      [        SU" U5      -  S[        U" U5      U5      -  -
  [        U" U5      US45      -   S	5      /n[        U" U5      [        S[        S
5      -
  -  [        SU-  [        S[        S
5      -  S-   5      -  5      -  [        SS5      -  [        S[        S
5      -
  -  [        SU-  [        S[        S
5      -  S-   5      -  5      -  S-  -   [        S[        S
5      -   -  [        SU-  [        SS[        S
5      -  -
  5      -  5      -  [        SS5      -  -   [        S[        S
5      -   -  [        SU-  [        SS[        S
5      -  -
  5      -  5      -  S-  -   5      [        U" U5      [        S[        S
5      -
  -  [        SU-  [        S[        S
5      -  S-   5      -  5      -  [        SS5      -  [        S[        S
5      -
  -  [        SU-  [        S[        S
5      -  S-   5      -  5      -  [        SS5      -  -   [        S[        S
5      -   -  [        SU-  [        SS[        S
5      -  -
  5      -  5      -  S-  -   [        S[        S
5      -   -  [        SU-  [        SS[        S
5      -  -
  5      -  5      -  S-  -   5      /n[        U5      U:X  d   e[        Xg5      SS	S	/4:X  d   eg )Nr   r9   r3   r  r  r@   r<   r   r   rA   ry   r>   T)r   r   r
   r   r   r   r   r   r   r   r,  r-  r   r   )r4   r5   r3   r   r;   r   r  r   s           rI   #test_higher_order_to_first_order_12r  |  sX   5h'DAA6x(DA6?DA!A$AaD1a&11Aj1q6I4II1M!A$:adA...AaD1a&1II1MOE!b!d1g+&s1Q3tAd1gIM/B+B'CCHRQROSVXZ[1g[ W1Q3tAd1gIM223W445W6 68:AQK8HQqSQUVWZ[\`ab\cZcVcQdMdIe8efnoqg 9q47{#C!DQtAwY,?(?$@@BC D !b!d1g+&s1Q3tAd1gIM/B+B'CCHRQROSVXZ[1g[ W1Q3tAd1gIM223W44<ROWD DFH!dSTg+FVWZ[\]^[^_cdeQie ` \ X GG !d1g+.s1Q3tA$q'	M7J3J/KKAMN OPE %=E!!!%'D1a&>999rL   c                     [        S[        S9u  p[        S5      u  p#pEpgn[        U " U5      R                  US5      SX!" U5      R                  U5      -  U" U5      -
  -  5      [        U" U5      R                  US5      SX " U5      R                  U5      -  U " U5      -
  -  5      /n	[        U " U5      [        U-  U[        [        [        U* 5      -  [        [        [        SU-  5      -  5      -  S-  [        [        U* 5      -  [        [        * [        SU-  5      -  5      -  S-  -   [        [        -  [        U* 5      -  [        [        [        SU-  5      -  5      -  S-  -
  [        [        -  [        U* 5      -  [        [        * [        SU-  5      -  5      -  S-  -   U[        U5      45      -  -   5      [        U" U5      [        U-  U[        [        [        -  [        U* 5      -  [        [        [        SU-  5      -  5      -  S-  [        [        -  [        U* 5      -  [        [        * [        SU-  5      -  5      -  S-  -
  [        [        U* 5      -  [        [        [        SU-  5      -  5      -  S-  -   [        [        U* 5      -  [        [        * [        SU-  5      -  5      -  S-  -   U[        U5      45      -  -   5      /n
[        U	SSS9U
/:X  d   e[        X5      SS	S	/4:X  d   e[        [        U " U5      X35      S
U-  [        U" U5      U5      -  S
U" U5      -  -
  5      [        [        U" U5      X35      SU-  [        U " U5      U5      -  SU " U5      -  -
  5      4n[        U " U5      [        U-  U[        [        [        U* 5      -  [        S[        S5      -  [        SU-  5      -  S-  5      -  S-  [        [        U* 5      -  [        S[        S5      -  [        SU-  5      -  S-  5      -  S-  -   S[        S5      -  [        -  [        U* 5      -  [        S[        S5      -  [        SU-  5      -  S-  5      -  S-  -   S[        S5      -  [        -  [        U* 5      -  [        S[        S5      -  [        SU-  5      -  S-  5      -  S-  -
  U[        U5      45      -  -   5      [        U" U5      [        U-  U[        [        S5      [        -  [        U* 5      -  [        S[        S5      -  [        SU-  5      -  S-  5      -  S-  [        S5      [        -  [        U* 5      -  [        S[        S5      -  [        SU-  5      -  S-  5      -  S-  -
  [        [        U* 5      -  [        S[        S5      -  [        SU-  5      -  S-  5      -  S-  -   [        [        U* 5      -  [        S[        S5      -  [        SU-  5      -  S-  5      -  S-  -   U[        U5      45      -  -   5      /n[        USSS9U/:X  d   e[        X5      SS	S	/4:X  d   e[        [        U" U5      US45      Xx-  5      [        [        U " U5      US45      S	5      /n[        U" U5      [        [        U-  -   Xx-  US-  -  S-  -   5      [        U " U5      [        [        U-  -   5      /n[!        U5      U:X  d   e[        X5      SS	S	/4:X  d   e[        [        U " U5      US45      U " U5      US-  -  5      [        [        U" U5      US45      Xa" U5      -  US-  -  5      /n[        U " U5      [        [        US-  5      -  [        SU-  5      -  [        [        US-  5      -  [        SU-  5      -  -
  5      [        U" U5      [        [        US-  5      -  [        [        U5      * U-  5      -  U[#        SS5      -  -  [        [        US-  5      -  [        [        U5      U-  5      -  U[#        SS5      -  -  -
  5      /n[!        U5      U:X  d   e[        UU5      SS	S	/4:X  d   eg )Nr   r9   x t x_ t_ d a mr<   r   Fr  Tr   ry   ru   r?   rC   r  r`   r@   r>   r=   )r   r   r
   r   r   r-   r   r   r   r,  r   r-  r'   r   r   r   r   r   )r4   r5   r3   r;   r  r   ro  r   mr   r   r   r   r   r   r   r   s                    rI   "test_second_order_to_first_order_2r    s'   5h'DA#$56A"!qtyyA1QqTYYq\>AaD#8 9:qtyyAr1QqTYYq\>AaD#89:<DqtRTAhr#rc({3qQrT{3C'CA'E3PRs8TWYZXZ[^_`ac_c[dXdTeHefgHg'g"S"Xc!C"I+..q0(134R4RC=aRAbD	\AR3RST3T(UWY[^_`[aVbd d d eqtRTAhqtCH}S3qt95E'Ea'G!B$sTVSVx-X[]^\^_bcdegcg_h\hXiJijkJk'k3s8C#ad),,Q.(/13CHS!C"I=N1Nq1P(QSUWZ[\W]R^` ` ` abD
 E:tfDDD$%$A777tAaD~qs4!Q</!A$67D1aN1Q3tTUVWTXYZ|K[\]^_`a^b\bKb9cdDqtRTAhr#rc({3qayQrT7J17L3M'Ma'ORTUXZ\Y\U]R]BtAwJs1R4y(*+S,,-S. (.01$q'	"S"X0Ec!DQRG)TWXYZ\X\T]J]^_J_F`0`ac0c(d$q'	"S"X%c"T!W*S2Y*>q*@&AA"D(EGI3q6lT T T U qtRTAhtAwrz#rc(':3qayQrT?RST?T;U'UVW'WZ^_`ZabdZdehjlilemZmBtAwJs1R4y(*+[,,-[. (.023s8C$q'	#aPRd)@STU@U<V0VWX0X(Y[]^acebe^f[fgjkmnrstnukuAbD	ll h \\(!#SV. . . /0D E:tfDDD$%$A777 z!A$A'-z!A$A'+-DqtR"Q$YQT!+,qtR"Q$Y!D$<4$%$A777 z!A$A'1ad3z!A$A'1Q4157DqtRQT
]3r!t9,r$q!t*}S1X/EEFqtRQT
]3Qxz?21hr1o3EEQT
]3tAwqy>)!Xb!_*<<= >?D $<4$%$A777rL   c            
         [        S[        S9u  p[        S5      u  p#pEpgn[        U " U5      R                  US5      SU-  X!" U5      R                  U5      -  U" U5      -
  -  5      [        U" U5      R                  US5      SU-  X " U5      R                  U5      -  U " U5      -
  -  5      /n	[        U " U5      [        U-  S[
        -  U-  [        SU-  5      -  -   [
        [        SU-  5      -  -
  S[        -  U-  [        SU-  5      -  -
  [        [        SU-  5      -  -
  5      [        U" U5      S[
        -  U-  [        SU-  5      -  [
        [        SU-  5      -  -
  S[        -  U-  [        SU-  5      -  -
  [        [        SU-  5      -  -   [        U-  -   5      /n
[        U	5      U
:X  d   e[        X5      SSS/4:X  d   eg )Nr   r9   r  r<   r   Tr   )r   r   r
   r   r   r   r   r   r,  r   r   r-  r   r   )r4   r5   r3   r;   r  r   ro  r   r  r   r   s              rI   &test_second_order_to_first_order_slow1r    s   5h'DA#$56A"! qtyyA!a!		!nqt&; <=adii1obdQqtyy|^ad%:;<>DqtRTAbDF2ac7N*RAaC[81R46"QqS'>IBsSTUVSVxKWXqtRU1WR!W_r#ac({2QrT!VBqsG^CbQqSkQTVWXTXXY[D$<4$%$A777rL   c                     [        S[        S9u  p[        S5      u  p#pEpgn[        [        U " U5      US45      U[	        U5      -  [        U" U5      U5      -  U" U5      [	        U5      -  -
  5      [        [        U" U5      US45      U[	        U5      -  [        U " U5      U5      -  U " U5      [	        U5      -  -
  5      /n	[        U " U5      [
        U-  U[        [        [        U* 5      -  [        [        U5      [        [        U5      5      -  5      -  [        [	        [        U5      5      * 5      -  S-  [        [        U* 5      -  [        [        U5      * [        [        U5      5      -  5      -  [        [	        [        U5      5      5      -  S-  -   [        [        U* 5      -  [        [        U5      [        [        U5      5      -  5      -  [        [	        [        U5      5      * 5      -  S-  -
  [        [        U* 5      -  [        [        U5      * [        [        U5      5      -  5      -  [        [	        [        U5      5      5      -  S-  -   U[        U5      45      -  -   5      [        U" U5      [        U-  U[        [        * [        U* 5      -  [        [        U5      [        [        U5      5      -  5      -  [        [	        [        U5      5      * 5      -  S-  [        [        U* 5      -  [        [        U5      * [        [        U5      5      -  5      -  [        [	        [        U5      5      5      -  S-  -   [        [        U* 5      -  [        [        U5      [        [        U5      5      -  5      -  [        [	        [        U5      5      * 5      -  S-  -   [        [        U* 5      -  [        [        U5      * [        [        U5      5      -  5      -  [        [	        [        U5      5      5      -  S-  -   U[        U5      45      -  -   5      /n
[        U	SSS9U
/:X  d   e[        X5      SSS/4:X  d   eg )	Nr   r9   r  r<   Fr  Tr   )r   r   r
   r   r   r   r-   r   r   r   r,  r   r-  r'   r   )r4   r5   r3   r;   r  r   ro  r   r  r   r   s              rI   &test_second_order_to_first_order_slow4r    s   5h'DA#$56A"!z!A$A'3q6*QqT12E)E!SQRV)STz!A$A'3q6*QqT12E)E!SQRV)STVDqtRTAhr#rc({3s2ws3r7|7K3L'LSRUVYZ\V]R^Q^M_'_`a'a3s8CRSW 566s3s2w<7HHJ(KMOPSUWTWPX[Y\]`ac]dehilmoipeq]qYrMrSR\M"N##$N%(% 3s8CRSW 566s3s2w<7HHJ(K NPQTUVQWLZ Z Z [ qtRTAhs3s8|CBCG8L4M'McSVWZ[]W^S_R_N`'`ab'b3s8CRSW 566s3s2w<7HHJ(KMOPSUWTWPX[Y\]`ac]dehilmoipeq]qYrMrSR\M"N##$N%(%')#rc({3BxCG7L3M'McRUVYZ\V]R^N_'_`a'a(bdfhklmhncoq q q r	sD E:tfDDD$%$A777rL   c                  9   [        S[        S9u  pp#[        S5      nU " U5      U" U5      U" U5      U" U5      /n[        [        U " U5      U5      SU " U5      -  5      [        [        U" U5      U5      U " U5      5      [        [        U" U5      U5      U" U5      5      [        [        U" U5      U5      U" U5      S-  U" U5      -   5      /n[        U " U5      S[        -  [        SU-  5      -  5      [        U" U5      [        [        SU-  5      -  [        -   5      [        U" U5      [        [        U5      -  5      [        U" U5      [        S-  [        SU-  5      -  S-  [        [        U5      -  -   5      /n[        U5      U:X  d   e[        Xg5      S/ SQ4:X  d   e[        [        U " U5      U5      SU " U5      -  5      4[        [        U" U5      U5      U " U5      5      44[        [        U" U5      U5      U" U5      5      4[        [        U" U5      U5      U" U5      S-  U" U5      -   5      441nU " U5      [        5       U" U5      U " U5      1U" U5      [        5       U" U5      U" U5      10U " U5      [        [        U " U5      U5      SU " U5      -  5      U" U5      [        [        U" U5      U5      U " U5      5      U" U5      [        [        U" U5      U5      U" U5      5      U" U5      [        [        U" U5      U5      U" U5      S-  U" U5      -   5      04n	U " U5      U" U5      U" U5      U" U5      1U" U5      U " U5      4U" U5      U" U5      41/n
[        XeU5       Vs1 s H  n[        S	 U 5       5      iM     snU:X  d   e[        Xe5      U	:X  d   e[        U	S
   5       Vs/ s H  n[        U5      PM     snU
:X  d   e[        [        U " U5      U5      SU " U5      -  5      [        [        U" U5      U5      U " U5      5      [        [        U" U5      U5      U" U5      5      [        [        U" U5      U5      U " U5      S-  U" U5      -   5      /n[        U " U5      [        [        SU-  5      -  5      [        U" U5      [        [        SU-  5      -  S-  [        -   5      [        U" U5      [        [        U5      -  5      [        U" U5      [        S-  [        SU-  5      -  S-  [        [        U5      -  -   5      /n[        U5      U:X  d   e[        X5      S/ SQ4:X  d   e[!        [        [        U " U5      U5      SU " U5      -  5      4[        [        U" U5      U5      U " U5      5      4[        [        U" U5      U5      U " U5      S-  U" U5      -   5      4/5      [!        [        [        U" U5      U5      U" U5      5      4/5      1nU " U5      [        5       U" U5      U " U5      1U" U5      [        5       U" U5      U " U5      10U " U5      [        [        U " U5      U5      SU " U5      -  5      U" U5      [        [        U" U5      U5      U " U5      5      U" U5      [        [        U" U5      U5      U" U5      5      U" U5      [        [        U" U5      U5      U " U5      S-  U" U5      -   5      04nU " U5      U" U5      U" U5      U" U5      1U" U5      U " U5      4U" U5      U " U5      41/n[        XU5       Vs1 s H  n[!        S U 5       5      iM     snU:X  d   e[        X5      U:X  d   e[        US
   5       Vs/ s H  n[        U5      PM     snU:X  d   e[        [        U " U5      U5      SU " U5      -  5      [        [        U" U5      U5      X@" U5      -   5      [        [        U" U5      U5      U" U5      5      [        [        U" U5      U5      U " U5      S-  U" U5      -   5      /n[        U " U5      [        [        SU-  5      -  5      [        U" U5      [        [        SU-  5      -  S-  [        -   US-  S-  -   5      [        U" U5      [        [        U5      -  5      [        U" U5      [        S-  [        SU-  5      -  S-  [        [        U5      -  -   5      /n[        U5      U:X  d   e[        UU5      S/ SQ4:X  d   e[!        [        [        U " U5      U5      SU " U5      -  5      4[        [        U" U5      U5      X@" U5      -   5      4[        [        U" U5      U5      U " U5      S-  U" U5      -   5      4/5      [!        [        [        U" U5      U5      U" U5      5      4/5      1nU " U5      [        5       U" U5      U " U5      1U" U5      [        5       U" U5      U " U5      10U " U5      [        [        U " U5      U5      SU " U5      -  5      U" U5      [        [        U" U5      U5      X@" U5      -   5      U" U5      [        [        U" U5      U5      U" U5      5      U" U5      [        [        U" U5      U5      U " U5      S-  U" U5      -   5      04nU " U5      U" U5      U" U5      U" U5      1U" U5      U " U5      4U" U5      U " U5      41/n[        UXT5       Vs1 s H  n[!        S U 5       5      iM     snU:X  d   e[        UU5      U:X  d   e[        US
   5       Vs/ s H  n[        U5      PM     snU:X  d   e[        [        U " U5      U5      X@" U5      -  SU" U5      -  -   5      [        [        U" U5      U5      U " U5      XA" U5      -  -   U-   5      [        [        U" U5      U5      U" U5      5      [        [        U" U5      U5      U " U5      S-  U" U5      -   5      /n[        U " U5      [        S-  [#        S5      [        -  S-  -
  [#        S5      [%        U[        US-  * S-  [#        S5      U-  -
  5      -  S-  U[        US-  * S-  [#        S5      U-  -   5      -  S-  -   U5      -  S-  -
  [%        [#        S5      U-  [        US-  * S-  [#        S5      U-  -
  5      -  S-  [#        S5      U-  [        US-  * S-  [#        S5      U-  -   5      -  S-  -
  U5      S-  -   [        US-  S-  [#        S5      U-  -
  5      -  [        S-  [#        S5      [        -  S-  -   [#        S5      [%        U[        US-  * S-  [#        S5      U-  -
  5      -  S-  U[        US-  * S-  [#        S5      U-  -   5      -  S-  -   U5      -  S-  -   [%        [#        S5      U-  [        US-  * S-  [#        S5      U-  -
  5      -  S-  [#        S5      U-  [        US-  * S-  [#        S5      U-  -   5      -  S-  -
  U5      S-  -   [        US-  S-  [#        S5      U-  -   5      -  -   5      [        U" U5      [#        S5      * [        -  S-  [        S-  -   [%        U[        US-  * S-  [#        S5      U-  -
  5      -  S-  U[        US-  * S-  [#        S5      U-  -   5      -  S-  -   U5      S-  -   [#        S5      [%        [#        S5      U-  [        US-  * S-  [#        S5      U-  -
  5      -  S-  [#        S5      U-  [        US-  * S-  [#        S5      U-  -   5      -  S-  -
  U5      -  S-  -
  [        US-  S-  [#        S5      U-  -
  5      -  [#        S5      [        -  S-  [        S-  -   [%        U[        US-  * S-  [#        S5      U-  -
  5      -  S-  U[        US-  * S-  [#        S5      U-  -   5      -  S-  -   U5      S-  -   [#        S5      [%        [#        S5      U-  [        US-  * S-  [#        S5      U-  -
  5      -  S-  [#        S5      U-  [        US-  * S-  [#        S5      U-  -   5      -  S-  -
  U5      -  S-  -   [        US-  S-  [#        S5      U-  -   5      -  -   5      [        U" U5      [        [        U5      -  5      [        U" U5      [        [        U5      -  [        U5      [%        [        [        US-  S-  [#        S5      U-  -
  5      -  S-  [        [        US-  S-  [#        S5      U-  -   5      -  S-  -   [#        S5      [        -  [        US-  S-  [#        S5      U-  -
  5      -  S-  -
  [#        S5      [        -  [        US-  S-  [#        S5      U-  -   5      -  S-  -   [#        S5      [        US-  S-  [#        S5      U-  -
  5      -  [%        U[        US-  * S-  [#        S5      U-  -
  5      -  S-  U[        US-  * S-  [#        S5      U-  -   5      -  S-  -   U5      -  S-  -
  [        US-  S-  [#        S5      U-  -
  5      [%        [#        S5      U-  [        US-  * S-  [#        S5      U-  -
  5      -  S-  [#        S5      U-  [        US-  * S-  [#        S5      U-  -   5      -  S-  -
  U5      -  S-  -   [#        S5      [        US-  S-  [#        S5      U-  -   5      -  [%        U[        US-  * S-  [#        S5      U-  -
  5      -  S-  U[        US-  * S-  [#        S5      U-  -   5      -  S-  -   U5      -  S-  -   [        US-  S-  [#        S5      U-  -   5      [%        [#        S5      U-  [        US-  * S-  [#        S5      U-  -
  5      -  S-  [#        S5      U-  [        US-  * S-  [#        S5      U-  -   5      -  S-  -
  U5      -  S-  -   S-  [        U* 5      -  U5      -  -   5      /n[!        [        [        U " U5      U5      X@" U5      -  SU" U5      -  -   5      [        [        U" U5      U5      XA" U5      -  U-   U " U5      -   5      /5      [!        [        [        U" U5      U5      U " U5      S-  U" U5      -   5      /5      4[!        [        [        U" U5      U5      U" U5      5      /5      41nU " U5      U" U5      1U" U5      U " U5      1U" U5      [        5       U" U5      U " U5      10U " U5      [        [        U " U5      U5      X@" U5      -  SU" U5      -  -   5      U" U5      [        [        U" U5      U5      XA" U5      -  U-   U " U5      -   5      U" U5      [        [        U" U5      U5      U" U5      5      U" U5      [        [        U" U5      U5      U " U5      S-  U" U5      -   5      04nU " U5      U" U5      U" U5      U" U5      1U " U5      U" U5      4U" U5      U " U5      4U" U5      U " U5      41/n[        UXT5       Vs1 s H  n[        S U 5       5      iM     snU:X  d   e[        UU5      U:X  d   e[        US
   5       Vs/ s H  n[        U5      PM     snU:X  d   e['        USSS9U/:X  d   e[        UU5      S/ SQ4:X  d   e[        [        U " U5      U5      X@" U5      -  SU" U5      -  -   5      [        [        U" U5      U5      XA" U5      -  U " U5      -   5      [        [        U" U5      U5      U" U5      5      [        [        U" U5      U5      U " U5      S-  U" U5      -   5      /n[        U " U5      [        S-  [#        S5      [        -  S-  -
  [        US-  S-  [#        S5      U-  -
  5      -  [        S-  [#        S5      [        -  S-  -   [        US-  S-  [#        S5      U-  -   5      -  -   5      [        U" U5      [#        S5      * [        -  S-  [        S-  -   [        US-  S-  [#        S5      U-  -
  5      -  [#        S5      [        -  S-  [        S-  -   [        US-  S-  [#        S5      U-  -   5      -  -   5      [        U" U5      [        [        U5      -  5      [        U" U5      [        [        U5      -  [        U5      [%        [        [        US-  S-  [#        S5      U-  -
  5      -  S-  [        [        US-  S-  [#        S5      U-  -   5      -  S-  -   [#        S5      [        -  [        US-  S-  [#        S5      U-  -
  5      -  S-  -
  [#        S5      [        -  [        US-  S-  [#        S5      U-  -   5      -  S-  -   S-  [        U* 5      -  U5      -  -   5      /n[!        [        [        U " U5      U5      X@" U5      -  SU" U5      -  -   5      [        [        U" U5      U5      XA" U5      -  U " U5      -   5      /5      [!        [        [        U" U5      U5      U " U5      S-  U" U5      -   5      /5      4[!        [        [        U" U5      U5      U" U5      5      /5      41nU " U5      U" U5      1U" U5      U " U5      1U" U5      [        5       U" U5      U " U5      10U " U5      [        [        U " U5      U5      X@" U5      -  SU" U5      -  -   5      U" U5      [        [        U" U5      U5      XA" U5      -  U " U5      -   5      U" U5      [        [        U" U5      U5      U" U5      5      U" U5      [        [        U" U5      U5      U " U5      S-  U" U5      -   5      04n U " U5      U" U5      U" U5      U" U5      1U " U5      U" U5      4U" U5      U " U5      4U" U5      U " U5      41/n![        UXT5       Vs1 s H  n[        S U 5       5      iM     snU:X  d   e[        UU5      U :X  d   e[        U S
   5       Vs/ s H  n[        U5      PM     snU!:X  d   e['        USSS9U/:X  d   e[        UU5      S/ SQ4:X  d   eg s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf )Nr`  r9   r3   r<   r@   r?   Tr  c              3   8   #    U  H  n[        U5      v   M     g 7fr   tuple.0sccs     rI   	<genexpr>*test_component_division.<locals>.<genexpr>  s     ,%**   r   r   ru   c              3   8   #    U  H  n[        U5      v   M     g 7fr   r  r  s     rI   r  r         0CSeCjjCr  c              3   8   #    U  H  n[        U5      v   M     g 7fr   r  r  s     rI   r  r  (  r  r  c              3   8   #    U  H  n[        U5      v   M     g 7fr   	frozensetr  s     rI   r  r  P       0CS)C..Cr  Fr  c              3   8   #    U  H  n[        U5      v   M     g 7fr   r  r  s     rI   r  r  j  r  r  )r   r   r
   r   r   r   r   r,  r-  r   r   setr(   r  r)   r*   r  r   r-   r'   )"r4   r5   r6   r   r3   rH   r   r   components1eqsdict1graph1wccelementr   r   components2eqsdict2graph2r   r   components3eqsdict3graph3r   r   r   components4eqsdict4graph4r   r   components5eqsdict5graph5s"                                     rI   test_component_divisionr    s   1JA!AqT1Q41qt$Ez!A$"AadF+z!A$"AaD)z!A$"AaD)z!A$"AaD!GadN35D qtQrT#ac(]#qtRAaC[2%&qtRAYqtRU3qs8^A%3q6	124D $<4$%$)====
1Q4+QqtV46JqtQ<OQRSTQU9V8XY
1Q4+QqT24r*QqT1:MqQRtUVwYZ[\Y]~7^6`acK1suadQqTFAaD#%1!vF1r*QqT1-q1v6!bAaD!,ad3!bAaD!,ad3!bAaD!,adAg!n=?@H
 tQqT1Q41&!A$!!ad|(DEF8KDYZ8[\8[E,,,8[\`kkkkT!X---(3HQK(@A(@WCL(@AVKKKz!A$"AadF+z!A$"AaD)z!A$"AaD)z!A$"AaD!GadN35D qtRAaC[!qtRAaC[]R'(qtRAYqtRU3qs8^A%3q6	124D $<4$%$)====r*QqT1"5q1v>@
1Q4+QqT24
1Q4+QqT1Wqt^<>@ A r*QqT1"5qt<>?@BK 1suadQqTFAaD#%1!vFA$:adA.!A$7A$:adA.!5A$:adA.!5A$:adA.!a!A$?ABH
 tQqT1Q41&!A$!!ad|(DEF<OPT]^<_`<_SI0C00<_`dooooT!X---(3HQK(@A(@WCL(@AVKKKz!A$"AadF+z!A$"A!H-z!A$"AaD)z!A$"AaD!GadN35D qtRAaC[!qtRAaC[]R'!Q$q&01qtRAYqtRU3qs8^A%3q6	124D $<4$%$)====r*QqT1"5q1v>@
1Q4+Q1X68
1Q4+QqT1Wqt^<>@ A :adA#6! =?ABDK 1suadQqTFAaD#%1!vF1r*QqT1-q1v6!bAaD!,a!A$h7!bAaD!,ad3!bAaD!,adAg!n=?@H
 tQqT1Q41&!A$!!ad|(DEF<OPTV[<_`<_SI0C00<_`dooooT5!X---'454qCF45??? z!A$"AadFQqtVO4z!A$"AaD1QqT6MA$56z!A$"AaD)z!A$"AaD!GadN35D qtbdT!WRZ\)DGHQsAqD57TRSWUVYCV?W=WXY=Y\]^acdfgcgbghibiQ	c _ ]] >5! -!!"-# #%-d1gaiQTE!Gd1gai<O8P.PQR.RUYZ[U\]^U^_bdeghdhchijcjQ	d ` VV /&!!"&##$'1Qa(:$;<?A!td1gbjQRl?RUYZ[U\]efghkmnpqmqlqrslsq'!)m i gg!"31uQwa':#;!;A!=g>?@^B VBBCVD @DFNtTUwWXyY\^_ab^b]bcd]dgklmgnopgp]pYqOqrsOsq'!)CAa$q'!) 344Q6P789G;;<G=@=>A!Q$q&4PQ7ST9BT>U?VV W
 qttAwhrk!mbd*XaQTE!Gd1gai<O8P6PQR6RUVWZ\]_`\`[`ab[beijkelmnen[nWoUopqUq6qst-uvw-wwQa31uQwa/B+C!CA!EQPQ	RUWXZ[W[V[\]V]`def`ghi`iViRjHjklHl!l !Q$q&4719,-.15aA11DxPQRUWXZ[W[V[\]V]`def`ghi`iViRjPjklPl#q!teAgQ	)**1,Q-./H112H3 2359!WXd1gaiPSUVXYUYTYZ[T[^bcd^efg^gTgPhFhijFjQ	#q!teAgQ	12214G567>9 699:6;2;<?1QaQR@R<S1TT U
 qtRAYqtRAYQ"SAa$q'!)9K5L2LQ2NQSTWXY[\X\]^X^aefgahijajXjTkQklmQm2mQ
3q!tAvQ	12214357;Awrz#ad1ftTUwWXyFXBY7YZ[7[3\^bcd^efijkmnjnopjpQ	k g _#Ac1a4%'DGAI*=&>$>q$@1S!Q$qSWXYSZ[\S\I\E]C]^_C_$_abc_dde_f3fhklmoplpqrlrQ	m i#DGAIc1a4%'DGAI2E.F$Fq$H4PQ7ST9UXZ[]^Z^Y^_`Y`cghicjklclYlUmKmnoKo$oii3 Aws1a46DGAI#566x#q!teAgPTUVPWXYPYFYBZ@Z[\@\_`adfgijfjejklelQ	f b `` A8! !!"#	3#
 &)Aa$q'!));%<Xd1gaiPSUVXYUYTYZ[T[^bcd^efg^gTgPhFhijFjQ	#q!teAgQ	12214G567>9 &99:&;3; >?2? @CA2w2G IJ)K "K K LMD$ r*QqT1"5q1v!A$Gz!A$*AadFQJ1,=>@ Ar*QqT1"5qtQw1~FHIK :adA#6! =?@BDK 1!vqtadVQqT35!A$1G1r*QqT1-q1v!A$?!bAaD!,a!fqj1Q4.?@!bAaD!,ad3!bAaD!,adAg!n=?@H
 tQqT1Q41&!A$!!ad|adAaD\(RSF<OPTV[<_`<_SE0C00<_`dooooT5!X---(3HQK(@A(@WCL(@AVKKKE:tfDDD$%$)====z!A$"AadFQqtVO4z!A$"AadFQqTM2z!A$"AaD)z!A$"AaD!GadN35D qtbdT!WRZ\)3q!tAvQ	/A+BBbdTRSWUWZXY\FY[^_`bc_cde_ehlmnhopqhq_q[rErrsqttAwhrk!mbd*C1Qa0B,CCtAwrzRS|VXYZVZGZ\_`acd`def`fimnoipqrir`r\sFsstqtRAYqtRAYQ"SAa$q'!)9K5L2LQ2NQSTWXY[\X\]^X^aefgahijajXjTkQklmQm2mQ
3q!tAvQ	12214357;Awrz#ad1ftTUwWXyFXBY7YZ[7[3\^_2``cefdf`g2hij)l "l l mnD
 r*QqT1"5q1v!A$Gz!A$*AadFQqTM:< =r*QqT1"5qtQw1~FHIK :adA#6! =?@BDK 1!vqtadVQqT35!A$1G1r*QqT1-q1v!A$?!bAaD!,a!fqtm<!bAaD!,ad3!bAaD!,adAg!n=?@H
 tQqT1Q41&!A$!!ad|adAaD\(RSF<OPTV[<_`<_SE0C00<_`dooooT5!X---(3HQK(@A(@WCL(@AVKKKE:tfDDD$%$)====s ]A. aA. a5L aA0 aAsJ    ArAr;ArAr"Ar'Ar,YAr1ZAr6pAr;qAs c                  &  ^^^^^^^^ [        S5      u  mn m[        S[        S9u  pn[        [        U4S j5        [        [        UU4S j5        [	        SS/SS/SS	//5      m[        [
        UU4S
 j5        [	        / SQ/ SQ/5      m[        [
        UU4S j5        U" T5      U" T5      /n[        U" T5      R                  T5      U" T5      R                  T5      -   U" T5      5      [        U" T5      R                  T5      U" T5      5      /n[        XTT5      n[        US   UTS5      u  u  mpxUn	[        [        SS5      * [        S5      S-  -   -  [        T[        SS5      * [        S5      S-  -   -  5      -  [        [        S5      * S-  [        SS5      -
  -  [        T[        S5      * S-  [        SS5      -
  -  5      -  -   [        [        T[        SS5      * [        S5      S-  -   -  5      -  [        [        T[        S5      * S-  [        SS5      -
  -  5      -  -   /n
[        [!        U	T5      [#        U6 R$                  S9U
:X  d   e[        [        U4S j5        [        [        UU4S j5        [        [        U4S j5        [        [        UU4S j5        [        [        U4S j5        [        [        UU4S j5        [	        SS/SS/SS	//5      m[	        TSTS-  /5      m[        [
        UUU4S j5        [	        / SQ/ SQ/5      m[	        TTS-  /5      m[        [
        UUU4S j5        [        [        UUU4S j5        [        [        UUU4S j5        [	        SS/SS//5      m[	        ST-  S-
  ST-  S-
  /5      m[        [        T-  -   [        -   STS-  -  -
  STS-  -  -   TSTS-  -  ST-  -
  -  -   ST-  -
  [        [        T-  -   STS-  -  -
  STS-  -  -
  TSTS-  -  ST-  -
  -  -   ST-  -
  /n[        [!        TTTS S!S"9T/S9U:X  d   eU" T5      U" T5      /n[        U" T5      R                  T5      U" T5      R                  T5      -   U" T5      T-   5      [        U" T5      R                  T5      U" T5      5      /n[        XTT5      n[        US   UTS5      u  u  mpxUn	[        * [        T* S-  [        S5      T-  S-  -   5      -  S-  [        S5      [        -  [        T* S-  [        S5      T-  S-  -   5      -  S-  -   [        S5      [        -  [        [        S5      * T-  S-  TS-  -
  5      -  S-  -
  [        [        [        S5      * T-  S-  TS-  -
  5      -  S-  -
  [        T* S-  [        S5      T-  S-  -   5      ['        T[        [        S5      * T-  S-  TS-  -   5      -  S#[        S5      -   -  [        S5      T-  [        [        S5      * T-  S-  TS-  -   5      -  S#[        S5      -   -  -
  T5      -  S-  -
  [        S5      [        T* S-  [        S5      T-  S-  -   5      -  ['        T[        [        S5      * T-  S-  TS-  -   5      -  S#[        S5      -   -  [        S5      T-  [        [        S5      * T-  S-  TS-  -   5      -  S#[        S5      -   -  -
  T5      -  S-  -   [        S5      [        [        S5      * T-  S-  TS-  -
  5      -  ['        [        S5      * T-  [        TS-  [        S5      T-  S-  -   5      -  S-  T5      -  S-  -
  [        [        S5      * T-  S-  TS-  -
  5      ['        [        S5      * T-  [        TS-  [        S5      T-  S-  -   5      -  S-  T5      -  S-  -
  [        [        T* S-  [        S5      T-  S-  -   5      -  [        [        [        S5      * T-  S-  TS-  -
  5      -  -   [        T* S-  [        S5      T-  S-  -   5      ['        T[        [        S5      * T-  S-  TS-  -   5      -  S#[        S5      -   -  [        S5      T-  [        [        S5      * T-  S-  TS-  -   5      -  S#[        S5      -   -  -
  T5      -  -   [        [        S5      * T-  S-  TS-  -
  5      ['        [        S5      * T-  [        TS-  [        S5      T-  S-  -   5      -  S-  T5      -  -   /n
[        [!        U	TUS$9T/S9U
:X  d   e[        * [        T* S-  [        S5      T-  S-  -   5      -  S-  [        S5      [        -  [        T* S-  [        S5      T-  S-  -   5      -  S-  -   [        S5      [        -  [        [        S5      * T-  S-  TS-  -
  5      -  S-  -
  [        [        [        S5      * T-  S-  TS-  -
  5      -  S-  -
  [        [        T* S-  [        S5      T-  S-  -   5      -  [        [        [        S5      * T-  S-  TS-  -
  5      -  -   /n[        [!        U	TS S%9T/S9U:X  d   e[        [        U4S& j5        [        [        UU4S' j5        [	        ST/T* S//5      m[)        TT5      u  mn[        [
        UUU4S( j5        [        [        UU4S) j5        [	        TTT/TTT/TTT//5      m[)        TT5      u  mn[        [
        UUU4S* j5        [        [        UU4S+ j5        [        [        UUU4S, j5        [        [        UUU4S- j5        [        [        UUU4S. j5        U" T5      U" T5      /n[        U" T5      R                  T5      U" T5      TU" T5      -  -   5      [        U" T5      R                  T5      T* U" T5      -  U" T5      -   5      /n[        XTT5      n[        US   UTS5      u  u  mpxUn	[        S-  [*        [        -  S-  -
  [        [*        TS-  -  S-  T-   5      -  [        S-  [*        [        -  S-  -   [        [*        * TS-  -  S-  T-   5      -  -   [*        * [        -  S-  [        S-  -   [        [*        * TS-  -  S-  T-   5      -  [*        [        -  S-  [        S-  -   [        [*        TS-  -  S-  T-   5      -  -   /n
[        [!        U	T5      [#        U6 R$                  S9U
:X  d   e[        [!        U	TS/S%9[#        U6 R$                  S9U
:X  d   e[	        TS/TS//5      m[        [,        UU4S0 j5        [        [        U4S1 j5        [        [        UU4S2 j5        [        [        U4S3 j5        [        [        UU4S4 j5        [        [        U4S5 j5        [        [        UU4S6 j5        [	        ST/T* S//5      m[	        TTS-  /5      m[)        TT5      u  mn[        [
        UUU4S7 j5        [	        TTT/TTT/TTT//5      m[	        TSTS-  /5      m[)        TT5      u  mn[        [
        UUU4S8 j5        [        [        UUU4S9 j5        [        [        UUU4S: j5        [        [        UUUU4S; j5        [        [        UUUU4S< j5        U" U 5      U" U 5      U" U 5      /n[        U" U 5      R                  U 5      X" U 5      U" U 5      -   U" U 5      -   -  U -   5      [        U" U 5      R                  U 5      X" U 5      U" U 5      -   U" U 5      -   -  U -   5      [        U" U 5      R                  U 5      X" U 5      U" U 5      -   U" U 5      -   -  S-   5      /n[        XTU 5      n[        US   X@S5      u  u  mpxUn	[        S=U S-  -  S-  5      n[        SU S-  -  S-  5      n['        SU-  U -  S-  US-  -   U S-  -   [        SS5      -
  U 5      nSU-  U-  S-  n['        SU-  U -  S-  US-  -   SU -  S-  -
  [        SS5      -   U 5      n[        U-  S-  [        S-  -
  [        U-  S-  -   [        S-  -
  [.        U-  S-  -   S[.        -  S-  -   UU-  S-  -   US-  -   U-   US-  -
  [        U-  S-  S[        -  S-  -   [        U-  S-  -   [        S-  -
  [.        U-  S-  -   [.        S-  -
  UU-  S-  -   US-  -   U-   US-  -
  [        U-  S-  [        S-  -
  [        U-  S-  -   S[        -  S-  -   [.        U-  S-  -   [.        S-  -
  UU-  S-  -   SU-  S-  -
  U-   SU-  S-  -   /n
[        [!        XUS$9[#        U6 R$                  S9U
:X  d   e[        [!        XUS>S?9[#        U6 R$                  S9U
:X  d   e[	        TS/TS//5      m[        [,        UUU4S@ j5        [        * S-  [        S-  -
  S[.        -  S-  -   [        S-  [        S-  -   [.        S-  -   [        SU S-  -  S-  5      -  -   S[        -  S-  [        S-  -
  [.        S-  -
  [        S-  [        S-  -   [.        S-  -   [        SU S-  -  S-  5      -  -   [        * S-  S[        -  S-  -   [.        S-  -
  [        S-  [        S-  -   [.        S-  -   [        SU S-  -  S-  5      -  -   /n[        [!        XS>S!SA9[#        U6 R$                  S9U:X  d   eg )BNzt x ar   r9   c                     > [        ST 5      $ r   r%   r;   s   rI   rJ   "test_linodesolve.<locals>.<lambda>w      {1a0rL   c                     > [        T T5      $ r   r  r   r;   s   rI   rJ   r  x  r  rL   r=   r<   r@   r`   c                     > [        T T5      $ r   r  r   r;   s   rI   rJ   r  {      R);rL   )r=   r<   r=   )r?   r=   r<   c                     > [        T T5      $ r   r  A2r;   s   rI   rJ   r  ~  r  rL   r   rA   )	variablesc                  4   > [        ST [        T S-   /5      S9$ Nr=   r   r%   r   r  s   rI   rJ   r    s    {1a61Q3%=ArL   c            
      X   > [        T T[        [        T5      [        T5      -   /5      S9$ Nr  r%   r   r   r   r  s   rI   rJ   r    s"    {1a63q6CF?:K3LMrL   c                  4   > [        [        S/5      T T S-  S9$ Nru   r<   r  r  r  s   rI   rJ   r    s    {61#;QTBrL   c                  ^   > [        [        T S-   /5      T[        T5      [        T5      -  S9$ Nr   r  r%   r   r   r   r  s   rI   rJ   r    s$    {61R4&>1As1vNrL   c                      > [        ST T S-  S9$ r  r  r  s   rI   rJ   r    s    {1a1a48rL   c                  D   > [        T T[        T5      [        T5      -   S9$ r  r%   r   r   r  s   rI   rJ   r    s    {1a3q6CF?CrL   c                     > [        T TTS9$ r  r  r   b1r;   s   rI   rJ   r        Rb)ArL   c                     > [        T TTS9$ r  r  r  b2r;   s   rI   rJ   r    r  rL   c                  ,   > [        T S S2S S 24   TTS9$ Nr<   r  r  r  s   rI   rJ   r    s    {2bqb!e9a2>rL   c                  2   > [        T S S2S S 24   TTS S S9$ )Nr<   r=   r  r  r  s   rI   rJ   r    s     {2bqb!e9a2bq6BrL   r>   r   r   r   r?   r   T)r   typer  r{   r  )r  c                  "   > [        T S-   T 5      $ )Nr   r  r  s   rI   rJ   r    s    {1R43rL   c                  "   > [        T T-  T5      $ r   r  r  s   rI   rJ   r    s    {1Q32rL   c                  ,   > [        T S S 2S S24   TTS9$ Nr=   Br  )r   B1r;   s   rI   rJ   r        R2A2YR)HrL   c                     > [        T TSS9$ r  r  r  s   rI   rJ   r        {2qA6rL   c                  ,   > [        T TTS S2S S 24   S9$ Nr<   r  r  r  B2r;   s   rI   rJ   r    s    Rb!Qi)HrL   c                     > [        T TSS9$ r  r  r  s   rI   rJ   r    r  rL   c                     > [        T TTSS9$ )Ntype31)r  r  r  r  s   rI   rJ   r    s    {2qBXFrL   c                     > [        T TTS9$ Nr  r  )r   r   r;   s   rI   rJ   r        {2qB7rL   c                     > [        T TTS9$ r  r  )r  r  r;   s   rI   rJ   r    r  rL   r   c                     > [        T T5      $ r   r  r  s   rI   rJ   r    s    B(:rL   c                  :   > [        T S-   T [        T S-   /5      S9$ )Nr   r=   r  r  r  s   rI   rJ   r    s    {1R4facUmDrL   c            
      ^   > [        T T-  T[        [        T5      [        T5      -   /5      S9$ r  r  r  s   rI   rJ   r    s&    {1Q3VSVc!f_<M5NOrL   c                  :   > [        [        ST -  /5      T T S-  S9$ r  r  r  s   rI   rJ   r    s    {61Q3%=!q!tDrL   c            	      v   > [        [        T S[        T5      -  -   /5      T[        T5      [        T5      -  S9$ r  r  r  s   rI   rJ   r    s0    {61r#a&y=/+BAQPSTUPVWrL   c                  &   > [        ST -  T T S-  S9$ r  r  r  s   rI   rJ   r    s    {1Q3QT:rL   c                  P   > [        T TS-  -  T[        T5      [        T5      -   S9$ r  r  r  s   rI   rJ   r    s"    {1QT61AQHrL   c                  ,   > [        T S S 2S S24   TTS9$ r  r  r  s   rI   rJ   r    r  rL   c                  ,   > [        T S S2S S 24   TTS9$ r  r  r  s   rI   rJ   r    s    RAYR)HrL   c                     > [        T TTS9$ r  r  )r   r  r;   s   rI   rJ   r    r  rL   c                     > [        T TTS9$ r  r  )r  r  r;   s   rI   rJ   r    r  rL   c                     > [        T TTTS9$ N)r   r  r  )r   r   r  r;   s   rI   rJ   r        {2qB"=rL   c                     > [        T TTTS9$ r  r  )r  r  r  r;   s   rI   rJ   r    r  rL   rC   r   )r   r  c                     > [        T TTS9$ r  r  r  s   rI   rJ   r    s    BR(@rL   )r  r  )r   r   r/   r   r   r   r
   r   r&   r    r   r   r   r   r   r   r%   r   free_symbolsr-   r$   r   NotImplementedErrorr,  )r3   r4   r5   r6   rj   ri   ceqr   r   r   r]  r   __x1_x2_x3_x4_x5r   r  r  r   r   r  r  r;   s                     @@@@@@@@rI   test_linodesolver!  r  s1   gGAq!g8,GA! :01
:01	!Q!Q!Q(	)B
!;<	I&	'B
!;< aD!A$<D
QqTYYq\AaDIIaL(!A$
/AaDIIaL!A$1G	HB
1
%C&s1vtQ:KHR
AAa*+CHQN?T!WQY3N0O,PPSUX\]^X_W_`aWadlmnpqdrWrSsq47(1*x1~-./T0 0c!hq!n_tAwqy0122RAQxzHUVXYN?Z<[8\5\\^C [A.%*:Q:QRVYYYY :AB
:MN
:BC
:NO
:89
:CD	!Q!Q!Q(	)B	Aq!t	B
!AB	I&	'B	AqD		B
!AB
:>?
:BC 
!R1b'"	#B	ACEAI&	'BAINR1W$r!Q$w.Bq!tGacM1BBRTIAI1a4!AqD&(1bAg!m+<<qsBDD[Q"7N()s,/34 4 4 aD!A$<D
QqTYYq\AaDIIaL(!A$(
3R!		!ad5K	LB
1
%C&s1vtQ:KHR
A3sA2a4$q'!)A+%&&q(472:c1"Q$a1:L6M+Ma+OORVWXRYZ\R\]`bfghbiaijkaklmam
A#b ^ SS c47(1*Q,1,--a/025qbdT!WQYq[6H2I(STUXZ^_`ZaYabcYcdeYe
A#Z V TT!WT $Q	#tAwhqjlQqS.@*A A2Q< PTQRSKU 3UUV3WWY]^_Y`adfgeghiei
q'!)A+f b Z#tAwhqjlQqS&8"9 92Q< H4PQ7ST9UXZ^_`ZaYabcYcdeYe
A#Z V LT!WL ! "Z""#Z$$ '+1gc47(1*Q,12D.E&EhPTUVPWxXYzZ]^_`a^a
q'!)A+_ [ PPG ''	
 "%d1gXaZ\AaC%7!847(1*SQRSTQTW[\]W^_`W`abWbQbMcBcdeBegh9i!ijk!kl 
C1tAwqy{"#	#bd1gXaZ\AaC-?)@&@	@3r!t
q'!)A+H D#tAwhqjlQqS&8"9 92Q< H4PQ7ST9UXZ^_`ZaYabcYcdeYe
A#Z V LT!WL ! "D" 
"$'a
1c) %T!WHQJs1Q3a1+<'==a?C%D
D	EC [A3sCsJJJ CQBqD4719Q;&'')DGBJsA2a4$q'!)A+;M7N,Nq,PPSWXYSZ[]S]^acghicjbjklblmnbnA#c _ TT c47(1*Q,1"455a78sA2a4$q'!)A+%&&Ca
1qs0B,C)CCED [AG<LPTTTT :34
:23	!Q1"a!	"B+B2EB
!HI
:67	!QQ1I1ay1	2B+B2EB
!HI
:67
:FG
:78
:78 aD!A$<D
QqTYYq\1Q4!AaD&=
)2adiilQBqtGadN+K	LB
1
%C&s1vtQ:KHR
AqD1R46M3qAvax!|,,1qtAvsA2ad719q=?Q/QQBrE!GbdNC1a4	A..!B$q&2a4-Qq!tVAXPQ\AR1RRTC[A.%*:Q:QRVYYYY[AG<r
H_H_`dgggg	!Q!R!	"B
 :; :DE
:OP
:DE
:WX
::;
:HI	!Q1"a!	"B	AF	B+B2EB
!HI	!QQ1I1ay1	2B	Aq!t	B+B2EB
!HI
:78
:78
:=>
:=> aD!A$!D
QqTYYq\1adQqTkAaD01A5
6
QqTYYq\1adQqTkAaD01A5
6
QqTYYq\1adQqTkAaD01A5
6
8B 1
%C&s1vt:KHR
A
bAgai.C
a1fQh-C
1S5719s1u$qs*Xa^;Q
?C
C%)A+C
1S5719s1u$qs1u,x1~=q
AC
3q2a4"S&("RT)BsF1H4qtAv=C	ICPQEQTWWZ]^_Z__
3q1R46BsF1H$r!t+bfQh6A=C	ICPQEQTWWZ]^_Z__
3q2a4"S&("QrT!V+bfQh6A=C	IAcERSGSVYY\]^a\abc\ccC
 [3ubz?V?VW[^^^^[A',bz'>'>@CFG G G 
!Q!R!	"B
 @A CEBqDL1R46!RTBqD[2a4%7Qq!tVAX$FF"QQSTUQUXZ[\X\H\`bcd`dgijkgk`knpqrnr`rtwxyz{}~z~x~  @A  yA  uB  `B  IBCEAbDFNRT!RTBqD[2a4%7Qq!tVAX$FFHD[G$GSXZ\S]SjSjkossssrL   c            
      |   [        S[        S9u  pn[        S5      nUS-  [        U5      -   nUS-  [	        U5      -   n[        [        U " U5      U5      SU-  U-   U " U5      -  XA" U5      -  -
  SU-  U" U5      -  -
  5      [        [        U" U5      U5      SU-  U " U5      -  XE-   U" U5      -  -   SU-  U" U5      -  -
  5      [        [        U" U5      U5      SU-  U " U5      -  XA" U5      -  -   SU-  U-   U" U5      -  -   5      4n[        S	5         [        U5        S S S 5        g ! , (       d  f       g = f)
Nx, y, zr9   r;   r?   r<   r@   rA   rC   T)	r   r   r   r   r   r
   r   r   r   )r3   r   r   r;   r4   r5   r   s          rI   !test_linear_3eq_order1_type4_slowr$    sI   iX.GA!sA	QQA	QQAd1Q4ma!eai1Q4/!ad(:QUQqT\IJ4!a=!a%!A$,!%1Q4"?!a%!A$,"NOQSTXYZ[\Y]_`Tacdghchklmnkocorsvw	w s d1fqjAaD d! R"#C 
T	s 
		s   D--
D;c                  n   [        S5      u  pp#pE[        S5      n[        S5      nX-  [        U" U5      U5      -  U" U5      -   U" U5      -
  X-  -
  nX2-  [        U" U5      U5      -  X4-  [        U" U5      U5      -  -   U" U5      -   X0-  -
  n	X/n
[        U
SSS9u  n[	        X5      SSS/4:X  d   eg )Nzi, r1, c1, r2, c2, tr   r   Fr  Tr   )r   r   r   r'   r   )r   r1c1r2c2r;   r   r   r   r   ri   r]  s               rI   "test_linear_neq_order1_type2_slow1r*  '  s    "#9:A22	$B	$B
%
2a5!$
$r!u
,r!u
4rt
;C
%
2a5!$
$ruZ1q-A'A
ABqE
IBD
PC
B "u59ES""taVn444rL   c            	         [        SSS9n [        SSS9n[        SSS9n[        SSS9u  p4n[        SSS9u  pgn[        S[        SS	9u  pnU* U-  U [        U	" U5      U5      -  -   X* U" U5      -  X" U5      -  -   -  -
  U* U-  U [        U
" U5      U5      -  -   XU" U5      -  X" U5      -  -
  -  -
  U* U-  U [        U" U5      U5      -  -   X* U
" U5      -  Xy" U5      -  -   -  -
  /n[	        U5      n[        X5      S/ S
Q4:X  d   eg )Nr  Tr  qr;   ze1:4zb1:4zv1:4)r:   r  rB   )r   r   r   r   r   r   )r  r,  r;   e1e2e3r  r  b3v1v2v3eqsr]  s                 rI   2test_linear_new_order1_type2_de_lorentz_slow_checkr5  8  s9   sAsAsAd+JBBd+JBBXD9JBB 
A*RUA&&&C1I2a5,@)AA	A*RUA&&&r!uHr"Q%x,?)@@	A*RUA&&&C1I2a5,@)AAC
 +C##i'8888rL   c            	         [        S5      u  pp#pEpg[        S5      n[        S5      n	[        U" U5      R                  U5      SU -  U" U5      -  U	" U5      U-  -   5      [        U	" U5      R                  U5      U* U-  U	" U5      -  SU-  U" U5      -  -
  X4-  -   5      /n
[	        U
SSS9u  n[        X5      SS	S	/4:X  d   eg )
NzRC t C Vs L R1 V0 I0Vr   r>   r=   Fr  Tr   )r   r   r
   r   r'   r   )RCr;   CVsLR1V0I0r7  r   systemr]  s               rI   'test_linear_neq_order1_type2_slow_checkr@  M  s    ")*@"AB1!AA11r"uQqTzAaDF23R!		!rc!eAaDjSTUVSVWXYZW[S[F[^`^bFb5cdF&5u=ES&&4!Q.888rL   c            
      
   [        S[        S9u  pn[        S5      nUS-  [        U5      -   nUS-  [	        U5      -   n[        [        U " U5      U5      SU-  U-   U " U5      -  XA" U5      -  -
  SU-  U" U5      -  -
  5      [        [        U" U5      U5      SU-  U " U5      -  XE-   U" U5      -  -   SU-  U" U5      -  -
  5      [        [        U" U5      U5      SU-  U " U5      -  XA" U5      -  -   SU-  U-   U" U5      -  -   5      4n[        U5      nU Vs/ s H  n[        U5      PM     n	n[        US	-  * S
US-  -  [        U5      -  -
  S
US-  -  -   S[        U5      S-  -  -
  S[        U5      -  -   S-
  5      n
[        S5      nS[        -  U
-  U-  S[        -  U
-  U-  -   S[        -  U
-  U-  -
  nSSUS-  -  SU
-  U-  -   S[        U5      -  -   S-
  -  n[        US-  S-  X:-  U-  S-  -   [        U5      -
  5      n[        US-  S-  X:-  U-  S-  -
  [        U5      -
  5      n[        US-  S-  US-  S-  -   SU-  [        U5      -  -   SU-  -
  [        U5      -
  5      nS[        -  U
-  U-  S[        -  U
-  U-  -   S[        -  U
-  U-  -
  nSSUS-  -  SU
-  U-  -
  S[        U5      -  -   S-
  -  nS[        -  S-  S[        -  S-  -   S[        -  S-  -
  X-  -
  nS[        -  S-  S[        -  S-  -
  S[        -  S-  -   X-  -   n[        U " U5      UU-  UU-  -   U[        [        -
  -  -   5      [        U" U5      UU-  UU-  -   5      [        U" U5      US[        -  S-  S[        -  S-  -
  S[        -  S-  -   UU-  -
  -  US[        -  S-  S[        -  S-  -   S[        -  S-  -
  UU-  -   -  -   U[        [        -
  -  -   5      /nX:X  d   e[        Xi5      S/ S Q4:X  d   eg s  snf )!Nr#  r9   r;   r?   r<   r@   rA   rC   r`   r   r   r~   l   XW` l   Rl+p r=   istql   +RH l   ,N ifd i i  i ieb  i  i;:i1  iXi     i  TrB   )r   r   r   r   r   r
   r   r   r#   r   r   r   r,  r   r   r   )r3   r   r   r;   r4   r5   r   
dsolve_solr]  dsolve_sol1x_1x_2x_3x_4x_5x_6x_7x_8x_9x_10x_11s                        rI   _linear_3eq_order1_type4_longrP  X  s   iX.GA!sA	QQA	QQAd1Q4macAgqt^a!f4qs1Q4x?@d1Q4mQqS1X!4qs1Q4x?@"T!A$PQ]TUVWTWXYZ[X\T\_`ab	b ` UdQh!_U CC J,67JS8C=JK7
1uqAvc!f}$qAv-3q619<r#a&yH2M
NC
q'C
R-
C
*R-"3C"7
7*R-:KC:O
OC
z!Q$C!33jQ6GG*T
UC
ad1fquSy{"SV+
,C
ad1fquSy{"SV+
,C
ad1fq!tAvo!CF
*QqS03q69
:C
(3,s
U2Xc\#-
-bS0@
@C
uQTzE#IcM)F3q6M9FB
CC2:b.r%?#'ID"9U?U2Xe^+eBhun<swFDadDHtCx'#rBw-78"QqT48dSVhCV:WY[\]^_\`beGCK#b&*$s2vcz1CG;c=?BCF3JQTUWQWX[Q[D[F3JESE! @"c"$'bMc2 Z3 4C #+i/@@@@% 8s   P c            	      l   [        S[        S9u  p[        S5      n[        [        U " U5      U5      X " U5      -  US-  U" U5      -  -   U-   5      [        [        U" U5      U5      SUS-  -  U " U5      -  USUS-  -  -   U" U5      -  -   S-   5      /n[	        U5      n[        X45      SSS/4:X  d   eg )	Nr   r9   r3   r<   r?   r=   Tr   )r   r   r
   r   r   r   r4   r5   r3   r4  r]  s        rI   !test_neq_order1_type4_slow_check1rS  y  s    5h'DAAd1Q4mQqtVad1Q4i/!34d1Q4mQq!tVAaD[A!Q$J!+<<q@ACC
+C##q!f~555rL   c            	         [        S[        S9u  pn[        S5      n[        [	        U " U5      U5      X2" U5      -  U " U5      -   U" U5      -   S-   5      [        [	        U" U5      U5      X1" U5      -  U " U5      -   U" U5      -   S-   5      [        [	        U" U5      U5      X0" U5      -  U-   U" U5      -   U" U5      -   5      /n[        S5         [        U5      nS S S 5        [        UW5      S/ SQ4:X  d   eg ! , (       d  f       N%= f)Nr8   r9   r3   r=   r   TrB   )r   r   r   r
   r   r   r   r   )r4   r5   r6   r3   r4  r]  s         rI   !test_neq_order1_type4_slow_check2rU    s    iX.GA!sA 	:adA!A$1! 4q 89
:adA!A$1! 4r 9:
:adA!A$
QqT 1AaD 89C
 
T	Sk 
#s#i'8888 
	s   C==
Dc                  <   [        S[        S9u  p[        S5      n[        [        U " U5      U5      X " U5      -  U" U5      -   [	        U5      -   5      [        [        U" U5      U5      US-  X!" U5      -  -   U " U5      -
  5      /n[        U " U5      [
        S-  [        [        -  S-  -
  [        [        US-  [        US-  * S-  [        U-  -
  5      -  S-  US-  [        US-  * S-  [        U-  -   5      -  S-  -   [        [        US-  * S-  [        U-  -
  5      -  [	        U5      -  S-  -   [        [        US-  * S-  [        U-  -   5      -  [	        U5      -  S-  -
  U5      -  S-  -
  [        [        * US-  -  [        US-  * S-  [        U-  -
  5      -  S-  [        US-  -  [        US-  * S-  [        U-  -   5      -  S-  -   [        US-  * S-  [        U-  -
  5      [	        U5      -  S-  -   [        US-  * S-  [        U-  -   5      [	        U5      -  S-  -   U5      S-  -   [        US-  S-  [        U-  -   5      -  [
        S-  [        [        -  S-  -   [        [        US-  [        US-  * S-  [        U-  -
  5      -  S-  US-  [        US-  * S-  [        U-  -   5      -  S-  -   [        [        US-  * S-  [        U-  -
  5      -  [	        U5      -  S-  -   [        [        US-  * S-  [        U-  -   5      -  [	        U5      -  S-  -
  U5      -  S-  -   [        [        * US-  -  [        US-  * S-  [        U-  -
  5      -  S-  [        US-  -  [        US-  * S-  [        U-  -   5      -  S-  -   [        US-  * S-  [        U-  -
  5      [	        U5      -  S-  -   [        US-  * S-  [        U-  -   5      [	        U5      -  S-  -   U5      S-  -   [        US-  S-  [        U-  -
  5      -  -   5      [        U" U5      [        * [
        -  S-  [        S-  -   [        US-  [        US-  * S-  [        U-  -
  5      -  S-  US-  [        US-  * S-  [        U-  -   5      -  S-  -   [        [        US-  * S-  [        U-  -
  5      -  [	        U5      -  S-  -   [        [        US-  * S-  [        U-  -   5      -  [	        U5      -  S-  -
  U5      S-  -   [        [        [        * US-  -  [        US-  * S-  [        U-  -
  5      -  S-  [        US-  -  [        US-  * S-  [        U-  -   5      -  S-  -   [        US-  * S-  [        U-  -
  5      [	        U5      -  S-  -   [        US-  * S-  [        U-  -   5      [	        U5      -  S-  -   U5      -  S-  -
  [        US-  S-  [        U-  -
  5      -  [        [
        -  S-  [        S-  -   [        US-  [        US-  * S-  [        U-  -
  5      -  S-  US-  [        US-  * S-  [        U-  -   5      -  S-  -   [        [        US-  * S-  [        U-  -
  5      -  [	        U5      -  S-  -   [        [        US-  * S-  [        U-  -   5      -  [	        U5      -  S-  -
  U5      S-  -   [        [        [        * US-  -  [        US-  * S-  [        U-  -
  5      -  S-  [        US-  -  [        US-  * S-  [        U-  -   5      -  S-  -   [        US-  * S-  [        U-  -
  5      [	        U5      -  S-  -   [        US-  * S-  [        U-  -   5      [	        U5      -  S-  -   U5      -  S-  -   [        US-  S-  [        U-  -   5      -  -   5      /nX44$ )Nr   r9   r3   r<   )
r   r   r
   r   r   r   r   r   r-   r   rR  s        rI   _neq_order1_type4_slow3rW    s   5h'DAA 	:adA!A$1A 67
:adA1q1v! 45C
 	1Q4"Q$2a-!HQT#q!teAg!m2D-DQ-FqDadU1Wqs]##A%.&()#q!teAg!m*<(<SV(CA(E.Fc1a4%'AaC-  Q').*+,%. #../#0 02:A2ad731uQwcH D <<Avc1a4%'AaC-002<358!Q$qaC: 6Q66<Aa!A#.s1v5a7<89:3<<=3>> @C1a46aCD @	
 qD1R46MAhq!tCAa!A#4F/Fq/HqDadU1Wqs]##A%0&()#q!teAg!m*<(<SV(CA(E0Fc1a4%'AaC-  Q')0*+,'. %../%0 02:A2ad731uQwcH D <<Avc1a4%'AaC-002<358!Q$qaC: 6Q66<Aa!A#.s1v5a7<89:3<<=3>> @C1a46aCD @	
 
	 	1Q41"R%'BqD.8AqDadU1Wqs]1C,CA,EqDadU1Wqs]##A%-&()#q!teAg!m*<(<SV(CA(E-Fc1a4%'AaC-  Q')-*+,$../$0 0 hr!Q$wsAqD57QqS=11!3a1fS!Q$qaCB > 77 !Q$q1Q3'A.q01361uQwaC8 4Q44   
 "%QT!Vac\!23
 78d1fr!tmQT#q!teAg!m,,Q.Ac1a4%'AaC-6H1H1JJc1a4%'AaC-  Q')*,-c1a4%'AaC-.@,@Q,G,IJ7 XqbAgc1a4%'AaC-&88:adF31uQw1}%%a'(*-q!teAg!m*<SV*CA*EFAa!A#s1v%a'()*, ,,-.7.
 031a46AaC</@6A
A 
	BC2 8OrL   c                  @    [        5       u  p[        U SSS9U/:X  d   eg )NFr  )rW  r'   r4  r]  s     rI   test_neq_order1_type4_slow3rZ    s%    &(HCu59cUBBBrL   c                  F    [        5       u  p[        X5      SSS/4:X  d   eg )NTr   )rW  r   rY  s     rI   !test_neq_order1_type4_slow_check3r\    s'    &(HC##q!f~555rL   c                      [        5       u  p[        U 5      nU Vs/ s H  n[        U5      PM     nnUW:X  d   eg s  snf r   )rP  r   r#   ri   r]  rC  rD  s       rI   3test_linear_3eq_order1_type4_long_dsolve_slow_xfailr_    sB     ,-GBJ,67JS8C=JK7# 8s   <c                      [        5       u  p[        S5         [        U 5      nS S S 5        W Vs/ s H  n[        U5      PM     nnUW:X  d   eg ! , (       d  f       N2= fs  snf )NT)rP  r   r   r#   r^  s       rI   4test_linear_3eq_order1_type4_long_dsolve_dotprodsimpra    sY    +-GB 
T	BZ
 
 -77JS8C=JK7#	 
	 8s   AA!
Ac                  F    [        5       u  p[        X5      S/ SQ4:X  d   eg )NTrB   )rP  r   )ri   r]  s     rI   'test_linear_3eq_order1_type4_long_checkrc    s$    +-GB""tY&7777rL   c            
        ^^^^^^ [        S[        S9u  mm[        S5      m[        T" T5      R                  T5      T" T5      T" T5      -   5      [        T" T5      R                  T5      T" T5      T" T5      -   5      /mT" T5      T" T5      /m[        T" T5      [        * [
        [        ST-  5      -  -   5      [        T" T5      [        [
        [        ST-  5      -  -   5      //n [        TTTSS9U :X  d   e[        [        S 5        [        [        U4S j5        [        [        UU4S	 j5        [        [        UUU4S
 j5        [        T" T5      R                  T5      ST" T5      -  ST" T5      -  -
  5      [        T" T5      R                  T5      S-  ST" T5      -  ST" T5      -  -   5      4m[        [        U4S j5        [        [        UUUU4S j5        [        [        UUUU4S j5        [        [        UUUU4S j5        [        [        UUUU4S j5        [        [        UUU4S j5        [        [        UUUU4S j5        g )Nr   r9   r3   r<   T)rH   r;   r  c                      [        S5      $ r   r'   r   rL   rI   rJ   $test_dsolve_system.<locals>.<lambda>  s	    }Q/rL   c                     > [        T S5      $ r   rf  r4  s   rI   rJ   rg    s    }S!4rL   c                     > [        T TS5      $ r   rf  )r4  rH   s   rI   rJ   rg    s    }S%;rL   c                  $   > [        T TS S T5      $ r   rf  )r4  rH   r3   s   rI   rJ   rg    s    }S%)Q?rL   r_   r`   ra   r?   c                  $   > [        T 5      / / 4:H  $ r   rf  )ri   s   rI   rJ   rg    s    b(9b"X(ErL   c                  >   > [        T T" T5      T" T5      /S9/ / 4:H  $ )N)rH   rf  ri   r4   r5   r3   s   rI   rJ   rg    s$    b1qt(MRTVXQY(YrL   c                  @   > [        T T" T5      T" T5      /TS9/ / 4:H  $ )N)rH   r;   rf  rn  s   rI   rJ   rg    s'    b1qtPQ(RWY[]V^(^rL   c            
      b   > [        T T" T5      T" T5      /TT" S5      ST" S5      S0S9/ / 4:H  $ )Nr   r=   )rH   r;   ri  rf  rn  s   rI   rJ   rg    sB    b1qtPQXYZ[X\^_abcdaeghWi(joqsunv(vrL   c            	      D   > [        T TT" S5      ST" S5      S0S9/ / 4:H  $ )Nr   r=   )r;   ri  rf  rn  s   rI   rJ   rg    s,    bAAaD!QqTSTCU(V[]_aZb(brL   c                  B   > [        T T" S5      ST" S5      S0S9/ / 4:H  $ )Nr   r=   rh  rf  )ri   r4   r5   s   rI   rJ   rg    s)    bqtQ!a>P(QVXZ\U](]rL   c            	      `   > [        T T" T5      T" T5      /T" S5      ST" S5      S0S9/ / 4:H  $ )Nr   r=   )rH   ri  rf  rn  s   rI   rJ   rg    s?    b1qtSTUVSWYZ\]^_\`bcRd(ejlnpiq(qrL   )r   r   r
   r   r   r   r   r'   r/   r   r  )r]  ri   r4  r4   rH   r5   r3   s    @@@@@@rI   test_dsolve_systemrt    s   5h'DAqAadiilAaD1Q4K("QqTYYq\1Q4!A$;*G
HCqT1Q4LEqtbS2c!A#h;&'AaD"r#ac({2B)CD
ECEQT:cAAA
:/0
:45
:;<
:?@
QqTYYq\2!9q1Q4x/
0"QqTYYq\Q5FQqT	TUXYZ[X\T\H\2]	^B
 EF
 YZ
 ^_
 vw
 bc
 ]^
 qrrL   c                     [        S[        S9u  p[        S5      u  p#U " U5      R                  U5      U-
  U " U5      R                  U5      U-   /n[        [        5         [        U5        S S S 5        U " X#5      R                  U5      /n[        [        5         [        U5        S S S 5        U " X#5      R                  U5      U" U5      R                  U5      -   U" U5      R                  U5      /n[        [        5         [        U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   r9   x y)r   r   r   r/   r   r   )r4   r5   r3   r   r4  s        rI   test_dsolverw    s    5h'DA5>DAQ499Q<!QqTYYq\A-
.C	
	s 
 Q7<<?
C	
	s 
 Q7<<?1Q499Q<'11
6C	
	s 
	 
	 
	 
	s$   !DD+D<
D(+
D9<
E
c                     [        S[        S9u  p[        S5      n[        [        U " U5      X"5      [	        U5      US-  -   [        U " U5      U5      -  [	        U5      US-  -   S-  [        U" U5      U5      -  -   5      [        [        U" U5      X"5      [	        U5      US-  -   S-  [        U " U5      U5      -  [	        U5      US-  -   S-  [        U" U5      U5      -  -   5      /n[        USSS9u  nU H  nUR                  UR                  -
  R                  US	   R                  US	   R                  US
   R                  US
   R                  05      nUR                  UR                  [        5       Vs0 s H  owUR                  SS9_M     sn5      n[        UR                  US
5      5      S	:X  a  M   e   g s  snf )Nrv  r9   r;   r<   r?   ry   Fr  r   r=   )deep)r   r   r
   r   r   r'   lhsr   subsatomsr   r  r.   )r3   r   r;   ri   r]  eresro  s           rI   test_higher_order1_slow1r  	  s   5h'DAA 	4!Q>CF1a4Kad15s1vad{Aod1Q4PQl6RRS
4!Q>CF1a4K?4!Q<7Q1aQqTRS8TTU
B e%8DC uuquu}""CFJJs1vzz3q6::c!fjj#QRhhsyy7LM7L!166u6--7LMNsxx1~&!+++ Ms   ?G
c                     [        S[        S9u  pn[        S5      u  p4[        [        U " U5      US45      USU " U5      -  U" U5      -   -  5      [        [        U" U5      US45      X0" U5      * SU" U5      -  -   -  5      /n[        U " U5      [        [
        -  [        US[        -
  [        S5      S-  -  -  5      -  [        [        -  [        US[        -
  [        S5      S-  -  -  5      -  -   [        [        -  [        US[        -   [        S5      S-  -  -  5      -  -
  [        [        -  [        US[        -   [        S5      S-  -  -  5      -  -
  5      [        U" U5      [
        [        US[        -
  [        S5      S-  -  -  5      -  [        [        US[        -
  [        S5      S-  -  -  5      -  -   [        [        US[        -   [        S5      S-  -  -  5      -  -   [        [        US[        -   [        S5      S-  -  -  5      -  -   5      /n[        U5      U:X  d   e[        XV5      SSS/4:X  d   eg )	Nr#  r9   r  r<   r=   r?   Tr   )r   r   r
   r   r   r   r+   r   r   r,   r,  r-  r   r   )r3   r   r   r;   r   r   r   s          rI   test_second_order_type2_slow1r  	  s7   iX.GA!6?DAz!A$A'AadFQqTM):;z!A$A'QqTEAadFN);<>DqtQrT&AEQqT!V#4!455"VAq1uPQRSPTUVPVFWDW=X8XX[\]_[_`fghjkkA$q&j h a \ rT&AEQqT!V+<)<"==> ?qtRq!a%1Q46!2233b1q5AaDQRFBS@S9T6TTWYZ`abdehidimnopmqrsmsctatZuWuuq!a%1Q46**++, -.D $<4$%$A777rL   c                     [        S5      u  pnU [        [        5      R                  [        5      -  X-
  [	        [        5      -  [        [        5      -  -
  U[	        [        5      R                  [        5      -  X -
  [        [        5      -  [        [        5      -  -
  U[        [        5      R                  [        5      -  X-
  [        [        5      -  [	        [        5      -  -
  /n[        U5      (       d   eg )Nza b c)r   r4   r3   r   r5   r6   r   )r   r   r   r4  s       rI   test_nonlinear_3eq_order1_type1r  -	  s     gGA! 	
AaDIIaLAEQqT>AaD00	AaDIIaLAEQqT>AaD00	AaDIIaLAEQqT>AaD00C #;;;rL   c            
         [        [        [        5      R                  [        5      S[	        [        5      -  [        [        5      -  S[        [        5      -  [	        [        5      -  -
  5      [        [        [        5      R                  [        5      S[        [        5      -  [	        [        5      -  S[	        [        5      -  [        [        5      -  -
  5      [        [	        [        5      R                  [        5      S[        [        5      -  [        [        5      -  S[        [        5      -  [        [        5      -  -
  5      /n [        U 5        g Nr<   r?   r@   )r
   r4   r3   r   r6   r5   r   ri  s    rI   test_nonlinear_3eq_order1_type4r  ;	  s     	1Q499Q<!AaD&1+!A$qt35
1Q499Q<!AaD&1+!A$qt35
1Q499Q<!AaD&1+!A$qt35C
 3KrL   c            
         [        [        [        5      R                  [        5      S[        [        5      S-  -  S-
  5      [        [	        [        5      R                  [        5      SS[        [        5      -  -
  5      [        [        [        5      R                  [        5      S[        [        5      -  S[        [        5      S-  -  -
  5      /n [        U 5        g r  r
   r4   r3   r   r5   r6   r   ri  s    rI   test_nonlinear_3eq_order1_type3r  H	  s     	1Q499Q<!AaD!G)a-1
1Q499Q<!a!f,1
1Q499Q<!AaD&a!ai/1C
 3KrL   c                  R   [        [        [        5      R                  [        5      [        [        5      S[        [        5      -  S[	        [        5      -  -
  -  5      [        [	        [        5      R                  [        5      [	        [        5      S[	        [        5      -  S[        [        5      -  -
  -  5      [        [        [        5      R                  [        5      [        [        5      S[        [        5      -  S[        [        5      -  -
  -  5      /n [        U 5        g r  r  ri  s    rI   test_nonlinear_3eq_order1_type5r  V	  s     	1Q499Q<1q1v!A$/0
1Q499Q<1q1v!A$/0
1Q499Q<1q1v!A$/0C
 3KrL   c                  N   [        S[        S9u  pn[        SSS9u  p4pV[        S5      n[        S[        S9u  p[        [	        U " U5      U5      U " U5      U" U5      -   S-   5      [        [	        U" U5      U5      S	U " U5      -  S
U" U5      -  -   S-   5      4n
[        U " U5      [
        [        U[        S5      S-   -  5      -  [        [        U[        S5      * S-   -  5      -  -   [        SS5      -
  5      [        U" U5      [
        S	[        S5      -   -  [        U[        S5      S-   -  5      -  [        [        S5      * S	-   -  [        U[        S5      * S-   -  5      -  -   [        S
S5      -
  5      /n[        X5      SSS/4:X  d   e[        [	        U " U5      U5      U " U5      U" U5      -   S-   5      [        [	        U" U5      U5      SU " U5      -  U" U5      -   S-   5      4n[        U " U5      [
        [        [        S	5      U-  5      -  [        [        [        S	5      U-  5      -  -   [        U5      -  [        SS5      -
  5      [        U" U5      [        S	5      * [
        -  [        [        S	5      U-  5      -  [        S	5      [        -  [        [        S	5      U-  5      -  -   [        U5      -  [        SS5      -
  5      /n[        X5      SSS/4:X  d   e[        [	        U " U5      U5      S
U-  U " U5      -  S	U" U5      -  -   5      [        [	        U" U5      U5      S	U " U5      -  S
U-  U" U5      -  -   5      4n[        U " U5      [
        [        S	U-  5      -  [        [        SU-  5      -  -   [        [        S
S	5      US	-  -  5      -  5      [        U" U5      [
        [        S	U-  5      -  [        [        SU-  5      -  -
  [        [        S
S	5      US	-  -  5      -  5      /n[        X5      SSS/4:X  d   e[        [	        U " U5      U5      S
U-  U " U5      -  US	-  U" U5      -  -   5      [        [	        U" U5      U5      US	-  * U " U5      -  S
U-  U" U5      -  -   5      4n[        U " U5      [
        [        US-  S-  5      -  [        [        US-  S-  5      -  -   [        [        S
S	5      US	-  -  5      -  5      [        U" U5      [
        * [        US-  S-  5      -  [        [        US-  S-  5      -  -   [        [        S
S	5      US	-  -  5      -  5      /n[        UU5      SSS/4:X  d   e[        [	        U " U5      U5      S
U-  U " U5      -  US	-  U" U5      -  -   5      [        [	        U" U5      U5      US	-  * U " U5      -  S
U-  SUS	-  -  -   U" U5      -  -   5      4n[        U " U5      [
        [        [        S5      S	-  [        SS	5      -   US-  -  S-  5      -  [        [        [        S5      * S	-  [        SS	5      -   US-  -  S-  5      -  -   [        [        S
S	5      US	-  -  5      -  5      [        U" U5      [
        [        S5      S	-  [        SS	5      -   -  [        [        S5      S	-  [        SS	5      -   US-  -  S-  5      -  [        [        S5      * S	-  [        SS	5      -   -  [        [        S5      * S	-  [        SS	5      -   US-  -  S-  5      -  -   [        [        S
S	5      US	-  -  5      -  5      /n[        UU5      SSS/4:X  d   e[        [	        U " U5      U5      S
U-  U " U5      -  US	-  U" U5      -  -   5      [        [	        U" U5      U5      SUS	-  -
  U " U5      -  S
U-  SUS	-  -  -   U" U5      -  -   5      4n[        U " U5      [
        U" U5      -  [        U" U5      -  [        US	-  [        [        S
U-  U5      5      -  [        [        SUS	-  -  S
U-  -   U5      5      -  U" U5      S	-  -  U5      -  -   5      [        U" U5      [
        U	" U5      -  [        U	" U5      [        US	-  [        [        S
U-  U5      5      -  [        [        SUS	-  -  S
U-  -   U5      5      -  U" U5      S	-  -  U5      -  [        [        S
U-  U5      5      [        [        SUS	-  -  S
U-  -   U5      5      -  U" U5      -  -   -  -   5      /n[        U5      nUU:X  d   eg )Nr#  r9   z
k, l, m, nT)Integerr;   zx0, y0ry   r<   rA   r   r`   r?   rj  r   rk  r   rl  rm  r  r=   )r   r   r   r
   r   r   r   r   r   r   r   r   r   r-   r   )r3   r   r   r   r   r  r   r;   rr  r  r   r   r   r   r   r   r   r   r   r   eq6r   ss                          rI   test_linear_2eq_order1r  c	  s   iX.GA!t4JA!sAX8,FBd1Q4lAaD1Q4K!O,bad1q1v!A$QS?S.T
UCqtRAtAw{O,,r#a$q'A6F2G/GG(SUWX/YZqtRT!Wc!T!Wq[/22R$q'A5Fs1tTUwhYZlK[G\5\\_ghikl_mmnpD#$1v666d1Q4lAaD1Q4K",-r$qtA,1Q4!A$QS@S/T
UCqtbT!WQY'"Sa^*;;SVChrSToUVqttAwhrk#d1gai.(472:c$q'!)n+DDc!fLxX[]^O__`bD#$1v666d1Q4lAaC!Hq1v-.4!Q<1Q4!A#aPQd(AR0S
TCqtbQqSkBs2a4yL0#hq!nQT6I2JJKqtbQqSkBs2a4yL(#hq!nQT.A*BBCED#$1v666d1Q4lAaC!Hq!tAaDy012d1Q4lQTE!A$JQRSTQTUVWXUYQYDY3Z
[CqtbadAX&CAqM)993x1~aQRd?R;SSTqtrc#q!tQh-"S!Q$]"22CAq!t8K4LLMOD#t$1v666d1Q4lAaC!Hq!tAaDy012d1Q4lQTE!A$JRSTURUVWXY[\X\V\R\^_`a^bQbDb3c
dCqtbd2hqj8Aq>9AqDA!CDDsT"XIaK(1a.(1a40233458!Q19L5MN Oqtb$r(1*x1~-.sDHQJ!Q4ORSUVRV3WXY3Y/ZZb	!hq!n$%cDH9Q;!Q+G!Q$*OPQ*Q&RRSTWX`abdeXfghjkgkXkTlm noD #t$1v666d1Q4lAaC!Hq!tAaDy012d1Q4lQq!tVQqTMUVWXUXYZ[\^_[_Y_U_abcdaeTeDe3f
gCqtR1X2a5!Q$s8AaC;K7L2LSQYZ[\]_`\`Z`cdefcfZfhiQjMk2klnoplqstlt2tvw)x xxyqtR1XBqE(1a4HQqS!4D0E+Ec(STUVXYUYSY\]^_\_S_abJcFd+deghiejlmem+mop"qq1a#hqAv!|Q788A>? @ @ ABD 	sA99rL   c                  ,   [        S[        S9u  pn[        S5      n[        [	        U " U5      U5      U " U5      U" U5      S-  -  5      [        [	        U" U5      U5      U" U5      S-  5      4n[        U " U5      [
        [        SS[        -  SU-  -   -  [        SS5      -  5      -  5      [        U" U5      SS[        -  SU-  -   -  [        SS5      -  * 5      [        U " U5      [
        [        SSS[        -  SU-  -   -  [        SS5      -  -  5      -  5      [        U" U5      SS[        -  SU-  -   -  [        SS5      -  5      [        U " U5      [
        [        [        * SS[        -  SU-  -   -  [        SS5      -  -  5      -  5      [        U" U5      [        * SS[        -  SU-  -   -  [        SS5      -  -  5      [        U " U5      [
        [        [        SS[        -  SU-  -   -  [        SS5      -  -  5      -  5      [        U" U5      [        SS[        -  SU-  -   -  [        SS5      -  -  5      /n[        U5      U:X  d   e[        XE5      S	S
S
/4:X  d   e[        [	        U " U5      U5      [        SU " U5      -  5      U" U5      S-  -  5      [        [	        U" U5      U5      U" U5      S-  5      4n[        U " U5      [        [
        SSS[        -  SU-  -   -  [        SS5      -  -  -
  5      * S-  5      [        U" U5      SS[        -  SU-  -   -  [        SS5      -  * 5      [        U " U5      [        [
        SSS[        -  SU-  -   -  [        SS5      -  -  -   5      * S-  5      [        U" U5      SS[        -  SU-  -   -  [        SS5      -  5      [        U " U5      [        [
        S[        -  SS[        -  SU-  -   -  [        SS5      -  -  -   5      * S-  5      [        U" U5      [        * SS[        -  SU-  -   -  [        SS5      -  -  5      [        U " U5      [        [
        S[        -  SS[        -  SU-  -   -  [        SS5      -  -  -
  5      * S-  5      [        U" U5      [        SS[        -  SU-  -   -  [        SS5      -  -  5      /n[        U5      U:X  d   e[        Xg5      S	S
S
/4:X  d   e[        [	        U " U5      U5      U" U5      U " U5      -  5      [        [	        U" U5      U5      U " U5      S-  5      4n[        SS5      n	[        U " U5      SU	-  S[        [        [
        5      [        U-   -  S-  5      * [        [
        5      -  U	-  -  -  5      [        U" U5      [        [
        [
        [        [        [
        5      [        U-   -  S-  5      S-  -  -   5      S-  5      /n
[        U5      U
:X  d   e[        [	        U " U5      U5      U " U5      U" U5      -  [        U5      S-  -  5      [        [	        U" U5      U5      U" U5      S-  [        U5      S-  -  5      4n[        U " U5      S[        [
        5      -  [        [        [
        5      -  U-   [        SU-  5      S-  -
  -  5      [        U" U5      S[
        U-   [        SU-  5      S-  -
  -  5      1n[        U5      U:X  d   e[        U " U5      U[	        U " U5      U5      -  [	        U " U5      U5      [	        U" U5      U5      -  -   5      [        U" U5      U[	        U" U5      U5      -  [	        U" U5      U5      S-  -   5      4n[        U " U5      [
        [        -  [
        U-  -   5      [        U" U5      [        S-  [        U-  -   5      1n[        U5      U:X  d   e[        X5      S	S
S
/4:X  d   e[        [	        U " U5      U5      U " U5      S-  U" U5      S-  -  5      [        [	        U" U5      U5      U" U5      S-  5      4n[        U " U5      S[
        SSS[        -  SU-  -   -  [        SS5      -  -  -
  -  5      [        U" U5      SS[        -  SU-  -   -  [        SS5      -  * 5      [        U " U5      S[
        SS[        -  SU-  -   -  [        SS5      -  -   -  5      [        U" U5      SS[        -  SU-  -   -  [        SS5      -  5      [        U " U5      S[
        [        SS[        -  SU-  -   -  [        SS5      -  -  -   -  5      [        U" U5      [        * SS[        -  SU-  -   -  [        SS5      -  -  5      [        U " U5      S[
        [        SS[        -  SU-  -   -  [        SS5      -  -  -
  -  5      [        U" U5      [        SS[        -  SU-  -   -  [        SS5      -  -  5      /n[        U5      U:X  d   e[        UU5      S	S
S
/4:X  d   eg )Nr#  r9   r;   r?   rA   r>   r@   r=   Tr   r<   r`   r   )r   r   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   )r3   r   r   r;   r   r   r   r   r   ttr   r   r   r   r   r  r   s                    rI   test_nonlinear_2eq_order1r  	  s	   iX.GA!sAd1Q4l1Q4!a<("T!A$q\!A$'*B
CC
1Q4CQrTAaCZHRO<==>
1Q42qtacz?Xa^334
1Q4CB"qs
Ohq!n<<==>
1Q4"adQqSj/HQN23
1Q4CB"qs
Ohq!n<<==>
1Q4!R2!_x1~556
1Q4C2qtacz?Xa^;;<<=
1Q4B"qs
Ohq!n4457D #;$#$1v666d1Q4lC!A$K!a/0D1aL!A$'1J
KC
1Q4#b1b!B$1*oA>>>??AB
1Q42qtacz?Xa^334
1Q4#b1b!B$1*oA>>>??AB
1Q4"adQqSj/HQN23
1Q4#b1Q3AbD1Q3J(1a.@@@AA!CD
1Q4!R2!_x1~556
1Q4#b1Q3AbD1Q3J(1a.@@@AA!CD
1Q4B"qs
Ohq!n4457D #;$#$1v666d1Q4lAaD1I&4!Q<1q(A
BC	!QB
1Q4BDb26!21!455d2h>CCDE
1Q4b2d48R!V#4Q#67:::;A=>@D #;$ d1Q4l1Q4!9SVQY./D1aL1qQQRAR1S
TCqtRBZCGa#ac(1*!<=>1Q4RRSVVYZ[\]Z]V^_`V`M`Ia@bcD#;$ ad1T!A$q\>$qtA,tAaD|";;<b1aQqTRSnUYZ[\]Z^_`UacdUdFd>e
fCqtRURT\"BqtRURT\$:;D#;$#$1v666d1Q4l1Q471Q47?+RQqT!QqT1W-E
FC
1Q4BB"qs
Ohq!n<<<=>
1Q42qtacz?Xa^334
1Q4B"adQqSj/Xb!_==>?
1Q4"adQqSj/HQN23
1Q4BB"qs
Ohq!n<<<=>
1Q4!R2!_x1~556
1Q4BB"qs
Ohq!n<<<=>
1Q4B"qs
Ohq!n4457D #;$#t$1v666rL   c                  ~	   [        S[        S9u  pn[        S5      u  p4S[        U " U5      U5      -  SU" U5      -  U" U5      -  -   S[        U" U5      U5      -  U" U5      U " U5      -  -
  S[        U" U5      U5      -  U " U5      U" U5      -  -
  4n[        S[	        S[        S	US-  -  S[        -  -
  [        -   5      [        S	US-  -  S[        -  -   [        -
  5      -  -  X@" U5      45      -  [        [        S
5      U-  S
-  -
  5      [        S[	        S[        SUS-  -  [        -
  S[        -  -   5      [        SUS-  -  [        -   S[        -  -
  5      -  -  XA" U5      45      -  [        [        S5      U-  S-  -   5      [        S[	        S[        SUS-  -  S[        -  -
  [        -   5      [        SUS-  -  S[        -  -   [        -
  5      -  -  XB" U5      45      -  [        [        S5      U-  S-  -   5      /n[        [        U5      U5       VVs/ s H  u  pxUR                  U5      PM     snn(       d   eS[        U " U5      U5      -  SU" U5      -  U" U5      -  [        U5      -  -   S[        U" U5      U5      -  U" U5      U " U5      -  [        U5      -  -
  S[        U" U5      U5      -  U " U5      U" U5      -  [        U5      -  -
  4n	[        S[	        S[        SUS-  -  [        -
  S[        -  -   5      [        SUS-  -  [        -   S[        -  -
  5      -  -  X@" U5      45      -  [        [        S5      [        U5      -  S-  -   5      [        S[	        S[        S	US-  -  S[        -  -
  [        -   5      [        S	US-  -  S[        -  -   [        -
  5      -  -  XA" U5      45      -  [        [        S
5      [        U5      -  S
-  -
  5      [        S[	        S[        SUS-  -  S[        -  -
  [        -   5      [        SUS-  -  S[        -  -   [        -
  5      -  -  XB" U5      45      -  [        [        S5      [        U5      -  S-  -   5      /n
[        [        U	5      U
5       VVs/ s H  u  pxUR                  U5      PM     snn(       d   eg s  snnf s  snnf )Nr#  r9   zt ur@   r<   r?   rA   r=   r   r   re   r   ir`   )r   r   r   r
   r-   r   r   r   r,  zipr   dummy_eqr   r   )r3   r   r   r;   r5  r   r   r   r   r   r   s              rI   test_nonlinear_3eq_order1r  	  s   iX.GA!5>DAT!A$q\>AadF1Q4K'4!Q<!A$qt))CQtAaDQR|^VWXYVZ[\]^[_V_E_
`Cq!T"QT'AbD.2"56tBq!tGadNR<O7PPQTUWXYZW[S\]]
T"XaZ](1d2ad7R<!B$3F.GQqRStVVX[[\]_[_M_H`.`+a	
AaD	# !a2%'(*1Xac!Q$h2oPR>R9SQq!tVad]R :! 7"$%qt9.. ,./1DGAIaK/?)ABD '*&+t&<=&<daAJJqM&<==== T!A$q\>AadF1Q4KA..$qtA,1ad3q6AQ0QSTUYZ[\]Z^_`UaSadefgdhijklimdmnqrsntdtSt
uCq!T"QT'B,2"56tAadFRK!B$<N7OOPSTVWXYVZR[\\^`QAr_ q!T"QT'AbD.22E-FtBqRStGVWXZVZN]_L_G`-`*a	
AaD	"  b#a&++-.08AtC1HqQStOVXDX?YQq!tVad]R @! ="$%qt94. 2./1DGCFN14D/D/FGD '*&+t&<=&<daAJJqM&<==== > >s   !R3
R9c                     [        S5      n [        S5      n[        S5      n[        S5      n[        S5      n[        [        U" U 5      U 5      SU" U 5      -  5      [        [        U" U 5      U 5      SU" U 5      -  5      4n[        U" U 5      SU-  [	        S[        S	5      -  U -  5      -  SU-  [	        S
[        S	5      -  U -  5      -  -   5      [        U" U 5      S[        S	5      -  U-  [	        S[        S	5      -  U -  5      -  S[        S	5      -  U-  [	        S
[        S	5      -  U -  5      -  -
  5      /n[        XV5      SSS/4:X  d   eg )Nr;   r   r   r,  r-  ry   r_   r`   r?   re   Tr   )r   r   r
   r   r   r   r   )r;   r   r   r,  r-  ri   r]  s          rI   test_C1_function_9239r  	  s-   sA	$B	$B	B	B
T"Q%^Qr!uW
%r$r!ua."RU('C	DBbeQrT#aQik**QrT#bajl2C-CCDbeQtAwYr\#aQik"22QtAwYr\#bajQRlBS5SSTVC""taVn444rL   c            
      d   [        SSS9n [        [        [        [        5      [        5      U * [        [        5      -  5      [        [        [        [        5      [        5      U [        [        5      -  5      4n[        [        [        5      [        * U -  [        U [        -  5      -  [        U -  [        U [        -  5      -  -
  5      [        [        [        5      [        * U -  [        U [        -  5      -  [        U -  [        U [        -  5      -  -   5      /n[        X5      SSS/4:X  d   eg )NepsilonTrc  r   )r   r
   r   r4   r3   r5   r   r   r   r   r   )epsr   r   s      rI   test_dsolve_linsystem_symbolr  	  s    
T
*Cd1Q4mcT!A$Y'D1qM3qt8)D
ECqtbSWSQZ'"S&SU*;;<qtbSWSQZ'"S&SU*;;<>D#$1v666rL   N)~sympy.core.functionr   r   r   sympy.core.mulr   sympy.core.numbersr   r   r	   sympy.core.relationalr
   sympy.core.singletonr   sympy.core.symbolr   r   %sympy.functions.elementary.hyperbolicr   (sympy.functions.elementary.miscellaneousr   r   r   sympy.core.containersr   sympy.functionsr   r   r   r   r   r   r   r   sympy.matricesr   r   sympy.solvers.oder   sympy.solvers.ode.oder   sympy.solvers.ode.subscheckr   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   sympy.integrals.integralsr-   sympy.simplify.ratsimpr.   sympy.testing.pytestr/   r0   r1   r2   C0r   r   r,  r-  r.  C6C7C8C9C10r3   r4   r5   r6   r]   r   r   r   r  r^  r|  r  r  r  r  r  r  r  r  r  r  r!  r$  r*  r5  r@  rP  rS  rU  rW  rZ  r\  r_  ra  rc  rt  rw  r  r  r  r  r  r  r  r  r  r  r  r   rL   rI   <module>r     s   < <  0 0 $ " / 6 9 ' ' A A A < $ 3 6? ? ? ?
 + . * = = /6g.> +BBBBBCLSMSMSM"UJA:H
j:Z2c:L S: S:l
~:B]"~ u> u>p8&x:v 8 8 :&+8\ 8 88$Q>hdtN 
 
 5 5  	9 	9( 9 9AB 6 6 9 9!HC 6 6
 	  	 		 		 	8 	8
s0$ , ,"8 		  		   	  	  &T:7z > >(	57rL   