
    g?                    d   d dl mZmZmZ d dlmZ d dlmZmZm	Z	 d dl
mZ d dlmZ d dlmZmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZmZmZmZmZmZm Z m!Z! d dl"m#Z#m$Z$ d dl%m&Z& d dl'm(Z( d dl)m*Z* d dl+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7 d dlm8Z8m9Z9 d dl:m;Z; d dl<m=Z= d dl>m?Z?m@Z@mAZAmBZB  ed          \  ZCZDZEZFZGZHZIZJZKZLZM ed          ZN ed          ZO ed          ZP ed          ZQd ZRd ZSd ZTd ZUd ZVe@d             ZWd  ZXd! ZYe@d"             ZZd# Z[d$ Z\e@d%             Z]d& Z^d' Z_e@d(             Z`d) Zad* Zbd+ Zce@d,             Zde@d-             ZeeAd.             Zfe@d/             Zgd0 Zhe@d1             Zie@d2             Zjd3 Zkd4 Zle@d5             ZmeAeBd6                         ZneAd7             ZoeAd8             Zpd9 Zqd: Zre@d;             Zsd< ZteAeBd=                         ZueBd>             ZveAeBd?                         ZweBd@             ZxdA ZydB Zze@dC             Z{dD Z|dE Z}dFS )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            	      	   t          dt                    \  } }}t          d           |            |           |          g |                                         } |                                        } |                                        } |                               d          } |                              d          } |                              d          }t	          | |                    t	          | |                     g}	t          ddgddgg          t          ddgddgg          gt          dgdgg          f}
t          |	d d         d          |
k    sJ t	          | |           d |          z  z             t	          | |                    t	          | |           |          z    |           z             g}t          g dg d	g d
g          t          g dg d
g dg          gt          dgdgdgg          f}t          |d          |k    sJ t	          d|z  d|z  z    |            |          z             t	          d|z  d|z  z    |            |          z             t	          d|z  d|z  z    |           |          z             g}t          g dg dg dg          t          g dg dg dg          gt          dgdgdgg          f}t          |d          |k    sJ t	          | |          z   | |          z             t	          d|z  |z   |z    |          z   d          t	          d|z  d          g}t          g dg dg dg          t          g dg dg dg          t          g dg dg dg          gt          dgdgdgg          f}t          |d          |k    sJ t	          | |                    t	          ||z    |                     gt          t          fd           t	          | |           dz            t	          | |            |          z             gt          t          fd           d S )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                  8    t           d d         d          S Nr>   r=   r    )eqs_5funcsr;   s   `/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/solvers/ode/tests/test_systems.py<lambda>z+test_linear_ode_to_matrix.<locals>.<lambda>A   s    "6ueCRCj!Q"O"O     c                  8    t           d d         d          S rE   rF   )eqs_6rH   r;   s   rI   rJ   z+test_linear_ode_to_matrix.<locals>.<lambda>D   s    &:5%*aQR&S&S rK   )
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   rM   rH   r;   s                    @@@@rI   test_linear_ode_to_matrixr\   "   s&   iX...GAq!sAQqTT11Q441E	
11B	
11B	
11B	
11aB	
11aB	
11aBAAaDD\\2b!!A$$<<(Eq!fq!f%&&!Q!a/A(B(BCVaSRSQTIEVEVWEuSbSz1a88EAAAAAAaDD1QQqTT6M""Br11Q44LL"R1!qqtt9K2L2LMEiiiIII677[[[ZcZcZc@d9e9efaS1#sO$$&Eua33u<<<<"qtQQqTTAAaDD[))2adQrTk11Q44!!A$$;+G+GAbDSTUWSWKYZYZ[\Y]Y]`a`abc`d`dYdIeIefEiiiIII677ZZZYbYbYb@c9d9deaS1#sO$$&Eua33u<<<<QQqTT	2!9%%r!B$)b.11Q44*?'C'CR"a[[QEiiiIII677JJJXbXbXb@c9d9djjj+++yyy9::<=CaS1#PQsO=T=TVEua33u<<<<AAaDD\\2b2gqqtt,,-E
=OOOOOOPPPAAaDD!G__bQQqTTAAaDD[112E
SSSSSSTTTTTrK   c                  2s  89: t          dt                    \  } }}}t          d          \  :}}t           | :          :          }t           |:          :          }t           |:          :          }t           |:          :          }	t           | :          ::          }
t           |:          ::          } | :           |:          g99 |:           |:          gz   }d|z  d | :          z  z   d |:          z  z
  d|z  d:z   | :          z  z
  d	 |:          z  z   :z   f}t          |9:          J d|dz  z  d | :          z  z   d |:          z  z
  d|z  d:z   | :          z  z
  d	 |:          z  z   :z   f}d
t	          t           | :          :          t          d | :          z  dz  d |:          z  dz  z                        t	          t           |:          :          d:z   | :          z  dz  :dz  z
  d	 |:          z  dz  z
            gt	          t           | :          :          t          d | :          z  dz  d |:          z  dz  z                       t	          t           |:          :          d:z   | :          z  dz  :dz  z
  d	 |:          z  dz  z
            ggd}t          |9:          |k    sJ t	          t           | :          :          t          d | :          z  dz  d |:          z  dz  z                        t	          t           |:          :          d:z   | :          z  dz  :dz  z
  d	 |:          z  dz  z
            g}t          |9:          J t	          t           | :          :          t          d | :          z  dz  d |:          z  dz  z                       t	          t           |:          :          d:z   | :          z  dz  :dz  z
  d	 |:          z  dz  z
            g}t          |9:          J d|z  d | :          z  z   d |:          z  z
  d|z  d | :          z  z
  d	 |:          z  z   d|	z   |:          z   | |:          z   f}dd | :          z  d |:          z  z
  dt           | :          :          z  z   d | :          z  d	 |:          z  z   dt           |:          :          z  z    |:          dt           |:          :          z  z    |:          t           |:          :          z   f | :           |:           |:           |:          g | :          d |:          d |:          d |:          did
d
d
t          t          dd          t          dd          ddgt          dd          t          d	d          ddgg dddt          dd          dgg           dd
d
}t          ||:          |k    sJ d|z  d | :          z  z   d |:          z  z
  d|z  d | :          z  z
  d	 |:          z  z   | |:          z
  |	 |:          z
  f}dd | :          z  d |:          z  z
  dt           | :          :          z  z   d | :          z  d	 |:          z  z   dt           |:          :          z  z    |:           t           |:          :          z    |:           t           |:          :          z   f | :           |:           |:           |:          g | :          d |:          d |:          d |:          did
d
d
t          t          dd          t          dd          ddgt          dd          t          d	d          ddgg dg dg           dd
d
}t          ||:          |k    sJ d|z  d | :          z  z   d |:          z  z
  |
z   d|z  d | :          z  z
  d	 |:          z  z   | |:          z
  |	 |:          z
  f}dd | :          z  d |:          z  z
  dt           | :          :          z  z   t           | :          :df          z   d | :          z  d	 |:          z  z   dt           |:          :          z  z    |:           t           |:          :          z    |:           t           |:          :          z   f | :           |:           |:           |:          g | :          d |:          d |:          d |:          did
d
d
dd
d	}t          ||:          |k    sJ t	          |d	 |:          z  d |:          z  z
            t	          |d |:          z  d	 | :          z  z
            t	          |d | :          z  d |:          z  z
            f}d	t	          t           | :          :          d	 |:          z  d |:          z  z
            t	          t           |:          :          d | :          z  d |:          z  z             t	          t           |:          :          d | :          z  d |:          z  z
            f | :           |:           |:          g | :          d |:          d |:          did
d
d
t          g dg dg dg           dd
d
}t          ||d d         :          |k    sJ t	          | |:                    t	          | | :                    f}dt	          t           | :          :           |:                    t	          t           |:          :           | :                    f | :           |:          g | :          d |:          did
d
d
t          ddgddgg           dd
d
}t          |9:          |k    sJ t	          |d | :          z            t	          |d  | :          z  d	 |:          z  z             t	          |d | :          z  d |:          z  z   d! |:          z  z             f}d	t	          t           | :          :          d | :          z            t	          t           |:          :          d  | :          z  d	 |:          z  z             t	          t           |:          :          d | :          z  d |:          z  z   d! |:          z  z             f | :           |:           |:          g | :          d |:          d |:          did
d
d
t          g d"g d#g d$g           dd
d
}t          ||d d         :          |k    sJ t	          |d | :          z  d |:          z  z   d |:          z  z             t	          | | :          d% |:          z  z   d! |:          z  z             t	          |d& | :          z  d' |:          z  z   d |:          z  z             f}d	t	          t           | :          :          d | :          z  d |:          z  z   d |:          z  z             t	          t           |:          :           | :          d% |:          z  z   d! |:          z  z             t	          t           |:          :          d& | :          z  d' |:          z  z   d |:          z  z             f | :           |:           |:          g | :          d |:          d |:          did
d
d
t          g d(g d)g d*g           dd
d
}t          ||d d         :          |k    sJ t	          d	|z  d+ |:           |:          z
  z            t	          d|z  d, |:           | :          z
  z            t	          d|z  d | :           |:          z
  z            f} d	t	          d	t           | :          :          z  d+ |:          z  d+ |:          z  z
            t	          dt           |:          :          z  d- | :          z  d, |:          z  z             t	          dt           |:          :          z  d | :          z  d |:          z  z
            f | :           |:           |:          g | :          d |:          d |:          did
d
d
t          dt          d.d	          t          d+d	          gt          d,d          dt          d-d          gt          dd          t          dd          dgg           dd
d
}!t          | |d d         :          |!k    sJ t	          |d	 |:          z  d |:          z  z
            t	          |d |:          z  d	 | :          z  z
            t	          |d | :          z  d |:          z  z
            f}"d	t	          t           | :          :          d	 |:          z  d |:          z  z
            t	          t           |:          :          d | :          z  d |:          z  z             t	          t           |:          :          d | :          z  d |:          z  z
            f | :           |:           |:          g | :          d |:          d |:          did
d
d
t          g dg dg dg           dd
d
}#t          |"|d d         :          |#k    sJ t	          t           | :          :           |:                    t	          t           |:          :           | :                    f}$dt	          t           | :          :           |:                    t	          t           |:          :           | :                    f | :           |:          g | :          d |:          did
d
d
t          ddgddgg           dd
d
}%t          |$ | :           |:          g:          |%k    sJ t	          t           | :          :          d | :          z            t	          t           |:          :          d  | :          z  d	 |:          z  z             t	          t           |:          :          d | :          z  d |:          z  z   d! |:          z  z             f}&d	t	          t           | :          :          d | :          z            t	          t           |:          :          d  | :          z  d	 |:          z  z             t	          t           |:          :          d | :          z  d |:          z  z   d! |:          z  z             f | :           |:           |:          g | :          d |:          d |:          did
d
d
t          g d"g d#g d$g           dd
d
}'t          |& | :           |:           |:          g:          |'k    sJ t	          t           | :          :          d | :          z  d |:          z  z   d |:          z  z             t	          t           |:          :           | :          d% |:          z  z   d! |:          z  z             t	          t           |:          :          d& | :          z  d' |:          z  z   d |:          z  z             f}(d	t	          t           | :          :          d | :          z  d |:          z  z   d |:          z  z             t	          t           |:          :           | :          d% |:          z  z   d! |:          z  z             t	          t           |:          :          d& | :          z  d' |:          z  z   d |:          z  z             f | :           |:           |:          g | :          d |:          d |:          did
d
d
t          g d(g d)g d*g           dd
d
})t          |( | :           |:           |:          g:          |)k    sJ t	          d	t           | :          :          z  d+ |:          z  d+ |:          z  z
            t	          dt           |:          :          z  d- | :          z  d, |:          z  z             t	          dt           |:          :          z  d | :          z  d |:          z  z
            f}*d	t	          d	t           | :          :          z  d+ |:          z  d+ |:          z  z
            t	          dt           |:          :          z  d- | :          z  d, |:          z  z             t	          dt           |:          :          z  d | :          z  d |:          z  z
            f | :           |:           |:          g | :          d |:          d |:          did
d
d
t          dt          d.d	          t          d+d	          gt          d,d          dt          d-d          gt          dd          t          dd          dgg           dd
d
}+t          |* | :           |:           |:          g:          |+k    sJ t	          t           | :          :           | :           |:          z   d!z             t	          t           |:          :          d | :          z  d |:          z  z   d/z             f8dt	          t           | :          :           | :           |:          z   d!z             t	          t           |:          :          d | :          z  d |:          z  z   d/z             f | :           |:          g | :          d |:          did
d
d0d
t          ddgd1d2gg           t          d!gd/gg          d3d4},t          89:          |,k    sJ t	          t           | :          :          d:z   | :          z  d |:          z  z             t	          t           |:          :          d | :          z  d:z   |:          z  z             f8dt	          t           | :          :          d:z   | :          z  d |:          z  z             t	          t           |:          :          d:z   |:          z  d | :          z  z             f | :           |:          g | :          d |:          did
d0d
t          d2:z  d1gd1d2:z  gg           t          d:dz  z  dz  d:z  gd:z  d:dz  z  dz  gg          d5d
d6},t          89:          |,k    sJ t	          | | :          : |:          z  z   :z             t	          |: | :          z   |:          z             g8dt	          t           | :          :          : |:          z  :z    | :          z             t	          t           |:          :          : | :          z   |:          z             g | :           |:          g | :          d |:          did
d0d0d
t          d: g: dgg           t          ::dz  dz  g:dz  dz  :gg          t          :gdgg          d7d8},t          89:          |,k    sJ t	          |: | :          z  : |:          z  z   :z             t	          |: | :          z  : |:          z  z   t          :          z             g}-dt	          t           | :          :          : | :          z  : |:          z  z   :z             t	          t           |:          :          : | :          z  : |:          z  z   t          :          z             g | :           |:          g | :          d |:          did
d0d
t          :gt          :          gg          t          ::g::gg          d0d7t          :dz  dz  :dz  dz  g:dz  dz  :dz  dz  gg          d9}t          |-9:          |k    sJ t	          |: | :           |:          z    |:          z   dz   z            t	          |: | :           |:          z    |:          z   z            t	          |: | :           |:          z    |:          z   z            g}.d	t	          t           | :          :          : | :           |:          z    |:          z   dz   z            t	          t           |:          :          : | :           |:          z    |:          z   z            t	          t           |:          :          : | :           |:          z    |:          z   z            g | :           |:           |:          g | :          d |:          d |:          did
d0d0d
t          : : : g: : : g: : : gg           t          :dz  dz  :dz  dz  :dz  dz  g:dz  dz  :dz  dz  :dz  dz  g:dz  dz  :dz  dz  :dz  dz  gg          t          :gdgdgg          d7d8}/t          |.|d d         :          |/k    sJ t	          | | :           |:          z   : |:          z  z   dz             t	          | | :          : |:          z  z    |:          z   d:z             t	          |: | :          z   |:          z    |:          z   :z             g}0d	t	          t           | :          :          : |:          z   | :          z    |:          z   dz             t	          t           |:          :          : |:          z   | :          z    |:          z   d:z             t	          t           |:          :          : | :          z  :z    |:          z    |:          z             g | :           |:           |:          g | :          d |:          d |:          did
d0d0d
t          dd: gd: dg: ddgg           t          :::dz  dz  g::dz  dz  :g:dz  dz  ::gg          t          dgd:g:gg          d7d8}1t          |0|d d         :          |1k    sJ : | :           |:          z    |:          z    |:          z   z  }2t	          ||2          t	          ||2          t	          ||2dz             t	          |	|2          g}3dt	          t           | :          :          : |:           | :          z    |:          z    |:          z   z            t	          t           |:          :          : |:           | :          z    |:          z    |:          z   z            t	          t           |:          :          : |:           | :          z    |:          z    |:          z   z  dz             t	          t           |:          :          : |:           | :          z    |:          z    |:          z   z            g | :           |:           |:           |:          g | :          d |:          d |:          d |:          did
d0d0d
t          : : : : g: : : : g: : : : g: : : : gg           t          :dz  dz  :dz  dz  :dz  dz  :dz  dz  g:dz  dz  :dz  dz  :dz  dz  :dz  dz  g:dz  dz  :dz  dz  :dz  dz  :dz  dz  g:dz  dz  :dz  dz  :dz  dz  :dz  dz  gg          t          dgdgdgdgg          d7d8}4t          |3|:          |4k    sJ t          d;          }5t	          d! | :          z  d |:          z  z   dt           | :          :          z  z   t           | :          :df          z   d	t           |:          :          z  z   dt          t          :z            z            t	          d	 | :          z  d |:          z  z   dt           | :          :          z  z   d<t           |:          :          z  z   t           |:          :df          z   dt          t          :z            z            f8dt	          d! | :          z  d |:          z  z   dt           | :          :          z  z   t           | :          :df          z   d	t           |:          :          z  z   dt          t          :z            z            t	          d	 | :          z  d |:          z  z   dt           | :          :          z  z   d<t           |:          :          z  z   t           |:          :df          z   dt          t          :z            z            f | :           |:          g | :          d |:          did
d0d
t          dt          t          :z            z  gdt          t          :z            z  gg          dd
d
d=},t          89:          |,k    sJ t	          d:dz  z  d:z  z   dz   dz  t           | :          :df          z  d | :          z  d> |:          z  z             t	          d:dz  z  d:z  z   dz   dz  t           |:          :df          z   | :          d! |:          z  z             f}-dt	          d:dz  z  d:z  z   dz   dz  t           | :          :df          z  d | :          z  d> |:          z  z             t	          d:dz  z  d:z  z   dz   dz  t           |:          :df          z   | :          d! |:          z  z             f | :           |:          g | :          d |:          did
d
d
d3t          t          d?d          d>gdt          d@d          gg          t          d:dz  z  d:z  z   dz             t          dA          t          :t          dA          d<z  z
  t          dd<          z             z  dAz  t          dA          t          :t          dA          d<z  z   t          dd<          z             z  dAz  z
  d
|5d
d
dB}t          |-9:          |k    sJ :t           | :          :          z   | :          z
  t          :          z  :t           |:          :          z   |:          z
  t          :          z  z   t           | :          :df          z   :dz  :t           | :          :          z   | :          z
  z  ::t           |:          :          z   |:          z
  z  z   t           |:          :df          z   f}.d:t           | :          :          z   | :          z
  t          :          z  :t           |:          :          z   |:          z
  t          :          z  z   t           | :          :df          z   :dz  :t           | :          :          z   | :          z
  z  ::t           |:          :          z   |:          z
  z  z   t           |:          :df          z   f | :           |:          g | :          d |:          did
d
d
dt          : t          :          z  : t          :          z  g:d	z   :dz   gg          d
d
dC}/t          |.9:          |/k    sJ t	          |
| | :          z  ||z  z
            t	          |||z  | |:          z  z             f}0dt	          t           | :          :df          | | :          z  |t           |:          :          z  z
            t	          t           |:          :df          | |:          z  |t           | :          :          z  z             f | :           |:          g | :          d |:          did
d
d
dd
d
dD
}1t          |09:          |1k    sJ t          dEt                    \  }6}7t          dF          \  }}5 |6:           |7:          g9t	          t           |6:          :          dz  dt           |6:          :          z  z
  dz   d          t	          |  |6:          z  t           |7:          :          z   d          g8d
t	          t           |6:          :          d          t	          t           |7:          :          | |6:          z            gt	          t           |6:          :          d	          t	          t           |7:          :          | |6:          z            ggd},t          89:          |,k    sJ t          t          89:fdG           t	          t           |6:          :          d |6:          z   |7:          z   dz   :z            t	          t           |7:          :           |6:          d |7:          z  z   :z            g}-dt	          t           |6:          :          d |6:          z   |7:          z   dz   :z            t	          t           |7:          :           |6:          d |7:          z  z   :z            g |6:           |7:          g |6:          d |7:          did
d0d
t          dgdgg          t          ddgddgg          d0dH|5t          :          t          dt          :          z  t          :          gt          :          dt          :          z  gg          dI}t          |-9:          |k    sJ t	          t           |6:          :          d |6:          z   |7:          z   :z            t	          t           |7:          :           |6:          d |7:          z  z   :z            g}.dt	          t           |6:          :          d |6:          z   |7:          z   :z            t	          t           |7:          :           |6:          d |7:          z  z   :z            g |6:           |7:          g |6:          d |7:          did
d
d
t          ddgddgg          d0dJ|5t          dgdgg          t          :          t          dt          :          z  t          :          gt          :          dt          :          z  gg          dK}/t          |.9:          |/k    sJ d S )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)	rg   rh   ri   rj   rk   rm   rp   ro   is_higher_order   rC   )r   rC   r`   )r?   r   )rc   rt   r   r>         	   )r   r   )irC   r   )ru          )   )rz   )r>   ir{   )iirc         i   Fr   rz   type2)rg   rh   ri   rj   rk   rl   rm   rp   rn   rhsro   type3)rg   rh   ri   rj   rk   rl   rm   rn   commutative_antiderivativero   rp   type4)rg   rh   ri   rj   rk   rl   rm   rp   rn   r   r   ro   )rg   rh   ri   rj   rk   rm   rp   r   rn   rl   ro   r   
   t_   )rg   rh   ri   rj   rk   rm   rp   r   ro   is_second_orderrs   #   5   E   !   )rg   rh   ri   rj   rk   rm   rp   ro   A0zg(t)tauis_transformedr   r   rs   )rg   rh   ri   rj   rk   rm   rp   ro   A1r   rs   )
rg   rh   ri   rj   rk   rm   rp   ro   r   rs   f gzy t_c                  6    t           d d                   S Nr=   )r   )eq1rH   r;   s   rI   rJ   z.test__classify_linear_system.<locals>.<lambda>x  s    6sE"1"IqII rK   type6)rg   rh   ri   rj   rk   rm   rp   r   rn   rl   ro   r   r   r   type5)rg   rh   ri   rj   rk   rm   rp   rn   rl   ro   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_2rT   rV   sol2eqs_2_1eqs_2_2rX   answer_3rZ   answer_4rG   answer_5rM   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   s\C   8444JAq!QgGAq!	aaddAB	aaddAB	aaddAB	aaddAB	aaddAq		B	aaddAq		BQqTT11Q44LEqqttQQqTTl"GVb11Q44i!qqtt*,q2vQ1/EAAaDD/PST/TVE"5%33;;;"a%[2!9$qAAaDDz1AFR!Vaadd]4JQQRQRSTQUQUX4UXY4Y[Ej1q11DQQqTT!a!fQh9N4O4O3OPPz!!A$$""BqD1IaK!A#$5!!A$$q$@AAC
11Q44##T#aadd(1*q1vax*?%@%@AAz!!A$$""BqD1IaK!A#$5!!A$$q$@AACDE ED
 #5%33t;;;;*QQqTT1%%S1XaZ!AAaDD&(-B(C(C'CDDz!!A$$""BqD1IaK!A#$5!!A$$q$@AACG"7E155===*QQqTT1%%tC!HQJ11Q44,A'B'BCCz!!A$$""BqD1IaK!A#$5!!A$$q$@AACG"7E155===Vb11Q44i!qqtt*,q2vQQqTT	/AA!H/LPQTVPVYZYZ[\Y]Y]P]acfgfghifjfjajlE"#qqttGa!fqAAaDD!!4!444	!!A$$h11Q44!JqqttQ////addQz!!A$$""""addZ!a   " addAAaDD!!A$$!%qttQ!a1q!!A$$2r1ooxA1-sA!Q1a0\\HQNNA	  ! ! !
 !! H" #5'155AAAAVb11Q44i!qqtt*,q2vQQqTT	/AA!H/LPRUVUVWXUYUYPY]_bcbcdebfbf]fhE"#1IAAaDD 1z!!A$$':':#::!!A$$JQQqTT!A
11Q44(;(;$;;QqTTEJqqttQ'''QqTTEJqqttQ''') addAAaDD!!A$$!%qttQ!a1q!!A$$2
2q//8B??Aq	1
3

HQNNAq	1			   
 !! H" #5'155AAAArTBqqttG^a1h&+adR!Wnq1v.EaaPQddVX[\[\]^[_[_V_aE"#BqqttGa!f,<qAAaDDRSATAT?T,TWabcbcdebfbfijlmhnWoWo,oAAaDD1QQqTT6!Aj1q&9&9$99AAaDD5:aaPQddTUCVCV;VYZYZ[\Y]Y]X]`jklklmnkokoa a Y,addAAaDD!!A$$!51q!!A$$PQSTSTUVSWSWYZ\]\]^_\`\`bc@dDV]rvx xH #5'155AAAAAaaddFR!W$%%r"a!fq1vo'>'>2r!!A$$wQRSTSTUVSWSWQWGW@X@XYE"#Bz!!A$$/B/BAaaddFRPQPQRSPTPTWDT,U,UWYZdefefgheieiklZmZmoqrsrsturvrvovyz{|{|}~{{yo  XA  XAz!!A$$""BqqttGa!f$455,7AB1qqttQQqTT@R^_^_`a^b^bdeghghijgkgkmnpqpqrsptptvw]xdd!&&&#( ) ) ) !(t= =H #5'#2#,::hFFFFAAaDD\\2b!!A$$<<(E"#Bz!!A$$/B/BAAaDD,I,I2jYZYZ[\Y]Y]_`NaNacdcdefcgcgKhKh+i1qqtt!a1q/APTei"&v:;R9;a?B 8C 8C 7C %,4A AH #5%33x????BqqttG__bR!Wq1v%5662q1v!!A$$QRSTSTUVSWSWQW?W8X8XYE"#Bz!!A$$/B/BBqqttG,L,LbQ[\]\]^_\`\`bcQdQdfhijijklimimfmpqrsrsturvrvpvfvNwNwz!!A$$""AaaddFQqqttVOa!f$<==,?IJ1qqQRttUVUVWXUYUYHZfgfghifjfjlmopopqrososuvxyxyz{x|x|~  fAdd!)MM)MM)MM#+ , , , !(t= =H #5'#2#,::hFFFFAaaddFQqqttVOa!f,--r"aaddR!Wnq1v6M/N/NPRSUWYZ[Z[\]Z^Z^W^acdedefgdhdhahWhkmnonopqnrnrkrWrPsPstE"#Bz!!A$$/B/BAaaddFQqqQRttVOVWXYXYZ[X\X\V\D\,],]:aaddA&&!r!!A$$w11Q44(?@@"ZPQPQRSPTPTVWEXEXZ\]^]^_`]a]aZadfghghijgkgkdkZknpqrqrstququnuZuBvBv,x1qqttQQqTT*aaddAqqttQ!a5P_c#t%+OO+OO+OO'-  .  . . %,4A AH #5'#2#,::hFFFF2sAAaDD11Q44K())2adC1!4E+F+F1R4QTVWVWXYVZVZ]^]^_`]a]aVaQbHcHcdF#$R*QQqTT12E2E0Er!!A$$wQSTUTUVWTXTXQXGX-Y-Y1Z!a(((#aadd(R!W*<==r!JqqQRttUVDWDWBWY[\]\]^_\`\`Y`cefgfghifjfjcjYj?k?k-m1qqttQQqTT*aaddAqqttQ!a5P_c#t%#$hsA&6&6"a I!)"aa#q9I9I J!)#q!1!18B??Q G'I  J  J J %,4A AI #673B3<;;yHHHHr1QQqTT6BqqttG#$$bQqqttVa!f_&=&=r"b1gPQRSRSTURVRVPVFV?W?WXD JqqttQ,?,?11Q44"QQqTT'AQ)R)RTVWabcbcdebfbfhiWjWjlnopopqrososlsvwxyxyz{x|x|v|l|T}T}z!!A$$""BqqttGa!f$455)7AB1qqttQQqTT@R^_^_`a^b^bdeghghijgkgkmnpqpqrsptptvw]xdd[aMM===---c9 \: \: [:OVfjl lE #4"q99UBBBBz!!A$$""AAaDD))2j1q.A.A11Q44+H+HID JqqttQ,?,?1)F)F:VWVWXYVZVZ\]K^K^`a`abc`d`dHeHe(faddAAaDD\QQqTT1aaddA,>Tbf#FGG< 5 5 4+2$	H HE
 #4!!A$$!q99UBBBBz!!A$$""BqqttG,,bAAaDD!1D1Db1gPQRSRSTURVRVPVFV.W.Wz!!A$$""AaaddFQqqttVOa!f$<==?D z!!A$$B1I&&:aaddA+>+>QQqTT	APQPQRSPTPTH@T(U(Uz!!A$$A!Hq11Q44x/!aadd(:;;)=GHqttQQqTTSTSTUVSWSWFXqttQ!a1q1UYmq"$       6=DR RE #4!!A$$!aadd);Q??5HHHH 	:aaddA!!A$$11Q44!AAaDD& 8992j1q>Q>QSTSTUVSWSWZ\]^]^_`]a]aZaSadefgfghifjfjdjSj;k;k
:aaddA11Q44"QQqTT' 1BqqttG ;<<>D  !z!!A$$A!Hq11Q44x/!aadd(:;;R
11Q44QR@S@SUVUVWXUYUY\^ababcdaeae\eUehilmlmnolplphpUp=q=qz!!A$$B1IQQqTT	1B1I=>>)@JK!A$$PQPQRSPTPTVWVWXYVZVZI[qttQ!a1q1UYmq" $" # # # 9@tU UE #4!!A$$!aadd);Q??5HHHHqAAaDD!$$$b1g11Q44&788"Qz!!A$$PQ?R?R=RTWXYXYZ[X\X\T\_abcbcdebfbf_fTf:g:gqAAaDD!$$$b1g11Q44&788:D q:aaddAQQqTT	B1I 5661z!!A$$PQ?R?R;RTWZ[Z[\]Z^Z^T^acfgfghifjfjajTj8k8kq:aaddAQQqTT	B1I 566)8BC!A$$!aaPQddASqttQ!a1q1UYmq"Xc1%%xA72q//1hsA&6&673""HROOQ7$9 : : : PWfjl lE #4!!A$$!aadd);Q??5HHHH d11Q44mmQQqTTAAaDD[1_--r$qqttQ--11Q44!AAaDD&SUAU/V/V
WC:aaddA+>+>!qqtta(P(P
:aaddA!!A$$11Q44" 455(7AB1qqtt!A$$11Q44#$t_dtxBx"b2333FaD2$<<P<Pfmo oD #3q11T9999 d11Q44mmQqS1X!!A$$.//D1qMM1QQqTT6AaCPQPQRSPTPTHCT1U1U
VC:aaddA+>+>!AAaDD1QQqTT6@Q(R(RTVWabcbcdebfbfhiWjWjlmnolopqpqrsptptltwxyzyz{|y}y}w}l}T~T~'QqTT11Q44LAAaDD!QQqTT1+=Daf"6RTRLRQSTUQU,:W3X3X2Xx~q!tVAXAaC !Qq!tVAX"6@8 y9 y9NUeik kD #3q11T9999 b!!A$$11Q44-!#$$bQqqttVaadd]&;&;
<C:aaddA+>+>!!A$$
QQqTT@Q(R(RTVWabcbcdebfbfhiWjWjaaddFQQqTTMU U (&'addAAaDD\QQqTT1aaddA<N]a E^dhjmnlngoRHf _ _ ^6<Q1Q?ORSUVRVWXRX_`Qa=b6c6caS1#;W	> >D
 #3q11T9999b!AAaDD&1QQqTT6/A%&&2q1v!!A$$Q/G(H(H
IC:aaddA+>+>!!A$$11Q44RS@S(T(TVXYcdedefgdhdhjkYlYlaaddFQqqttVOc!ff$W& W& ('121qqtt!aQRQRSTQUQUWXGYhl#4qTWXYTZTZS[G\@]@]aVaV$%%eQX*0AqDFAqDF3Cad1faQRdSTfEU1V*W*W	Y YD
 #3q11T9999b!QQqTTAAaDD[11Q44'!+,--r"a1!qqtt9K6L/M/MrRTVWYZYZ[\Y]Y]`a`abc`d`dYdghghijgkgkYkVlOmOm
nC:aaddA+>+>11Q44!!A$$;QRQRSTQUQUCUXYCY@Z([([z!!A$$""Aqqttaadd{QQqTT'9$:;;R
11Q44QR@S@SUVXYXYZ[X\X\_`_`ab_c_cXcfgfghifjfjXjUk=l=l(nQqTT11Q441&!!A$$11Q44AAaDD!1L[_U$vZ[Y[^_]_bcacXdhigilmkmBg"qb1"W P  P  O ?EAaQRTUQUVWQWYZ\]Y]^_Y_H`cdfgcghiciqDFAqDFcd1fad1fad1f5G7 @8 @8@F!qcTUSVGW@X@X D #3a88D@@@@b!!A$$1+!!A$$&*++RAAaDD1QQqTT6MAAaDD4H24M-N-NPRSUWXYZYZ[\Y]Y]W]`a`abc`d`dWdghghijgkgkWknoWoPpPp
qC:aaddA+>+>!!A$$1PQPQRSPTPT@TWX@X(Y(Y[]^hijijklimim_ _!!A$$1!$r)\+ \+,.z!!A$$/B/BAaaddFQJQRQRSTQUQUDUXYXYZ[X\X\D\,],](_ijijklimimAaDD!!A$$i#$1Q44AAaDD!QQqTT1"=Daf#4RTVX[\Z\Q]`befdfhj_kopnpn P I I H5;AAqRStTUv>V^_abdeaefgagYAaaa(=* 6+ 6+39aD2$!:M3N3Ndkm mD #3a88D@@@@11Q44!!A$$;1%!,-Ib)bY//B	A1F1F2yHYHY
ZC:aaddA+>+>11Q44!!A$$;QRQRSTQUQUCUXYXYZ[X\X\C\@](^(^z!!A$$""Aqqttaadd{QQqTT'9AAaDD'@$ABBBzRSRSTURVRVXYGZGZ\]_`_`ab_c_cfgfghifjfj_jAaDD`1Q44` ]] E E!*QQqTT1"5"5q!!A$$1+!:LqqQRtt:S7TUU(WababcdaeaeghghijgkgkAaDD!!A$$a#$1Q44AAaDD!QQqTT1aaddA"FUYjo#4STRTWXVX[\Z\_`^`QaefdfijhjmnlnBd"qb1"qb!QBQB#3P5 I6 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& V&.4sQC!qc5J.K.Kahj jD #333t;;;; 
Ba!fq1vo*QQqTT1"5"5 55
11Q44!Q8P8PPSTU_`a`abc`d`dfgUhUhShhjlmpqrstqtmumujuvva!fr!!A$$w:aaddA#6#6!66:aaddA;N;N9NNQ[\]\]^_\`\`cdfgbhQiQiiklmpqrstqtmumukuvvxC1QQqTT6AaaddF?Qz!!A$$PQ?R?R=R+RU_`a`abc`d`dghjkflUmUm+mj1q!!!,"#%c!A#hh;)0 )013AaaddFR!W4DqTUTUVWTXTXZ[I\I\G\4\j1q!!!5"$.qqttaV$<$<5=>?AaCj2J 2J(KUVUVWXUYUY[\[\]^[_[_T`QqTT1aaddATUZ^gmAaC[MQs1Q3xxZ=o* h+ h+@G\`#% %D #3q11T9999qAv!|a!#JqqttaV$<$<<a!fr!!A$$w>NOOqAv!|a!#JqqttaV$<$<<aaddQqqttVmLLNCAadFQqSL1,<q+@AAaDDSTVWRXAYAY+Y[\]^]^_`]a]a[adfghghijgkgkdk[k(l(l!Q$1q 1$Z!q!f%=%==qqtta!f}MM(OYZYZ[\Y]Y]_`_`ab_c_cXdQqTT1aaddATTY] 'v"aB8OUVX`acefXgXgQh6i/j/jtxyz{|~{y  CD  EF  CF  zFz u ub#a$r((1*nx1~~&E"F"FFrIDQSHHUXYZ]abd]e]efg]gYgjrstvwjxjxYxUyUyLyz|L||""Z^` `D #3q11T9999j1q!!!AAaDD(#a&&0Aj1q6I6I4IAAaDD4PRUVWRXRX3XX[efgfghifjfjmnpqlr[s[ssqD!JqqttQ'''!!A$$./!Qz!!A$$7J7J5JQQqTT5Q2RRU_`a`abc`d`dghjkflUmUmmoC:aaddA+>+>)>1)Es1vv(MQRS]^_^_`a^b^bdeSfSfQfAaDDRa&&Q )%aaddQF33)456T1Z!a=P=P;PSTSTUVSWSW;W5X[\^_`jklklmnkokoa a _1_ \ 6#AAaDD1a&1162(3=>QqTT11Q44LTUTUVWTXTXZ[]^]^_`]a]acdSeT_fqbQi!CFF+1a4%adU-CDEEZ^#% %D #3q11T9999b!AAaDD&1R4-  "R2!!A$$"7"7
8C:aaddQF+C+CQqqttVaPZ[\[\]^[_[_abPcPcNcEc(d(dz!!A$$A''11Q44!JqqttQ4G4G2G)GHH(JTUTUVWTXTXZ[Z[\]Z^Z^S_klklmnkokoqqttQk&*dRVG GD #3q11T9999
 5h'''DAqFOOEArQqTT11Q44LEj1q!!1$qAAaDD!)<)<'<<q@!DDr!!A$$wAAaDD!,,,a002Cz!!A$$22B77JqqttQ<O<OQRSTSTUVSWSWQW9X9XY*QQqTT1%%q))2j1q.A.A1QQqTT6+J+JKMN ND #3q11T9999
:IIIIIIJJJj1q!!AaaddFQQqTTMA$5q#8992j1q>Q>QTUTUVWTXTX[\]^]^_`]a]a[aTacdSd;e;e
fC:aaddA+>+>11Q44!!A$$QRARTU@U(V(VXZ[efgfghifjfjlm[n[nQqTTAaaddF]AY Y ( *+!A$$!1q!!A$$PQ@Rae#4!qc{@S@ScimnmAk d d).GSU^abc^d^d*0Ac!ffHA3GCPQFFTUVYZ[V\V\T\I]1^*_*_	a aD
 #3q11T9999j1q!!AaaddFQQqTTM1#455r*QQqTT1:M:MPQPQRSPTPTWXYZYZ[\Y]Y]W]P]_`O`7a7a
bC:aaddA+>+>11Q44!!A$$PQ@Q(R(RTVWabcbcdebfbfhiWjWjQqTTAaaddF]AU U ( *+!A$$!1q!!A$$PQ@Rae"$fPQSTvXY[\W]M^F_F_wb1#PQsATAT]`ab]c]c*0Ac!ffHA3GCPQFFTUVYZ[V\V\T\I]1^*_*_	a aD
 #3q11T999999rK   c                    	 ddl m} m}m} ddlm t          d          	t          dd          D ]&}  ||          	           ||          k    sJ 't          dd          D ]:} ||          }t          	           ||          z  } |	          |k    sJ ;t          dd          D ]2} | ||d           } | ||	fd          } |	          |k    sJ 3 | ddgd	dgg          } | t          	          t          	          gt          	           t          	          gg          } |	          |k    sJ  | d
dgd
dgg          } | dt          	           z  t          	          z  t          	           t          	          z  z   dt          	           z  t          	          z  gd
t          	           z  t          	          z  dt          	           z  t          	          z  t          	           t          	          z  z   gg          } |	          |k    sJ  | g dg dg dg          } | d
	z  t          d	z            z  dt          d	z            z  dz  z   t          d	z            dz  z
  d
	z  t          d	z            z  dt          d	z            z  dz  z   dt          d	z            z  dz  z
  t          d	z            d
z  t          d	z            d
z  z
  gd	z  t          d	z            z  t          d	z            dz  z
  t          d	z            dz  z   d	z  t          d	z            z  t          d	z            dz  z
  dt          d	z            z  dz  z   t          d	z             d
z  t          d	z            d
z  z   gd	z  t          d	z            z  d	z  t          d	z            z  t          d	z            gg          } |	          |k    sJ  | g dg ddddt          d           dz  gddt          d          d
z  t          d          d
z  gg          } | t          	          	t          	          z  d	z  t          d	z  dz            z  d	z  t          	          z  z   dt          d	z  dz            z  z   dt          	          z  z
  d	z  t          d	z  dz            z  d
	z  t          	          z  z
  dt          d	z  dz            z  z
  dt          	          z  z   gdt          	          	 t          d	z  dz            z  dt          d	z  dz            z  z
  dt          	          z  z   	t          d	z  dz            z  d
z  d
t          d	z  dz            z  z   d
t          	          z  z
  gdd	t          d	z  dz            z  dz  t          d	z  dz            z   	 t          d	z  dz            z  dz  gdd	t          d	z  dz            z  d
z  	 t          d	z  dz            z  dz  t          d	z  dz            z   gg          } |	          |k    sJ  | g dg dg dg dg          } | t          	          t          	          ddgt          	           t          	          ddgddt          	          t          	          gddt          	           t          	          gg          } |	          |k    sJ  | g dg dg dg dg          } | t          	          t          	          	t          	          z  	t          	          z  gt          	           t          	          	 t          	          z  	t          	          z  gddt          	          t          	          gddt          	           t          	          gg          } |	          |k    sJ  | dt          gt          dgg          } | t          t          	z            d
z  t          t           	z            d
z  z   t          t          	z            d
z  t          t           	z            d
z  z
  gt          t          	z            d
z  t          t           	z            d
z  z
  t          t          	z            d
z  t          t           	z            d
z  z   gg          } |	          |k    sJ  | g dg d g d!g           | 	dgddgg          t          t          	fd"           t          t          	fd#           t          t          	fd$           t          t          	fd%           d S )&Nr   )r   eyezeros)
matrix_expr;   r=   rt   c                     | |k    r| dz   ndS Nr=   r    )ijs     rI   rJ   z!test_matrix_exp.<locals>.<lambda>  s    AqDDQqSSa rK   c                 >    | |k    rt          | dz   z            ndS r   )r   )r   r   r;   s     rI   rJ   z!test_matrix_exp.<locals>.<lambda>  s!    Aac1W1 rK   r>   r<   rz   r   r?   rC   )rv   rw   r_   )rz   r>   rd   )r@   r@      r   rA   r@   r   )r=   r=   r   r   )r   r=   r=   r   r   0   )r   r=   r   r   )r>   r   r   r   re   rq   )r>   r   r   r=   )r=   r<   r?   )r@   rA   r_   )rt   rt   rt   c                  4      d d d df                   S Nr<   r   Mr   r;   s   rI   rJ   z!test_matrix_exp.<locals>.<lambda>  s#    zz!AAArrE(A66 rK   c                  4      d dd d f                   S r   r   r   s   rI   rJ   z!test_matrix_exp.<locals>.<lambda>  s#    zz!BQBE(A66 rK   c                                  S Nr   M1r   r;   s   rI   rJ   z!test_matrix_exp.<locals>.<lambda>  s    zz"a00 rK   c                  4      d dd df                   S r   r   r   s   rI   rJ   z!test_matrix_exp.<locals>.<lambda>  s#    zz"RaR!V*a88 rK   )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     s
   7777777777444444sA1c]] 1 1z%%((A&&##a&&000001c]] ) )CFFAQz!Q5(((((1c]] ) )F1a7788q!DDDDEEz!Q5(((((AQ !!AFSVVSVV$AwA&7899E:au$$$$B!R!""AFsA2wwYs1vvQBA.3r77
3q660ABsA2wwYs1vvr#qb''z#a&&03r773q66>AB  E :au$$$$\\\:::677A F	
1SAYY3r!t99Q	&QqS!	3QqSRT]Qs2a4yy[QR]5RUVWZ[\]^[^W_W_U_`aUa5adghjklhldmdmnodoruvwxyvyrzrz{|r|d|}
Q$s2a4yy.3r!t99Q;
&QqS!
3bd3r!t99ns2a4yyQR{6RUVWZ[\]^[^W_W_U_`aUa6adghjklhldmdmcmnocoruvwxyvyrzrz{|r|c|}&'c#bd))mTUVWTWX[\^_`\`XaXaTasvwyz{w{s|s|}
  E
 :au$$$$Aq1Q44%'"AqttAvqttAv&( 	) 	)A F	Q3q661Q3s1Q3q5zz>AaCAJ6C!AJJFCPQFFRqDQqSUOac#a&&j82c!A#a%jj=H2cRSff9T	V	
CFFQBs1Q3q5zzMAc!A#a%jjL01SVV8;Qs1Q3q5zz\!^aPSTUVWTWXYTYPZPZl=Z]^_bcd_e_e]e=ef	
AqQqSU|A~AaCE

*QBs1Q3q5zzM!O<	
AqQqSU|A~r#ac!e**}QQqSU;<
  E :au$$$$NNNNNNNN	 	 	A F	!ffc!ffa*	!ffWc!ffa*1Q3q66*1Q3q66*	, - -E
 :au$$$$NNNNNNNN	 	 	A F	!ffc!ffqQx3q66*	!ffWc!ffqbQi3q66*1Q3q66*1Q3q66*	, - -E
 :au$$$$ 	AA  AF1XXaZ#qbd))A+s1Q3xxzC1IIaK781XXaZ#qbd))A+s1Q3xxzC1IIaK78: ; ;E :au$$$$ 				999iii011A	!Q!Q 	!	!B
:666666777
:666666777
:000000111
:88888899999rK   c                  `   t          dt                    \  } }}t          d          } | |           ||           ||          g}t           | |                              ||           | |          d ||          z  z             t           ||          dz    ||                              |           | |          z             g}t          t	           | |          |df           | |          d ||          z  z             t          t	           ||          |           | |            ||          z   dz             gg}t          ||d d         |          |k    sJ t           | |                              |           ||                              |           | |          z             t           ||                              |          dz   | |           ||          z             t           ||                              |           | |                    g}t          t	           | |          |          d | |          z            t          t	           ||          |          t           | |           ||          z                        t          t	           ||          |           | |                    gt          t	           | |          |          d | |          z            t          t	           ||          |          t           | |           ||          z                       t          t	           ||          |           | |                    gg}t          |||          |k    sJ d S )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     s   g8,,,GAq!AQqTT11Q441EqqttyyA!q1v..11Q44!8QQqTTYYq\\AAaDD=P0Q0QRD
11Q44!Q((!!A$$11Q44-88"Z!a=P=PSTSTUVSWSWRWZ[Z[\]Z^Z^R^abRb:c:cdeD$bqb	1--5555qqttyy||QQqTTYYq\\AAaDD0112aaddiillAoqqttaaPQdd{3S3SUWXYXYZ[X\X\XaXabcXdXdfgfghifjfjUkUklD
11Q44##QqqttV,,bAAaDD!1D1DtAAaDDSTSTUVSWSWKGXGXFX.Y.Y[]^hijijklimimop^q^qststuvswsw[x[xy
11Q44##QqqttV,,bAAaDD!1D1Dd11Q44RSRSTURVRV;FWFW.X.XZ\]ghihijkhlhlno]p]prsrsturvrvZwZwxzD$q))T111111rK   c                  6   t          dt                    \  } }}}}t          d          \  }}}}t          t           ||          |           ||                    t          t           ||          |           ||                    g}	t           ||          t          t          |          z            t           ||          t          t          |          z            g}
t          |	          |
k    sJ t          |	|
          dddgfk    sJ t          t           ||          |          d ||          z            t          t           ||          |          d ||          z            g}t           ||          t          t          d|z            z            t           ||          t          t          d|z            z            g}t          |          |k    sJ t          ||          dddgfk    sJ t          t           ||          |          | ||          z            t          t           ||          |          | ||          z            g}t           ||          t          t          ||z            z            t           ||          t          t          ||z            z            g}t          |          |k    sJ t          ||          dddgfk    sJ t          t           ||          |          | ||          z            t          t           ||          |          | ||          z            g}t           ||          t          t          ||z            z            t           ||          t          t          ||z            z            g}t          |          |k    sJ t          ||          dddgfk    sJ t          t           ||          |           ||                     t          t           ||          |           ||                    g}t           ||          t           t          |          z  t          t          |          z  z
            t           ||          t          t          |          z  t          t          |          z  z
            g}t          |          |k    sJ t          ||          dddgfk    sJ t          t           ||          |          d ||          z            t          t           ||          |          d ||          z            g}t           ||          t           t          d|z            z  t          t          d|z            z  z
            t           ||          t          t          d|z            z  t          t          d|z            z  z
            g}t          |          |k    sJ t          ||          dddgfk    sJ t          t           ||          |          t           ||          z            t          t           ||          |          t           ||          z            g}t           ||          t           t          t           |z            z  t          t          t          |z            z  z             t           ||          t          t          t           |z            z  t          t          t          |z            z  z             g}t          |          |k    sJ t          ||          dddgfk    sJ t          t           ||          |          |  ||          z            t          t           ||          |          | ||          z            g}t           ||          t           t          z  t          t           |z  |z            z  t          t          z  t          t          |z  |z            z  z             t           ||          t          t          t           |z  |z            z  t          t          t          |z  |z            z  z             g}t          |          |k    sJ t          ||          dddgfk    sJ t          t           ||          |           ||           ||          z             t          t           ||          |           ||           ||          z
            g}t           ||          t          d	t          d          z
  z  t          t          d           |z            z  t          d	t          d          z   z  t          t          d          |z            z  z             t           ||          t          t          t          d           |z            z  t          t          t          d          |z            z  z             g}t          |          |k    sJ t          ||          dddgfk    sJ t          t           ||          |           ||           ||          z             t          t           ||          |           ||           ||          z             g}t           ||          t           t          t          d|z            z  z             t           ||          t          t          t          d|z            z  z             g}t          |          |k    sJ t          ||          dddgfk    sJ t          t           ||          |          d ||          z   ||          z             t          t           ||          |           ||           d ||          z  z             g}t           ||          t          t          d|z            z  t          |          z  t          t          d|z            z  t          |          z  z             t           ||          t          t          d|z            z  t          |          z  t          t          d|z            z  t          |          z  z
            g}t          |          |k    sJ t          ||          dddgfk    sJ t          t           ||          |           ||          d ||          z  z             t          t           ||          |          d ||          z   ||          z             g}t           ||          t           t          |           z  t          t          d|z            z  z             t           ||          t          t          |           z  t          t          d|z            z  z             g} t          |          | k    sJ t          ||           dddgfk    sJ t          t           ||          |          d
 ||          z   ||          z             t          t           ||          |           ||           d ||          z  z             g}!t           ||          t          |z  t          d|z            z  t          t          z   t          d|z            z  z             t           ||          t           t          d|z            z  t          |z  t          d|z            z  z
            g}"t          |!          |"k    sJ t          |!|"          dddgfk    sJ t          t           ||          |          | ||          z            t          t           ||          |          | ||          z            g}#t           ||          t           t          | |z            z  t          t          ||z            z  z             t           ||          t          t          | |z            z  t          t          ||z            z  z             g}$t          |#          |$k    sJ t          |#|$          dddgfk    sJ t          t           ||          |          | ||          z            t          t           ||          |          | ||          z            g}%t           ||          t           |z  t          | t          ||z            z            z  t          ||z            z  t          |z  t          |t          ||z            z            z  t          ||z            z  z             t           ||          t          t          | t          ||z            z            z  t          t          |t          ||z            z            z  z             g}&t          |%          |&k    sJ t          |%|&          dddgfk    sJ t          t           ||          |          | ||          z  | ||          z  z             t          t           ||          |          | ||          z            g}'t           ||          dt          z  |z  t          ||t          |dz  d
|z  |z  z             z   z  dz            z  |t          |dz  d
|z  |z  z             z
  z  dt          z  |z  t          ||t          |dz  d
|z  |z  z             z
  z  dz            z  |t          |dz  d
|z  |z  z             z   z  z
            t           ||          t          t          ||t          |dz  d
|z  |z  z             z   z  dz            z  t          t          ||t          |dz  d
|z  |z  z             z
  z  dz            z  z             g}(t          |'          |(k    sJ t          |'|(          dddgfk    sJ t          t           ||          |          | ||          z   ||          z             t          t           ||          |          | ||          z   ||          z
            g})t           ||          t          |z  t          |t          |dz  d	z             z            z  t          |dz  d	z             d	z
  z  t          |z  t          | t          |dz  d	z             z            z  t          |dz  d	z             d	z   z  z
            t           ||          t          t          |t          |dz  d	z             z            z  t          t          | t          |dz  d	z             z            z  z             g}*t          |)          |*k    sJ t          |)|*          dddgfk    sJ t          t           ||          |          d          t          t           ||          |          d          g}+t           ||          t                    t           ||          t                    g},t          |+          |,k    sJ t          |+|,          dddgfk    sJ t          t           ||          |          d ||          z   ||          z
            t          t           ||          |           ||                    g}-t           ||          t          |z  t          |          z  t          t          z   t          |          z  z             t           ||          t          t          |          z  t          |z  t          |          z  z             g}.t          |-          |.k    sJ t          |-|.          dddgfk    sJ t          t           ||          |           ||                    t          t           ||          |           ||           ||          z             g}/t           ||          t          t          |          z            t           ||          t          |z  t          |          z  t          t          |          z  z             g}0t          |/          |0k    sJ t          |/|0          dddgfk    sJ t          t           ||          |          d ||          z            t          t           ||          |           ||           ||          z             g}1t           ||          dt          z  t          d|z            z            t           ||          t          t          d|z            z  t          t          |          z  z             g}2t          |1          |2k    sJ t          |1|2          dddgfk    sJ t          t           ||          |          d ||          z            t          t           ||          |           ||                    g}3t           ||          t          t          d|z            z            t           ||          t          t          |          z            g}4t          |3          |4k    sJ t          |3|4          dddgfk    sJ d S )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666MAq!Q##JAq!Qz!!A$$""AAaDD))z!!A$$""AAaDD))+DqqttRAYqqttRAY!D$<<4$%%$A7777z!!A$$""AaaddF++z!!A$$""AaaddF++-DqqttRAaC[!!qqttRAaC[!!#D$<<4$%%$A7777z!!A$$""AaaddF++z!!A$$""AaaddF++-DqqttRAaC[!!qqttRAaC[!!#D$<<4$%%$A7777 z!!A$$""AaaddF++z!!A$$""AaaddF++-DqqttRAaC[!!qqttRAaC[!!#D$<<4$%%$A7777z!!A$$""QQqTTE**z!!A$$""AAaDD))+DqqttbSQZ"SVV)+,,qqttRAYCFF*++-D$<<4$%%$A7777z!!A$$""BqqttG,,z!!A$$""AaaddF++-DqqttbSQqS\Bs1Q3xxK/00qqttRAaC[2c!A#hh;.//1D$<<4$%%$A7777z!!A$$""AaaddF++z!!A$$""AaaddF++-DqqttbSaRT]RAaC[011qqttRQBqD		\Bs1Q3xxK/002D$<<4$%%$A7777z!!A$$""QBqqttG,,z!!A$$""AaaddF++-DqqttaRU3r!tAv;;&2c!A#a%jj899qqttRQBqDF^bQqSUm3446D$<<4$%%$A7777z!!A$$""AAaDD11Q44K00z!!A$$""AAaDD11Q44K002DqqttRT!WW%c477(1*oo5AQK8HTRSWWUVY8WWXXqqttRT!WWHQJ'"Sa^^*;;<<>D$<<4$%%$A7777
11Q44##QQqTTAAaDD[11
11Q44##QQqTTAAaDD[113E!rcBs1Q3xxK'((!b2c!A#hh;&'')E%==E!!!!%''D1a&>9999
11Q44##QqqttVaadd]33
11Q44##aaddUQqqttV^446E!bQqSk#a&&(2c!A#hh;s1vv+==>>!bQqSk#a&&(2c!A#hh;s1vv+==>>@E%==E!!!!%''D1a&>9999
11Q44##QQqTTAaaddF]33
11Q44##QqqttVaadd]335E!rc#qb''kBs1Q3xxK/00!baRj2c!A#hh;.//1E%==E!!!!%''D1a&>9999
11Q44##QqqttVaadd]33
11Q44##aaddUQqqttV^446E!bd3qs88mrBwAaC&8899!rc#ac((lRT#ac((]2335E%==E!!!!%''D1a&>9999
11Q44##QqqttV,,
11Q44##QqqttV,,.E!rc#qbd))mbQqSk122!baRTlRAaC[0113E%==E!!!!%''D1a&>9999
11Q44##QqqttV,,
11Q44##QqqttV,,.E!rc!eC4!99---d1Q3ii7"Q$s1T!A#YY;?O?O:OPTUVWXUXPYPY:YYZZ!baRQqS		\***RAd1Q3iiK0@0@-@@AACE%==E!!!!%''D1a&>9999
11Q44##QqqttVa!f_55
11Q44##QqqttV,,.E!beAgc!QadQqSUl););%;"<Q">???T!Q$QRSTQTUVQV,EWEWAWX[\]_[_`a[abefgij1a4!A#a%<  j! g""#g$ c% c% \%&'$q!tac!e|*<*<&<\> > ? ?!bQDA!A$6$6 679:::RAq4PQSTPTWXYZWZ[\W\P\K]K]G]D^_`D`@a@a=aabbdE %==E!!!!%''D1a&>9999 
11Q44##QqqttVaadd]33z!!A$$""AaaddFQQqTTM224E!bd3qadQh/000$q!tax..12DE1SRSQSTXYZ\]Y]`aYaTbTbQbMcMcHceijkmnjnk f ff I   qqttRAd1a4!8nn,---3r$q!tax..7H3I3I0IIJJLE %==E!!!!%''D1a&>9999
11Q44##Q''z!!A$$""A&&(E!b\\qqttRLLE%==E!!!!%''D1a&>9999
11Q44##QqqttVaadd]33z!!A$$""AAaDD))+E!bd3q66kR"Wc!ff$4455qqttRAYAc!ff,--/E%==E!!!!%''D1a&>9999
11Q44##QQqTT**z!!A$$""AAaDD11Q44K002E!bQi  qqttRT#a&&[2c!ff9,--/E%==E!!!!%''D1a&>9999
11Q44##QqqttV,,z!!A$$""AAaDD11Q44K002E!ad3qs88m$$qqttRAaC[2c!ff9,--/E%==E!!!!%''D1a&>9999
11Q44##QqqttV,,z!!A$$""AAaDD))+E!bQqSk""qqttRAY!E%==E!!!!%''D1a&>999999rK   c                     t          d          } t          d          }t          d          }t          d          }t          d          }t          d          \  }}}}}	}
t          t	           ||           |           |  ||           z  | ||           z  z   | ||           z  z   |
 ||           z  z             t          t	           ||           |           | ||           z  | ||           z  z
  | ||           z  z             t          t	           ||           |           | |z
  |	z
   ||           z            t          t	           ||           |           |	 ||           z  |
 ||           z  z
            g}t           ||           t
          |z  |z  t          ||
z
  z  t          |
 | z            z  ||z   |
z
  z  z
  t          |||z   |
z
  z  |dz  z
  |||	z   |
z
  z  z
  |	|
z  z   z  t          |  ||z   |	z   z            z  |	| |z
  |z   |z   |	z   z  z  z
  t          t          |  ||z   z            z  z
            t           ||           t
          t          |z  t          |
 | z            z  ||z   |
z
  z  z
  t          | ||z   |
z
  z  ||z  z   |dz  z   ||	|
z
  z  z   z  t          |  ||z   |	z   z            z  |	| |z
  |z   |z   |	z   z  z  z   t          t          |  ||z   z            z  z             t           ||           t           ||z   |	z   |
z
  z  t          |  ||z   |	z   z            z  |	z            t           ||           t          t          |
 | z            z  t          t          |  ||z   |	z   z            z  z             g}t          |          |k    sJ t          ||          dg d	fk    sJ t          d
t                    \  }}}}}}t          d          \  }}t          dd          \  }}t          t	           ||           |           | ||           z            t          t	           ||           |           | ||           z            t          t	           ||           |           | |z
   ||           z            g}t           ||           t
          t          |z  t          |  ||z   z            z  ||z   z  z
            t           ||           t           |z  t          |  ||z   z            z  ||z   z  t          z             t           ||           t          t          |  ||z   z            z            g}t          |          |k    sJ t          ||          dg dfk    sJ d ||           z   ||           z
  d ||           z  z
  t	           ||           |           z   d ||           z   ||           z   d ||           z  z
  t	           ||           |           z   d ||           z   ||           z   d ||           z  z
  t	           ||           |           z   g}t           ||           t          t          d| z            z  t
          dz  t          d          t          z  dz  z   t          t          d          | z            z  z   t          t          d          | z            t          d          t
          z  dz  t          t          dd          z  z   z  z             t           ||           t
          dz  t          d          t          z  dz  z   t          t          d          | z            z  t          t          d          | z            t          d          t
          z  dz  t          t          dd          z  z   z  z             t           ||           t
          t          t          d          | z            z  t          t          t          d          | z            z  z
  t          t          d| z            z  z             g}t          |          |k    sJ t          ||          dg dfk    sJ t          t	           ||           |            ||           t          dd          z  d ||           z  z    ||           z    ||           t          dd          z  z             t          t	           ||           |            ||           t          dd          z  d ||           z  z    ||           t          dd          z  z             t          t	           ||           |            ||           t          dd          z   ||           t          dd          z  z             t          t	           ||           |            ||           t          dd          z   ||           t          dd          z  z             g}t           ||           t
          t          d| z            z  t          | z  t          d| z            z  z             t           ||           t          t          d| z            z  dt          z  t          d| z            z  z             t           ||           dt          z  t          d| z            z  t          t          d| z            z  t          dd          z  z             t           ||           t          t          d| z            z  t          t          d| z            z  z             g}t          |          |k    sJ t          ||          dg d	fk    sJ t           ||                               |            ||                     t           ||                               |            ||                     t           ||                               |            ||                     t           ||                               |            ||                     g}t           ||           t
          t          |           z            t           ||           t          t          |           z            t           ||           t          t          |           z            t           ||           t          t          |           z            g}t          |          |k    sJ t          ||          dg d	fk    sJ t          t	           ||           |            ||            ||           z             t          t	           ||           |            ||            ||           z             t          t	           ||           |            ||           t          dd          z   ||           z             t          t	           ||           |            ||           dz   ||           dz  z             g}t           ||           t
          t          |           z  t          | z  t          |           z  z   dt          z  | z  t          | t          dd          z            z  z   dt          z  dt          z  z   t          | t          dd          z            z  z             t           ||           t          t          |           z  t          | z  t          | t          dd          z            z  z
  t          dt          z  z   t          | t          dd          z            z  z
            t           ||           t          | z  t          | t          dd          z            z  dz  t          dz  t          z   t          | t          dd          z            z  z             t           ||           t          t          | t          dd          z            z  dz  t          | z  t          | t          dd          z            z  dz  z             g} t          |          | k    sJ t          ||           dg d	fk    sJ t          t	           ||           |            ||                     t          t	           ||           |            ||                     t          t	           ||           |            ||                     t          t	           ||           |            ||                     t          t	           ||           |            ||                     g}!t           ||           t
          t          |           z            t           ||           t          t          |           z            t           ||           t          t          |           z            t           ||           t          t          |           z            t           ||           t"          t          |           z            g}"t          |!          |"k    sJ t          |!|"          dg dfk    sJ t          t	           ||           |           d ||           z   ||           z             t          t	           ||           |           d ||           z            t          t	           ||           |           d ||           z            t          t	           ||           |            ||           d ||           z  z             t          t	           ||           |           d ||           z            g}#t           ||           t
          t          d| z            z  t          | z  t          d| z            z  z             t           ||           t          t          d| z            z            t           ||           t          t          d| z            z            t           ||           t          t          d| z            z  t"          | z  t          d| z            z  z             t           ||           t"          t          d| z            z            g}$t          |#          |$k    sJ t          |#|$          dg dfk    sJ t          t	           ||           |            ||                     t          t	           ||           |            ||                     t          t	           ||           |            ||                     g}%t           ||           t
          t          |           z            t           ||           t          t          |           z            t           ||           t          t          |           z            g}&t          |%          |&k    sJ t          |%|&          dg dfk    sJ t          t	           ||           |           | |z
   ||           z            t          t	           ||           |           | ||           z            t          t	           ||           |           | ||           z            g}'t           ||           t
           ||z   z  t          |  ||z   z            z  |z            t           ||           t          t          || z            z            t           ||           t
          t          |  ||z   z            z  t          z             g}(t          |'          |(k    sJ t          |'|(          dg dfk    sJ t          t	           ||           |           | ||           z            t          t	           ||           |           | |z
   ||           z            t          t	           ||           |           | ||           z            g})t           ||           t
          t          |z  t          |  ||z   z            z  |z  z             t           ||           t           ||z   z  t          |  ||z   z            z  |z            t           ||           t          t          |  ||z   z            z  t          z             g}*t          |)          |*k    sJ t          |)|*          dg dfk    sJ t          t	           ||           |           | ||           z            t          t	           ||           |           | ||           z            t          t	           ||           |           | |z
   ||           z            g}+t           ||           t
          t          |z  t          |  ||z   z            z  ||z   z  z
            t           ||           t           |z  t          |  ||z   z            z  ||z   z  t          z             t           ||           t          t          |  ||z   z            z            g},t          |+          |,k    sJ t          |+|,          dg dfk    sJ t          dt                    \  }-}.}/t          d           \  }0}1}2t          t	           |-|           |           d |-|           z   |.|           z             t          t	           |.|           |           |0 |-|           z            g}3t           |-|           t
          t          | t          |0d!z             d!z   z            z  t          |0d!z             d!z
  z  t          t          |  t          |0d!z             d!z
  z            z  t          |0d!z             d!z   z  z
            t           |.|           t
          t          | t          |0d!z             d!z   z            z  t          t          |  t          |0d!z             d!z
  z            z  z             g}4t          |3          |4k    sJ t          |3|4          dd"d"gfk    sJ t          t	           |-|           |           d |.|           z  d |/|           z  z
            t          t	           |.|           |           d |-|           z  d |/|           z  z             t          t	           |/|           |           d |-|           z  d |.|           z  z
            g}5t           |-|           dt
          z  t          t          d#          | z            t          d#          t          z  t          dd$          z  t          t          dd$          z  z   z  z
  t          t          d#          | z            t          t          dd$          z  t          d#          t          z  t          dd$          z  z   z  z
            t           |.|           t
          t          dd          z  t          t          d#          | z            t          d#          t          z  t          dd$          z  t          t          dd$          z  z   z  z   t          t          d#          | z            t          t          dd$          z  t          d#          t          z  t          dd$          z  z   z  z
            t           |/|           t
          t          t          t          d#          | z            z  z   t          t          t          d#          | z            z  z
            g}6t          |5          |6k    sJ t          |5|6          dg dfk    sJ t          dt	           |-|           |           z  d% |.|           z  d% |/|           z  z
            t          dt	           |.|           |           z  d |-|           z  d |/|           z  z             t          dt	           |/|           |           z  d |-|           z  d |.|           z  z
            g}7t           |-|           t
          t          t          d#          | z            t          d#          t          z  t          dd&          z  t          t          d'd&          z  z   z  z
  t          t          d#          | z            t          t          dd&          z  t          d#          t          z  t          dd&          z  z   z  z
            t           |.|           t
          t          t          d#          | z            t          d#          t          z  t          dd(          z  t          t          dd&          z  z   z  z   t          t          d#          | z            t          t          dd&          z  t          d#          t          z  t          dd(          z  z   z  z
            t           |/|           t
          t          t          t          d#          | z            z  z   t          t          t          d#          | z            z  z
            g}8t          |7          |8k    sJ t          |7|8          dg dfk    sJ t          t!           ||           |           d) ||           z            t          t!           ||           |           d* ||           z  d ||           z  z             t          t!           ||           |           d ||           z  d+ ||           z  z   d ||           z  z             f}9t           ||           d,t
          z  t          d)| z            z  d-z            t           ||           d.t
          z  t          d)| z            z  d-z  dt          z  t          d| z            z  d+z  z
            t           ||           t
          t          d)| z            z  t          t          d| z            z  z   t          t          d| z            z  z             g}:t          |9          |:k    sJ t          |9|:          dg dfk    sJ t          t	           ||           |           d ||           z  d/ ||           z  z
            t          t	           ||           |           d0 ||           z  d+ ||           z  z             t          t	           ||           |           d/ ||           z  d+ ||           z  z
            g};t           ||           t
          t          d+d          z  t          t          d1          | z            t          d1          t          z  t          d/d2          z  t          t          d3d2          z  z   z  z
  t          t          d1          | z            t          t          d)d2          z  t          d1          t          z  t          d/d2          z  z   z  z
            t           ||           t
          t          d/d          z  t          t          d1          | z            t          d1          t          z  t          d+d2          z  t          t          d4d2          z  z   z  z   t          t          d1          | z            t          t          d4d2          z  t          d1          t          z  t          d5d2          z  z   z  z
            t           ||           t
          t          t          t          d1          | z            z  z   t          t          t          d1          | z            z  z
            g}<t          |;          |<k    sJ t          |;|<          dg dfk    sJ t          dt	           ||           |           z  d6 ||           z  d6 ||           z  z
            t          dt	           ||           |           z  d7 ||           z  d8 ||           z  z             t          dt	           ||           |           z  d% ||           z  d% ||           z  z
            g}=t           ||           t
          t          dt          d          z  | z            t          d          t          z  t          dd          z  t          z
  z  z
  t          dt          d          z  | z            t          t          d          t          z  t          dd          z  z   z  z
            t           ||           t
          t          dt          d          z  | z            t          d          t          z  t          dd          z  t          z   z  z   t          dt          d          z  | z            t          t          d          t          z  t          d0d          z  z   z  z
            t           ||           t
          t          t          dt          d          z  | z            z  z   t          t          dt          d          z  | z            z  z
            g}>t          |=          |>k    sJ t          |=|>          dg dfk    sJ t          t	           ||           |           d ||           z   ||           z
            t          t	           ||           |           d ||           z  d ||           z  z    ||           z
            t          t	           ||           |           d ||           z   ||           z             g}?t           ||           t          | dz  z  t          d| z            z  dz  | dt          z  t          z   z  t          d| z            z  z   t
          t          z   dt          z  z   t          d| z            z  z             t           ||           t          | dz  z  t          d| z            z  dz  | dt          z  t          z   z  t          d| z            z  z   t
          dt          z  z   t          d| z            z  z             t           ||           t          | dz  z  t          d| z            z  | dt          z  dt          z  z   z  t          d| z            z  z   dt
          z  dt          z  z   t          d| z            z  z             g}@t          |?          |@k    sJ t          |?|@          dg dfk    sJ t          t	           ||           |           d ||           z   ||           z
  d ||           z  z
            t          t	           ||           |           d ||           z   ||           z   d ||           z  z
            t          t	           ||           |           d ||           z  d ||           z  z
            g}At           ||           t
          t          d| z            z  t          |           t          t          dd          z  t          dz  z   z  z
  t          |           t          dz  t          t          d0d          z  z   z  z
            t           ||           t          |            t          t          dd          z  t          dz  z   z  t          |           t          dz  t          t          d0d          z  z   z  z
            t           ||           t
          t          d| z            z  t          t          |           z  z
  t          t          |           z  z             g}Bt          |A          |Bk    sJ t          |A|B          dg dfk    sJ t          t!           ||           |           d ||           z            t          t!           ||           |           d% ||           z            f}Ct           ||           t          d           t
          z  t          d9t          d          z  | z            z  dz  t          d          t          z  t          dt          d          z  | z            z  dz  z             t           ||           t
          t          d9t          d          z  | z            z  t          t          dt          d          z  | z            z  z             g}Dt          |C          |Dk    sJ t          |C|D          dd"d"gfk    sJ t          t	           ||           |           d ||           z  d ||           z  z             t          t	           ||           |           d% ||           z  d: ||           z  z             g}Et           ||           t
          d(t          d;          z
  z  t          | t          d;          d<z   z  dz            z  t          dd=          z  t          d(t          d;          z   z  t          | d<t          d;          z
  z  dz            z  t          dd=          z  z             t           ||           t
          t          | t          d;          d<z   z  dz            z  t          t          | d<t          d;          z
  z  dz            z  z             g}Ft          |E          |Fk    sJ t          |E|F          dd"d"gfk    sJ t          t	           ||           |            ||            ||           z             t          t	           ||           |           d ||           z  d ||           z  z             g}Gt           ||           t
          dz  t          d+          t          z  dz  z   t          t          d+          | z  dz            z  t          | t          dd          z            z  t          t          d+          | z  dz            t          d+          t
          z  dz  t          t          dd          z  z   z  t          | t          dd          z            z  z             t           ||           t
          t          t          d+          | z  dz            z  t          | t          dd          z            z  t          t          t          d+          | z  dz            z  t          | t          dd          z            z  z
            g}Ht          |G          |Hk    sJ t          |G|H          dd"d"gfk    sJ t          d>d          }0 ||                               |           |0 ||           z  z
   ||                               |           |0 ||           z  z   g}It           ||           t
          t          |0| z            z  t          t          |0| z            z  z             t           ||           t
          t          |0| z            z  t          t          |0| z            z  z
            g}Jt          |I          |Jk    sJ t          |I|J          dd"d"gfk    sJ t          t	           |-|           |           d"          t          t	           |.|           |            |-|           d |.|           z  z
   ||           z   |1|2z  z            t          t	           ||           |            |.|           d ||           z  z
   ||           z   |1|2z  z            t          t	           ||           |            |/|            ||           z   d ||           z  z
  |1|2z  z            t          t	           |/|           |           d"          g}Kt           |-|           d0t
          z  dt          z  z             t           |.|           dt
          z  dt          z  z   t          t          d| z  |1|2z  z            z  z
  t          t          |  t          d          dz   z  |1|2z  z            z  z   t"          t          |  dt          d          z
  z  |1|2z  z            z  z             t           ||           t
           dt          z  z   t          d          t          z  t          |  t          d          dz   z  |1|2z  z            z  z
  t          d          t"          z  t          |  dt          d          z
  z  |1|2z  z            z  z             t           ||           t          t          t          d| z  |1|2z  z            z  z   t          t          |  t          d          dz   z  |1|2z  z            z  z   t"          t          |  dt          d          z
  z  |1|2z  z            z  z             t           |/|           t
                    g}Lt          |K          |Lk    sJ t          |K|L          dg dfk    sJ t          t	           |-|           |           d |-|           z            t          t	           |.|           |           d |-|           z  d+ |.|           z  z             g}Mt           |-|           d?t
          z  t          d| z            z  dz            t           |.|           t
          t          d| z            z  t          t          d+| z            z  z             g}Nt          |M          |Nk    sJ t          |M|N          dd"d"gfk    sJ t          t	           |-|           |           d@t$          z   |-|           z  d |.|           z  z
            t          t	           |.|           |           dt$          z   |.|           z            g}Ot           |-|           dt$          z  t
          z  t          dt$          z  | z            z  dz  t          t          d@t$          z  | z            z  z             t           |.|           t
          t          dt$          z  | z            z            g}Pt          |O          |Pk    sJ t          |O|P          dd"d"gfk    sJ t          t	           |-|           |           d@t$          z   |-|           z            t          t	           |.|           |           dt$          z   |.|           z            g}Qt           |-|           t
          t          d@t$          z  | z            z            t           |.|           t          t          dt$          z  | z            z            g}Rt          |Q          |Rk    sJ t          |Q|R          dd"d"gfk    sJ t          t	           |-|           |           d"          t          t	           |.|           |           d"          g}St           |-|           t
                    t           |.|           t                    g}Tt          |S          |Tk    sJ t          |S|T          dd"d"gfk    sJ t          t	           |-|           |            |-|                     t          t	           |.|           |           d"          g}Ut           |-|           t
          t          |           z            t           |.|           t                    g}Vt          |U          |Vk    sJ t          |U|V          dd"d"gfk    sJ t          t	           |-|           |            |.|                     t          t	           |.|           |           d"          g}Wt           |-|           t
          t          | z  z             t           |.|           t                    g}Xt          |W          |Xk    sJ t          |W|X          dd"d"gfk    sJ t          t	           |-|           |           d"          t          t	           |.|           |            |-|                     g}Yt           |-|           t
                    t           |.|           t
          | z  t          z             g}Zt          |Y          |Zk    sJ t          |Y|Z          dd"d"gfk    sJ t          t	           |-|           |           d"          t          t	           |.|           |            |.|                     g}[t           |-|           t
                    t           |.|           t          t          |           z            g}\t          |[          |\k    sJ t          |[|\          dd"d"gfk    sJ t          t	           |-|           |            |-|                     t          t	           |.|           |           t$           |.|           z            g}]t           |-|           t
          t          |           z            t           |.|           t          t          t$          | z            z            g}^t          |]          |^k    sJ t          |]|^          dd"d"gfk    sJ t          t	           |-|           |           t$           |-|           z            t          t	           |.|           |           t$            |.|           z            g}_t           |-|           t
          t          t$          | z            z            t           |.|           t          t          t$           | z            z            g}`t          |_          |`k    sJ t          |_|`          dd"d"gfk    sJ t          t	           |-|           |           t$           |.|           z            t          t	           |.|           |           d"          g}at           |-|           t$          t
          z  t$          t          z  | z  z             t           |.|           t                    g}bt          |a          |bk    sJ t          |a|b          dd"d"gfk    sJ t          t	           |-|           |           t$           |.|           z            t          t	           |.|           |           t$           |-|           z            g}ct           |-|           t
           t          t$           | z            z  t          t          t$          | z            z  z             t           |.|           t
          t          t$           | z            z  t          t          t$          | z            z  z             g}dt          |c          |dk    sJ t          |c|d          dd"d"gfk    sJ t          t	           |-|           |           dz   |.|           dz            t           |-|            t	           |.|           |           z   d"          g}et           |-|           t
           t          |           z  t          t          |           z  z
            t           |.|           t
          t          |           z  t          t          |           z  z
            gt           |-|           t
           t          |            z  t          t          |           z  z             t           |.|           t
          t          |            z  t          t          |           z  z             gg}t          |e          |k    sJ |D ]}ft          |e|f          dd"d"gfk    sJ d S )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>   rx   ir   %   ,   r   r   r   )r   r   r   r   r   r8   za, b, cr=   r         r^   r|   i'   rv   rw   rt            r`   rC         ry   r   ru   r   r   r   rd   r~   i  +      r   rz   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B    	sA	$B	$B	$B	$B#*+D#E#E Cc3Sz""Q%%##cT""Q%%Z#bbee)%;c""Q%%i%G#bbQRee)%STTz""Q%%##SAYRRUU%:SAY%FGGz""Q%%##sdSj3&61%=>>z""Q%%##SAYRRUU%:;;=D rr!uubfSj2sSy>#sd1f++#=sSy3#OORTVY[^ad[dgj[jVk!VW39s?+W,.1#gW6 S77:A2sSy3;O7P7PSQRUX[W[^aWadgWgjmWmX SS QBc	N+++, - - rr!uub2c6#sd1f++-sSy3??"sdCRUIX[OF\_bcf_fFfilnoioFoC#IG C  #QBc	C$8 9 9C:;>s
S@PSV@VY\@\;]C_ _acdgijhjlom i e e b   rr!uurc39s?S01#qb#)c/6J2K2KKCOPPrr!uubcT!Vnr#qb#)c/.B*C*C'CCDDFD $<<4$%%$)=====}(;;;Aq!Q1WFByt,,,HCz!!A$$""BqqttG,,z!!A$$""BqqttG,,z!!A$$""bS2XqqttO446D qqttR"R%QBRL 1 1127;;<<qqttbSVCBG---rBw7"<==qqttRQBRL)))**,D $<<4$%%$			):::::aaddFQQqTTMAaaddF"Z!a%8%88aaddFQQqTTMAaaddF"Z!a%8%88aaddFQQqTTMAaaddF"Z!a%8%88:D qqttRBqD		\RTDGGBJqL%8#d1ggai..$HH3tTUwwWXy>>[_`a[b[bce[efg[gQ\  L! ! " "qqttbdT!WWRZ\)3tAwwqy>>9CQ	NNDQRGGTVJWXL[]^fgikl^m^m[mLm<nnooqqttRDGGAI&CQ	NN)::RBqD		\IJJLD $<<4$%%$			):::::z!!A$$""AAaDD"a$81QQqTT6$AAAaDD$H11Q44PXY[]^P_P_K_$_``z!!A$$""AAaDD!Q$7!AAaDD&$@11Q44QSUVCW$WXXz!!A$$""AAaDD"a$811Q44Q;O$OPPz!!A$$""AAaDD"a$811Q44Q;O$OPPRD qqttRAaC[2a4AaC=011qqttRAaC[1R4AaC=011qqttQrT#ac((]RAaC["a%@@AAqqttRAaC[2c!A#hh;.//1D $<<4$%%$)===== aaddiillAAaDD!!2aaddiillAAaDD#9#92aaddiillAAaDD;Q;QSUVWVWXYVZVZV_V_`aVbVbdedefgdhdhSiSi
jCqqttRAYAAaDD"SVV)!4!4b1r#a&&y6I6I2aaPQddTVWZ[\W]W]T]K^K^_D#;;$#t$$|||(<<<<<z!!A$$""AAaDD11Q44K00z!!A$$""AAaDD11Q44K00z!!A$$""AAaDD"a$811Q44$?@@z!!A$$""AAaDDFQQqTT!VO446D qqttRAYAc!ff,qtAvc!HQNN:J6K6K/KKqQStVXY[V[|]`abcklmd d b ^ ^ O   qqttRAYAc!HQNN*:&;&;!;;rAbDy#aPXYZ\]P^P^N^J_J_>__``qqttRT#aA.///1RTBYAhqRSnnDT@U@U4UUVVqqttRAhq!nn,---a/"Q$s1Xa^^;K7L7L2LQ2NNOO	QD
 $<<4$%%$)===== j1q!!11Q44(("Z!a-@-@!!A$$*G*GJWXWXYZW[W[]^L_L_ababcdaeaeIfIfj1q!!11Q44(("Z!a-@-@!!A$$*G*GICqqttRAYAAaDD"SVV)!4!4b1r#a&&y6I6I2aaPQddTVWZ[\W]W]T]K^K^qqttRAY!D#;;$#t$$(?????z!!A$$""AaaddFQQqTTM22z!!A$$""AaaddF++z!!A$$""AaaddF++z!!A$$""AAaDD1QQqTT6M22z!!A$$""AaaddF++	-D
 qqttRAaC[2a4AaC=011qqttRAaC[!!qqttRAaC[!!qqttRAaC[2a4AaC=011qqttRAaC[!!	#D
 $<<4$%%$)@@@@@ j1q!!11Q44(("Z!a-@-@!!A$$*G*GJWXWXYZW[W[]^L_L_ababcdaeaeIfIf
gCqqttRAYAAaDD"SVV)!4!4b1r#a&&y6I6IJD#;;$#t$$yyy(99999 
11Q44##sdSj!!A$$%677
11Q44##S1X..
11Q44##S1X..0E !rc39oc1"cCi.&9&99#=>>!bSUm$$!baRs^,,,r1224E %==E!!!!%''D)))+<<<<< 
11Q44##R!W--
11Q44##rcBh!_55
11Q44##R!W--/E !b2b5aRb\!2!2225566!rc27mCBG$5$55b899!baRb\***R/002E %==E!!!!%''D)))+<<<<< 
11Q44##R!W--
11Q44##R!W--
11Q44##rcBh!_557E !b2b5aRb\!2!22BG<<==!rc"fS!R"W...R82=>>!baRb\***++-E %==E!!!!%''D)))+<<<<<iX...GAq!i  GAq! 
11Q44##QqqttVaadd]33
11Q44##QqqttV,,.E!bQQUa01114A;;?CbaRQUVWZ[V[Q\Q\_`Q`MaIbIbFbdhijmnindodoe G   !bQQUa0111BsA2tAE{{Q;O7P7P4PPQQSE %==E!!!!%''D1a&>9999
11Q44##QqqttVa!f_55
11Q44##R!Wq1v%566
11Q44##QqqttVa!f_557E !adSb!__d2hhrk(1b//.IBxXZ\^O_O_L_._``$r((1*oor(1b//1DHHRKB4OOPQ R R!b!Q'#d2hhqj//488B;xPQSU;VY[\defhj\k\kYk;k*ll$r((1*oor(1b//1DHHRKR@P@P4PPQR S S!b2c$r((1*oo--3tBxxz??0BBCC	EE
 %==E!!!!%''D)))+<<<<<*QQqTT1%%%r!!A$$wAAaDD'899*QQqTT1%%%r!!A$$w11Q44'788*QQqTT1%%%q1v!!A$$779E !b3tBxxz??DHHRKB,G"XVY[]M^M^J^,^__$r((1*oor(2r"2"22T"XXb[!R5PPQR S S!b3tBxxz??DHHRKB,G"XVXZ\M]M]J],]^^$r((1*oor(2r"2"22T"XXb["bAQAQ5QQRS T T!b2c$r((1*oo--3tBxxz??0BBCC	EE
 %==E!!!!%''D)))+<<<<<tAAaDD!}}b1g&&4!a=="QQqTT'AaaddF:J(K(KtAAaDD!}}a!fq1vo!!A$$6779D!c"fSAYY&s*++!c"fSAYY&s*QrT#ac((]1_<==!bRTlRAaC[02c!A#hh;>??AE $<<5    $&&4*;;;;;
11Q44##QqqttVb1g%566
11Q44##R!Wq1v%566
11Q44##R!Wq1v%5668E !b!Q'#d3iik*:*:DIIbLRTVYIZIZ<Z]_`hila a ^ = + $s))A+&&8B+<+<(<tCyy|HUWY\L]L]?](]^_ ` `!b"a(3tCyy{+;+;T#YYr\(STVYJZJZ=Z]_`hika a ^ > , $s))A+&&8B+<+<(<tCyy|HUWY\L]L]?](]^_ ` `!b2c$s))A+....CS		!4D4D1DDEE	GE
 %==E!!!!%''D)))+<<<<<*QQqTT1%%%r!!A$$wAAaDD'899*QQqTT1%%%s11Q44x"QQqTT''9::*QQqTT1%%%r!!A$$wAAaDD'899;E !b3qay{++T!WWRZA-F-KLLsSTUYZ[U\U\S\]^S^O_O_ac1ggbj!Q'b( P) ) * *!b3qay{++T!WWRZA-F-KLLsSTUYZ[U\U\S\]^S^O_O_ac1ggbj"a(b) P* * + +!b2c!DGG)A+....C$q''	!4D4D1DDEE	GE
 %==E!!!!%''D)))+<<<<<
11Q44##QqqttVaadd]33
11Q44##QqqttVa!f_qqtt%;<<
11Q44##QqqttVaadd]335E !bAgc!A#hh&q(1adRi=QqS+AAR"WqQSt^UXYZ[\Y\U]U]D]]^^!bAgc!A#hh&q(1adRi=QqS+AAR!B$YPSTUVWTWPXPXDXXYY!bAgc!A#hh&AbD1R4KQqS)AAQrTAbD[RUVWXYVYRZRZDZZ[[]E %==E!!!!%''D)))+<<<<<
11Q44##QqqttVaadd]QqqttV%;<<
11Q44##QqqttVaadd]QqqttV%;<<
11Q44##QqqttVa!f_557E !bQqSkCFFBx1~~,=1,D$EEAPRSTPTWYZbceghZiZiWiPiHjjkk!s1vvgr(1a..02a4783q662a4"XVXZ[__J\C\;]]^^!bQqSkBs1vvI-3q66	9::<E %==E!!!!%''D)))+<<<<<tAAaDD!}}a!f%%r$qqttQ--AAaDD'A'ABD!tAwwhrk#bajl"3"33A5Q
3qayQR{CSCS8STU8UUVV!bRQZ\***RAd1ggIaK0@0@-@@AACE $<<5    $&&4!Q.8888
11Q44##QqqttVa!f_55
11Q44##R!Wr!!A$$w%6779E!b"tDzz/*3q$t**r//B1/D+E+EEhrSUFVFVVY[]_4jj^ Zad4jj1!344Z55=b"5E5EZF F G G!bQT

R02333bQT$ZZ=PQR=R9S9S6SSTTVE %==E!!!!%''D1a&>9999
11Q44##QQqTTAAaDD[11
11Q44##R!Wq1v%5668E!r!td1ggbjl*CQ	!,<,<<S8Aq>>AQ=R=RR$q''!)A+Q
1r(2q///A AB3qRSUVGWCXCXXY Z Z!bT!WWQYq[)))#aA.>*?*??"SaQRSTEUEUBUVYZ[\defhi\j\jZjVkVkBkkllnE %==E!!!!%''D1a&>9999 	sAAaDDIIaLL1QQqTT6!11Q4499Q<<!AAaDD&#89D!bQqSkBs1Q3xxK/00"QQqTT2c!A#hh;CPQRSPSHH;T2U2UVE$<<5    $&&4!Q.8888 
11Q44##Q''
11Q44##aaddQqqttVmaadd&:QqS%ABB
11Q44##aaddQqqttVmaadd&:QqS%ABB
11Q44##aaddQQqTTkAaaddF&:QqS%ABB
11Q44##Q''	)E
 !beadl##!beadlRBqD!A#J%77"S!T!WWq[AQSTUVSVAW=X=X:XX[]^acdbdfg1ggg c!c _ _ \   !rcAbDj4772:c1"d1ggk2BAaC2H.I.I#IIDQRGGTVJWZ\][]_`1gg` \!\ X X M   !b2c"Q$!*oo--3r477Q;7G17M3N3N0NNQSTWYZXZ\]`def`g`g\gXhjklmjmXnToToQoopp!b\\E %==E!!!!%''D///+BBBBBz!!A$$""AaaddF++R
11Q440C0CQqqttVaPQPQRSPTPTf_-U-UVD!beC!HHnQ&''AAaDD"S1XX+3qs882K)L)LME$<<5    $&&4!Q.8888z!!A$$""BqD1I!!A$$$677JqqttQ<O<OQSTUQUVWVWXYVZVZQZ9[9[\D!ac"fSAa[[(*RBqDF^;<<b1r#bQRdSTf++~>V>VWE$<<5    $&&4!Q.8888z!!A$$""BqD1I..:aaddA3F3F1QQqTT	0R0RSD!bRT!Vn%%r!!A$$3r!tAv;;'?'?@E$<<5    $&&4!Q.8888z!!A$$""A&&:aaddA+>+>(B(BCD!b\\2aaddB<<(E$<<5    $&&4!Q.8888z!!A$$""AAaDD))2j1q.A.A1+E+EFD!bQi  "QQqTT2,,/E$<<5    $&&4!Q.8888z!!A$$""AAaDD))2j1q.A.A1+E+EFD!b2a4i  "QQqTT2,,/E$<<5    $&&4!Q.8888z!!A$$""A&&:aaddA+>+>!(E(EFD!b\\2aaddBqD2I../E$<<5    $&&4!Q.8888z!!A$$""A&&:aaddA+>+>!(E(EFD!b\\2aaddBs1vvI../E$<<5    $&&4!Q.8888z!!A$$""AAaDD))2j1q.A.A1QQqTT6+J+JKD!bQi  "QQqTT2c!A#hh;"7"78E$<<5    $&&4!Q.8888z!!A$$""AaaddF++R
11Q440C0CaR!W-M-MND!bQqSk""BqqttRQBqD		\$:$:;E$<<5    $&&4!Q.8888z!!A$$""AaaddF++R
11Q440C0CQ-G-GHD!adQrT!Vm$$b1rll3E$<<5    $&&4!Q.8888z!!A$$""AaaddF++R
11Q440C0CQqqttV-L-LMD!rc#qbd))mbQqSk122BqqttRQBqD		\BsSTUVSVxxK=W4X4XYE$<<5    $&&4!Q.8888 j1q!!1$aaddAg..AAaDD5:aaddA;N;N3NPQ0R0R
SC!rc#a&&j2c!ff9,--!bQi"SVV)+,,.!rc#qb''kBs1vvI-..!baRj2c!ff9,--/0D #;;$ : :c3''D1a&>99999: :rK   c                  T   t          dt                    \  } }}}t          d          \  }}}}}}	}
t          d          \  }}t          t           | |          |           | |           ||          z   dz             t          t           ||          |           | |            ||          z
  dz             g}t           | |          t          t
          z   d|dz  z  z   |t
          dz   z  z             t           ||          t           d|dz  z  z
  |t
          dz
  z  z
            g}t          |          |k    sJ t          ||          d	d
d
gfk    sJ t          t           | |          |           | |           ||          z   dz             t          t           ||          |           | |           ||          z   dz             g}t           | |          t           t
          t          d|z            z  z   |z
  dz
            t           ||          t          t
          t          d|z            z  z   |z   dz
            g}t          |          |k    sJ t          ||          d	d
d
gfk    sJ t          t           | |          |           | |          dz             t          t           ||          |           | |          dz             g}t           | |          t          t          |          z  dz
            t           ||          t          t          |          z  t
          z   d|z  z   dz
            g}t          |          |k    sJ t          ||          d	d
d
gfk    sJ t          t           | |          |           | |          t          |          z             t          t           ||          |          |t          |          z   | |          z    ||          z             g}t           | |          t          t          |          z  |t          |          z  z             t           ||          t          |z  t          |          z  t
          t          |          z  z   |dz  t          |          z  z             g}t          |          |k    sJ t          ||          d	d
d
gfk    sJ t          t           | |          |          d|z   | |          z    ||          z             t          t           ||          |           | |           ||          z
            g}t           | |          t          dt          d          z   z  t          t          d          |z            z  t
          dt          d          z
  z  t          t          d           |z            z  z   |t          dd          z  z   t          dd          z             t           ||          t          t          t          d          |z            z  t
          t          t          d           |z            z  z   |t          dd          z  z             g}t          |          |k    sJ t          ||          d	d
d
gfk    sJ t          t           | |          |          d | |          z  d ||          z  z
            t          t           ||          |          d ||          z            t          t           ||          |           ||          t          |          z             g}t           | |          t
          t          d|z            z  t          dd          z  t          t          d|z            z  z             t           ||          t
          t          d|z            z            t           ||          t          t          |          z  |t          |          z  z             g}t          |          |k    sJ t          ||          d	g dfk    sJ t          t           | |          |          d|z   | |          z             t          t           ||          |           ||                    g}t           | |          t          t          |          z  d|z  z
  dz
            t           ||          t
          t          |          z            g}t          |          |k    sJ t          ||          d	d
d
gfk    sJ t          t           | |          |           | |          d ||          z  z             t          t           ||          |          d | |          z   ||          z   dt          |          z  z             g}t           | |          t          t          |          z  t          d|z            z  t
          t          |          z  t          d|z            z  z   t          |          t          d|z            dz  z  z   t          |          t          d|z            dz  z  z             t           ||          t          t          |          z  t          d|z            z  t
          t          |          z  t          d|z            z  z
            g}t          |          |k    sJ t          ||          d	d
d
gfk    sJ t          t           | |          |          |d | |          z  z
   ||          z   ||z  z            t          t           ||          |           | |          d ||          z  z
   ||          z   ||z  z            t          t           ||          |          |	 ||          z   d ||          z  z
  ||z  z            g}t           | |          t           t          d|z  ||z  z            z  t
          t          | t          d          dz   z  ||z  z            z  z   t          t          | dt          d          z
  z  ||z  z            z  z   t          t          dd          d|z  |	z   d          z             t           ||          t          d           t
          z  t          | t          d          dz   z  ||z  z            z  t          d          t          z  t          | dt          d          z
  z  ||z  z            z  z   t          t          dd          ||	z   d          z             t           ||          t          t          d|z  ||z  z            z  t
          t          | t          d          dz   z  ||z  z            z  z   t          t          | dt          d          z
  z  ||z  z            z  z   t          t          dd          |d|	z  z   d          z             g}t          |          |k    sJ t          ||          d	g dfk    sJ t          t           | |          |          d|z   | |          z    ||          z
  dz
            t          t           ||          |          d|z   | |          z    ||          z
  dz
            g}t           | |          t          t
          z   d|dz  z  z   d|dz  z  z   |t
          dz
  z  z             t           ||          t          d|dz  z  z   d|dz  z  z
  |t
          dz
  z  z             g} t          |          | k    sJ t          ||           d	d
d
gfk    sJ t          t           | |          |          dz  dt           | |          |          z  z
  dz   d          t          |
  | |          z  t           ||          |          z   d
          g}!t           | |          t          |z
            t           ||          t          |z  |
z  t
          |
z  z   |dz  |
z  t          dd          z  z             gt           | |          t          d|z  z             t           ||          t          |z  |
z  t
          |
z  z   |dz  |
z  t          dd          z  z             gg}"t          |!          |"k    sJ |"D ]}#t          |!|#          d	d
d
gfk    sJ t          dd	          }$t          d          }%t          d          }&t          d          }'t          d          }(t          d          }t          d          }t          d          }
t          d           })t          t           |
|          |           ||                    t          t           ||          |          |$ |
|          dz   z            g}*t           |
|          t          t          t          |$          |z            z  |$t          dd          z  z  t
          t          t          |$           |z            z  |$t          dd          z  z  z
  dz
            t           ||          t          t          t          |$          |z            z  t
          t          t          |$           |z            z  z             g}+t          |*          |+k    sJ t          |*|+          d	d
d
gfk    sJ t           |
|          |)t          t          |$           |(z            z  dz  t          t          |$           |(z            dz  z   |'t          t          |$           |(z            z  dt          |$          z  z  z   t          t          |$          |z            z  |)t          t          |$          |(z            z  dz  t          t          |$          |(z            dz  z   |'t          t          |$          |(z            z  dt          |$          z  z  z
  t          t          |$           |z            z  z   dz
            t           ||          |)t          |$          z  t          t          |$           |(z            z  dz  t          |$          t          t          |$           |(z            z  dz  z   |'t          t          |$           |(z            z  dz  z   t          t          |$          |z            z  |)t          |$          z  t          t          |$          |(z            z  dz  t          |$          t          t          |$          |(z            z  dz  z   |'t          t          |$          |(z            z  dz  z
  t          t          |$           |z            z  z
            g},t          |* |
|&          |) ||&          |%i!          |,k    sJ t          |*|,          d	d
d
gfk    sJ t          t           | |          |           | |           ||          z   d"z             t          t           ||          |          d | |          z  d ||          z  z   d#z             g}-t           | |          t           dt          d          z   z  t          |dt          d          z
  z            z  dz  t
          dt          d          z
  z  t          |t          d          dz   z            z  dz  z
  t          d$d          z
            t           ||          t          t          |dt          d          z
  z            z  t
          t          |t          d          dz   z            z  z   t          dd          z
            g}.t          |-          |.k    sJ t          |-|.          d	d
d
gfk    sJ t          t           | |          |           | |           ||          z   d%z             t          t           ||          |          d | |          z   ||          z   d#z             g}/t           | |          t          d          t          z  t          |          z  t          t          d          |z            z  dz  t          d          t
          z  t          |          z  t          t          d          |z            z  dz  z   d&t          t          d          |z            dz  z  dz  z
  d&t          t          d          |z            dz  z  dz  z
            t           ||          t          t          |          z  t          t          d          |z            z  t
          t          |          z  t          t          d          |z            z  z
  d't          t          d          |z            dz  z  dz  z
  d't          t          d          |z            dz  z  dz  z
            g}0t          |/          |0k    sJ t          |/|0          d	d
d
gfk    sJ t          t           | |          |           | |          d ||          z  z   |z             t          t           ||          |          d | |          z  d ||          z  z   |z             g}1t           | |          t           dt          d(          z
  z  t          |dt          d(          z   z  dz            z  dz  t
          dt          d(          z   z  t          |dt          d(          z
  z  dz            z  dz  z
  d|z  z   |z
            t           ||          t          t          |dt          d(          z   z  dz            z  t
          t          |dt          d(          z
  z  dz            z  z   t          t          dd          d|z  |z
  d          z
            g}2t          |1          |2k    sJ t          |1|2          d	d
d
gfk    sJ t          t           | |          |          |          t          t           ||          |          |          g}3t           | |          t          ||z  z             t           ||          t
          ||z  z             g}4t          |3          |4k    sJ t          |3|4          d	d
d
gfk    sJ t          t           | |          |          d
          t          t           ||          |          | | |          z  |z             g}5t           | |          t                    t           ||          t
          |z  |t          |z  |z   z  z             g}6t          |5          |6k    sJ t          |5|6          d	d
d
gfk    sJ t          t           | |          |          |          t          t           ||          |           | |          |z             g}7t           | |          t          ||z  z             t           ||          t
          ||dz  z  dz  z   |t          |z   z  z             g}8t          |7          |8k    sJ t          |7|8          d	d
d
gfk    sJ t          t           | |          |          |          t          t           ||          |           | |          d ||          z  z   |z             g}9t           | |          dt          z  ||z  z             t           ||          t          t
          t          d|z            z  z   ||z  dz  z
  t          t          dd          |d|z  z   d          z
            g}:t          |9          |:k    sJ t          |9|:          d	d
d
gfk    sJ t          t           | |          |           | |          |z             t          t           ||          |          |          g};t           | |          t          t          |          z  |z
            t           ||          t
          ||z  z             g}<t          |;          |<k    sJ t          |;|<          d	d
d
gfk    sJ t          t           | |          |           ||          |z             t          t           ||          |          d
          g}=t           | |          t          |t
          |z   z  z             t           ||          t
                    g}>t          |=          |>k    sJ t          |=|>          d	d
d
gfk    sJ t          t           | |          |           | |          d ||          z  z   |z             t          t           ||          |          |          g}?t           | |          dt          z  t
          t          |          z  z   |z
  d|z  |z  z
  d|z  z
            t           ||          t          ||z  z             g}@t          |?          |@k    sJ t          |?|@          d	d
d
gfk    sJ t          t           | |          |           ||          |z             t          t           ||          |          d ||          z  |z             g}At           | |          t          t
          t          d|z            z  dz  z   |dz  z
  |d|z  |z
  z  dz  z             t           ||          t
          t          d|z            z  |dz  z
            g}Bt          |A          |Bk    sJ t          |A|B          d	d
d
gfk    sJ t          t           | |          |           | |          |z             t          t           ||          |          d | |          z  |z             g}Ct           | |          t          t          |          z  dz  |z
            t           ||          t          t          |          z  t
          z   d|z  z
  |d|z  |z
  z  z
            g}Dt          |C          |Dk    sJ t          |C|D          d	d
d
gfk    sJ t          t           | |          |           | |          d ||          z  z   |z             t          t           ||          |          d | |          z  d ||          z  z   |z             g}Et           | |          dt          z  t
          t          d|z            z  dz  z   d|z  d|z  |z
  z  dz  z   t          t          dd)          |d|z  z   d          z
            t           ||          t          t
          t          d|z            z  z   |d|z  |z
  z  dz  z
  t          t          dd)          |d|z  z   d          z
            g}Ft          |E          |Fk    sJ t          |E|F          d	d
d
gfk    sJ t          t           | |          |          d | |          z   ||          z
  |z             t          t           ||          |          d | |          z  d ||          z  z
  d|z  z             g}Gt           | |          t          dt
          z  z   |dt          z  |z   z  z             t           ||          dt
          z  |dt          z  d|z  z   z  z             g}Ht          |G          |Hk    sJ t          |G|H          d	d
d
gfk    sJ t          t           ||          |          d |
|          z  dz             t          t           |
|          |          d ||          z  d |
|          z  z
  dz             g}It           ||          t          dz  dt
          z  dz  z
  t          |           z  t          d|z            z  dt          z  dz  t
          dz  z   t          |           z  t          d|z            z  z
  d*t          d|z            dz  z  dz  z   d*t          d|z            dz  z  dz  z             t           |
|          t          t          |           z  t          d|z            z  t
          t          |           z  t          d|z            z  z
  dt          d|z            dz  z  z   dt          d|z            dz  z  z             g}Jt          |I          |Jk    sJ t          |I|J          d	d
d
gfk    sJ d S )+Nf g h kr9   zx t a b c d yzk1 k2rA   rt   r_   r<   Tr   r?   r=   rz   r{   r@   r   rB   r   Fevaluater   r   r   r>   r   positivex_0t_0r;   r3   r   Ticsrx   r      Q   :      r   1   rw   )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   k1r4  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   s11r   x0t0rb  rc  rd  r  r   sol12br   r   r   r   r   r   r:  r  eq17r	  eq18r  eq19r  eq20r  r;  r  eq22r  eq23r=  r>  r?  eq25rA  rB  rC  rD  rE  sK                                                                              rI   #test_sysode_linear_neq_order1_type2ry    s	(   111JAq!Q!/22Aq!Q1aWFB z!!A$$""AAaDD11Q44K!O44z!!A$$""QQqTTEAAaDDL1$4557DqqttR"WqAv%26
233qqttbS1QT6\ArAvJ.//1D$<<4$%%$A7777z!!A$$""AAaDD11Q44K!O44z!!A$$""AAaDD11Q44K!O446DqqttbS2c!A#hh;&*Q.//qqttR"S1XX+%)A-..0D$<<4$%%$A7777z!!A$$""AAaDD1H--z!!A$$""AAaDD1H--/DqqttRAY]##qqttRAY^ac)A-..0D$<<4$%%$A7777z!!A$$""AAaDD3q66M22z!!A$$""Ac!ffHqqttOaadd$:;;=DqqttRAY3q66)**qqttRT#a&&[2c!ff9,q!tCFF{:;;=D$<<4$%%$A7777z!!A$$""AaC!!A$$J1$566z!!A$$""AAaDD11Q44K002DqqttRT!WW%c$q''!)nn4r1tAww;7GTRSWWHUVJ7WWZ[\degij\k\kZkkb!__  qqttRDGGAI&Ca
OO);;aQ>OOPPRD $<<4$%%$A7777z!!A$$""BqqttGa!f$455z!!A$$""BqqttG,,z!!A$$""AAaDD3q66M224D qqttRBqD		\(2q//1Bs2a4yyL@AAqqttRBqD		\""qqttRAY3q66)**,D $<<4$%%$			)::::: z!!A$$""AaC!!A$$J//z!!A$$""AAaDD))+DqqttRAY1_q())qqttRAY!D$<<4$%%$A7777 z!!A$$""AAaDD1QQqTT6M22z!!A$$""BqqttGaaddNQs1vvX$=>>@DqqttRAYs1Q3xx'"SVV)C!HH*<<a&&QqS1$%'*1vvc!A#hhk'9: ; ;qqttRAYs1Q3xx'"SVV)C!HH*<<==?D $<<4$%%$A7777 z!!A$$""Q11Q44Z!!A$$%61$=>>z!!A$$""QQqTTAaaddF]QQqTT%9AaC$@AAz!!A$$""Q1X!!A$$%61$=>>@D qqttbSRT1Q3Z(2c1"d1ggk2BAaC2H.I.I+IIBsTUSUWX[_`a[b[bWbScefghehSiOjOjLjj!Q1q5999: ; ;qqttd1ggXb[aRa1%5qs%;!<!<<tAwwrz#qbRSVZ[\V]V]R]N^`abc`cNdJeJe?ee!QQ7778 9 9qqttRBqD!A#J'"S!T!WWq[1A1Q31G-H-H*HH2cSTRTVWZ^_`ZaZaVaRbdefgdgRhNiNiKii!QQqS5999: ; ;	<D $<<4$%%$			)::::: 
11Q44##RTAAaDD[11Q44%7"%<==
11Q44##SUQQqTT\AAaDD%81%<==?E!b2g!Q$&1a4/!R"W+=>>!b1QT6kBq!tG+aaj899;E%==E!!!!%''D1a&>9999 
11Q44##Q&:aaddA+>+>)>>BAFF11Q44*QQqTT1---q113E1rAv11Q44Aa"Q$AaQ9O)O P PQ1rAaCx  "QQqTT2a46BqD=1a46(1a..;P+P"Q"QRTE%==E!!!! < <eS))dQF^;;;;; 	d###A	B	B
%..C
%..CAAAA
11Q44##QQqTT**
11Q44##Q!q\224E!bT!WWQY'8B??(::RT!WWHQJ=OPQS[\^`aSbSbPb=bbeffgg!bT!WWQY'"S$q''!__*<<==?E%==E!!!!%''D1a&>9999 	11Q44!Ca%%%a'#tAwwhsl*;*;A*==T!WWHSL!!!1T!WW9-./247719~~>s4773;!CQ$4$4Q$66CQ$$$aQi0125tAwwhqj//BB EFF 	G 	G 	11Q44!DGG)Ca---a/$q''#tAwwhsl:K:K2KA2MM#tAwwhsl###A%&'*47719~~6T!WW9Sa---a/$q''#d1ggck:J:J2J12LLDGGCK(((*+,/a
OO<< 	= 	=	F %aaeeQ"r2333v====%((TAq6N::::
 z!!A$$""AAaDD11Q44K!O44z!!A$$""AaaddFQqqttVOb$899;D!rc1tAww;'Aq477{O(<(<<Q>Qa[AQRUVWY]^_Y`Y`cdYdVeRfRfAfghAhhr!nn  !bQDGG_---3q$q''A+3G3G0GG(STUV--WXXZE $<<5    $&&4!Q.8888z!!A$$""AAaDD11Q44K"$455z!!A$$""BqqttGaaddNR$788:D!d1ggbjQ'DGGAI6q81ggbjQ'DGGAI6q89T!WWQY**1,-/1#d1ggai..!2C/CA/EF G G !bQiDGGAI.CFF3tAwwqy>>1II#d1ggai..!++A-.03CQ	NNA4E0Ea0GH I IJE
 $<<5    $&&4!A-7777z!!A$$""AAaDD1QQqTT6MB$677z!!A$$""AaaddFQqqttVOb$899;D!rc1tBxx<(QDHH-=a-?)@)@@B!d2hh,Aq488|$4Q$6 7 779:<=bDACEF G G!bQDHH-a/0002c!Qb\:J1:L6M6M3MM(1Q--2u===> ? ?@E $<<5    $&&4!A-7777z!!A$$""B''z!!A$$""B'')D!b2a4i  !b2a4i  "E$<<5    $&&4!A-7777z!!A$$""A&&z!!A$$""AaaddFRK002D!b\\!bdQ1r	]*++-E$<<5    $''DAa5>9999z!!A$$""B''z!!A$$""AAaDD2I..0D!b2a4i  !b2ad719nq"r'{2335E$<<5    $''DAa5>9999z!!A$$""B''z!!A$$""AAaDD1QQqTT6MB$6779D!bebdl##qqttR"S1XX+%1Q.Xa]]B2I[`1a1a1aabbdE$<<5    $''DAa5>9999tAAaDD!}}aaddRi((tAAaDD!}}b!!#D!bQi"n%%qqttR"Q$Y!E$<<5    $''DAa5>9999tAAaDD!}}aaddRi((tAAaDD!}}a  "D!b1b2g;&''qqttRLLE$<<5    $''DAa5>9999z!!A$$""AAaDD1QQqTT6MB$677z!!A$$""B'')D!bebQi'",qtAv5"<==qqttR"Q$Y!E$<<5    $''DAa5>9999z!!A$$""AAaDD2I..z!!A$$""AaaddFRK002D!b2c!A#hh;q=(2a4/!QrTBY-/ABBqqttRAaC[2a4'((*E$<<5    $''DAa5>9999z!!A$$""AAaDD2I..z!!A$$""AaaddFRK002D!bQikB&''qqttRAY^ad*Q"r	]:;;=E$<<5    $''DAa5>9999z!!A$$""AAaDD1QQqTT6MB$677z!!A$$""AaaddFQqqttVOb$899;D!bebQqSk!m+ac1R4"9oa.??(1R.."qt)???@ A A!b2c!A#hh;&AbD2Iq8(1R.."qt)???@ A ABE $<<5    $''DAa5>9999z!!A$$""AaaddFQQqTTMB$677z!!A$$""AaaddFQqqttVOad$:;;=D!b1R4i!QrTBY-/00qqttQrTAqtad{O+,,.E$<<5    $''DAa5>9999
 tAAaDD||BqqttGBJ''D1aLL11Q44!!A$$q)I)IJD!r!tad1f}c1"gg-c!A#hh6tAv1}c1"gg-c!A#hh67QqS1nQ&')+C!HHaK)9: ; ; qqttRQBZAaC(2c1"gg:c!A#hh+>>QqS1n%')#ac((A+~6 7 78E
 $<<5    $''DAa5>999999rK   c                  3   t          dt                    \  } }}}}}t          d          \  }}}t          dd          }	t          t           | |	          |	          |	 ||	          z   | |	          z             t          t           ||	          |	          |	  | |	          z   ||	          z             g}
t           | |	          t          t          |	          z  t          |	dz  dz            z  t          t          |	          z  t          |	dz  dz            z  z             t           ||	          t          t          |	          z  t          |	dz  dz            z  t          t          |	          z  t          |	dz  dz            z  z
            g}t          |
          |k    sJ t          |
|          dddgfk    sJ t          t           | |          |          |dz   ||          z  | | |          z  z             t          t           ||          |          d|dz  z   | |          z  d	|dz  z  |z    ||          z  z             g}t           | |          t          d
          t          z  d
z  t          d
d	t          d
          z  z
  z  dz  z   t          |d	z  d	t          d
          z   z  dz  |dz  dz  z             z  t          |d	z  d	t          d
          z
  z  dz  |dz  dz  z             t          d
          t          z  d
z  t          d	t          d
          z  d
z   z  t          dd          z  z   z  z
            t           ||          t          |d	z  d	t          d
          z
  z  dz  |dz  dz  z             t          d
d	t          d
          z  z
  z  dz  t          d
          t          z  t          dd
          z  z   z  t          |d	z  d	t          d
          z   z  dz  |dz  dz  z             t          d	t          d
          z  d
z   z  dz  t          d
          t          z  t          dd
          z  z   z  z             g}t          |          |k    sJ t          ||          dddgfk    sJ t           | |                              |          | | |          z   ||          z             t           ||                              |           | |           | ||          z  z             g}t           | |          t          dz  t          t          z  dz  z   t          |dz  dz  t          |z  z
            z  t          |dz  dz  t          |z  z             t          dz  t          t          z  t          dd          z  z   z  z             t           ||          t          t          z  dz  t          dz  z   t          |dz  dz  t          |z  z             z  t          |dz  dz  t          |z  z
            t          t          z  dz  t          t          dd          z  z   z  z
            g}t          |          |k    sJ t          ||          dddgfk    sJ t           | |                              |          | | |           ||          z    ||          z   z            t           ||                              |          | | |           ||          z    ||          z   z            t           ||                              |          | | |           ||          z    ||          z   z            g}t           | |          t           d	z  t          d	z  z
  dt          z  d	z  z   t          d	z  t          d	z  z   t          d	z  z   t          d	|dz  z  dz            z  z             t           ||          dt          z  d	z  t          d	z  z
  t          d	z  z
  t          d	z  t          d	z  z   t          d	z  z   t          d	|dz  z  dz            z  z             t           ||          t           d	z  dt          z  d	z  z   t          d	z  z
  t          d	z  t          d	z  z   t          d	z  z   t          d	|dz  z  dz            z  z             g}t          |          |k    sJ t          ||          dg dfk    sJ t           | |                              |          |dz   | |           ||          z    ||          z   z            t           ||                              |          |dz   | |           ||          z    ||          z   z            t           ||                              |          |dz   | |           ||          z    ||          z   z            g}t           | |          t           d	z  t          d	z  z
  dt          z  d	z  z   t          d	z  t          d	z  z   t          d	z  z   t          |d	z            z  z             t           ||          dt          z  d	z  t          d	z  z
  t          d	z  z
  t          d	z  t          d	z  z   t          d	z  z   t          |d	z            z  z             t           ||          t           d	z  dt          z  d	z  z   t          d	z  z
  t          d	z  t          d	z  z   t          d	z  z   t          |d	z            z  z             g}t          |          |k    sJ t          ||          dg dfk    sJ t          t           | |          |          | | |           ||          z    ||          z    ||          z   z            t          t           ||          |          | | |           ||          z    ||          z    ||          z   z            t          t           ||          |          | | |           ||          z    ||          z    ||          z   z            t          t           ||          |          | | |           ||          z    ||          z    ||          z   z            g}t           | |          t           dz  t          dz  z
  t          dz  z
  d	t           z  dz  z   t          dz  t          dz  z   t          dz  z   t           dz  z   t          d|dz  z            z  z             t           ||          d	t          z  dz  t          dz  z
  t          dz  z
  t           dz  z
  t          dz  t          dz  z   t          dz  z   t           dz  z   t          d|dz  z            z  z             t           ||          t           dz  d	t          z  dz  z   t          dz  z
  t           dz  z
  t          dz  t          dz  z   t          dz  z   t           dz  z   t          d|dz  z            z  z             t           ||          t           dz  t          dz  z
  d	t          z  dz  z   t           dz  z
  t          dz  t          dz  z   t          dz  z   t           dz  z   t          d|dz  z            z  z             g}t          |          |k    sJ t          ||          dg dfk    sJ t          dd          }t          t           | |          |          | | |          z   ||          z             t          t           ||          |          | ||          z   | |          z
            g}t           | |          t          t          |dz  dz            z  t          |          z  t          t          |dz  dz            z  t          |          z  z             t           ||          t          t          |dz  dz            z  t          |          z  t          t          |dz  dz            z  t          |          z  z
            g}t          |          |k    sJ t          ||          dddgfk    sJ t          t           | |          |          d|z   | |          z  d ||          z  z             t          t           ||          |          d | |          z  d|z   ||          z  z             g}t           | |          t#          dt          dz  t          dz  z
  d          t          d|dz  z  dz  d|z  z
            z  t          dz  t          dz  z   t          d|dz  z  dz  d|z  z             z  z             t           ||          t          dz  t          dz  z
  t          d|dz  z  dz  d|z  z
            z  t          dz  t          dz  z   t          d|dz  z  dz  d|z  z             z  z             g}t          |          |k    sJ t          ||          dddgfk    sJ t          t           | |          |          d|z   | |          z  |dz   ||          z  z             t          t           ||          |          |dz    | |          z  d|z   ||          z  z             g}t           | |          t          dz  t          t          z  dz  z
  t          t          |d	z  z  d	z  d|dz  z  dz  z             z  t          dz  t          t          z  dz  z   t          t           |d	z  z  d	z  d|dz  z  dz  z             z  z             t           ||          t#          dt          t          z  dz  t          dz  z
  d          t          t           |d	z  z  d	z  d|dz  z  dz  z             z  t          t          z  dz  t          dz  z   t          t          |d	z  z  d	z  d|dz  z  dz  z             z  z             g}t          |          |k    sJ t          ||          dddgfk    sJ t          t           | |          |          |dz   ||          z  d|z   | |          z  z             t          t           ||          |          |dz    | |          z  d|dz  z  d|z  z    ||          z  z             g}t           | |          t          ddt          d          z  z
  z  dz  t          d          t          z  dz  z   t          |d	z  t          d          dz   z  dz  d|dz  z  dz  z             z  t          ddt          d          z  z   z  dz  t          d          t          z  dz  z
  t          |d	z  dt          d          z
  z  dz  d|dz  z  dz  z             z  z             t           ||          t          d          t          z  dz  t          ddt          d          z  z
  z  dz  z   t          |d	z  dt          d          z
  z  dz  d|dz  z  dz  z             z  t          d          t          z  dz  t          ddt          d          z  z   z  dz  z
  t          |d	z  t          d          dz   z  dz  d|dz  z  dz  z             z  z
            g}t          |          |k    sJ t          ||          dddgfk    sJ t          t           | |          |          d|z   | |          z  |dz   ||          z  z             t          t           ||          |          d|dz  z
   | |          z  d|z  d|dz  z  z    ||          z  z             g}t           | |          t           ||          z  t           ||          z  t%          |dz  t          t%          d|z  |                    z  t          t%          d|dz  z  d|z  z   |                    z   ||          dz  z  |          z  z             t           ||          t           ||          z  t           ||          t%          |dz  t          t%          d|z  |                    z  t          t%          d|dz  z  d|z  z   |                    z   ||          dz  z  |          z  t          t%          d|z  |                    t          t%          d|dz  z  d|z  z   |                    z   ||          z  z   z  z             g} t          |          | k    sJ d S )Nzf g h k x0 y0r9   x t arTr  r<   r   r?   rw   "   r_   r>   r   rB   r@   r  r   rA   Fr^  rx   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   ro  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    s   !/x@@@Aq!QRgGAq!$Az!!A$$""AaaddFQQqTTM22z!!A$$""QBqqttGaaddN335DqqttRAYs1a46{{*RAYs1a46{{-BBCCqqttRAYs1a46{{*RAYs1a46{{-BBCCED$<<4$%%$A7777z!!A$$""AqD1I!!A$$$677z!!A$$""AadF11Q44K1QT6A:qqtt2C$CDDFDqqttd2hhrk"nr2$r((
?';B'>>AqD!dSUhh,DWXYDY\]_`\`ab\bDb@c@ccAq488|$Q&Aa/00$r((2+b.2qbzTVCWX`acegXhXhCh2hij k kqqttSAq488|,Q.Aa788"b1T"XX:o:Nr:QTXY[T\T\]_T_`hika a U ; 1a$r((l+A-1Q677QtBxxZ"_9Mb9PSWXZS[S[\^S^_ghikm_n_nSn9nop q qrD $<<4$%%$A7777qqttyy||QqqttVaadd]++qqttyy||aaddUQqqttV^,,.DqqttbdQrT!VmSAa!A#%6%66QT!Vac\9J9JBqDSTUWSWX`acefXgXgSgLg9hhiiqqttad1fr!tmSAa!A#%6%66QT!Vac\9J9JAbDQRFUWX`acefXgXgUgLg9hhiikD$<<4$%%$A7777qqttyy||Q!qqttaadd 2344b11q!!A$$QRQRSTQUQU+XYXYZ[X\X\J\G]6^6^qqttyy||Q!qqttaadd 23446DqqttbSURT\AbDF*bdRTkBqD.@#a1fQh---OOPPqqttQrT!Vbd]RT)RTBqD[2a4-?Qq!tVAX,NNOOqqttbSUQrT!V^bd*bdRTkBqD.@#a1fQh---OOPPRD $<<4$%%$			):::::qqttyy||QT11Q44!!A$$;1#5677AAaDDIIaLL!Q$PQPQRSPTPTWXWXYZW[W[P[^_^_`a^b^bPbJc9d9dqqttyy||QT11Q44!!A$$;1#56779DqqttbSURT\AbDF*bdRTkBqD.@#ad))-KKLLqqttQrT!Vbd]RT)RTBqD[2a4-?QT,JJKKqqttbSUQrT!V^bd*bdRTkBqD.@#ad))-KKLLND $<<4$%%$			):::::z!!A$$""Aqqttaadd{QQqTT'9AAaDD'@$ABBz!!A$$""Aqqttaadd{QQqTT'9AAaDD'@$ABBz!!A$$""Aqqttaadd{QQqTT'9AAaDD'@$ABBz!!A$$""Aqqttaadd{QQqTT'9AAaDD'@$ABBDD qqttbSURT\BqD(1R461RTBqD[2a45G"Q$5NPSTUVWYZVZTZP[P[4[[\\qqttQrT!Vbd]RT)BqD0BqD2a4K"Q$4FA4MsSTUVXYUYSY{{3ZZ[[qqttbSUQrT!V^bd*RT1RTBqD[2a45G"Q$5NPSTUVWYZVZTZP[P[4[[\\qqttbSURT\AbDF*RT1RTBqD[2a45G"Q$5NPSTUVWYZVZTZP[P[4[[\\^D $<<4$%%$)=====$Az!!A$$""AaaddFQQqTTM22z!!A$$""AaaddFQQqTTM224DqqttRAqDF^CFF*RAqDF^CFF-BBCCqqttRAqDF^CFF*RAqDF^CFF-BBCCED$<<4$%%$A7777
 z!!A$$""AaC!Hq1v$566z!!A$$""AaaddFQqS1X$5668DqqttSbdRTku===c!AqD&(QqS.>Q>QQUWXYUY\^_`\`U`befghiklhlflmnfnqrstqtftbubuTuuvvqqttbdRTk3qAvax!A#~#6#66"Q$A+s1QPQT6RS8VWXYVY>GZGZ9ZZ[[]D$<<4$%%$A7777tAAaDD!}}ac!!A$$hAaadd233tAAaDD!}}q!teAAaDDj1Q3qqtt83446DqqttbdQrT!VmS1a4AadF1H)<%=%==A"QPSUVTVWXZ[W[T[\]T]`abcefbf`fgh`hThPiPi@iijjqqttSad1fr!tm%@@@aR1WQYQRSTVWSWQWXYQYEYAZAZZ^_`b^bcd^dgijkgk^kmpqrstvwswqwxyqy|}~  BC  C  }C  DE  }E  rE  nF  nF  ^F  F  G  GHD$<<4$&&41Q%.8888QQqTT1q!tAAaDDy1Q3qqtt8344QQqTT11uQQqTTzQq!tVac\11Q44,??@@BE!r2$r((
?+C/$r((2+b.@#adDQSHHWXLFYZ[F[^_`acd`d^def^fFfBgBggkmoqtuvz{}v~v~t~o~k  AD  lD  GK  LN  GO  GO  PR  GR  SU  GU  lU  WZ  [\  ^_  [_  ab  ei  jl  em  em  am  [n  op  [p  st  uv  xy  uy  sy  z{  s{  [{  W|  W|  k|  |  }  }!tBxx{2~B488O(<S(@@#adAPTUWPXPXLFYZ[F[^_`acd`d^def^fFfBgBggkoprkskstvkvwyky|~  AC  FG  HL  MO  HP  HP  FP  AP  }Q  RU  }U  lU  WZ  [\  ^_  [_  ae  fh  ai  ai  lm  am  [n  op  [p  st  uv  xy  uy  sy  z{  s{  [{  W|  W|  k|  |  }  }~E%==E!!!!%%((TQqEN::::QQqTT1qs11Q44x!Q$qqtt)344QQqTT1!Q$!}!a1faadd/BBCCEE!bAhBBqEE(1a4HQqS!<L<L8M8M3McRZ[\]^`a]a[adefgdg[gijRkRkNlNl3lmomopqmrmrtumu3uwx*y*y!yyzz!bAhRRUU8AqDXac1=M=M9N9N4NsS[\]^_ab^b\befgheh\hjkSlSlOmOm4mnpnpqrnsnsuvnv4vxy+z+z%z  ~A  BJ  KL  MN  KN  PQ  BR  BR  ~S  ~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  Xq  Tr  Tr  ~r  su  su  vw  sx  sx  ~x  &x  "y  y  z  z{E%==E!!!!!!rK   c                  *L   t          dt                    \  } }}}t          d          \  }}}t          dd          }t          t           | |          |           | |          | ||          z  z   |dz  z             t          t           ||          |          |  | |          z   ||          z   |z             g}t           | |          t          t          |          z  t          |dz  dz            z  t          t          |          z  t          |dz  dz            z  z   t          |          t          |dz  dz            z  t          |dz  t          |           z  t          |dz  dz            z  |t          |           z  t          |dz  dz            z  z   |          z  z   t          |          t          |dz  dz            z  t          |dz  t          |           z  t          |dz  dz            z  |t          |           z  t          |dz  dz            z  z
  |          z  z             t           ||          t          t          |          z  t          |dz  dz            z  t          t          |          z  t          |dz  dz            z  z
  t          |          t          |dz  dz            z  t          |dz  t          |           z  t          |dz  dz            z  |t          |           z  t          |dz  dz            z  z
  |          z  z
  t          |          t          |dz  dz            z  t          |dz  t          |           z  t          |dz  dz            z  |t          |           z  t          |dz  dz            z  z   |          z  z             g}	t          |          |	k    sJ t          ||	          dddgfk    sJ t          t           | |          |           | |          | ||          z  z   |z             t          t           ||          |          |  | |          z   ||          z   t          |          z             g}
t           | |          t          t          |          z  t          |dz  dz            z  t          t          |          z  t          |dz  dz            z  z   t          |          t          |dz  dz            z  t          |t          |           z  t          |dz  dz            z  t          |           t          |          z  t          |dz  dz            z  z   |          z  z   t          |          t          |dz  dz            z  t          |t          |           z  t          |dz  dz            z  t          |           t          |          z  t          |dz  dz            z  z
  |          z  z             t           ||          t          t          |          z  t          |dz  dz            z  t          t          |          z  t          |dz  dz            z  z
  t          |          t          |dz  dz            z  t          |t          |           z  t          |dz  dz            z  t          |           t          |          z  t          |dz  dz            z  z
  |          z  z
  t          |          t          |dz  dz            z  t          |t          |           z  t          |dz  dz            z  t          |           t          |          z  t          |dz  dz            z  z   |          z  z             g}t          |
d	d	
          |gk    sJ t          |
|          dddgfk    sJ t          t           | |          |          | | |           ||          z    ||          z   z  |z             t          t           ||          |          | | |           ||          z    ||          z   z  |z             t          t           ||          |          | | |           ||          z    ||          z   z  dz             g}t           | |          t          t          dd          z  t          t          dd          z  z   t           t          dd          z  z   |dz  dz  z   |t          dd          z  z   t          dz  t          dz  z   t           dz  z   t          |dz  t          dd          z            z  z   t#          d          t#          t$                    z  t'          t#          d          |z  dz            z  t          |dz  t          dd          z            z  dz  z   t          dd          z             t           ||          t          t          dd          z  t          t          dd          z  z   t           t          dd          z  z   |dz  dz  z   |t          dd          z  z   t          dz  t          dz  z   t           dz  z   t          |dz  t          dd          z            z  z   t#          d          t#          t$                    z  t'          t#          d          |z  dz            z  t          |dz  t          dd          z            z  dz  z   t          dd          z             t           ||          t          t          dd          z  t          t          dd          z  z   t           t          dd          z  z   |dz  t          dd          z  z   |t          dd          z  z   t          dz  t          dz  z   t           dz  z   t          |dz  t          dd          z            z  z   t#          d          t#          t$                    z  t'          t#          d          |z  dz            z  t          |dz  t          dd          z            z  dz  z   t          dd          z             g}t          |          |k    sJ t          ||          dg dfk    sJ t          t           | |          |          | | |           ||          z    ||          z   z  t          |          z             t          t           ||          |          | | |           ||          z    ||          z   z  t          |          z             t          t           ||          |          | | |           ||          z    ||          z   z  t          |          z             g}t           | |          t          t          dd          z  t          t          dd          z  z   t           t          dd          z  z   t          dz  t          dz  z   t           dz  z   t          |dz  t          dd          z            z  z   t          t          |          t          |dz  t          dd          z            z  |          t          |dz  t          dd          z            z  z             t           ||          t          t          dd          z  t          t          dd          z  z   t           t          dd          z  z   t          dz  t          dz  z   t           dz  z   t          |dz  t          dd          z            z  z   t          t          |          t          |dz  t          dd          z            z  |          t          |dz  t          dd          z            z  z             t           ||          t          t          dd          z  t          t          dd          z  z   t           t          dd          z  z   t          dz  t          dz  z   t           dz  z   t          |dz  t          dd          z            z  z   t          t          |          t          |dz  t          dd          z            z  |          t          |dz  t          dd          z            z  z             g}t          |          |k    sJ t          ||          dg dfk    sJ t          t           | |          |          | | |           ||          z    ||          z    ||          z   dz   z            t          t           ||          |          | | |           ||          z    ||          z    ||          z   dz   z            t          t           ||          |          | | |           ||          z    ||          z    ||          z   dz   z            t          t           ||          |          | | |           ||          z    ||          z    ||          z   dz   z            g}t           | |          t          t          dd          z  t          t          dd          z  z   t           t          dd          z  z   t(          t          dd          z  z   t          dz  t          dz  z   t           dz  z   t(          dz  z   t          d|dz  z            z  z   t          dd          z             t           ||          t          t          dd          z  t          t          dd          z  z   t           t          dd          z  z   t(          t          dd          z  z   t          dz  t          dz  z   t           dz  z   t(          dz  z   t          d|dz  z            z  z   t          dd          z             t           ||          t          t          dd          z  t          t          dd          z  z   t           t          dd          z  z   t(          t          dd          z  z   t          dz  t          dz  z   t           dz  z   t(          dz  z   t          d|dz  z            z  z   t          dd          z             t           ||          t          t          dd          z  t          t          dd          z  z   t           t          dd          z  z   t(          t          dd          z  z   t          dz  t          dz  z   t           dz  z   t(          dz  z   t          d|dz  z            z  z   t          dd          z             g}t          |          |k    sJ t          ||          dg dfk    sJ t          t           | |          |          |dz   | |           ||          z    ||          z    ||          z   dz   z            t          t           ||          |          |dz   | |           ||          z    ||          z    ||          z   dz   z            t          t           ||          |          |dz   | |           ||          z    ||          z    ||          z   dz   z            t          t           ||          |          |dz   | |           ||          z    ||          z    ||          z   dz   z            g}t           | |          t          t          dd          z  t          t          dd          z  z   t           t          dd          z  z   t(          t          dd          z  z   t          dz  t          dz  z   t           dz  z   t(          dz  z   t          |dz  t          dd          z            z  z   t          dd          z             t           ||          t          t          dd          z  t          t          dd          z  z   t           t          dd          z  z   t(          t          dd          z  z   t          dz  t          dz  z   t           dz  z   t(          dz  z   t          |dz  t          dd          z            z  z   t          dd          z             t           ||          t          t          dd          z  t          t          dd          z  z   t           t          dd          z  z   t(          t          dd          z  z   t          dz  t          dz  z   t           dz  z   t(          dz  z   t          |dz  t          dd          z            z  z   t          dd          z             t           ||          t          t          dd          z  t          t          dd          z  z   t           t          dd          z  z   t(          t          dd          z  z   t          dz  t          dz  z   t           dz  z   t(          dz  z   t          |dz  t          dd          z            z  z   t          dd          z             g}t          |          |k    sJ t          ||          dg dfk    sJ t          t           | |          |           | |           ||          z    ||          z   t          |          z  t          |          z             t          t           ||          |           | |           ||          z    ||          z   t          |          z  t          |          z             t          t           ||          |           | |           ||          z    ||          z   t          |          z  t          |          z             g}t           | |          t           dz  t          dz  z
  dt           z  dz  z   t          dz  t          dz  z   t           dz  z   t          |dt          |          z  dz
  z            z  z   t          |dt          |          z  dz
  z            t          t          d|z            t          d|z  t          |          z            z  t          |          z  |          z  z             t           ||          dt          z  dz  t          dz  z
  t           dz  z
  t          dz  t          dz  z   t           dz  z   t          |dt          |          z  dz
  z            z  z   t          |dt          |          z  dz
  z            t          t          d|z            t          d|z  t          |          z            z  t          |          z  |          z  z             t           ||          t           dz  dt          z  dz  z   t           dz  z
  t          dz  t          dz  z   t           dz  z   t          |dt          |          z  dz
  z            z  z   t          |dt          |          z  dz
  z            t          t          d|z            t          d|z  t          |          z            z  t          |          z  |          z  z             g}t+          d          5  t          |d	d	
          |k    sJ 	 d d d            n# 1 swxY w Y   t          ||          dg dfk    sJ t          t           | |          |           | |           ||          z    ||          z    ||          z   t          |          z  t          |          z             t          t           ||          |           | |           ||          z    ||          z    ||          z   t          |          z  t          |          z             t          t           ||          |           | |           ||          z    ||          z    ||          z   t          |          z  t          |          z             t          t           ||          |           | |           ||          z    ||          z    ||          z   t          |          z  t          |          z             g}t           | |          t           dz  t          dz  z
  t           dz  z
  dt(          z  dz  z   t          dz  t          dz  z   t           dz  z   t(          dz  z   t          |dt          |          z  dz
  z            z  z   t          |dt          |          z  dz
  z            t          t          d|z            t          d|z  t          |          z            z  t          |          z  |          z  z             t           ||          dt          z  dz  t          dz  z
  t           dz  z
  t(          dz  z
  t          dz  t          dz  z   t           dz  z   t(          dz  z   t          |dt          |          z  dz
  z            z  z   t          |dt          |          z  dz
  z            t          t          d|z            t          d|z  t          |          z            z  t          |          z  |          z  z             t           ||          t           dz  dt          z  dz  z   t           dz  z
  t(          dz  z
  t          dz  t          dz  z   t           dz  z   t(          dz  z   t          |dt          |          z  dz
  z            z  z   t          |dt          |          z  dz
  z            t          t          d|z            t          d|z  t          |          z            z  t          |          z  |          z  z             t           ||          t           dz  t          dz  z
  dt           z  dz  z   t(          dz  z
  t          dz  t          dz  z   t           dz  z   t(          dz  z   t          |dt          |          z  dz
  z            z  z   t          |dt          |          z  dz
  z            t          t          d|z            t          d|z  t          |          z            z  t          |          z  |          z  z             g}t+          d          5  t          |          |k    sJ 	 d d d            n# 1 swxY w Y   t          ||          dg dfk    sJ d S )Nr]  r9   r{  r|  Tr  r<   r   Fsimplifydoitr=   r>   r?   r_      r   rx   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  s%    111JAq!QgGAq!$AtAAaDD!}}aaddQqqttVmad233RQQqTT1r!!A$$wQRQRSTQUQU~XYGY5Z5Z[DqqttRAYs1a46{{*RAYs1a46{{-BBSVVCPQSTPTUVPVKKEWX`abdeaefikljlfmfmamnqrsuvrvwxrxnynyay#qb''	#ad1f++%b&'(Y* Y* F* *,/FF3q!tAv;;,>x1SRSQSWWUXYZ\]Y]^_Y_U`U`H`cdehjkikelelclmpqrtuquvwqwmxmxcxHxz{?|?|,|} ~ ~qqttRAYs1a46{{*RAYs1a46{{-BBSVVCPQSTPTUVPVKKEWX`abdeaefikljlfmfmamnqrsuvrvwxrxnynyay#qb''	#ad1f++%b&'(Y* Y* F* *,/FF3q!tAv;;,>x1SRSQSWWUXYZ\]Y]^_Y_U`U`H`cdehjkikelelclmpqrtuquvwqwmxmxcxHxz{?|?|,|} ~ ~D $<<4$%%$A7777tAAaDD!}}aaddQqqttVma/00"T!!A$$]]QBqqttGaaPQddNUXYZU[U[D[2\2\]DqqttRAYs1a46{{*RAYs1a46{{-BBSVVCPQSTPTUVPVKKEWX`abcfhigicjcjajknoprsostuoukvkvavQBAs1a46{{*b+,-Y/ Y/ F/ /14QAqDF1CHQsTUSUwwYWZ[\^_[_`a[aWbWbMbehjkikelelmpqrmsmsestw1Qu u f NE E 2   qqttRAYs1a46{{*RAYs1a46{{-BBSVVCPQSTPTUVPVKKEWX`abcfhigicjcjajknoprsostuoukvkvavQBAs1a46{{*b+,-Y/ Y/ F/ /14QAqDF1CHQsTUSUwwYWZ[\^_[_`a[aWbWbMbehjkikelelmpqrmsmsestw1Qu u f NE E 2  D E:::tfDDDD$%%$A7777z!!A$$""Aqqttaadd{QQqTT'9$:Q$>??z!!A$$""Aqqttaadd{QQqTT'9$:Q$>??z!!A$$""Aqqttaadd{QQqTT'9$:Q$>??AD qqttRQ'"Xb!__*<<r(1a..?PPSTVWSWXYSYY\]^fgikl^m^m\mmdRTkBqD #ad8Aq>>&9":"::;!WWT"XXc$q''!)A+...s1a4A3F/G/GGJKMUVXZ[__] ^ ^ qqttRA&HROO);;b"a>PPSTVWSWXYSYY\]^fgikl^m^m\mmdRTkBqD #ad8Aq>>&9":"::;!WWT"XXc$q''!)A+...s1a4A3F/G/GGJKMUVXZ[__] ^ ^ qqttRQ'"Xa^^*;;b"a>PPSTVWSWX`acefXgXgSggx1~~!#A1r!t!3SAhq!nn9L5M5M MN!WWT"XXc$q''!)A+...s1a4A3F/G/GGJKMUVXZ[__] ^ ^_D $<<4$%%$			):::::z!!A$$""Aqqttaadd{QQqTT'9$:SVV$CDDz!!A$$""Aqqttaadd{QQqTT'9$:SVV$CDDz!!A$$""Aqqttaadd{QQqTT'9$:SVV$CDDFD qqttRQ'"Xb!__*<<r(1a..?PPTVWXTX[]^_[_T_TUq!tHQNN*++T, ,.6s1vvc!Q$xPRTUBV>W>W7WYZ.[.[\_`acd`demnof f a ] ] /   qqttRA&HROO);;b"a>PPTVWXTX[]^_[_T_TUq!tHQNN*++T, ,.6s1vvc!Q$xPRTUBV>W>W7WYZ.[.[\_`acd`demnof f a ] ] /   qqttRQ'"Xa^^*;;b"a>PPTVWXTX[]^_[_T_TUq!tHQNN*++T, ,.6s1vvc!Q$xPRTUBV>W>W7WYZ.[.[\_`acd`demnof f a ] ] /  D $<<4$%%$			):::::z!!A$$""Aqqttaadd{QQqTT'9AAaDD'@1'D$EFFz!!A$$""Aqqttaadd{QQqTT'9AAaDD'@1'D$EFFz!!A$$""Aqqttaadd{QQqTT'9AAaDD'@1'D$EFFz!!A$$""Aqqttaadd{QQqTT'9AAaDD'@1'D$EFFHD qqttRQ'"Xb!__*<<r(2q//?QQTVW_`acdWeWeTeeiklmimTjqDja4j !$Qq!tVi- -/7A? @ @qqttRA&HROO);;b"a>PPSUV^_acdVeVeSeeiklmimTjqDja4j !$Qq!tVi- -/7A? @ @qqttRQ'"Xa^^*;;b"a>PPSUV^_acdVeVeSeeiklmimTjqDja4j !$Qq!tVi- -/7A? @ @qqttRQ'"Xb!__*<<r(1a..?PPSUV^_acdVeVeSeeiklmimTjqDja4j !$Qq!tVi- -/7A? @ @AD $<<4$%%$)=====z!!A$$""AqD!!A$$1+!*<qqtt*Ca*G$HIIz!!A$$""AqD!!A$$1+!*<qqtt*Ca*G$HIIz!!A$$""AqD!!A$$1+!*<qqtt*Ca*G$HIIz!!A$$""AqD!!A$$1+!*<qqtt*Ca*G$HIIKD qqttRQ'"Xb!__*<<r(2q//?QQTVW_`acdWeWeTeeiklmimTjqDja4j !$QT(1a..%8!9!9i: :<DROOL M MqqttRA&HROO);;b"a>PPSUV^_acdVeVeSeeiklmimTjqDja4j !$QT(1a..%8!9!9i: :<DROOL M MqqttRQ'"Xa^^*;;b"a>PPSUV^_acdVeVeSeeiklmimTjqDja4j !$QT(1a..%8!9!9i: :<DROOL M MqqttRQ'"Xb!__*<<r(1a..?PPSUV^_acdVeVeSeeiklmimTjqDja4j !$QT(1a..%8!9!9i: :<DROOL M MND $<<4$%%$)=====z!!A$$""QQqTTAAaDD[11Q44%7Q$?#a&&$HII2jYZYZ[\Y]Y]_`NaNadedefgdhdhklklmnkokodoaddeFFd VVd$ L% L%&(AAaDD!)<)<qqttaadd{QQqTT?QSVWXSYSY>Y\_`a\b\b>b&c&ceDqqttbSURT\AbDF*bdRTk1/!Qs1vvX\*++., ,.1!Qs1vvX6 3 / / QqS#bd3q66k*:*:!:3q66!A1EE/FF G G qqttQrT!Vbd]RT)RTBqD[1.!Qs1vvX\*++-, ,.1!Qs1vvX6 3 / / QqS#bd3q66k*:*:!:3q66!A1EE/FF G G qqttbSUQrT!V^bd*bdRTk1/!Qs1vvX\*++., ,.1!Qs1vvX6 3 / / QqS#bd3q66k*:*:!:3q66!A1EE/FF G GHD 
T		 @ @dU7774?????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @$%%$			):::::z!!A$$""QQqTTAAaDD[11Q44%7!!A$$%>A$FQ$OPPRTU_`a`abc`d`dfgUhUhklklmnkokoaddlQqTTlAaDDl!"%a&&k)+.q66k2 S3 S346z!!A$$7J7JQQqTTTUTUVWTXTX[[\[\]^[_[_M_bcbcdebfbfMfhklmhnhnLnFFM 5 5
11Q44++aaddQQqTTkAAaDD.@11Q44.GQ-ORUVWRXRX-XYY[D qqttbSURT\BqD(1R461RTBqD[2a45G16!Qs1vvX\*++5, ,.1!Qs1vvX6 3 / / QqS#bd3q66k*:*:!:3q66!A1EE/FF G G qqttQrT!Vbd]RT)BqD0BqD2a4K"Q$4F15!Qs1vvX\*++4, ,.1!Qs1vvX6 3 / / QqS#bd3q66k*:*:!:3q66!A1EE/FF G G qqttbSUQrT!V^bd*RT1RTBqD[2a45G16!Qs1vvX\*++5, ,.1!Qs1vvX6 3 / / QqS#bd3q66k*:*:!:3q66!A1EE/FF G G qqttbSURT\AbDF*RT1RTBqD[2a45G16!Qs1vvX\*++5, ,.1!Qs1vvX6 3 / / QqS#bd3q66k*:*:!:3q66!A1EE/FF G GHD 
T		 $ $d||t#####$ $ $ $ $ $ $ $ $ $ $ $ $ $ $$%%$)=======s0   }A~~A~~A~WBW.W.BW2W5BW2c                     t          dt                    \  } }t          d          \  }}t          t           | |          |          d | |          z   ||          z   |z            t          t           ||          |           | |          d ||          z  z   |z            g}t           | |          t           |z  t
          |dz  z  z             t           ||          t          |z  t
          |dz  z  z             g}t          |          |k    sJ t          ||          dddgfk    sJ t          t           | |          |          d | |          z   ||          z   dz   |z            t          t           ||          |          | | |          z   d ||          z  z   |z            g}t           | |          t
          |dz  z  |t          t          dd	          z   z  z
  |t          |          z  t          d
d          z  z   t          dd          z             t           ||          t
          |dz  z  |t          |          z  dz  z   |t          t          d
d	          z   z  z   t          dd          z             g}t          |          |k    sJ t          ||          dddgfk    sJ d S )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'''DAqFOOEAr z!!A$$""QqqttVaadd]A$566:aaddA;N;NQRQRSTQUQUXYZ[Z[\]Z^Z^X^Q^`aPa8b8bcDqqttbSUR1W_%%r!!A$$1r!Q$w'?'?@D$<<4$%%$A7777 z!!A$$""QqqttVaadd]Q%6$9::z!!A$$""Q1X!!A$$%6$9::<DqqttR1Wq"x1~~"5663q66(2q//9QQT\]_abTcTccddqqttR1WqQxz)ArHROO/C,DDxPQST~~UVVXD$<<4$%%$A777777rK   c                  =   t          dt                    \  } }t          d          }t          t           | |          |df          d | |          z   ||          z             t          t           ||          |df           | |                     g}t           | |          t           |z  t          |           z  t          |z  t          |          z  z   t          t          z
  t          |           z  z
  t          t          z   t          |          z  z             t           ||          t          |z  t          |           z  t          |z  t          |          z  z
  t          t          z   t          |           z  z   t          t          z
  t          |          z  z             g}t          |          |k    sJ t          ||          dddgfk    sJ t           | |                              |d          d          t           ||                              |d           | |                    g}t           | |          t          t          |z  z             t           ||          t          |dz  z  dz  t          |dz  z  dz  z   t          z   t          |z  z             g}t          |          |k    sJ t          ||          dddgfk    sJ t          t           | |          |df          d | |          z            t          t           ||          |df           | |           d ||          z  z             g}t           | |          d	t          z  t          t          d           |z            z  d	t          z  t          t          d          |z            z  z             t           ||          t          d          t          z  |z  t          t          d           |z            z  t          d          t          z  |z  t          t          d          |z            z  z
  t          t          d          t          z  z   t          t          d           |z            z  z   t          t          d          t          z  z
  t          t          d          |z            z  z             g}t          |          |k    sJ t          ||          dddgfk    sJ t          t           | |          |df          d | |          z   ||          z             t          t           ||          |df          d ||          z            g}	t           | |          t          |z  t          t          d          |z            z  d	z  t          |z  t          t          d           |z            z  d	z  z   t          d	z  t          d          t          z  d
z  z   t          t          d           |z            z  z   t          t          d          |z            t          d          t          z  d
z  t          t          dd	          z  z   z  z
            t           ||          t          d          t          z  t          t          d          |z            z  dz  t          d          t          z  t          t          d           |z            z  t          dd          z  z             g}
t          |	          |
k    sJ t          |	|
          dddgfk    sJ t           | |                              |d           | |                    t           ||                              |d           | |                    g}t           | |          t           t          |           z  t          t          |          z  z             t           ||          t           t          |           z  t          t          |          z  z   t          z   t          |z  z             g}t          |          |k    sJ t          ||          dddgfk    sJ t          t           | |          |df           | |           ||          z             t          t           ||          |df           | |            ||          z
            g}t           | |          t          t          |dz  z  dz  z   t          z   t          |dz  z  dz  z   |t          t          z   z  z             t           ||          t           t          |dz  z  t          dd          z  z   t          |z  z
  t          |dz  z  t          dd          z  z             g}t          |          |k    sJ t          ||          dddgfk    sJ t          t           | |          |df           | |           ||          z   dz             t          t           ||          |df           | |           ||          z   dz             g}t           | |          t           t          |z  z
  t          d          t          z  t          t          d          |z            z  dz  z   t          d          t          z  t          t          d           |z            z  t          dd          z  z   t          dd          z             t           ||          t          t          |z  z   t          d          t          z  t          t          d          |z            z  dz  z   t          d          t          z  t          t          d           |z            z  t          dd          z  z   t          dd          z             g}t          |          |k    sJ t          ||          dddgfk    sJ t          t           | |          |df           | |           ||          z   dz             t          t           ||          |df           | |            ||          z
  dz             g}t           | |          t          t          z   t          |dz  z  dz  z   |d	z  dz  z   |dz  t          dz  t          dd          z   z  z   |t          t          z   z  z             t           ||          t           t          |z  z
  t          |dz  z  t          dd          z  z   |d	z  t          dd          z  z   |dz  t          dz  t          dd          z   z  z
            g}t          |          |k    sJ t          ||          dddgfk    sJ t          dt                    \  }}t          d          \  }}t          t           ||          |df          d ||          z  d ||          z  z             t          t           ||          |df           ||          d ||          z  z             g}t           ||          t          ddt          d          z  z
  z  t          t          d          dz             z  t          | t          t          d          dz             z            z  dz  t          t          dt          d          z
            z  ddt          d          z  z   z  t          | t          dt          d          z
            z            z  dz  z   t          ddt          d          z  z
  z  t          t          d          dz             z  t          |t          t          d          dz             z            z  t          dd          z  z   t          t          dt          d          z
            z  ddt          d          z  z   z  t          |t          dt          d          z
            z            z  t          dd          z  z             t           ||          t          dt          d          z
  z  t          t          d          dz             z  t          | t          t          d          dz             z            z  t          dd          z  t          t          dt          d          z
            z  t          d          dz   z  t          | t          dt          d          z
            z            z  t          dd          z  z   t          dt          d          z
  z  t          t          d          dz             z  t          |t          t          d          dz             z            z  dz  z   t          t          dt          d          z
            z  t          d          dz   z  t          |t          dt          d          z
            z            z  dz  z             g}t          |          |k    sJ t          ||          dddgfk    sJ t          d ||          z  t           ||          |df          z   dt           ||          |          z  z
  d          t          d ||          z  dt           ||          |          z  z   t           ||          |df          z   d          g}t           ||          t          dt          d          z
  z  t          t          d          |z  t          dt          d          z  dz             z  dz            z  dz  t          dt          d          z
  z  t          t          d          |z  t          dt          d          z  dz             z  dz            z  t          dd          z  z   t          dt          d          z   z  t          t          d          |z  t          ddt          d          z  z
            z  dz            z  dz  z   t          dt          d          z   z  t          t          d          |z  t          ddt          d          z  z
            z  dz            z  t          dd          z  z             t           ||          t          dt          d          z
  z  t          t          d          |z  t          dt          d          z  dz             z  dz            z  t          dd          z  t          dt          d          z
  z  t          t          d          |z  t          dt          d          z  dz             z  dz            z  t          dd          z  z   t          dt          d          z   z  t          t          d          |z  t          ddt          d          z  z
            z  dz            z  dz  z   t          dt          d          z   z  t          t          d          |z  t          ddt          d          z  z
            z  dz            z  dz  z             g}t          |          |k    sJ t          ||          dddgfk    sJ t          t           | |          |df          t           | |          |          |z   | |          |dz  z  z    ||          |dz  z  z             t          t           ||          |df           ||          |dz  z            g}t           | |          t          t          d          dz   z  t          dd          z  |t          dd          t          d          t          dd          z  z   z  z  t          |t          dd          t          d          dz  z   z  z  dt          d          z
  z  t          dd          z  z   t          |dt          d          z
  z  z  dt          d          z   z  z
  t          |dt          d          z   z  z  dt          d          z
  z  z
            t           ||          t          dt          d          z   z  t          dd          z  |t          dd          t          d          t          dd          z  z   z  z  t          |t          dd          t          d          dz  z   z  z  dt          d          z
  z  t          dd          z  z             g}t          |          |k    sJ t          ||          dddgfk    sJ t          t           | |          |df          | | |          z            t          t           ||          |df          | ||          z            g}t           | |          t          t!          |          z  t          t#          |          z  z             t           ||          t          t!          |          z  t          t#          |          z  z             g}t          |          |k    sJ t          ||          dddgfk    sJ t          t           ||          |df          |d	t           ||          |          z  d
t           ||          |          z  z   z            t          t           ||          |df          |dt           ||          |          z  dt           ||          |          z  z
  z            g}t           ||          t          t%          t          d          |z            t          d          t          t&                    z  t          z  dz  t          d          t          t&                    z  t          z  t          dd          z  z   z  z
  t)          t          d          |z            t          d          t          t&                    z  t          z  t          dd          z  t          d          t          t&                    z  t          z  t          d	d          z  z   z  z             t           ||          t          t%          t          d          |z            t          d          t          t&                    z  t          z  t          dd          z  t          d          t          t&                    z  t          z  t          dd          z  z   z  z   t)          t          d          |z            t          d          t          t&                    z  t          z  t          dd          z  t          d          t          t&                    z  t          z  t          dd          z  z   z  z             g}t          |          |k    sJ t          ||          dddgfk    sJ d S )Nr   r9   r3   r<   Tr   r?   r_   r@   r   r>   r=   r^   x, yt, lrA   r'  rx   =   /   rt   m   _      r   r  7   rg  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    ss   5h'''DAqAz!!A$$A''11Q44!!A$$77z!!A$$A''!!A$$//1DqqttbSU3r77]RT#a&&[0BGS!WW3DDRQTUVQWQWGWWXXqqttRT#qb''\BqDQK/27CGG2CCrBwPSTUPVPVFVVWWYD$<<4$%%$A7777qqttyyA""BqqttyyA!$=$=>DqqttR"Q$YAAaDD"QT'!)bAgai*?"*Dr!t*K!L!LMD$<<4$%%$A7777z!!A$$A''11Q4400z!!A$$A''!!A$$11Q4488:DqqttQrT#tAwwhqj//)AbDT!WWQY,??@@qqttT!WWRZ\#tAwwhqj//1DGGBJqLT!WWQY4OOSU!WWRZTd1ggXaZS) ),.aOSa^^+KL M MND $<<4$%%$A7777z!!A$$A''11Q44!!A$$77z!!A$$A''11Q44002DqqttRT#d1ggai..(*RT#tAwwhqj//-A!-CCr!tdSTggVXjYZlGZ\_aefgahah`hij`j\k\kFkka^^T!WWRZ\BxA,>>?@ A AqqttT!WWRZDGGAI.q04772:c477(1*oo3MhWY[\oo3]]^^`D $<<4$%%$A7777qqttyyA!%%r!!A$$))Aq//11Q44'@'@ADqqttbSaR[2c!ff9,--r!!A$$CGGbQi8ORT8TWYZ[W[8[/\/\]D$<<4$%%$A7777z!!A$$A''1!55z!!A$$A''!!A$$1668DqqttR"QT'!)^b(2ad7194q"r'{BCCqqttbS2ad78B??22RT9Bq!tGHRQROO<SSTTVD$<<4$%%$A7777z!!A$$A''1!q99z!!A$$A''1!q99;DqqttbS2a4Z$q''"*Sa^^";A"==Q
3PTUVPWPWxXYz??@Z[cdfhi[j[j@jjb!__  qqttR"Q$YaCQ	NN!:1!<<tAwwrz#tTUwwhWXj//?YZbceghZiZi?iib!__  D $<<4$%%$A7777z!!A$$A''1!q99z!!A$$A''!!A$$1)9::<DqqttR"Wr!Q$wqy(1a472QT2a4(1a..;P5QQTUWY\^W^T__``qqttbS2a4Z"QT'(2q//"99AqD"bAQAQ<QQTUWXTXZ\]^Z^aijlb b [ U   D $<<4$%%$A77776x(((DAq6??DAq
11Q44!Q((!AAaDD&2aadd7*:;;
11Q44!Q((!!A$$11Q44-88:E!b"qbz/*4R1+=+==c1"T$r((UV,EWEWBW>X>XXYZZ]_`def2hhf a a ^aRj^**-qba$r((l1C1C.C*D*D^EEF^G GIKRRSTXY[T\T\R\_I]^bcghjckckd _ _ JQtDHHqL)))**J++3B??J;;=?Qb\@R@R=RTVYZ[_`b[c[cYcTc=dehijkopqRq l l j f f >#B??>++ , , !b!d2hh,'T"XX\(:(::3r$tBxxRS|BTBT?T;U;UUV^_acdVeVeehjkopqRq l l i88a<i)),aRQb\0B0B-B)C)CiDDLRQROOiT TVXZ[2hh[ WT"XX\**W++.qd2hhl1C1C/C+D+DWEEFWGGIKDQRUYZ\U]U]Q]L^L^I^`deg`h`ha JQtARL)))**J++,J-- . .	/E %==E!!!!%''D1a&>9999!!A$$AAaDD1a&111Aj1q6I6I4II1MM!!A$$:aaddA....AAaDD1a&1I1II1MMOE!b!d3ii-(T!WWQYtAd3iiK"<L7M7M-Ma-O)P)PPQSSVXZ[3ii[ WT!WWQYtAd3iiK",<'='==a?@@WAAI"bAQAQWR RTVXY3iiY UT!WWQYtB499,<'='==a?@@UAACUDDFH!dSVii-FXY\]abc]d]def]fgklnS		km h h ^^ Z Z G&r2..G// 0 0 !b!d3ii-(T!WWQYtAd3iiK"<L7M7M-Ma-O)P)PPQYZ\^`QaQaadfhi3iii eT!WWQYtAd3iiK",<'='==a?@@eAAI"bAQAQeR RTVXY3iiY UT!WWQYtB499,<'='==a?@@UAACUDDFH!dSVii-FXY\]abc]d]def]fgklnS		km h h ^^ Z Z G G!! " "	#E %==E!!!!%''D1a&>9999 
11Q44!Q((*QQqTT1*=*=a*?!!A$$q!t)*KaaPQddSTVWSWi*WXX
11Q44!Q((!!A$$q!t)446E!b$q''A+&xA6q8Aq>>QQ'<( 8) )+-a(1a..Q	3 / ,QK,))1"a,99;=a!QC ? <d1gg+<'' *,ADGG,<)<a$q''k)JK L L !b!d1gg+&xA6q8Aq>>a"a(<) 8* *,.q8Aq>>!WWQY4 0  - !"T!WW-..6r1oo->> ? ?	@E %==E!!!!%''D1a&>9999 
11Q44!Q((!AAaDD&11	JqqttaV$$a!f	-	-/E!blRq		\122	AAaDD"VAYY,F1II-	.	.0E%==E!!!!%''D1a&>9999 
11Q44!Q((!Qz!!A$$/B/B-BQzRSRSTURVRVXYGZGZEZ-Z*[\\
11Q44!Q((!R
11Q440C0C-Ca
STSTUVSWSWYZH[H[F[-[*\]]_E!b3tAwwqy>>477488+;B+>r+ADGGDQSHHDTUWDWX`acegXhXhDh+hii47719ootAwwtBxx/28Ar??BT!WWTRTXXEUVXEXYabcegYhYhEhhij k k!b3tAwwqy>>477488+;B+>x2+NQUVWQXQXY]^`YaYaQabdQdemnpf f R ,  $q''!)__d1ggd2hh&6r&9(1c:J:J&JTRSWWUYZ\U]U]M]^`M`aijkmoapapMp&pqr s stE %==E!!!!%''D1a&>999999rK   c                     t          dt                    \  } }t          d          } | |           ||          z   dt          t          |z            z  z
  dt	           | |          |          z  z   t	           | |          |df          z    | |           ||          z   dt          t          |z            z  z
  dt	           ||          |          z  z   t	           ||          |df          z   g}t           | |          t           t          t          d|z            z  dz  z   t          dz  t          dz  z
  t          |           z  t          |          z  z
  t          dz  t          dz  z   t          |           z  t          |          z  z   dddt          z  z
  t          t          |z            z  t          |          dz  z  dz  z  z   dddt          z  z
  t          t          |z            z  t          |          dz  z  dz  z  z             t           ||          t          t          t          d|z            z  dz  z
  t          dz  t          dz  z
  t          |           z  t          |          z  z
  t          dz  t          dz  z   t          |           z  t          |          z  z   dddt          z  z
  t          t          |z            z  t          |          dz  z  dz  z  z   dddt          z  z
  t          t          |z            z  t          |          dz  z  dz  z  z             g}t          |          |k    sJ t          ||          dd	d	gfk    sJ d S )
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  s0   5h'''DAqAAaDD11Q44K!C!HH*$qAAaDD!)<)<'<<z!!A$$QRTUPV?W?WWAaDD11Q44K!C!HH*$qAAaDD!)<)<'<<z!!A$$QRTUPV?W?WWYD!rcBs2a4yyLN*bdRTk3r77-B3q66-II!tbd{CGG+CFF2356QqS#ac((8J3q66ST98TUV8V5WX!ac'3qs88+CFFAI5a789 : : qqttR"SAYY,q.(BqD2a4KaR+@Q+GG!tbd{CGG+CFF2356QqS#ac((8J3q66ST98TUV8V5WX!ac'3qs88+CFFAI5a789 : :;D $<<4$%%$A777777rK   c                  f   t          dt                    \  } }t          d          }t          dt                    \  }}t          d          \  }}t          d ||          z  t           ||          |df          z   dt           ||          |          z  z   d	          t          d ||          z  dt           ||          |          z  z
  t           ||          |df          z   d	          g}t           ||          t          dt          d
          z
  z  t          d|z  t          dt          d
          z  dz             z            z  t          dd          z  t          dt          d
          z
  z  t          d|z  t          dt          d
          z  dz             z            z  dz  z   t          dt          d
          z   z  t          d|z  t          ddt          d
          z  z
            z            z  t          dd          z  z   t          dt          d
          z   z  t          d|z  t          ddt          d
          z  z
            z            z  dz  z             t           ||          t          dt          d
          z
  z  t          d|z  t          dt          d
          z  dz             z            z  t          dd          z  t          dt          d
          z
  z  t          d|z  t          dt          d
          z  dz             z            z  t          dd          z  z   t          dt          d
          z   z  t          d|z  t          ddt          d
          z  z
            z            z  dz  z   t          dt          d
          z   z  t          d|z  t          ddt          d
          z  z
            z            z  dz  z             g}t          |          |k    sJ t          ||          dd	d	gfk    sJ d S )Nr   r9   r3   r  r  r@   r<   r   r   rA   rx   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  |  s"   5h'''DAqA6x(((DAq6??DAq!!A$$AAaDD1a&111Aj1q6I6I4II1MM!!A$$:aaddA....AAaDD1a&1I1II1MMOE!b!d1gg+&s1Q3tAd1ggIM/B/B+B'C'CCHRQROOSVXZ[1gg[ W1Q3tAd1ggIM22233W445W6 68:AQK8HQqSQUVWZ[\`ab\c\cZcVcQdQdMdIeIe8efnoqg g 9q477{#C!DQtAwwY,?,?(?$@$@@BC D D !b!d1gg+&s1Q3tAd1ggIM/B/B+B'C'CCHRQROOSVXZ[1gg[ W1Q3tAd1ggIM22233W44<ROOWD DFH!dSTgg+FVWZ[\]^[^_cdeQie ` ` \ X X GG !d1gg+.s1Q3tA$q''	M7J7J3J/K/KKAMN O OPE %==E!!!!%''D1a&>999999rK   c                     t          dt                    \  } }t          d          \  }}}}}}}t           | |                              |d          d| ||                              |          z   ||          z
  z            t           ||                              |d          d| | |                              |          z   | |          z
  z            g}	t           | |          t          |z  |t          t          t          |           z  t          t          t          d|z            z            z  dz  t          t          |           z  t          t           t          d|z            z            z  dz  z   t          t          z  t          |           z  t          t          t          d|z            z            z  dz  z
  t          t          z  t          |           z  t          t           t          d|z            z            z  dz  z   |t          |          f          z  z             t           ||          t          |z  |t          t          t          z  t          |           z  t          t          t          d|z            z            z  dz  t          t          z  t          |           z  t          t           t          d|z            z            z  dz  z
  t          t          |           z  t          t          t          d|z            z            z  dz  z   t          t          |           z  t          t           t          d|z            z            z  dz  z   |t          |          f          z  z             g}
t          |	dd          |
gk    sJ t          |	|
          dd	d	gfk    sJ t          t           | |          ||          d
|z  t           ||          |          z  d
 ||          z  z
            t          t           ||          ||          d|z  t           | |          |          z  d | |          z  z
            f}t           | |          t          |z  |t          t          t          |           z  t          dt          d          z  t          d|z            z  dz            z  dz  t          t          |           z  t          dt          d          z  t          d|z            z  dz            z  dz  z   dt          d          z  t          z  t          |           z  t          dt          d          z  t          d|z            z  dz            z  dz  z   dt          d          z  t          z  t          |           z  t          dt          d          z  t          d|z            z  dz            z  dz  z
  |t          |          f          z  z             t           ||          t          |z  |t          t          d          t          z  t          |           z  t          dt          d          z  t          d|z            z  dz            z  dz  t          d          t          z  t          |           z  t          dt          d          z  t          d|z            z  dz            z  dz  z
  t          t          |           z  t          dt          d          z  t          d|z            z  dz            z  dz  z   t          t          |           z  t          dt          d          z  t          d|z            z  dz            z  dz  z   |t          |          f          z  z             g}t          |dd          |gk    sJ t          ||          dd	d	gfk    sJ t          t           ||          |df          ||z            t          t           | |          |df          d	          g}t           ||          t          t          |z  z   ||z  |dz  z  dz  z             t           | |          t          t          |z  z             g}t!          |          |k    sJ t          ||          dd	d	gfk    sJ t          t           | |          |df           | |          |dz  z            t          t           ||          |df          | ||          z  |dz  z            g}t           | |          t          t          |dz            z  t          d|z            z  t          t          |dz            z  t          d|z            z  z
            t           ||          t          t          |dz            z  t          t          |           |z            z  |t#          dd          z  z  t          t          |dz            z  t          t          |          |z            z  |t#          dd          z  z  z
            g}t!          |          |k    sJ t          ||          dd	d	gfk    sJ d S )Nr   r9   x t x_ t_ d a mr<   r   Fr  Tr   rx   rt   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   rl  r   mr   r   r   r   r   r   r   r   s                    rI   "test_second_order_to_first_order_2r    s
   5h'''DAq#$566Aq"b!QqqttyyA1QQqTTYYq\\>AAaDD#8 9::qqttyyAr1QQqTTYYq\\>AAaDD#89::<DqqttRTAhr#rc(({3qQrT{3C3C'CA'E3PRs88TWYZXZ[^_`ac_c[d[dXdTeTeHefgHg'g"S"XXc!C"II+...q0(134R4RC=aRAbD		\ARAR3RST3T(UWY[^_`[a[aVbd d d d e eqqttRTAhqtCHH}S3qt995E5E'Ea'G!B$sTVSVxx-X[]^\^_bcdegcg_h_h\hXiXiJijkJk'k3s88C#ad)),,,Q.(/13CHHS!C"II=N=N1Nq1P(QSUWZ[\W]W]R^` ` ` ` a abD
 E:::tfDDDD$%%$A7777tAAaDD1~~qs4!Q<</!!A$$677D1aNN1Q3tTUTUVWTXTXYZ||K[\]^_^_`a^b^b\bKb9c9cdDqqttRTAhr#rc(({3qayQrT7J17L3M3M'Ma'ORTUXZ\Y\U]U]R]BtAwwJs1R4yy(*++S,,-S. (.01$q''	"S"XX0Ec!DQRGG)TWXYZ\X\T]T]J]^_J_F`F`0`ac0c(d$q''	"S"XX%c"T!WW*S2YY*>q*@&A&AA"D(EGI3q66lT T T T U U qqttRTAhtAwwrz#rc((':3qayQrT?RST?T;U;U'UVW'WZ^_`ZaZabdZdehjlilememZmBtAwwJs1R4yy(*++[,,-[. (.023s88C$q''	#aPRd))@STU@U<V<V0VWX0X(Y[]^acebe^f^f[fgjkmnrstnunukuAbD		ll h h \\(!#SVV. . . . / /0D E:::tfDDDD$%%$A7777 z!!A$$A''1--z!!A$$A''++-DqqttR"Q$Y1QT!+,,qqttR"Q$Y!D$<<4$%%$A7777 z!!A$$A''1ad33z!!A$$A''11Q441557DqqttRQT

]3r!t99,r$q!t**}S1XX/EEFFqqttRQT

]3Qxz??21hr1oo3EEQT

]3tAwwqy>>)!Xb!__*<<= > >?D $<<4$%%$A777777rK   c            
         t          dt                    \  } }t          d          \  }}}}}}}t           | |                              |d          d|z  | ||                              |          z   ||          z
  z            t           ||                              |d          d|z  | | |                              |          z   | |          z
  z            g}	t           | |          t          |z  dt
          z  |z  t          d|z            z  z   t
          t          d|z            z  z
  dt          z  |z  t          d|z            z  z
  t          t          d|z            z  z
            t           ||          dt
          z  |z  t          d|z            z  t
          t          d|z            z  z
  dt          z  |z  t          d|z            z  z
  t          t          d|z            z  z   t          |z  z             g}
t          |	          |
k    sJ t          |	|
          dddgfk    sJ d S )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   rl  r   r  r   r   s              rI   &test_second_order_to_first_order_slow1r    s   5h'''DAq#$566Aq"b!Q qqttyyA!a!		!nqqtt&; <==aaddii1oobdQqqttyy||^aadd%:;<<>DqqttRTAbDF2ac77N*RAaC[81R46"QqS''>IBsSTUVSVxxKWXXqqttRU1WR!WW_r#ac(({2QrT!VBqsGG^CbQqSkQTVWXTXXYY[D$<<4$%%$A777777rK   c                     t          dt                    \  } }t          d          \  }}}}}}}t          t           | |          |df          |t	          |          z  t           ||          |          z   ||          t	          |          z  z
            t          t           ||          |df          |t	          |          z  t           | |          |          z   | |          t	          |          z  z
            g}	t           | |          t
          |z  |t          t          t          |           z  t          t          |          t          t          |                    z            z  t          t	          t          |                               z  dz  t          t          |           z  t          t          |           t          t          |                    z            z  t          t	          t          |                              z  dz  z   t          t          |           z  t          t          |          t          t          |                    z            z  t          t	          t          |                               z  dz  z
  t          t          |           z  t          t          |           t          t          |                    z            z  t          t	          t          |                              z  dz  z   |t          |          f          z  z             t           ||          t          |z  |t          t           t          |           z  t          t          |          t          t          |                    z            z  t          t	          t          |                               z  dz  t          t          |           z  t          t          |           t          t          |                    z            z  t          t	          t          |                              z  dz  z   t          t          |           z  t          t          |          t          t          |                    z            z  t          t	          t          |                               z  dz  z   t          t          |           z  t          t          |           t          t          |                    z            z  t          t	          t          |                              z  dz  z   |t          |          f          z  z             g}
t          |	dd          |
gk    sJ t          |	|
          dddgfk    sJ d S )	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   rl  r   r  r   r   s              rI   &test_second_order_to_first_order_slow4r    s   5h'''DAq#$566Aq"b!Qz!!A$$A''3q66*QQqTT12E2E)E!SQRVV)STTz!!A$$A''3q66*QQqTT12E2E)E!SQRVV)STTVDqqttRTAhr#rc(({3s2wws3r77||7K3L3L'LSRUVYZ\V]V]R^R^Q^M_M_'_`a'a3s88CRSWW 5666s3s2ww<<7H7HHJ(KMOPSUWTWPXPX[Y\]`ac]d]dehilmoipipeqeq]qYrYrMrSR\\M""N##$N%(% 3s88CRSWW 5666s3s2ww<<7H7HHJ(K NPQTUVQWQWLZ Z Z Z [ [ qqttRTAhs3s88|CBCGG8L4M4M'McSVWZ[]W^W^S_S_R_N`N`'`ab'b3s88CRSWW 5666s3s2ww<<7H7HHJ(KMOPSUWTWPXPX[Y\]`ac]d]dehilmoipipeqeq]qYrYrMrSR\\M""N##$N%(%')#rc(({3BxCGG7L3M3M'McRUVYZ\V]V]R^R^N_N_'_`a'a(bdfhklmhnhncoq q q q r r	sD E:::tfDDDD$%%$A777777rK   c                  FI   t          dt                    \  } }}}t          d          } | |           ||           ||           ||          g}t          t           | |          |          d | |          z            t          t           ||          |           | |                    t          t           ||          |           ||                    t          t           ||          |           ||          dz   ||          z             g}t           | |          dt          z  t          d|z            z            t           ||          t          t          d|z            z  t          z             t           ||          t          t          |          z            t           ||          t          dz  t          d|z            z  dz  t          t          |          z  z             g}t          |          |k    sJ t          ||          dg dfk    sJ t          t           | |          |          d | |          z            ft          t           ||          |           | |                    fft          t           ||          |           ||                    ft          t           ||          |           ||          dz   ||          z             ffh} | |          t                       ||           | |          h ||          t                       ||           ||          hi | |          t          t           | |          |          d | |          z             ||          t          t           ||          |           | |                     ||          t          t           ||          |           ||                     ||          t          t           ||          |           ||          dz   ||          z             if}	 | |           ||           ||           ||          h ||           | |          f ||           ||          fhg}
d	 t          |||          D             |k    sJ t          ||          |	k    sJ d
 t          |	d                   D             |
k    sJ t          t           | |          |          d | |          z            t          t           ||          |           | |                    t          t           ||          |           ||                    t          t           ||          |           | |          dz   ||          z             g}t           | |          t          t          d|z            z            t           ||          t          t          d|z            z  dz  t          z             t           ||          t          t          |          z            t           ||          t          dz  t          d|z            z  dz  t          t          |          z  z             g}t          |          |k    sJ t          ||          dg dfk    sJ t          t          t           | |          |          d | |          z            ft          t           ||          |           | |                    ft          t           ||          |           | |          dz   ||          z             fg          t          t          t           ||          |           ||                    fg          h} | |          t                       ||           | |          h ||          t                       ||           | |          hi | |          t          t           | |          |          d | |          z             ||          t          t           ||          |           | |                     ||          t          t           ||          |           ||                     ||          t          t           ||          |           | |          dz   ||          z             if} | |           ||           ||           ||          h ||           | |          f ||           | |          fhg}d t          |||          D             |k    sJ t          ||          |k    sJ d t          |d                   D             |k    sJ t          t           | |          |          d | |          z            t          t           ||          |          | | |          z             t          t           ||          |           ||                    t          t           ||          |           | |          dz   ||          z             g}t           | |          t          t          d|z            z            t           ||          t          t          d|z            z  dz  t          z   |dz  dz  z             t           ||          t          t          |          z            t           ||          t          dz  t          d|z            z  dz  t          t          |          z  z             g}t          |          |k    sJ t          ||          dg dfk    sJ t          t          t           | |          |          d | |          z            ft          t           ||          |          | | |          z             ft          t           ||          |           | |          dz   ||          z             fg          t          t          t           ||          |           ||                    fg          h} | |          t                       ||           | |          h ||          t                       ||           | |          hi | |          t          t           | |          |          d | |          z             ||          t          t           ||          |          | | |          z              ||          t          t           ||          |           ||                     ||          t          t           ||          |           | |          dz   ||          z             if} | |           ||           ||           ||          h ||           | |          f ||           | |          fhg}d t          |||          D             |k    sJ t          ||          |k    sJ d t          |d                   D             |k    sJ t          t           | |          |          | | |          z  d ||          z  z             t          t           ||          |           | |          | ||          z  z   |z             t          t           ||          |           ||                    t          t           ||          |           | |          dz   ||          z             g}t           | |          t          dz  t!          d          t          z  dz  z
  t!          d          t#          |t          |dz   dz  t!          d          |z  z
            z  dz  |t          |dz   dz  t!          d          |z  z             z  dz  z   |          z  dz  z
  t#          t!          d          |z  t          |dz   dz  t!          d          |z  z
            z  dz  t!          d          |z  t          |dz   dz  t!          d          |z  z             z  dz  z
  |          dz  z   t          |dz  dz  t!          d          |z  z
            z  t          dz  t!          d          t          z  dz  z   t!          d          t#          |t          |dz   dz  t!          d          |z  z
            z  dz  |t          |dz   dz  t!          d          |z  z             z  dz  z   |          z  dz  z   t#          t!          d          |z  t          |dz   dz  t!          d          |z  z
            z  dz  t!          d          |z  t          |dz   dz  t!          d          |z  z             z  dz  z
  |          dz  z   t          |dz  dz  t!          d          |z  z             z  z             t           ||          t!          d           t          z  dz  t          dz  z   t#          |t          |dz   dz  t!          d          |z  z
            z  dz  |t          |dz   dz  t!          d          |z  z             z  dz  z   |          dz  z   t!          d          t#          t!          d          |z  t          |dz   dz  t!          d          |z  z
            z  dz  t!          d          |z  t          |dz   dz  t!          d          |z  z             z  dz  z
  |          z  dz  z
  t          |dz  dz  t!          d          |z  z
            z  t!          d          t          z  dz  t          dz  z   t#          |t          |dz   dz  t!          d          |z  z
            z  dz  |t          |dz   dz  t!          d          |z  z             z  dz  z   |          dz  z   t!          d          t#          t!          d          |z  t          |dz   dz  t!          d          |z  z
            z  dz  t!          d          |z  t          |dz   dz  t!          d          |z  z             z  dz  z
  |          z  dz  z   t          |dz  dz  t!          d          |z  z             z  z             t           ||          t          t          |          z            t           ||          t          t          |          z  t          |          t#          t          t          |dz  dz  t!          d          |z  z
            z  dz  t          t          |dz  dz  t!          d          |z  z             z  dz  z   t!          d          t          z  t          |dz  dz  t!          d          |z  z
            z  dz  z
  t!          d          t          z  t          |dz  dz  t!          d          |z  z             z  dz  z   t!          d          t          |dz  dz  t!          d          |z  z
            z  t#          |t          |dz   dz  t!          d          |z  z
            z  dz  |t          |dz   dz  t!          d          |z  z             z  dz  z   |          z  dz  z
  t          |dz  dz  t!          d          |z  z
            t#          t!          d          |z  t          |dz   dz  t!          d          |z  z
            z  dz  t!          d          |z  t          |dz   dz  t!          d          |z  z             z  dz  z
  |          z  dz  z   t!          d          t          |dz  dz  t!          d          |z  z             z  t#          |t          |dz   dz  t!          d          |z  z
            z  dz  |t          |dz   dz  t!          d          |z  z             z  dz  z   |          z  dz  z   t          |dz  dz  t!          d          |z  z             t#          t!          d          |z  t          |dz   dz  t!          d          |z  z
            z  dz  t!          d          |z  t          |dz   dz  t!          d          |z  z             z  dz  z
  |          z  dz  z   dz  t          |           z  |          z  z             g}t          t          t           | |          |          | | |          z  d ||          z  z             t          t           ||          |          | ||          z  |z    | |          z             g          t          t          t           ||          |           | |          dz   ||          z             g          ft          t          t           ||          |           ||                    g          fh} | |           ||          h ||           | |          h ||          t                       ||           | |          hi | |          t          t           | |          |          | | |          z  d ||          z  z              ||          t          t           ||          |          | ||          z  |z    | |          z              ||          t          t           ||          |           ||                     ||          t          t           ||          |           | |          dz   ||          z             if} | |           ||           ||           ||          h | |           ||          f ||           | |          f ||           | |          fhg}d t          |||          D             |k    sJ t          ||          |k    sJ d t          |d                   D             |k    sJ t%          |dd          |gk    sJ t          ||          dg dfk    sJ t          t           | |          |          | | |          z  d ||          z  z             t          t           ||          |          | ||          z   | |          z             t          t           ||          |           ||                    t          t           ||          |           | |          dz   ||          z             g}t           | |          t          dz  t!          d          t          z  dz  z
  t          |dz  dz  t!          d          |z  z
            z  t          dz  t!          d          t          z  dz  z   t          |dz  dz  t!          d          |z  z             z  z             t           ||          t!          d           t          z  dz  t          dz  z   t          |dz  dz  t!          d          |z  z
            z  t!          d          t          z  dz  t          dz  z   t          |dz  dz  t!          d          |z  z             z  z             t           ||          t          t          |          z            t           ||          t          t          |          z  t          |          t#          t          t          |dz  dz  t!          d          |z  z
            z  dz  t          t          |dz  dz  t!          d          |z  z             z  dz  z   t!          d          t          z  t          |dz  dz  t!          d          |z  z
            z  dz  z
  t!          d          t          z  t          |dz  dz  t!          d          |z  z             z  dz  z   dz  t          |           z  |          z  z             g}t          t          t           | |          |          | | |          z  d ||          z  z             t          t           ||          |          | ||          z   | |          z             g          t          t          t           ||          |           | |          dz   ||          z             g          ft          t          t           ||          |           ||                    g          fh} | |           ||          h ||           | |          h ||          t                       ||           | |          hi | |          t          t           | |          |          | | |          z  d ||          z  z              ||          t          t           ||          |          | ||          z   | |          z              ||          t          t           ||          |           ||                     ||          t          t           ||          |           | |          dz   ||          z             if} | |           ||           ||           ||          h | |           ||          f ||           | |          f ||           | |          fhg}d t          |||          D             |k    sJ t          ||          |k    sJ d t          |d                   D             |k    sJ t%          |dd          |gk    sJ t          ||          dg dfk    sJ d S )Nr]  r9   r3   r<   r@   r?   Tr  c                 @    h | ]}t          d  |D                       S )c              3   4   K   | ]}t          |          V  d S r   tuple.0sccs     rI   	<genexpr>z4test_component_division.<locals>.<setcomp>.<genexpr>  s(      ,,%**,,,,,,rK   r  r  wccs     rI   	<setcomp>z*test_component_division.<locals>.<setcomp>  s/    \\\E,,,,,,,\\\rK   c                 ,    g | ]}t          |          S r   setr  elements     rI   
<listcomp>z+test_component_division.<locals>.<listcomp>      AAAWCLLAAArK   r   r   rt   c                 @    h | ]}t          d  |D                       S )c              3   4   K   | ]}t          |          V  d S r   r  r  s     rI   r  z4test_component_division.<locals>.<setcomp>.<genexpr>  (      00SeCjj000000rK   	frozensetr  s     rI   r  z*test_component_division.<locals>.<setcomp>  /    ```SI00C00000```rK   c                 ,    g | ]}t          |          S r   r  r  s     rI   r  z+test_component_division.<locals>.<listcomp>  r  rK   c                 @    h | ]}t          d  |D                       S )c              3   4   K   | ]}t          |          V  d S r   r  r  s     rI   r  z4test_component_division.<locals>.<setcomp>.<genexpr>(  r  rK   r  r  s     rI   r  z*test_component_division.<locals>.<setcomp>(  r  rK   c                 ,    g | ]}t          |          S r   r  )r  r   s     rI   r  z+test_component_division.<locals>.<listcomp>*  s    555qCFF555rK   c                 @    h | ]}t          d  |D                       S )c              3   4   K   | ]}t          |          V  d S r   r  r  s     rI   r  z4test_component_division.<locals>.<setcomp>.<genexpr>P  (      00S)C..000000rK   r  r  s     rI   r  z*test_component_division.<locals>.<setcomp>P  /    ```SE00C00000```rK   c                 ,    g | ]}t          |          S r   r  r  s     rI   r  z+test_component_division.<locals>.<listcomp>R  r  rK   Fr  c                 @    h | ]}t          d  |D                       S )c              3   4   K   | ]}t          |          V  d S r   r  r  s     rI   r  z4test_component_division.<locals>.<setcomp>.<genexpr>j  r  rK   r  r  s     rI   r  z*test_component_division.<locals>.<setcomp>j  r  rK   c                 ,    g | ]}t          |          S r   r  r  s     rI   r  z+test_component_division.<locals>.<listcomp>l  r  rK   )r   r   r
   r   r   r   r   r)  r*  r   r   r  r(   r)   r*   r  r   r-   r'   )r4   r5   r6   r   r3   rH   r   r   components1eqsdict1graph1r   r   components2eqsdict2graph2r   r   components3eqsdict3graph3r   r   components4eqsdict4graph4r   r   components5eqsdict5graph5s                                  rI   test_component_divisionr    s$   111JAq!QAQqTT11Q441qqtt$Ez!!A$$""AaaddF++z!!A$$""AAaDD))z!!A$$""AAaDD))z!!A$$""AAaDD!GaaddN335D qqttQrT#ac((]##qqttRAaC[2%&&qqttRAYqqttRU3qs88^A%3q66	1224D $<<4$%%$)=====
11Q44++QqqttV446JqqttQ<O<OQRQRSTQUQU9V9V8XY
11Q44++QQqTT224r*QQqTT1:M:MqqQRttUVwYZYZ[\Y]Y]~7^7^6`acK1suuaaddQQqTTFAAaDD#%%1!vF1r*QQqTT1--q1v66!bAAaDD!,,aadd33!bAAaDD!,,aadd33!bAAaDD!,,aaddAg!n==?@H
 qttQQqTT11Q441&!!A$$!!aadd|(DEF\\8KDRWYZ8[8[\\\`kkkkkT5!!X----AAHQK(@(@AAAVKKKKz!!A$$""AaaddF++z!!A$$""AAaDD))z!!A$$""AAaDD))z!!A$$""AAaDD!GaaddN335D qqttRAaC[!!qqttRAaC[]R'((qqttRAYqqttRU3qs88^A%3q66	1224D $<<4$%%$)=====r*QQqTT1"5"5q1v>>@
11Q44++QQqTT224
11Q44++QQqTT1Wqqtt^<<>@ A A r*QQqTT1"5"5qqtt<<>?@@BK 1suuaaddQQqTTFAAaDD#%%1!vF!A$$:aaddA..!!A$$77!A$$:aaddA..!55!A$$:aaddA..!55!A$$:aaddA..!a!!A$$??ABH
 qttQQqTT11Q441&!!A$$!!aadd|(DEF``<OPTV[]^<_<_```doooooT5!!X----AAHQK(@(@AAAVKKKKz!!A$$""AaaddF++z!!A$$""A!H--z!!A$$""AAaDD))z!!A$$""AAaDD!GaaddN335D qqttRAaC[!!qqttRAaC[]R'!Q$q&011qqttRAYqqttRU3qs88^A%3q66	1224D $<<4$%%$)=====r*QQqTT1"5"5q1v>>@
11Q44++Q1X668
11Q44++QQqTT1Wqqtt^<<>@ A A :aaddA#6#6! = =?ABBDK 1suuaaddQQqTTFAAaDD#%%1!vF1r*QQqTT1--q1v66!bAAaDD!,,a!!A$$h77!bAAaDD!,,aadd33!bAAaDD!,,aaddAg!n==?@H
 qttQQqTT11Q441&!!A$$!!aadd|(DEF``<OPTV[]^<_<_```doooooT5!!X----55K44555???? z!!A$$""AaaddFQqqttVO44z!!A$$""AAaDD1QQqTT6MA$566z!!A$$""AAaDD))z!!A$$""AAaDD!GaaddN335D qqttbdT!WWRZ\)DGGHQsAqD57TRSWWUVYCV?W?W=WXY=Y\]^acdfgcgbghibiQ	c _ _ ]] >5! 5! -!!"-# #%-d1ggaiQTE!Gd1ggai<O8P8P.PQR.RUYZ[U\U\]^U^_bdeghdhchijcjQ	d ` ` VV /&! &!!"&##$'1Qa(:$;$;<?A!td1ggbjQRl?RUYZ[U\U\]efghkmnpqmqlqrslsq''!)m i i gg!"31uQwa':#;#;!;A!=g>?@^B ^B VBBCVD @DFNtTUwwWXyY\^_ab^b]bcd]dgklmgngnopgp]pYqYqOqrsOsq''!)CAa$q''!) 3444Q6P789G; G;;<G=@=>A!Q$q&4PQ77ST9BT>U>U?VV W W
 qqtttAwwhrk!mbd*XaQTE!Gd1ggai<O8P8P6PQR6RUVWZ\]_`\`[`ab[beijkelelmnen[nWoWoUopqUq6qst-u-uvw-wwQa31uQwa/B+C+C!CA!EQPQ	RUWXZ[W[V[\]V]`def`g`ghi`iViRjRjHjklHl!l  !Q$q&47719,--.15aA11DxPQRUWXZ[W[V[\]V]`def`g`ghi`iViRjRjPjklPl#q!teAgQ	)***1,Q-./H1 H112H3 2359!WWXd1ggaiPSUVXYUYTYZ[T[^bcd^e^efg^gTgPhPhFhijFjQ	#q!teAgQ	122214G567>9 >9 699:6;2;<?1QaQR@R<S<S1TT U U
 qqttRAYqqttRAYQ"SAa$q''!)9K5L5L2LQ2NQSTWXY[\X\]^X^aefgahahijajXjTkTkQklmQm2mQ
3q!tAvQ	122214357;Awwrz#ad1ftTUwwWXyFXBYBY7YZ[7[3\^bcd^e^efijkmnjnopjpQ	k g g _#Ac1a4%'DGGAI*=&>&>$>q$@1S!Q$qSWXYSZSZ[\S\I\E]E]C]^_C_$_abcc_dde_f3fhklmoplpqrlrQ	m i i#DGGAIc1a4%'DGGAI2E.F.F$Fq$H4PQ77ST9UXZ[]^Z^Y^_`Y`cghicjcjklclYlUmUmKmnoKo$o ii3 Awws1a46DGGAI#5666x#q!teAgPTUVPWPWXYPYFYBZBZ@Z[\@\_`adfgijfjejklelQ	f b b `` A8! 8! !!"#	3#
 &)Aa$q''!));%<%<Xd1ggaiPSUVXYUYTYZ[T[^bcd^e^efg^gTgPhPhFhijFjQ	#q!teAgQ	122214G567>9 >9 &99:&;3; >?2? @CA2ww2G IJ)K )K "K K L LMD$ r*QQqTT1"5"5q1v!!A$$GGz!!A$$**AaaddFQJ1,=>>@ A Ar*QQqTT1"5"5qqttQw1~FFHIIK :aaddA#6#6! = =?@@BDK 1!vqqttaaddVQQqTT355!!A$$1G1r*QQqTT1--q1v!!A$$??!bAAaDD!,,a!fqj11Q44.?@@!bAAaDD!,,aadd33!bAAaDD!,,aaddAg!n==?@H
 qttQQqTT11Q441&!!A$$!!aadd|aaddAAaDD\(RSF``<OPTV[]^<_<_```doooooT5!!X----AAHQK(@(@AAAVKKKKE:::tfDDDD$%%$)=====z!!A$$""AaaddFQqqttVO44z!!A$$""AaaddFQQqTTM22z!!A$$""AAaDD))z!!A$$""AAaDD!GaaddN335D qqttbdT!WWRZ\)3q!tAvQ	/A+B+BBbdTRSWWUWZXY\FY[^_`bc_cde_ehlmnhohopqhq_q[r[rErrssqqtttAwwhrk!mbd*C1Qa0B,C,CCtAwwrzRS|VXYZVZGZ\_`acd`def`fimnoipipqrir`r\s\sFssttqqttRAYqqttRAYQ"SAa$q''!)9K5L5L2LQ2NQSTWXY[\X\]^X^aefgahahijajXjTkTkQklmQm2mQ
3q!tAvQ	122214357;Awwrz#ad1ftTUwwWXyFXBYBY7YZ[7[3\^_2``cefdf`g`g2hij)l )l "l l m mnD
 r*QQqTT1"5"5q1v!!A$$GGz!!A$$**AaaddFQQqTTM::< = =r*QQqTT1"5"5qqttQw1~FFHIIK :aaddA#6#6! = =?@@BDK 1!vqqttaaddVQQqTT355!!A$$1G1r*QQqTT1--q1v!!A$$??!bAAaDD!,,a!fqqttm<<!bAAaDD!,,aadd33!bAAaDD!,,aaddAg!n==?@H
 qttQQqTT11Q441&!!A$$!!aadd|aaddAAaDD\(RSF``<OPTV[]^<_<_```doooooT5!!X----AAHQK(@(@AAAVKKKKE:::tfDDDD$%%$)=======rK   c                  .   t          d          \  } t          dt                    \  }}}t          t          fd           t          t          fd           t	          ddgddgdd	gg          t          t
          fd
           t	          g dg dg          t          t
          fd            |           |          g}t           |                                         |                                        z    |                    t           |                                         |                    g}t          ||          }t          |d         |d          \  \  }}|}	t          t          dd           t          d          dz  z   z  t          t          dd           t          d          dz  z   z            z  t          t          d           dz  t          dd          z
  z  t          t          d           dz  t          dd          z
  z            z  z   t          t          t          dd           t          d          dz  z   z            z  t          t          t          d           dz  t          dd          z
  z            z  z   g}
t          t!          |	          t#          | j                  |
k    sJ t          t          fd           t          t          fd           t          t          fd           t          t          fd           t          t          fd           t          t          fd           t	          ddgddgdd	gg          t	          ddz  g          t          t
          fd           t	          g dg dg          t	          dz  g          t          t
          fd           t          t          fd           t          t          fd           t	          ddgddgg          t	          dz  dz
  dz  dz
  g          t          t          z  z   t          z   ddz  z  z
  ddz  z  z   ddz  z  dz  z
  z  z   dz  z
  t          t          z  z   ddz  z  z
  ddz  z  z
  ddz  z  dz  z
  z  z   dz  z
  g}t          t!          d d!"          g          |k    sJ  |           |          g}t           |                                         |                                        z    |          z             t           |                                         |                    g}t          ||          }t          |d         |d          \  \  }}|}	t           t           dz  t          d          z  dz  z             z  dz  t          d          t          z  t           dz  t          d          z  dz  z             z  dz  z   t          d          t          z  t          t          d           z  dz  dz  z
            z  dz  z
  t          t          t          d           z  dz  dz  z
            z  dz  z
  t           dz  t          d          z  dz  z             t'          t          t          d           z  dz  dz  z             z  d#t          d          z   z  t          d          z  t          t          d           z  dz  dz  z             z  d#t          d          z   z  z
            z  dz  z
  t          d          t           dz  t          d          z  dz  z             z  t'          t          t          d           z  dz  dz  z             z  d#t          d          z   z  t          d          z  t          t          d           z  dz  dz  z             z  d#t          d          z   z  z
            z  dz  z   t          d          t          t          d           z  dz  dz  z
            z  t'          t          d           z  t          dz  t          d          z  dz  z             z  dz            z  dz  z
  t          t          d           z  dz  dz  z
            t'          t          d           z  t          dz  t          d          z  dz  z             z  dz            z  dz  z
  t          t           dz  t          d          z  dz  z             z  t          t          t          d           z  dz  dz  z
            z  z   t           dz  t          d          z  dz  z             t'          t          t          d           z  dz  dz  z             z  d#t          d          z   z  t          d          z  t          t          d           z  dz  dz  z             z  d#t          d          z   z  z
            z  z   t          t          d           z  dz  dz  z
            t'          t          d           z  t          dz  t          d          z  dz  z             z  dz            z  z   g}
t          t!          |	|$          g          |
k    sJ t           t           dz  t          d          z  dz  z             z  dz  t          d          t          z  t           dz  t          d          z  dz  z             z  dz  z   t          d          t          z  t          t          d           z  dz  dz  z
            z  dz  z
  t          t          t          d           z  dz  dz  z
            z  dz  z
  t          t           dz  t          d          z  dz  z             z  t          t          t          d           z  dz  dz  z
            z  z   g}t          t!          |	d %          g          |k    sJ t          t          fd&           t          t          fd'           t	          dg dgg          t)                    \  }t          t
          fd(           t          t          fd)           t	          gggg          t)                    \  }t          t
          fd*           t          t          fd+           t          t          fd,           t          t          fd-           t          t          fd.            |           |          g}t           |                                         |           |          z  z             t           |                                          |          z   |          z             g}t          ||          }t          |d         |d          \  \  }}|}	t          dz  t*          t          z  dz  z
  t          t*          dz  z  dz  z             z  t          dz  t*          t          z  dz  z   t          t*           dz  z  dz  z             z  z   t*           t          z  dz  t          dz  z   t          t*           dz  z  dz  z             z  t*          t          z  dz  t          dz  z   t          t*          dz  z  dz  z             z  z   g}
t          t!          |	          t#          | j                  |
k    sJ t          t!          |	d/%          t#          | j                  |
k    sJ t	          dgdgg          t          t,          fd0           t          t          fd1           t          t          fd2           t          t          fd3           t          t          fd4           t          t          fd5           t          t          fd6           t	          dg dgg          t	          dz  g          t)                    \  }t          t
          fd7           t	          gggg          t	          ddz  g          t)                    \  }t          t
          fd8           t          t          fd9           t          t          fd:           t          t          fd;           t          t          fd<            ||            ||            ||           g}t           ||                               |           |  ||            ||           z    ||           z   z  | z             t           ||                               |           |  ||            ||           z    ||           z   z  | z             t           ||                               |           |  ||            ||           z    ||           z   z  dz             g}t          |||           }t          |d         || d          \  \  }}|}	t          d=| dz  z  dz            }t          d| dz  z  dz            }t'          d|z  | z  dz  |dz  z   | dz  z   t          dd          z
  |           }d|z  |z  dz  }t'          d|z  | z  dz  |dz  z   d| z  dz  z
  t          dd          z   |           }t          |z  dz  t          dz  z
  t          |z  dz  z   t          dz  z
  t.          |z  dz  z   dt.          z  dz  z   ||z  dz  z   |dz  z   |z   |dz  z
  t          |z  dz  dt          z  dz  z   t          |z  dz  z   t          dz  z
  t.          |z  dz  z   t.          dz  z
  ||z  dz  z   |dz  z   |z   |dz  z
  t          |z  dz  t          dz  z
  t          |z  dz  z   dt          z  dz  z   t.          |z  dz  z   t.          dz  z
  ||z  dz  z   d|z  dz  z
  |z   d|z  dz  z   g}
t          t!          |	| |$          t#          | j                  |
k    sJ t          t!          |	| |d>?          t#          | j                  |
k    sJ t	          dgdgg          t          t,          fd@           t           dz  t          dz  z
  dt.          z  dz  z   t          dz  t          dz  z   t.          dz  z   t          d| dz  z  dz            z  z   dt          z  dz  t          dz  z
  t.          dz  z
  t          dz  t          dz  z   t.          dz  z   t          d| dz  z  dz            z  z   t           dz  dt          z  dz  z   t.          dz  z
  t          dz  t          dz  z   t.          dz  z   t          d| dz  z  dz            z  z   g}t          t!          |	| d>d!A          t#          | j                  |k    sJ d S )BNzt x ar   r9   c                  $    t          d           S r   r%   r;   s   rI   rJ   z"test_linodesolve.<locals>.<lambda>w      {1a00 rK   c                  $    t                     S r   r  r   r;   s   rI   rJ   z"test_linodesolve.<locals>.<lambda>x  r  rK   r=   r<   r@   r_   c                  $    t                     S r   r  r   r;   s   rI   rJ   z"test_linodesolve.<locals>.<lambda>{      R);); rK   )r=   r<   r=   )r?   r=   r<   c                  $    t                     S r   r  A2r;   s   rI   rJ   z"test_linodesolve.<locals>.<lambda>~  r  rK   r   rA   )	variablesc                  J    t          d t           dz   g                    S Nr=   r   r%   r   r  s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  s"    {1a61Q3%==AAA rK   c            
      ~    t           t          t                    t                    z   g                    S Nr  r%   r   r   r   r  s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  s1    {1a63q66CFF?:K3L3LMMM rK   c                  J    t          t          dg            dz            S Nrt   r<   r  r  r  s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  s"    {61#;;QTBBB rK   c                      t          t           dz   g          t                    t                    z            S Nr   r  r%   r   r   r   r  s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  s2    {61R4&>>1As1vvNNN rK   c                  .    t          d  dz            S r  r  r  s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  s    {1a1a4888 rK   c                  b    t           t                    t                    z             S r  r%   r   r   r  s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  s&    {1a3q66CFF?CCC rK   c                  (    t                     S r  r  r   b1r;   s   rI   rJ   z"test_linodesolve.<locals>.<lambda>      Rb)A)A)A rK   c                  (    t                     S r  r  r  b2r;   s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  r  rK   c                  @    t           d dd d f                   S Nr<   r  r  r  s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  s&    {2bqb!!!e9a2>>> rK   c                  P    t           d dd d f         d d                   S )Nr<   r=   r  r  r  s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  s.    {2bqb!!!e9a2bqb6BBB rK   r>   r   r   r   r?   r   T)r   typer  rz   r  )r  c                  *    t           dz              S )Nr   r  r  s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  s    {1R433 rK   c                  *    t           z            S r   r  r  s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  s    {1Q322 rK   c                  @    t           d d d df                   S Nr=   Br  )r   B1r;   s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  &    R2A2YR)H)H)H rK   c                  (    t           d          S r  r  r  s   rI   rJ   z"test_linodesolve.<locals>.<lambda>      {2qA666 rK   c                  @    t           d dd d f                   S Nr<   r  r  r  B2r;   s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  s&    Rb!QQQi)H)H)H rK   c                  (    t           d          S r
  r  r  s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  r  rK   c                  *    t           d          S )Ntype31)r  r  r  r  s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  s    {2qBXFFF rK   c                  (    t                     S Nr  r  )r   r  r;   s   rI   rJ   z"test_linodesolve.<locals>.<lambda>      {2qB777 rK   c                  (    t                     S r  r  )r  r  r;   s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  r  rK   r   c                  $    t                     S r   r  r  s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  s    B(:(: rK   c                  P    t           dz    t           dz   g                    S )Nr   r=   r  r  r  s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  s&    {1R4facUmmDDD rK   c            
          t           z  t          t                    t                    z   g                    S r  r  r  s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  s5    {1Q3VSVVc!ff_<M5N5NOOO rK   c                  P    t          t          d z  g            dz            S r  r  r  s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  s&    {61Q3%==!q!tDDD rK   c            	          t          t           dt                    z  z   g          t                    t                    z            S r  r  r  s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  sB    {61r#a&&y=/+B+BAQPSTUPVPVWWW rK   c                  4    t          d z    dz            S r  r  r  s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  s    {1Q3QT::: rK   c                  n    t           dz  z  t                    t                    z             S r  r  r  s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  s.    {1QT61AQHHH rK   c                  @    t           d d d df                   S r  r  r  s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  r  rK   c                  @    t           d dd d f                   S r  r  r  s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  s&    RAAAYR)H)H)H rK   c                  (    t                     S r  r  )r   r  r;   s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  r  rK   c                  (    t                     S r  r  )r  r  r;   s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  r  rK   c                  *    t                     S N)r   r  r  )r   r  r  r;   s   rI   rJ   z"test_linodesolve.<locals>.<lambda>      {2qB"=== rK   c                  *    t                     S r   r  )r  r  r  r;   s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  r!  rK   rC   r   )r   r  c                  (    t                     S r  r  r  s   rI   rJ   z"test_linodesolve.<locals>.<lambda>  s    BR(@(@(@ rK   )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   ri   rh   ceqr   r   r   rZ  r   __x1_x2_x3_x4_x5r   r  r  r  r   r  r  r;   s                     @@@@@@@@rI   test_linodesolver-  r  s   gGAq!g8,,,GAq! :0000111
:00000111	!Q!Q!Q(	)	)B
!;!;!;!;!;<<<	III&	'	'B
!;!;!;!;!;<<< AaDD!!A$$<D
QQqTTYYq\\AAaDDIIaLL(!!A$$
/
/AAaDDIIaLL!!A$$1G1G	HB
T1
%
%C&s1vtQ::KHRa
AAa*+CHQNN?T!WWQY3N0O,P,PPSUX\]^X_X_W_`aWadlmnpqdrdrWrSsq477(1*x1~~-.//T0 0c!hq!nn_tAwwqy01222RAQxzHUVXYNN?Z<[8\8\5\\^C [A..%*:QRRRVYYYYY :AAAABBB
:MMMMMNNN
:BBBBCCC
:NNNNNOOO
:8888999
:CCCCCDDD	!Q!Q!Q(	)	)B	Aq!t		B
!A!A!A!A!A!ABBB	III&	'	'B	AqD			B
!A!A!A!A!A!ABBB
:>>>>>>???
:BBBBBBCC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NN()s, , ,/34 4 4 4 AaDD!!A$$<D
QQqTTYYq\\AAaDDIIaLL(!!A$$(
3
3R!		!aadd5K5K	LB
T1
%
%C&s1vtQ::KHRa
A3sA2a4$q''!)A+%&&&q(4772:c1"Q$a1:L6M6M+Ma+OORVWXRYRYZ\R\]`bfghbibiaijkaklmam
A#b ^ ^ SS c477(1*Q,1,---a/025qbdT!WWQYq[6H2I2I(STUXZ^_`ZaZaYabcYcdeYe
A#Z V V TT!WWT $Q	#tAwwhqjlQqS.@*A*A A2Q< PTQRSKU KU 3UUV3WWY]^_Y`Y`adfgeghiei
q''!)A+f b b Z#tAwwhqjlQqS&8"9"9 92Q< H4PQ77ST9UXZ^_`ZaZaYabcYcdeYe
A#Z V V LT!WWL ! " "Z""#Z$$ '+1ggc477(1*Q,12D.E.E&EhPTUVPWPWxXYzZ]^_`a^a
q''!)A+_ [ [ PPG G ''	
 "%d1ggXaZ\AaC%7!8!8477(1*SQRSTQTW[\]W^W^_`W`abWbQbMcMcBcdeBegh9i9i!ijk!kl 
C1tAwwqy{"##	#bd1ggXaZ\AaC-?)@)@&@	@3r!t
q''!)A+H D D#tAwwhqjlQqS&8"9"9 92Q< H4PQ77ST9UXZ^_`ZaZaYabcYcdeYe
A#Z V V LT!WWL ! " "D" 
"$'a
1c) % %T!WWHQJs1Q3a1+<'='==a?CC%D
D	EC [A333sCCCsJJJJ CQBqD47719Q;&''')DGGBJsA2a4$q''!)A+;M7N7N,Nq,PPSWXYSZSZ[]S]^acghicjcjbjklblmnbnA#c _ _ TT c477(1*Q,1"4555a78sA2a4$q''!)A+%&&&Ca
1qs0B,C,C)CCED [AG<<<LLLPTTTTT :3333444
:22222333	!Q1"a!	"	"B+B22EB
!H!H!H!H!H!HIII
:66666777	!QQ1I1ay1	2	2B+B22EB
!H!H!H!H!H!HIII
:66666777
:FFFFFFGGG
:777777888
:777777888 AaDD!!A$$<D
QQqTTYYq\\11Q44!AAaDD&=
)
)2aaddiillQBqqttGaaddN+K+K	LB
T1
%
%C&s1vtQ::KHRa
AqD1R46M3qAvax!|,,,1qtAvsA2ad719q=?Q?Q/QQBrE!GbdNC1a4	A...!B$q&2a4-Qq!tVAXPQ\ARAR1RRTC[A..%*:QRRRVYYYYY[AG<<<r
H_```dggggg	!Q!R!	"	"B
 : : : : :;;; :DDDDEEE
:OOOOOPPP
:DDDDEEE
:WWWWWXXX
:::::;;;
:HHHHHIII	!Q1"a!	"	"B	AF		B+B22EB
!H!H!H!H!H!HIII	!QQ1I1ay1	2	2B	Aq!t		B+B22EB
!H!H!H!H!H!HIII
:777777888
:777777888
:=======>>>
:=======>>> AaDD!!A$$!D
QQqTTYYq\\1aaddQQqTTkAAaDD01A5
6
6
QQqTTYYq\\1aaddQQqTTkAAaDD01A5
6
6
QQqTTYYq\\1aaddQQqTTkAAaDD01A5
6
6
8B T1
%
%C&s1vtQ::KHRa
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
A
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
 [A333ubz?VWWW[^^^^^[AAAA',bz'>@ @ @CFG G G G 
!Q!R!	"	"B
 @ @ @ @ @ @AA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  uB  `B  IBCEAbDFNRT!RTBqD[2a4%7Qq!tVAX$FFHD[AG$GGGSXZ\S]SjkkkosssssssrK   c            
      4   t          dt                    \  } }}t          d          }|dz  t          |          z   }|dz  t	          |          z   }t          t           | |          |          d|z  |z    | |          z  | ||          z  z
  d|z   ||          z  z
            t          t           ||          |          d|z   | |          z  ||z    ||          z  z   d|z   ||          z  z
            t          t           ||          |          d|z   | |          z  | ||          z  z   d|z  |z    ||          z  z             f}t          d	          5  t          |           d d d            d S # 1 swxY w Y   d S )
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_slowr0    s   iX...GAq!sA	QQA	QQAd11Q44mma!eai11Q44/!aadd(:QUQQqTT\IJJ4!a==!a%!!A$$,!a%11Q44"?!a%!!A$$,"NOOQSTXYZYZ[\Y]Y]_`TaTacdghchklklmnkokocorsvwvw	w w s d1fqjAAaDD d! R" R"#C 
T		  s                 s   0FFFc                     t          d          \  } }}}}}t          d          }t          d          }||z  t           ||          |          z   ||          z    ||          z
  || z  z
  }||z  t           ||          |          z  ||z  t           ||          |          z  z    ||          z   || z  z
  }	||	g}
t          |
dd          \  }t	          |
|          dddgfk    sJ d S )Nzi, r1, c1, r2, c2, tr   r   Fr  Tr   )r   r   r   r'   r   )r   r1c1r2c2r;   r   r   r   r   rh   rZ  s               rI   "test_linear_neq_order1_type2_slow1r6  '  s   "#9::Ar2r2q	$B	$B
R%
22a55!$$
$rr!uu
,rr!uu
4r!t
;C
R%
22a55!$$
$r"uZ1q-A-A'A
ABBqEE
IBqD
PC
sB "u5999ES"c""taVn444444rK   c            	         t          dd          } t          dd          }t          dd          }t          dd          \  }}}t          dd          \  }}}t          dt          d	          \  }	}
}| |z  | t           |	|          |          z  z   ||  ||          z  | |
|          z  z   z  z
  | |z  | t           |
|          |          z  z   || ||          z  | |	|          z  z
  z  z
  | |z  | t           ||          |          z  z   ||  |
|          z  | |	|          z  z   z  z
  g}t	          |          }t          ||          dg d
fk    sJ d S )Nr  Tr  qr;   ze1:4zb1:4zv1:4)r:   r  rB   )r   r   r   r   r   r   )r  r8  r;   e1e2e3r  r  b3v1v2v3eqsrZ  s                 rI   2test_linear_new_order1_type2_de_lorentz_slow_checkrA  8  s   sAsAsAd+++JBBd+++JBBXD999JBB 
A*RRUUA&&&&RC1I22a55,@)AA	A*RRUUA&&&&Brr!uuHr""Q%%x,?)@@	A*RRUUA&&&&RC1I22a55,@)AAC
 ++C#s##iii'8888888rK   c            	      
   t          d          \  } }}}}}}}t          d          }t          d          }	t           ||                              |          d| z   ||          z   |	|          |z  z             t           |	|                              |          | |z   |	|          z  d|z   ||          z  z
  ||z  z             g}
t	          |
dd          \  }t          |
|          dd	d	gfk    sJ d S )
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I0rC  r   systemrZ  s               rI   'test_linear_neq_order1_type2_slow_checkrL  M  s   ")*@"A"AB1b!RRAA11r"uQQqTTzAAaDDF233R!		!rc!eAAaDDjSTUVSVWXWXYZW[W[S[F[^`ab^bFb5c5cdF&5u===ES&#&&4!Q.888888rK   c            
      n	   t          dt                    \  } }}t          d          }|dz  t          |          z   }|dz  t	          |          z   }t          t           | |          |          d|z  |z    | |          z  | ||          z  z
  d|z   ||          z  z
            t          t           ||          |          d|z   | |          z  ||z    ||          z  z   d|z   ||          z  z
            t          t           ||          |          d|z   | |          z  | ||          z  z   d|z  |z    ||          z  z             f}t          |          }d	 |D             }t          |d
z   d|dz  z  t          |          z  z
  d|dz  z  z   dt          |          dz  z  z
  dt          |          z  z   dz
            }	t          d          }
dt          z  |	z  |
z  dt          z  |	z  |
z  z   dt          z  |	z  |
z  z
  }dd|dz  z  d|	z  |
z  z   dt          |          z  z   dz
  z  }t          |dz  dz  ||	z  |
z  dz  z   t          |          z
            }t          |dz  dz  ||	z  |
z  dz  z
  t          |          z
            }t          |dz  dz  |dz  dz  z   d|z  t          |          z  z   d|z  z
  t          |          z
            }dt          z  |	z  |
z  dt          z  |	z  |
z  z   dt          z  |	z  |
z  z
  }dd|dz  z  d|	z  |
z  z
  dt          |          z  z   dz
  z  }dt          z  dz  dt          z  dz  z   dt          z  dz  z
  ||z  z
  }dt          z  dz  dt          z  dz  z
  dt          z  dz  z   ||z  z   }t           | |          ||z  ||z  z   |t          t          z
  z  z             t           ||          ||z  ||z  z             t           ||          |dt          z  dz  dt          z  dz  z
  dt          z  dz  z   ||z  z
  z  |dt          z  dz  dt          z  dz  z   dt          z  dz  z
  ||z  z   z  z   |t          t          z
  z  z             g}||k    sJ t          ||          d g d!fk    sJ d S )"Nr/  r9   r;   r?   r<   r@   rA   rC   c                 ,    g | ]}t          |          S r   r#   r  rZ  s     rI   r  z1_linear_3eq_order1_type4_long.<locals>.<listcomp>d      777S8C==777rK   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   )r3   r   r   r;   r4   r5   r   
dsolve_soldsolve_sol1x_1x_2x_3x_4x_5x_6x_7x_8x_9x_10x_11rZ  s                        rI   _linear_3eq_order1_type4_longr`  X  s,   iX...GAq!sA	QQA	QQAd11Q44mmacAgqqtt^a!f4qs11Q44x?@@d11Q44mmQqS1XQ!4qs11Q44x?@@"T!!A$$PQ]]TUVWTWXYXYZ[X\X\T\_`abab	b b ` UdQh!_U C CC J77J777K
1uqAvc!ff}$qAv-3q6619<r#a&&yH2M
N
NC
q''C
R-
C
*R-"3C"7
7*R-:KC:O
OC
z!Q$C!33jQ6GG*T
UC
ad1fquSy{"SVV+
,
,C
ad1fquSy{"SVV+
,
,C
ad1fq!tAvo!CFF
*QqS03q669
:
:C
(3,s
U2Xc\#-
-bS0@
@C
uQTzE#IcM)F3q66M9FB
CC2:b.r%?#c'ID"9U?U2Xe^+eBhun<s3wFDaaddDHtCx'#rBw-788"QQqTT48dSVhCV:W:WY[\]\]^_\`\`beGCK#b&*$s2vcz1CG;c=?BCF3JQTUWQWX[Q[D[F3JESE! @"c"$'bMc2 Z3 Z3 4C ##{++iii/@@@@@@@rK   c            	         t          dt                    \  } }t          d          }t          t           | |          |          | | |          z  |dz   ||          z  z   |z             t          t           ||          |          d|dz  z   | |          z  |d|dz  z  z    ||          z  z   dz             g}t	          |          }t          ||          dddgfk    sJ d S )	Nr   r9   r3   r<   r?   r=   Tr   )r   r   r
   r   r   r   r4   r5   r3   r@  rZ  s        rI   !test_neq_order1_type4_slow_check1rc  y  s    5h'''DAqAd11Q44mmQqqttVad11Q44i/!344d11Q44mmQq!tVAAaDD[A!Q$J!+<<q@AACC
++C#s##q!f~555555rK   c            	         t          dt                    \  } }}t          d          }t          t	           | |          |          | ||          z   | |          z    ||          z   dz             t          t	           ||          |          | ||          z   | |          z    ||          z   dz             t          t	           ||          |          | | |          z  |z    ||          z    ||          z             g}t          d          5  t          |          }d d d            n# 1 swxY w Y   t          ||          dg dfk    sJ d S )Nr8   r9   r3   r=   r   TrB   )r   r   r   r
   r   r   r   r   )r4   r5   r6   r3   r@  rZ  s         rI   !test_neq_order1_type4_slow_check2re    s   iX...GAq!sA 	:aaddA!!A$$1! 4q 899
:aaddA!!A$$1! 4r 9::
:aaddA!!A$$
QQqTT 1AAaDD 899C
 
T		  Skk              #s##iii'8888888s   "D>>EEc                  ,   t          dt                    \  } }t          d          }t          t           | |          |          | | |          z   ||          z   t	          |          z             t          t           ||          |          |dz  | ||          z  z    | |          z
            g}t           | |          t
          dz  t          t          z  dz  z
  t          t          |dz  t          |dz   dz  t          |z  z
            z  dz  |dz  t          |dz   dz  t          |z  z             z  dz  z   t          t          |dz   dz  t          |z  z
            z  t	          |          z  dz  z   t          t          |dz   dz  t          |z  z             z  t	          |          z  dz  z
  |          z  dz  z
  t          t           |dz  z  t          |dz   dz  t          |z  z
            z  dz  t          |dz  z  t          |dz   dz  t          |z  z             z  dz  z   t          |dz   dz  t          |z  z
            t	          |          z  dz  z   t          |dz   dz  t          |z  z             t	          |          z  dz  z   |          dz  z   t          |dz  dz  t          |z  z             z  t
          dz  t          t          z  dz  z   t          t          |dz  t          |dz   dz  t          |z  z
            z  dz  |dz  t          |dz   dz  t          |z  z             z  dz  z   t          t          |dz   dz  t          |z  z
            z  t	          |          z  dz  z   t          t          |dz   dz  t          |z  z             z  t	          |          z  dz  z
  |          z  dz  z   t          t           |dz  z  t          |dz   dz  t          |z  z
            z  dz  t          |dz  z  t          |dz   dz  t          |z  z             z  dz  z   t          |dz   dz  t          |z  z
            t	          |          z  dz  z   t          |dz   dz  t          |z  z             t	          |          z  dz  z   |          dz  z   t          |dz  dz  t          |z  z
            z  z             t           ||          t           t
          z  dz  t          dz  z   t          |dz  t          |dz   dz  t          |z  z
            z  dz  |dz  t          |dz   dz  t          |z  z             z  dz  z   t          t          |dz   dz  t          |z  z
            z  t	          |          z  dz  z   t          t          |dz   dz  t          |z  z             z  t	          |          z  dz  z
  |          dz  z   t          t          t           |dz  z  t          |dz   dz  t          |z  z
            z  dz  t          |dz  z  t          |dz   dz  t          |z  z             z  dz  z   t          |dz   dz  t          |z  z
            t	          |          z  dz  z   t          |dz   dz  t          |z  z             t	          |          z  dz  z   |          z  dz  z
  t          |dz  dz  t          |z  z
            z  t          t
          z  dz  t          dz  z   t          |dz  t          |dz   dz  t          |z  z
            z  dz  |dz  t          |dz   dz  t          |z  z             z  dz  z   t          t          |dz   dz  t          |z  z
            z  t	          |          z  dz  z   t          t          |dz   dz  t          |z  z             z  t	          |          z  dz  z
  |          dz  z   t          t          t           |dz  z  t          |dz   dz  t          |z  z
            z  dz  t          |dz  z  t          |dz   dz  t          |z  z             z  dz  z   t          |dz   dz  t          |z  z
            t	          |          z  dz  z   t          |dz   dz  t          |z  z             t	          |          z  dz  z   |          z  dz  z   t          |dz  dz  t          |z  z             z  z             g}||fS )Nr   r9   r3   r<   )
r   r   r
   r   r   r   r   r   r-   r   rb  s        rI   _neq_order1_type4_slow3rg    s	   5h'''DAqA 	:aaddA!!A$$1A 677
:aaddA1q1v! 455C
 	11Q44"Q$2a-!HQT#q!teAg!m2D2D-DQ-FqDadU1Wqs]###A%.&()#q!teAg!m*<*<(<SVV(CA(E.Fc1a4%'AaC-   Q').*+,%. %. #../#0 02:A2ad731uQwcH D D <<Avc1a4%'AaC-0002<358!Q$qaC: 6 6Q66<Aa!A#..s1vv5a7<89:3< 3<<=3>> @C1a46aCD @ @	
 qD1R46MAhq!tCAa!A#4F4F/Fq/HqDadU1Wqs]###A%0&()#q!teAg!m*<*<(<SVV(CA(E0Fc1a4%'AaC-   Q')0*+,'. '. %../%0 02:A2ad731uQwcH D D <<Avc1a4%'AaC-0002<358!Q$qaC: 6 6Q66<Aa!A#..s1vv5a7<89:3< 3<<=3>> @C1a46aCD @ @	
 
	 
	 	11Q441"R%'BqD.8AqDadU1Wqs]1C1C,CA,EqDadU1Wqs]###A%-&()#q!teAg!m*<*<(<SVV(CA(E-Fc1a4%'AaC-   Q')-*+,$. $../$0 0 hr!Q$wsAqD57QqS=111!3a1fS!Q$qaCB > > 77 !Q$q1Q3''A.q01361uQwaC8 4 4Q44    
 "%QT!Vac\!2!23
 78d1fr!tmQT#q!teAg!m,,,Q.Ac1a4%'AaC-6H6H1H1JJc1a4%'AaC-   Q')*,-c1a4%'AaC-.@.@,@Q,G,IJ 7 XqbAgc1a4%'AaC-&8&88:adF31uQw1}%%%a'(*-q!teAg!m*<*<SVV*CA*EFAa!A#s1vv%a'()*, , ,,-.7.
 031a46AaC</@/@6A
A 
	B 
	BC2 8OrK   c                  Z    t                      \  } }t          | dd          |gk    sJ d S )NFr  )rg  r'   r@  rZ  s     rI   test_neq_order1_type4_slow3rj    s9    &((HCu5999cUBBBBBBrK   c                  \    t                      \  } }t          | |          dddgfk    sJ d S )NTr   )rg  r   ri  s     rI   !test_neq_order1_type4_slow_check3rl    s:    &((HC#s##q!f~555555rK   c                  n    t                      \  } }t          |           }d |D             }||k    sJ d S )Nc                 ,    g | ]}t          |          S r   rO  rP  s     rI   r  zGtest_linear_3eq_order1_type4_long_dsolve_slow_xfail.<locals>.<listcomp>  rQ  rK   )r`  r   rh   rZ  rS  rT  s       rI   3test_linear_3eq_order1_type4_long_dsolve_slow_xfailrp    sH     ,--GBJ77J777K#rK   c                      t                      \  } }t          d          5  t          |           }d d d            n# 1 swxY w Y   d |D             }||k    sJ d S )NTc                 ,    g | ]}t          |          S r   rO  rP  s     rI   r  zHtest_linear_3eq_order1_type4_long_dsolve_dotprodsimp.<locals>.<listcomp>  rQ  rK   )r`  r   r   ro  s       rI   4test_linear_3eq_order1_type4_long_dsolve_dotprodsimprs    s    +--GB 
T		    BZZ
                              87J777K#s   =AAc                  \    t                      \  } }t          | |          dg dfk    sJ d S )NTrB   )r`  r   )rh   rZ  s     rI   'test_linear_3eq_order1_type4_long_checkru    s;    +--GB"c""tYYY&7777777rK   c            
         t          dt                    \  t          d          t                                                                         z             t                                                                         z             g                      gt                     t           t
          t          dz            z  z             t                     t          t
          t          dz            z  z             gg} t          d          | k    sJ t          t          d            t          t          fd           t          t          fd	           t          t          fd
           t                                                   d           z  d           z  z
            t                                                   dz  d           z  d           z  z             ft          t          fd           t          t          fd           t          t          fd           t          t          fd           t          t          fd           t          t          fd           t          t          fd           d S )Nr   r9   r3   r<   T)rH   r;   r  c                       t          d          S r   r'   r   rK   rI   rJ   z$test_dsolve_system.<locals>.<lambda>  s    }Q// rK   c                  $    t           d          S r   rx  r@  s   rI   rJ   z$test_dsolve_system.<locals>.<lambda>  s    }S!44 rK   c                  &    t           d          S r   rx  )r@  rH   s   rI   rJ   z$test_dsolve_system.<locals>.<lambda>  s    }S%;; rK   c                  6    t           d d                   S r   rx  )r@  rH   r3   s   rI   rJ   z$test_dsolve_system.<locals>.<lambda>  s    }S%)Q?? rK   r^   r_   r`   r?   c                  .    t                     g g fk    S r   rx  )rh   s   rI   rJ   z$test_dsolve_system.<locals>.<lambda>  s    b(9(9b"X(E rK   c                  Z    t                                 g          g g fk    S )N)rH   rx  rh   r4   r5   r3   s   rI   rJ   z$test_dsolve_system.<locals>.<lambda>  s4    b1qqtt(M(M(MRTVXQY(Y rK   c                  \    t                                 g          g g fk    S )N)rH   r;   rx  r  s   rI   rJ   z$test_dsolve_system.<locals>.<lambda>  s7    b1qqttPQ(R(R(RWY[]V^(^ rK   c            
          t                                 g d          d d          di          g g fk    S )Nr   r=   )rH   r;   rf  rx  r  s   rI   rJ   z$test_dsolve_system.<locals>.<lambda>  s^    b1qqttPQXYXYZ[X\X\^_ababcdaeaeghWi(j(j(joqsunv(v rK   c            	      `    t            d          d d          di          g g fk    S )Nr   r=   )r;   rf  rx  r  s   rI   rJ   z$test_dsolve_system.<locals>.<lambda>  s<    bAAAaDD!QQqTTSTCU(V(V(V[]_aZb(b rK   c                  ^    t            d          d d          di          g g fk    S )Nr   r=   re  rx  )rh   r4   r5   s   rI   rJ   z$test_dsolve_system.<locals>.<lambda>  s9    bqqttQ!a>P(Q(Q(QVXZ\U](] rK   c            	          t                                 g d          d d          di          g g fk    S )Nr   r=   )rH   rf  rx  r  s   rI   rJ   z$test_dsolve_system.<locals>.<lambda>  s[    b1qqttSTSTUVSWSWYZ\]\]^_\`\`bcRd(e(e(ejlnpiq(q rK   )r   r   r
   r   r   r   r   r'   r/   r   r%  )rZ  rh   r@  r4   rH   r5   r3   s    @@@@@@rI   test_dsolve_systemr    s   5h'''DAqAaaddiillAAaDD11Q44K(("QQqTTYYq\\11Q44!!A$$;*G*G
HCQqTT11Q44LEqqttbS2c!A#hh;&''AAaDD"r#ac(({2B)C)CD
ECEQT:::cAAAA
://000
:4444555
:;;;;;<<<
:??????@@@
QQqTTYYq\\2!9q11Q44x/
0
0"QQqTTYYq\\Q5FQQqTT	TUXYXYZ[X\X\T\H\2]2]	^B
 E E E EFFF
 Y Y Y Y Y Y YZZZ
 ^ ^ ^ ^ ^ ^ ^___
 v v v v v v vwww
 b b b b b b bccc
 ] ] ] ] ] ]^^^
 q q q q q q qrrrrrrK   c                  <   t          dt                    \  } }t          d          \  }} | |                              |          |z
   | |                              |          |z   g}t          t                    5  t          |           d d d            n# 1 swxY w Y    | ||                              |          g}t          t                    5  t          |           d d d            n# 1 swxY w Y    | ||                              |           ||                              |          z    ||                              |          g}t          t                    5  t          |           d d d            d S # 1 swxY w Y   d S )Nr   r9   x y)r   r   r   r/   r   r   )r4   r5   r3   r   r@  s        rI   test_dsolver    s   5h'''DAq5>>DAq1Q4499Q<<!QQqTTYYq\\A-
.C	
		  s               1Q77<<??
C	
		  s               1Q77<<??11Q4499Q<<'11
6C	
		  s                 s6   BB"%B"C99C= C=4FFFc                     t          dt                    \  } }t          d          }t          t           | |          ||          t	          |          |dz  z   t           | |          |          z  t	          |          |dz  z   dz  t           ||          |          z  z             t          t           ||          ||          t	          |          |dz  z   dz  t           | |          |          z  t	          |          |dz  z   dz  t           ||          |          z  z             g}t          |dd          \  }|D ]}|j        |j        z
                      |d	         j        |d	         j        |d
         j        |d
         j        i          }|                    d |	                    t                    D                       }t          |                    |d
                    d	k    sJ d S )Nr  r9   r;   r<   r?   rx   Fr  r   r=   c                 <    i | ]}||                     d           S )F)deep)r  )r  rl  s     rI   
<dictcomp>z,test_higher_order1_slow1.<locals>.<dictcomp>	  s(    MMM!166u6--MMMrK   )r   r   r
   r   r   r'   lhsr   subsatomsr   r.   )r3   r   r;   rh   rZ  eress          rI   test_higher_order1_slow1r  	  s   5h'''DAqA 	4!Qq>>CFF1a4Kaadd15s1vvad{Aod11Q44PQll6RRSS
4!Qq>>CFF1a4K?4!Q<<7Q1aQQqTTRS8TTUU
B e%888DC  , ,uqu}""CFJs1vz3q6:c!fj#QRRhhMMsyy7L7LMMMNNsxx1~~&&!+++++, ,rK   c                     t          dt                    \  } }}t          d          \  }}t          t           | |          |df          |d | |          z   ||          z   z            t          t           ||          |df          | | |           d ||          z  z   z            g}t           | |          t          t
          z  t          |dt          z
  t          d          dz  z  z            z  t          t          z  t          |dt          z
  t          d          dz  z  z            z  z   t          t          z  t          |dt          z   t          d          dz  z  z            z  z
  t          t          z  t          |dt          z   t          d          dz  z  z            z  z
            t           ||          t
          t          |dt          z
  t          d          dz  z  z            z  t          t          |dt          z
  t          d          dz  z  z            z  z   t          t          |dt          z   t          d          dz  z  z            z  z   t          t          |dt          z   t          d          dz  z  z            z  z             g}t          |          |k    sJ t          ||          dddgfk    sJ d S )	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  	  s   iX...GAq!6??DAqz!!A$$A''AaaddFQQqTTM):;;z!!A$$A''QQqTTEAaaddFN);<<>DqqttQrT&AEQqTT!V#4!4555"VAq1uPQRSPTPTUVPVFWDW=X=X8XX[\]_[_`fghjkkA$$q&j h a a \ rT&AEQqTT!V+<)<"="==> ? ?qqttRq!a%1Q446!22333b1q5AaDDQRFBS@S9T9T6TTWYZ`abdehidimnopmqmqrsmsctatZuZuWuuq!a%1Q446**+++, - -.D $<<4$%%$A777777rK   c                     t          d          \  } }}| t          t                                        t                    z  ||z
  t	          t                    z  t          t                    z  z
  |t	          t                                        t                    z  || z
  t          t                    z  t          t                    z  z
  |t          t                                        t                    z  | |z
  t          t                    z  t	          t                    z  z
  g}t          |          sJ d S )Nza b c)r   r4   r3   r   r5   r6   r   )r   r   r   r@  s       rI   test_nonlinear_3eq_order1_type1r  -	  s     gGAq! 	
AaDDIIaLLAEQqTT>AaDD00	AaDDIIaLLAEQqTT>AaDD00	AaDDIIaLLAEQqTT>AaDD00C #;;rK   c            
         t          t          t                                        t                    dt	          t                    z  t          t                    z  dt          t                    z  t	          t                    z  z
            t          t          t                                        t                    dt          t                    z  t	          t                    z  dt	          t                    z  t          t                    z  z
            t          t	          t                                        t                    dt          t                    z  t          t                    z  dt          t                    z  t          t                    z  z
            g} t          |            d S Nr<   r?   r@   )r
   r4   r3   r   r6   r5   r   rz  s    rI   test_nonlinear_3eq_order1_type4r  ;	  s     	1Q4499Q<<!AaDD&1+!A$$qtt355
1Q4499Q<<!AaDD&1+!A$$qtt355
1Q4499Q<<!AaDD&1+!A$$qtt355C
 3KKKKKrK   c            
      D   t          t          t                                        t                    dt          t                    dz  z  dz
            t          t	          t                                        t                    ddt          t                    z  z
            t          t          t                                        t                    dt          t                    z  dt          t                    dz  z  z
            g} t          |            d S r  r
   r4   r3   r   r5   r6   r   rz  s    rI   test_nonlinear_3eq_order1_type3r  H	  s     	1Q4499Q<<!AaDD!G)a-11
1Q4499Q<<!a!f,11
1Q4499Q<<!AaDD&a!ai/11C
 3KKKKKrK   c                  
   t          t          t                                        t                    t          t                    dt          t                    z  dt	          t                    z  z
  z            t          t	          t                                        t                    t	          t                    dt	          t                    z  dt          t                    z  z
  z            t          t          t                                        t                    t          t                    dt          t                    z  dt          t                    z  z
  z            g} t          |            d S r  r  rz  s    rI   test_nonlinear_3eq_order1_type5r  V	  s     	1Q4499Q<<1q1v!A$$/00
1Q4499Q<<1q1v!A$$/00
1Q4499Q<<1q1v!A$$/00C
 3KKKKKrK   c                     t          dt                    \  } }}t          dd          \  }}}}t          d          }t          dt                    \  }}	t          t	           | |          |           | |           ||          z   dz             t          t	           ||          |          d	 | |          z  d
 ||          z  z   dz             f}
t           | |          t
          t          |t          d          dz   z            z  t          t          |t          d           dz   z            z  z   t          dd          z
            t           ||          t
          d	t          d          z   z  t          |t          d          dz   z            z  t          t          d           d	z   z  t          |t          d           dz   z            z  z   t          d
d          z
            g}t          |
|          dddgfk    sJ t          t	           | |          |           | |           ||          z   dz             t          t	           ||          |          d | |          z   ||          z   dz             f}t           | |          t
          t          t          d	          |z            z  t          t          t          d	          |z            z  z   t          |          z  t          dd          z
            t           ||          t          d	           t
          z  t          t          d	          |z            z  t          d	          t          z  t          t          d	          |z            z  z   t          |          z  t          dd          z
            g}t          ||          dddgfk    sJ t          t	           | |          |          d
|z   | |          z  d	 ||          z  z             t          t	           ||          |          d	 | |          z  d
|z   ||          z  z             f}t           | |          t
          t          d	|z            z  t          t          d|z            z  z   t          t          d
d	          |d	z  z            z            t           ||          t
          t          d	|z            z  t          t          d|z            z  z
  t          t          d
d	          |d	z  z            z            g}t          ||          dddgfk    sJ t          t	           | |          |          d
|z   | |          z  |d	z   ||          z  z             t          t	           ||          |          |d	z    | |          z  d
|z   ||          z  z             f}t           | |          t
          t          |dz  dz            z  t          t          |dz  dz            z  z   t          t          d
d	          |d	z  z            z            t           ||          t
           t          |dz  dz            z  t          t          |dz  dz            z  z   t          t          d
d	          |d	z  z            z            g}t          ||          dddgfk    sJ t          t	           | |          |          d
|z   | |          z  |d	z   ||          z  z             t          t	           ||          |          |d	z    | |          z  d
|z  d|d	z  z  z    ||          z  z             f}t           | |          t
          t          t          d          d	z  t          dd	          z   |dz  z  dz            z  t          t          t          d           d	z  t          dd	          z   |dz  z  dz            z  z   t          t          d
d	          |d	z  z            z            t           ||          t
          t          d          d	z  t          dd	          z   z  t          t          d          d	z  t          dd	          z   |dz  z  dz            z  t          t          d           d	z  t          dd	          z   z  t          t          d           d	z  t          dd	          z   |dz  z  dz            z  z   t          t          d
d	          |d	z  z            z            g}t          ||          dddgfk    sJ t          t	           | |          |          d
|z   | |          z  |d	z   ||          z  z             t          t	           ||          |          d|d	z  z
   | |          z  d
|z  d|d	z  z  z    ||          z  z             f}t           | |          t
           ||          z  t           ||          z  t          |d	z  t          t          d
|z  |                    z  t          t          d|d	z  z  d
|z  z   |                    z   ||          d	z  z  |          z  z             t           ||          t
           |	|          z  t           |	|          t          |d	z  t          t          d
|z  |                    z  t          t          d|d	z  z  d
|z  z   |                    z   ||          d	z  z  |          z  t          t          d
|z  |                    t          t          d|d	z  z  d
|z  z   |                    z   ||          z  z   z  z             g}t          |          }||k    sJ d S )Nr/  r9   z
k, l, m, nT)Integerr;   zx0, y0rx   r<   rA   r   r_   r?   rg  r   rh  r   ri  rj  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;   ro  r  r   r   r   r   r   r   r   r   r   r   eq6r   ss                          rI   test_linear_2eq_order1r  c	  s   iX...GAq!t444JAq!QsAX8,,,FBd11Q44llAAaDD11Q44K!O,,baadd1q1v!!A$$QS?S.T.T
UCqqttRAtAww{O,,,r#a$q''A6F2G2G/GG(SUWX//YZZqqttRT!WWc!T!WWq[/222R$q''A5Fs1tTUwwhYZlK[G\G\5\\_ghikl_m_mmnnpD#t$$1v6666d11Q44llAAaDD11Q44K",--r$qqttA,,11Q44!!A$$QS@S/T/T
UCqqttbT!WWQY'"Sa^^*;;SVVChrSTooUVVqqtttAwwhrk#d1ggai..(4772:c$q''!)nn+DDc!ffLxX[]^O_O__``bD#t$$1v6666d11Q44llAaC!Hq1v-..4!Q<<11Q44!A#aaPQdd(AR0S0S
TCqqttbQqSkBs2a4yyL0#hq!nnQT6I2J2JJKKqqttbQqSkBs2a4yyL(#hq!nnQT.A*B*BBCCED#t$$1v6666d11Q44llAaC!Hq!tAAaDDy0112d11Q44llQTE!!A$$JQRSTQTUVUVWXUYUYQYDY3Z3Z
[CqqttbadAX&CAqMM)993x1~~aQRd?R;S;SSTTqqttrc#q!tQh--"S!Q$]]"22CAq!t8K4L4LLMMOD#t$$1v6666d11Q44llAaC!Hq!tAAaDDy0112d11Q44llQTE!!A$$JRSTURUVWXY[\X\V\R\^_^_`a^b^bQbDb3c3c
dCqqttbd2hhqj8Aq>>9AqDA!CDDDsT"XXIaK(1a..(1a402333458!Q19L5M5MN O Oqqttb$r((1*x1~~-.sDHHQJ!Q4ORSUVRV3WXY3Y/Z/ZZb	!hq!nn$%cDHH9Q;!Q+G!Q$*OPQ*Q&R&RRSTWX`abdeXfXfghjkgkXkTlTlm n noD #t$$1v6666d11Q44llAaC!Hq!tAAaDDy0112d11Q44llQq!tVQQqTTMUVWXUXYZ[\^_[_Y_U_ababcdaeaeTeDe3f3f
gCqqttR1X22a55!Q$s8AaC;K;K7L7L2LSQYZ[\]_`\`Z`cdefcfZfhiQjQjMkMk2klnlnoplqlqstlt2tvw)x)x xxyyqqttR1XBBqEE(1a4HQqS!4D4D0E0E+Ec(STUVXYUYSY\]^_\_S_abJcJcFdFd+degeghiejejlmem+mop"q"qq1a#hqAv!|Q77888A>? @ @ A ABD 	sA999999rK   c                     t          dt                    \  } }}t          d          }t          t	           | |          |           | |           ||          dz  z            t          t	           ||          |           ||          dz            f}t           | |          t
          t          ddt          z  d|z  z   z  t          dd          z            z            t           ||          ddt          z  d|z  z   z  t          dd          z             t           | |          t
          t          dddt          z  d|z  z   z  t          dd          z  z            z            t           ||          ddt          z  d|z  z   z  t          dd          z            t           | |          t
          t          t           ddt          z  d|z  z   z  t          dd          z  z            z            t           ||          t           ddt          z  d|z  z   z  t          dd          z  z            t           | |          t
          t          t          ddt          z  d|z  z   z  t          dd          z  z            z            t           ||          t          ddt          z  d|z  z   z  t          dd          z  z            g}t          |          |k    sJ t          ||          d	d
d
gfk    sJ t          t	           | |          |          t          d | |          z             ||          dz  z            t          t	           ||          |           ||          dz            f}t           | |          t          t
          dddt          z  d|z  z   z  t          dd          z  z  z
             dz            t           ||          ddt          z  d|z  z   z  t          dd          z             t           | |          t          t
          dddt          z  d|z  z   z  t          dd          z  z  z              dz            t           ||          ddt          z  d|z  z   z  t          dd          z            t           | |          t          t
          dt          z  ddt          z  d|z  z   z  t          dd          z  z  z              dz            t           ||          t           ddt          z  d|z  z   z  t          dd          z  z            t           | |          t          t
          dt          z  ddt          z  d|z  z   z  t          dd          z  z  z
             dz            t           ||          t          ddt          z  d|z  z   z  t          dd          z  z            g}t          |          |k    sJ t          ||          d	d
d
gfk    sJ t          t	           | |          |           ||           | |          z            t          t	           ||          |           | |          dz            f}t          dd          }	t           | |          d|	z  dt          t          t
                    t          |z   z  dz             t          t
                    z  |	z  z  z            t           ||          t          t
          t
          t          t          t
                    t          |z   z  dz            dz  z  z             dz            g}
t          |          |
k    sJ t          t	           | |          |           | |           ||          z  t          |          dz  z            t          t	           ||          |           ||          dz  t          |          dz  z            f}t           | |          dt          t
                    z  t          t          t
                    z  |z   t          d|z            dz  z
  z            t           ||          dt
          |z   t          d|z            dz  z
  z            h}t          |          |k    sJ t           | |          |t	           | |          |          z  t	           | |          |          t	           ||          |          z  z             t           ||          |t	           ||          |          z  t	           ||          |          dz  z             f}t           | |          t
          t          z  t
          |z  z             t           ||          t          dz  t          |z  z             h}t          |          |k    sJ t          ||          d	d
d
gfk    sJ t          t	           | |          |           | |          dz   ||          dz  z            t          t	           ||          |           ||          dz            f}t           | |          dt
          dddt          z  d|z  z   z  t          dd          z  z  z
  z            t           ||          ddt          z  d|z  z   z  t          dd          z             t           | |          dt
          ddt          z  d|z  z   z  t          dd          z  z   z            t           ||          ddt          z  d|z  z   z  t          dd          z            t           | |          dt
          t          ddt          z  d|z  z   z  t          dd          z  z  z   z            t           ||          t           ddt          z  d|z  z   z  t          dd          z  z            t           | |          dt
          t          ddt          z  d|z  z   z  t          dd          z  z  z
  z            t           ||          t          ddt          z  d|z  z   z  t          dd          z  z            g}t          |          |k    sJ t          ||          d	d
d
gfk    sJ d S )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...GAq!sAd11Q44ll11Q44!a<(("T!!A$$q\\!!A$$'*B*B
CC
11Q44CQrTAaCZHROO<===>>
11Q442qtacz?Xa^^3344
11Q44CB"qs
Ohq!nn<<===>>
11Q44"adQqSj/HQNN233
11Q44CB"qs
Ohq!nn<<===>>
11Q44!R2!_x1~~5566
11Q44C2qtacz?Xa^^;;<<<==
11Q44B"qs
Ohq!nn44557D #;;$#t$$1v6666d11Q44llC!!A$$KK!a/00D1aLL!!A$$'1J1J
KC
11Q44#b1b!B$1*oA>>>???ABB
11Q442qtacz?Xa^^3344
11Q44#b1b!B$1*oA>>>???ABB
11Q44"adQqSj/HQNN233
11Q44#b1Q3AbD1Q3J(1a..@@@AAA!CDD
11Q44!R2!_x1~~5566
11Q44#b1Q3AbD1Q3J(1a..@@@AAA!CDD
11Q44B"qs
Ohq!nn44557D #;;$#t$$1v6666d11Q44llAAaDD1I&&4!Q<<1q(A(A
BC	!QB
11Q44BDb26!21!4555d2hh>CCDEE
11Q44b2d488R!V#4Q#677:::;;A=>>@D #;;$ d11Q44ll11Q44!9SVVQY.//D1aLL1qQQRAR1S1S
TCqqttRBZCGGa#ac((1*!<=>>11Q44RRSVVYZ[\]Z]V^V^_`V`M`Ia@b@bcD#;;$ aadd1T!!A$$q\\>$qqttA,,tAAaDD||";;<<b1aQQqTTRSnUYZ[Z[\]Z^Z^_`UaUacdUdFd>e>e
fCqqttRURT\""BqqttRURT\$:$:;D#;;$#t$$1v6666d11Q44ll11Q44711Q447?++RQQqTT!QQqTT1W-E-E
FC
11Q44BB"qs
Ohq!nn<<<=>>
11Q442qtacz?Xa^^3344
11Q44B"adQqSj/Xb!__==>??
11Q44"adQqSj/HQNN233
11Q44BB"qs
Ohq!nn<<<=>>
11Q44!R2!_x1~~5566
11Q44BB"qs
Ohq!nn<<<=>>
11Q44B"qs
Ohq!nn44557D #;;$#t$$1v666666rK   c                  P   t          dt                    \  } }}t          d          \  }}dt           | |          |          z  d ||          z   ||          z  z   dt           ||          |          z   ||           | |          z  z
  dt           ||          |          z   | |           ||          z  z
  f}t          dt	          dt          d	|dz  z  dt          z  z
  t          z             t          d	|dz  z  dt          z  z   t          z
            z  z  | | |          f          z  t          t          d
          |z  d
z  z
            t          dt	          dt          d|dz  z  t          z
  dt          z  z             t          d|dz  z  t          z   dt          z  z
            z  z  | ||          f          z  t          t          d          |z  dz  z             t          dt	          dt          d|dz  z  dt          z  z
  t          z             t          d|dz  z  dt          z  z   t          z
            z  z  | ||          f          z  t          t          d          |z  dz  z             g}d t          t          |          |          D             sJ dt           | |          |          z  d ||          z   ||          z  t          |          z  z   dt           ||          |          z   ||           | |          z  t          |          z  z
  dt           ||          |          z   | |           ||          z  t          |          z  z
  f}t          dt	          dt          d|dz  z  t          z
  dt          z  z             t          d|dz  z  t          z   dt          z  z
            z  z  | | |          f          z  t          t          d          t          |          z  dz  z             t          dt	          dt          d	|dz  z  dt          z  z
  t          z             t          d	|dz  z  dt          z  z   t          z
            z  z  | ||          f          z  t          t          d
          t          |          z  d
z  z
            t          dt	          dt          d|dz  z  dt          z  z
  t          z             t          d|dz  z  dt          z  z   t          z
            z  z  | ||          f          z  t          t          d          t          |          z  dz  z             g}d t          t          |          |          D             sJ d S )Nr/  r9   zt ur@   r<   r?   rA   r=   r   r   rd   r   ir_   c                 >    g | ]\  }}|                     |          S r   dummy_eqr  r   r   s      rI   r  z-test_nonlinear_3eq_order1.<locals>.<listcomp>	  &    ===daAJJqMM===rK   c                 >    g | ]\  }}|                     |          S r   r  r  s      rI   r  z-test_nonlinear_3eq_order1.<locals>.<listcomp>	  r  rK   )r   r   r   r
   r-   r   r   r   r)  zipr   r   r   )	r3   r   r   r;   r2  r   r   r   r   s	            rI   test_nonlinear_3eq_order1r  	  s   iX...GAq!5>>DAqT!!A$$q\\>AaaddF11Q44K'4!Q<<!!A$$qqtt))CQtAAaDDQR||^VWVWXYVZVZ[\[\]^[_[_V_E_
`Cq!T"QT'AbD.2"566tBq!tGadNR<O7P7PPQTUWXWXYZW[W[S\]]]
T"XXaZ] (1d2ad7R<!B$3F.G.GQqRStVVX[[\]_[_M_H`H`.`+a	
AAaDD	# # !a2%' '(*1Xac!Q$h2oPR>R9S9SQq!tVad]R  :! 7"$%qqtt9.. .. ,./1DGGAIaK/?)A )ABD >=c&++t&<&<====== T!!A$$q\\>AaaddF11Q44KA..$qqttA,,1aadd3q66AQ0QSTUYZ[Z[\]Z^Z^_`UaUaSadedefgdhdhijijklimimdmnqrsntntdtSt
uCq!T"QT'B,2"566tAadFRK!B$<N7O7OOPSTVWVWXYVZVZR[\\\^`QAr_  q!T"QT'AbD.22E-F-FtBqRStGVWXZVZN]_L_G`G`-`*a	
AAaDD	" "  b#a&&++- -.08AtC1HqQStOVXDX?Y?YQq!tVad]R  @! ="$%qqtt94. 4. 2./1DGGCFFN14D/D/F /FGD >=c&++t&<&<========rK   c                  |   t          d          } t          d          }t          d          }t          d          }t          d          }t          t           ||           |           d ||           z            t          t           ||           |           d ||           z            f}t           ||           d|z  t	          dt          d	          z  | z            z  d|z  t	          d
t          d	          z  | z            z  z             t           ||           dt          d	          z  |z  t	          dt          d	          z  | z            z  dt          d	          z  |z  t	          d
t          d	          z  | z            z  z
            g}t          ||          dddgfk    sJ d S )Nr;   r   r   r)  r*  rx   r^   r_   r?   rd   Tr   )r   r   r
   r   r   r   r   )r;   r   r   r)  r*  rh   rZ  s          rI   test_C1_function_9239r  	  s   sA	$B	$B	B	B
T""Q%%^^Qrr!uuW
%
%r$rr!uua.."RRUU('C'C	DBbbeeQrT#aQik***QrT#bajl2C2C-CCDDbbeeQtAwwYr\#aQik"2"22QtAwwYr\#bajQRlBSBS5SSTTVC"c""taVn444444rK   c            
         t          dd          } t          t          t          t                    t                    |  t          t                    z            t          t          t          t                    t                    | t          t                    z            f}t          t          t                    t           | z  t          | t          z            z  t          | z  t          | t          z            z  z
            t          t          t                    t           | z  t          | t          z            z  t          | z  t          | t          z            z  z             g}t          ||          dddgfk    sJ d S )NepsilonTr`  r   )r   r
   r   r4   r3   r5   r   r   r   r   r   )epsr   r   s      rI   test_dsolve_linsystem_symbolr  	  s   
T
*
*
*Cd1Q44mmcT!A$$Y''D1qMM3qtt8)D)D
ECqttbSWSQZZ'"S&SU*;;<<qttbSWSQZZ'"S&SU*;;<<>D#t$$1v666666rK   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[  ry  r  r  r  r  r  r  r  r  r  r  r-  r0  r6  rA  rL  r`  rc  re  rg  rj  rl  rp  rs  ru  r  r  r  r  r  r  r  r  r  r  r  r  r  r   rK   rI   <module>r     s   < < < < < < < < < <       0 0 0 0 0 0 0 0 0 0 $ $ $ $ $ $ " " " " " " / / / / / / / / 6 6 6 6 6 6 9 9 9 9 9 9 ' ' ' ' ' ' ' ' ' ' ' ' A A A A A A A A A A A A A A A A A A A A < < < < < < < < $ $ $ $ $ $ 3 3 3 3 3 3 6 6 6 6 6 6? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
 + * * * * * * * . . . . . . * * * * * * = = = = = = = = = = = = /6gg.>.> +BBBBBGCLLHSMMHSMMHSMM"U "U "UJA: A: A:H
j: j: j:Z2 2 2c: c: c:L S: S: S:l
~: ~: ~:B]" ]" ]"~ u> u> u>p8 8 8&x: x: x:v 8 8 8 : : :&+8 +8 +8\ 8 8 88 8 8$Q> Q> Q>hdt dt dtN 
 
 
 5 5 5  	9 9 	9( 9 9 9A A AB 6 6 6 9 9 9! ! !HC C C 6 6 6
 	   	 		 	 		 	8 8 	8
s s s0  $ , , ,"8 8 8 		 	  		    	   	   & & &T:7 :7 :7z > > >(	5 	5 	57 7 7 7 7rK   