Ë
    7^(h( ã                   óH  — d Z ddlZddlmZ ddlmZ ddlmZmZ ddl	m
Z
mZ ddlmZ ddlmZmZ dd	lmZ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mZ ddl m!Z!m"Z"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- ddl.m/Z/ ddl0m1Z1m2Z2m3Z3m4Z4 ddl5m6Z6m7Z7 ddl8m9Z9  ed«      Z: ed«      Z;e:re:jx                  j{                  dd«        G d„ d«      Z> G d„ d«      Z? G d„ d«      Z@ G d„ d «      ZA G d!„ d"«      ZB G d#„ d$«      ZC G d%„ d&«      ZD G d'„ d(«      ZE G d)„ d*«      ZFy)+zFTests for the ``sympy.physics.biomechanics.characteristic.py`` module.é    N)ÚUnevaluatedExpr)ÚFunction)ÚFloatÚInteger)ÚSymbolÚsymbols)Úimport_module)ÚexpÚlog)ÚcoshÚsinh)Úsqrt)	ÚCharacteristicCurveCollectionÚCharacteristicCurveFunctionÚ"FiberForceLengthActiveDeGroote2016Ú#FiberForceLengthPassiveDeGroote2016Ú*FiberForceLengthPassiveInverseDeGroote2016ÚFiberForceVelocityDeGroote2016Ú%FiberForceVelocityInverseDeGroote2016ÚTendonForceLengthDeGroote2016Ú$TendonForceLengthInverseDeGroote2016)ÚC89CodePrinterÚC99CodePrinterÚC11CodePrinter)ÚCXX98CodePrinterÚCXX11CodePrinterÚCXX17CodePrinter)ÚFCodePrinter)ÚLambdaPrinter)ÚLatexPrinter)ÚOctaveCodePrinter)ÚCuPyPrinterÚ
JaxPrinterÚNumPyPrinterÚSciPyPrinter)ÚMpmathPrinterÚPythonCodePrinter)ÚlambdifyÚjaxÚnumpyÚjax_enable_x64Tc                   ó´   — e Zd Zeej
                  j                  dedfedfe	dfe
dfedfedfedfedfedfedfedfedfedfedfedfg«      d„ «       «       Zy)ÚTestCharacteristicCurveFunctionúcode_printer, expectedz(a + b)*(c + d)*(e + f)z      (a + b)*(c + d)*(e + f)z(a + b).*(c + d).*(e + f)c                 ó¾   —  G d„ dt         «      }t        d«      \  }}}}}} |||«      }	 |||«      }
 |||«      } | «       j                  |	|
z  |z  «      |k(  sJ ‚y )Nc                   ó"   — e Zd Zed„ «       Zd„ Zy)úUTestCharacteristicCurveFunction.test_print_code_parenthesize.<locals>.ExampleFunctionc                  ó   — y ©N© )ÚclsÚaÚbs      úi/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/physics/biomechanics/tests/test_curve.pyÚevalzZTestCharacteristicCurveFunction.test_print_code_parenthesize.<locals>.ExampleFunction.evalM   s   € àó    c                 ó*   — | j                   \  }}||z   S r3   )Úargs)ÚselfÚkwargsr6   r7   s       r8   ÚdoitzZTestCharacteristicCurveFunction.test_print_code_parenthesize.<locals>.ExampleFunction.doitQ   s   € Ø—y‘y‘��1Ø˜1‘u�r:   N)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr9   r?   r4   r:   r8   ÚExampleFunctionr1   K   s   „ àñó ðór:   rD   za, b, c, d, e, f)r   r   Údoprint)Úcode_printerÚexpectedrD   r6   r7   ÚcÚdÚeÚfÚf1Úf2Úf3s               r8   Útest_print_code_parenthesizez<TestCharacteristicCurveFunction.test_print_code_parenthesize4   sp   € ô.	Ô9ô 	ô #Ð#5Ó6Ñˆˆ1ˆa��A�qÙ˜Q Ó"ˆÙ˜Q Ó"ˆÙ˜Q Ó"ˆÙ‹~×%Ñ% b¨¡e¨B¡hÓ/°8Ò;Ð;Ñ;r:   N)r@   rA   rB   ÚstaticmethodÚpytestÚmarkÚparametrizer   r   r   r   r   r   r   r!   r'   r$   r%   r"   r#   r&   r   rO   r4   r:   r8   r-   r-   2   sº   „ àØ‡[�[×ÑØ àÐ6Ð7ØÐ6Ð7ØÐ6Ð7ØÐ8Ð9ØÐ8Ð9ØÐ8Ð9ØÐ:Ð;ØÐ ;Ð<ØÐ 9Ð:ØÐ4Ð5ØÐ4Ð5ØÐ3Ð4ØÐ2Ð3ØÐ5Ð6ØÐ5Ð6ð	
óñ(<ó)ó ñ*<r:   r-   c                   óÔ  — e Zd Z ej                  d¬«      d„ «       Zed„ «       Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej(                  j+                  dedfedfedfedfedfedfedfedfedfedfe dfe!dfe"dfe#dfe$dfg«      d„ «       Z%d„ Z&d„ Z'ej(                  jQ                  e)du d¬ «      d!„ «       Z*ej(                  jQ                  e+du d"¬ «      d#„ «       Z,y)$Ú!TestTendonForceLengthDeGroote2016T©Úautousec                 ó
  — t        d«      | _        t        d«      | _        t        d«      | _        t        d«      | _        t        d«      | _        | j                  | j                  | j                  | j
                  f| _        y )NÚ	l_T_tildeÚc_0Úc_1Úc_2Úc_3)r   rY   Úc0Úc1Úc2Úc3Ú	constants©r=   s    r8   Ú&_tendon_force_length_arguments_fixturezHTestTendonForceLengthDeGroote2016._tendon_force_length_arguments_fixture^   óZ   € ä Ó,ˆŒÜ˜“-ˆŒÜ˜“-ˆŒÜ˜“-ˆŒÜ˜“-ˆŒØŸ'™' 4§7¡7¨D¯G©G°T·W±WÐ=ˆ�r:   c                  ó†   — t        t        t        «      sJ ‚t        t        t        «      sJ ‚t        j                  dk(  sJ ‚y )Nr   )Ú
issubclassr   r   r   r@   r4   r:   r8   Ú
test_classz,TestTendonForceLengthDeGroote2016.test_classg   s:   € äÔ7¼ÔBÐBÐBÜÔ7Ô9TÔUÐUÐUÜ,×5Ñ5Ð9XÒXÐXÑXr:   c                 óˆ   — t        | j                  g| j                  ¢­Ž }t        |t         «      sJ ‚t	        |«      dk(  sJ ‚y )Nz<TendonForceLengthDeGroote2016(l_T_tilde, c_0, c_1, c_2, c_3))r   rY   rb   Ú
isinstanceÚstr©r=   Úfl_Ts     r8   Útest_instancez/TestTendonForceLengthDeGroote2016.test_instancem   s=   € Ü,¨T¯^©^ÐM¸d¿n¹nÒMˆÜ˜$Ô =Ô>Ð>Ð>Ü�4‹yÐZÒZÐZÑZr:   c                 óü   — t        | j                  g| j                  ¢­Ž j                  «       }|| j                  t        | j                  | j                  | j                  z
  z  «      z  | j                  z
  k(  sJ ‚y r3   )	r   rY   rb   r?   r^   r
   ra   r_   r`   rl   s     r8   Ú	test_doitz+TestTendonForceLengthDeGroote2016.test_doitr   s]   € Ü,¨T¯^©^ÐM¸d¿n¹nÒM×RÑRÓTˆØ�t—w‘wœs 4§7¡7¨D¯N©N¸T¿W¹WÑ,DÑ#EÓFÑFÈÏÉÑPÒPÐPÑPr:   c           	      ó  — t        | j                  g| j                  ¢­Ž j                  d¬«      }|| j                  t        | j                  t        | j                  | j                  z
  «      z  «      z  | j                  z
  k(  sJ ‚y ©NF©Úevaluate)
r   rY   rb   r?   r^   r
   ra   r   r_   r`   rl   s     r8   Útest_doit_evaluate_falsez:TestTendonForceLengthDeGroote2016.test_doit_evaluate_falsev   sk   € Ü,¨T¯^©^ÐM¸d¿n¹nÒM×RÑRÐ\aÐRÓbˆØ�t—w‘wœs 4§7¡7¬?¸4¿>¹>ÈDÏGÉGÑ;SÓ+TÑ#TÓUÑUÐX\×X_ÑX_Ñ_Ò_Ð_Ñ_r:   c                 óÐ   — t        d«      t        d«      t        d«      t        d«      f}t        | j                  g|¢­Ž }t        j                  | j                  «      }||k(  sJ ‚y ©Nú0.2z0.995z0.25z33.93669377311689)r   r   rY   Úwith_defaults)r=   rb   Úfl_T_manualÚfl_T_constantss       r8   Útest_with_defaultsz4TestTendonForceLengthDeGroote2016.test_with_defaultsz   s^   € ä�%‹LÜ�'‹NÜ�&‹MÜÐ%Ó&ð	
ˆ	ô 4°D·N±NÐOÀYÒOˆÜ6×DÑDÀTÇ^Á^ÓTˆØ˜nÒ,Ð,Ñ,r:   c                 ó*  — t        | j                  g| j                  ¢­Ž }| j                  | j                  z  t        | j                  t        | j                   | j                  z   «      z  «      z  }|j                  | j                  «      |k(  sJ ‚y r3   ©	r   rY   rb   r^   ra   r
   r   r_   Údiff©r=   rm   rG   s      r8   Ú test_differentiate_wrt_l_T_tildezBTestTendonForceLengthDeGroote2016.test_differentiate_wrt_l_T_tilde…   sl   € Ü,¨T¯^©^ÐM¸d¿n¹nÒMˆØ—7‘7˜4Ÿ7™7‘?¤3 t§w¡w¬ÀÇÁ¸xÈ$Ï.É.Ñ?XÓ/YÑ'YÓ#ZÑZˆØ�y‰y˜Ÿ™Ó(¨HÒ4Ð4Ñ4r:   c                 óö   — t        | j                  g| j                  ¢­Ž }t        | j                  t        | j                   | j                  z   «      z  «      }|j                  | j                  «      |k(  sJ ‚y r3   )	r   rY   rb   r
   ra   r   r_   r   r^   r€   s      r8   Útest_differentiate_wrt_c0z;TestTendonForceLengthDeGroote2016.test_differentiate_wrt_c0Š   s[   € Ü,¨T¯^©^ÐM¸d¿n¹nÒMˆÜ�t—w‘wœ°·±¨x¸$¿.¹.Ñ/HÓIÑIÓJˆØ�y‰y˜Ÿ™Ó! XÒ-Ð-Ñ-r:   c                 ó*  — t        | j                  g| j                  ¢­Ž }| j                   | j                  z  t        | j                  t        | j                  | j                  z
  «      z  «      z  }|j                  | j                  «      |k(  sJ ‚y r3   r~   r€   s      r8   Útest_differentiate_wrt_c1z;TestTendonForceLengthDeGroote2016.test_differentiate_wrt_c1�   sp   € Ü,¨T¯^©^ÐM¸d¿n¹nÒMˆØ—G‘G�8˜DŸG™GÑ#¤C¨¯©´ÀÇÁÐQU×QXÑQXÑ@XÓ0YÑ(YÓ$ZÑZˆØ�y‰y˜Ÿ™Ó! XÒ-Ð-Ñ-r:   c                 óš   — t        | j                  g| j                  ¢­Ž }t        d«      }|j	                  | j
                  «      |k(  sJ ‚y ©Néÿÿÿÿ)r   rY   rb   r   r   r`   r€   s      r8   Útest_differentiate_wrt_c2z;TestTendonForceLengthDeGroote2016.test_differentiate_wrt_c2”   s=   € Ü,¨T¯^©^ÐM¸d¿n¹nÒMˆÜ˜2“;ˆØ�y‰y˜Ÿ™Ó! XÒ-Ð-Ñ-r:   c                 óB  — t        | j                  g| j                  ¢­Ž }| j                  | j                  | j                  z
  z  t        | j                  t        | j                  | j                  z
  «      z  «      z  }|j                  | j                  «      |k(  sJ ‚y r3   )	r   rY   rb   r^   r_   r
   ra   r   r   r€   s      r8   Útest_differentiate_wrt_c3z;TestTendonForceLengthDeGroote2016.test_differentiate_wrt_c3™   sz   € Ü,¨T¯^©^ÐM¸d¿n¹nÒMˆØ—7‘7˜DŸN™N¨T¯W©WÑ4Ñ5´c¸$¿'¹'Ä/ÐRV×R`ÑR`Ðcg×cjÑcjÑRjÓBkÑ:kÓ6lÑlˆØ�y‰y˜Ÿ™Ó! XÒ-Ð-Ñ-r:   c                 ót   — t        | j                  g| j                  ¢­Ž }|j                  «       t        u sJ ‚y r3   )r   rY   rb   Úinverser   rl   s     r8   Útest_inversez.TestTendonForceLengthDeGroote2016.test_inversež   s.   € Ü,¨T¯^©^ÐM¸d¿n¹nÒMˆØ�|‰|‹~Ô!EÑEÐEÑEr:   c                 ó„   — t        | j                  g| j                  ¢­Ž }d}t        «       j	                  |«      |k(  sJ ‚y )Nz.\operatorname{fl}^T \left( l_{T tilde} \right))r   rY   rb   r    rE   r€   s      r8   Útest_function_print_latexz;TestTendonForceLengthDeGroote2016.test_function_print_latex¢   s9   € Ü,¨T¯^©^ÐM¸d¿n¹nÒMˆØDˆÜ‹~×%Ñ% dÓ+¨xÒ7Ð7Ñ7r:   c                 ó    — t        | j                  g| j                  ¢­Ž }d}t        «       j	                  |j                  «       «      |k(  sJ ‚y )Nz:c_{0} e^{c_{3} \left(- c_{1} + l_{T tilde}\right)} - c_{2})r   rY   rb   r    rE   r?   r€   s      r8   Útest_expression_print_latexz=TestTendonForceLengthDeGroote2016.test_expression_print_latex§   s?   € Ü,¨T¯^©^ÐM¸d¿n¹nÒMˆØPˆÜ‹~×%Ñ% d§i¡i£kÓ2°hÒ>Ð>Ñ>r:   r.   zH(-0.25 + 0.20000000000000001*exp(33.93669377311689*(l_T_tilde - 0.995)))zM(-0.25 + 0.20000000000000001*std::exp(33.93669377311689*(l_T_tilde - 0.995)))zF      (-0.25d0 + 0.2d0*exp(33.93669377311689d0*(l_T_tilde - 0.995d0)))z8(-0.25 + 0.2*exp(33.93669377311689*(l_T_tilde - 0.995)))z=(-0.25 + 0.2*math.exp(33.93669377311689*(l_T_tilde - 0.995)))z>(-0.25 + 0.2*numpy.exp(33.93669377311689*(l_T_tilde - 0.995)))z=(-0.25 + 0.2*cupy.exp(33.93669377311689*(l_T_tilde - 0.995)))zB(-0.25 + 0.2*jax.numpy.exp(33.93669377311689*(l_T_tilde - 0.995)))z¸(mpmath.mpf((1, 1, -2, 1)) + mpmath.mpf((0, 3602879701896397, -54, 52))*mpmath.exp(mpmath.mpf((0, 9552330089424741, -48, 54))*(l_T_tilde + mpmath.mpf((1, 8962163258467287, -53, 53)))))c                 óx   — t        j                  | j                  «      } |«       j                  |«      |k(  sJ ‚y r3   )r   ry   rY   rE   )r=   rF   rG   rm   s       r8   Útest_print_codez1TestTendonForceLengthDeGroote2016.test_print_code¬   s4   € ôH -×:Ñ:¸4¿>¹>ÓJˆÙ‹~×%Ñ% dÓ+¨xÒ7Ð7Ñ7r:   c                 ó¸   — t        j                  | j                  «      }|j                  | j                  «      }d}t	        «       j                  |«      |k(  sJ ‚y )NzA6.787338754623378*math.exp(33.93669377311689*(l_T_tilde - 0.995)))r   ry   rY   r   r'   rE   )r=   rm   Údfl_T_dl_T_tilderG   s       r8   Útest_derivative_print_codez<TestTendonForceLengthDeGroote2016.test_derivative_print_codeó   sK   € Ü,×:Ñ:¸4¿>¹>ÓJˆØŸ9™9 T§^¡^Ó4ÐØVˆÜ Ó"×*Ñ*Ð+;Ó<ÀÒHÐHÑHr:   c                 ó®   — t        j                  | j                  «      }t        | j                  |«      } |d«      t	        j
                  d«      k(  sJ ‚y )Nç      ð?gÀ Aæ§Š¿)r   ry   rY   r(   rQ   Úapprox)r=   rm   Úfl_T_callables      r8   Útest_lambdifyz/TestTendonForceLengthDeGroote2016.test_lambdifyù   sC   € Ü,×:Ñ:¸4¿>¹>ÓJˆÜ  §¡°Ó6ˆÙ˜SÓ!¤V§]¡]Ð3HÓ%IÒIÐIÑIr:   NúNumPy not installed©Úreasonc                 ó  — t        j                  | j                  «      }t        | j                  |d«      }t        j                  g d¢«      }t        j                  g d¢«      }t        j                  j                   ||«      |«       y )Nr*   ©gffffffî?r™   ç)\�Âõ(ð?çÍÌÌÌÌÌð?©g¦OßÝpÊ¿gÃ Aæ§Š¿g ög–.µ?g�Yä¼°ð?)r   ry   rY   r(   r*   ÚarrayÚtestingÚassert_allclose©r=   rm   r›   rY   rG   s        r8   Útest_lambdify_numpyz5TestTendonForceLengthDeGroote2016.test_lambdify_numpyþ   se   € ä,×:Ñ:¸4¿>¹>ÓJˆÜ  §¡°°wÓ?ˆÜ—K‘KÒ 7Ó8ˆ	Ü—;‘;ò  
ó ˆô 	�‰×%Ñ%¡m°IÓ&>ÀÕIr:   úJAX not installedc                 óf  — t        j                  | j                  «      }t        j	                  t        | j                  |d«      «      }t        j                  j                  g d¢«      }t        j                  j                  g d¢«      }t        j                  j                   ||«      |«       y )Nr)   r¡   r¤   )
r   ry   rY   r)   Újitr(   r*   r¥   r¦   r§   r¨   s        r8   Útest_lambdify_jaxz3TestTendonForceLengthDeGroote2016.test_lambdify_jax  sv   € ä,×:Ñ:¸4¿>¹>ÓJˆÜŸ™¤¨¯©¸¸uÓ EÓFˆÜ—I‘I—O‘OÒ$;Ó<ˆ	Ü—9‘9—?‘?ò $
ó ˆô 	�‰×%Ñ%¡m°IÓ&>ÀÕIr:   )-r@   rA   rB   rQ   Úfixturerd   rP   rh   rn   rp   ru   r|   r�   rƒ   r…   r‰   r‹   rŽ   r�   r’   rR   rS   r   r   r   r   r   r   r   r!   r'   r$   r%   r"   r#   r&   r   r”   r—   rœ   Úskipifr*   r©   r)   r­   r4   r:   r8   rU   rU   \   sØ  „ à€V‡^�^˜DÔ!ñ>ó "ð>ð ñYó ðYò
[ò
Qò`ò	-ò5ò
.ò
.ò
.ò
.ò
Fò8ò
?ð
 ‡[�[×ÑØ ð ØZðð
 ØZðð
 ØZðð
 !ØZðð
 !Ø_ðð
 !Ø_ðð
 ØXðð
 "ØJðð
 "ØOðð
 ØPðð
 ØPðð
 ØOðð
 ØTðð
 ð@ðð ØOððw?	
óBñF8óGBðF8òIòJð
 ‡[�[×Ñ˜ ˜Ð.CÐÓDñ
Jó Eð
Jð ‡[�[×Ñ˜˜t˜Ð,?ÐÓ@ñ
Jó Añ
Jr:   rU   c                   óÔ  — e Zd Z ej                  d¬«      d„ «       Zed„ «       Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej(                  j+                  dedfedfedfedfedfedfedfedfedfedfe dfe!dfe"dfe#dfe$dfg«      d„ «       Z%d„ Z&d„ Z'ej(                  jQ                  e)du d¬ «      d!„ «       Z*ej(                  jQ                  e+du d"¬ «      d#„ «       Z,y)$Ú(TestTendonForceLengthInverseDeGroote2016TrV   c                 ó
  — t        d«      | _        t        d«      | _        t        d«      | _        t        d«      | _        t        d«      | _        | j                  | j                  | j                  | j
                  f| _        y )Nrm   rZ   r[   r\   r]   )r   rm   r^   r_   r`   ra   rb   rc   s    r8   Ú._tendon_force_length_inverse_arguments_fixturezWTestTendonForceLengthInverseDeGroote2016._tendon_force_length_inverse_arguments_fixture  óY   € ä˜6“NˆŒ	Ü˜“-ˆŒÜ˜“-ˆŒÜ˜“-ˆŒÜ˜“-ˆŒØŸ'™' 4§7¡7¨D¯G©G°T·W±WÐ=ˆ�r:   c                  ó†   — t        t        t        «      sJ ‚t        t        t        «      sJ ‚t        j                  dk(  sJ ‚y )Nr   )rg   r   r   r   r@   r4   r:   r8   rh   z3TestTendonForceLengthInverseDeGroote2016.test_class$  s:   € äÔ>ÄÔIÐIÐIÜÔ>Ô@[Ô\Ð\Ð\Ü3×<Ñ<Ð@fÒfÐfÑfr:   c                 óˆ   — t        | j                  g| j                  ¢­Ž }t        |t         «      sJ ‚t	        |«      dk(  sJ ‚y )Nz>TendonForceLengthInverseDeGroote2016(fl_T, c_0, c_1, c_2, c_3))r   rm   rb   rj   rk   ©r=   Úfl_T_invs     r8   rn   z6TestTendonForceLengthInverseDeGroote2016.test_instance*  s=   € Ü7¸¿	¹	ÐSÀDÇNÁNÒSˆÜ˜(Ô$HÔIÐIÐIÜ�8‹}Ð `Ò`Ð`Ñ`r:   c                 óü   — t        | j                  g| j                  ¢­Ž j                  «       }|t	        | j                  | j
                  z   | j                  z  «      | j                  z  | j                  z   k(  sJ ‚y r3   )	r   rm   rb   r?   r   r`   r^   ra   r_   r·   s     r8   rp   z2TestTendonForceLengthInverseDeGroote2016.test_doit/  s]   € Ü7¸¿	¹	ÐSÀDÇNÁNÒS×XÑXÓZˆØœ3 §	¡	¨D¯G©GÑ 3°T·W±WÑ<Ó=¸d¿g¹gÑEÈÏÉÑOÒOÐOÑOr:   c                 ó  — t        | j                  g| j                  ¢­Ž j                  d¬«      }|t	        t        | j                  | j                  z   | j                  z  «      «      | j                  z  | j                  z   k(  sJ ‚y rr   )
r   rm   rb   r?   r   r   r`   r^   ra   r_   r·   s     r8   ru   zATestTendonForceLengthInverseDeGroote2016.test_doit_evaluate_false3  sk   € Ü7¸¿	¹	ÐSÀDÇNÁNÒS×XÑXÐbgÐXÓhˆØœ3œ°·	±	¸D¿G¹GÑ0CÀTÇWÁWÑ/LÓMÓNÈtÏwÉwÑVÐY]×Y`ÑY`Ñ`Ò`Ð`Ñ`r:   c                 óÐ   — t        d«      t        d«      t        d«      t        d«      f}t        | j                  g|¢­Ž }t        j                  | j                  «      }||k(  sJ ‚y rw   )r   r   rm   ry   )r=   rb   Úfl_T_inv_manualÚfl_T_inv_constantss       r8   r|   z;TestTendonForceLengthInverseDeGroote2016.test_with_defaults7  sc   € ä�%‹LÜ�'‹NÜ�&‹MÜÐ%Ó&ð	
ˆ	ô ?¸t¿y¹yÐUÈ9ÒUˆÜA×OÑOÐPT×PYÑPYÓZÐØÐ"4Ò4Ð4Ñ4r:   c                 óÖ   — t        | j                  g| j                  ¢­Ž }d| j                  | j                  | j                  z   z  z  }|j                  | j                  «      |k(  sJ ‚y ©Né   ©r   rm   rb   ra   r`   r   ©r=   r¸   rG   s      r8   Útest_differentiate_wrt_fl_TzDTestTendonForceLengthInverseDeGroote2016.test_differentiate_wrt_fl_TB  sT   € Ü7¸¿	¹	ÐSÀDÇNÁNÒSˆØ�d—g‘g˜tŸy™y¨4¯7©7Ñ2Ñ3Ñ4ˆØ�}‰}˜TŸY™YÓ'¨8Ò3Ð3Ñ3r:   c                 ó¼   — t        | j                  g| j                  ¢­Ž }d| j                  | j                  z  z  }|j                  | j                  «      |k(  sJ ‚y r‡   )r   rm   rb   r^   ra   r   rÂ   s      r8   rƒ   zBTestTendonForceLengthInverseDeGroote2016.test_differentiate_wrt_c0G  sJ   € Ü7¸¿	¹	ÐSÀDÇNÁNÒSˆØ�t—w‘w˜tŸw™w‘Ñ'ˆØ�}‰}˜TŸW™WÓ%¨Ò1Ð1Ñ1r:   c                 óš   — t        | j                  g| j                  ¢­Ž }t        d«      }|j	                  | j
                  «      |k(  sJ ‚y r¿   )r   rm   rb   r   r   r_   rÂ   s      r8   r…   zBTestTendonForceLengthInverseDeGroote2016.test_differentiate_wrt_c1L  s=   € Ü7¸¿	¹	ÐSÀDÇNÁNÒSˆÜ˜1“:ˆØ�}‰}˜TŸW™WÓ%¨Ò1Ð1Ñ1r:   c                 óÖ   — t        | j                  g| j                  ¢­Ž }d| j                  | j                  | j                  z   z  z  }|j                  | j                  «      |k(  sJ ‚y r¿   rÁ   rÂ   s      r8   r‰   zBTestTendonForceLengthInverseDeGroote2016.test_differentiate_wrt_c2Q  sT   € Ü7¸¿	¹	ÐSÀDÇNÁNÒSˆØ�d—g‘g˜tŸy™y¨4¯7©7Ñ2Ñ3Ñ4ˆØ�}‰}˜TŸW™WÓ%¨Ò1Ð1Ñ1r:   c                 ó  — t        | j                  g| j                  ¢­Ž }t        t	        | j                  | j
                  z   | j                  z  «      «       | j                  dz  z  }|j                  | j                  «      |k(  sJ ‚y ©Né   )	r   rm   rb   r   r   r`   r^   ra   r   rÂ   s      r8   r‹   zBTestTendonForceLengthInverseDeGroote2016.test_differentiate_wrt_c3V  sj   € Ü7¸¿	¹	ÐSÀDÇNÁNÒSˆÜœ¨¯©°T·W±WÑ)<¸d¿g¹gÑ(EÓFÓGÐGÈÏÉÐQRÉ
ÑRˆØ�}‰}˜TŸW™WÓ%¨Ò1Ð1Ñ1r:   c                 ót   — t        | j                  g| j                  ¢­Ž }|j                  «       t        u sJ ‚y r3   )r   rm   rb   r�   r   r·   s     r8   rŽ   z5TestTendonForceLengthInverseDeGroote2016.test_inverse[  s1   € Ü7¸¿	¹	ÐSÀDÇNÁNÒSˆØ×ÑÓ!Ô%BÑBÐBÑBr:   c                 ó„   — t        | j                  g| j                  ¢­Ž }d}t        «       j	                  |«      |k(  sJ ‚y )Nz=\left( \operatorname{fl}^T \right)^{-1} \left( fl_{T} \right))r   rm   rb   r    rE   rÂ   s      r8   r�   zBTestTendonForceLengthInverseDeGroote2016.test_function_print_latex_  s9   € Ü7¸¿	¹	ÐSÀDÇNÁNÒSˆØSˆÜ‹~×%Ñ% hÓ/°8Ò;Ð;Ñ;r:   c                 ó    — t        | j                  g| j                  ¢­Ž }d}t        «       j	                  |j                  «       «      |k(  sJ ‚y )NzFc_{1} + \frac{\log{\left(\frac{c_{2} + fl_{T}}{c_{0}} \right)}}{c_{3}})r   rm   rb   r    rE   r?   r€   s      r8   r’   zDTestTendonForceLengthInverseDeGroote2016.test_expression_print_latexd  s?   € Ü3°D·I±IÐOÀÇÁÒOˆØ\ˆÜ‹~×%Ñ% d§i¡i£kÓ2°hÒ>Ð>Ñ>r:   r.   z3(0.995 + 0.029466630034306838*log(5.0*fl_T + 1.25))z8(0.995 + 0.029466630034306838*std::log(5.0*fl_T + 1.25))z@      (0.995d0 + 0.02946663003430684d0*log(5.0d0*fl_T + 1.25d0))z2(0.995 + 0.02946663003430684*log(5.0*fl_T + 1.25))z7(0.995 + 0.02946663003430684*math.log(5.0*fl_T + 1.25))z8(0.995 + 0.02946663003430684*numpy.log(5.0*fl_T + 1.25))z7(0.995 + 0.02946663003430684*cupy.log(5.0*fl_T + 1.25))z<(0.995 + 0.02946663003430684*jax.numpy.log(5.0*fl_T + 1.25))z (mpmath.mpf((0, 8962163258467287, -53, 53)) + mpmath.mpf((0, 33972711434846347, -60, 55))*mpmath.log(mpmath.mpf((0, 5, 0, 3))*fl_T + mpmath.mpf((0, 5, -2, 3))))c                 óx   — t        j                  | j                  «      } |«       j                  |«      |k(  sJ ‚y r3   )r   ry   rm   rE   )r=   rF   rG   r¸   s       r8   r”   z8TestTendonForceLengthInverseDeGroote2016.test_print_codei  s4   € ôH 8×EÑEÀdÇiÁiÓPˆÙ‹~×%Ñ% hÓ/°8Ò;Ð;Ñ;r:   c                 ó¸   — t        j                  | j                  «      }|j                  | j                  «      }d}t	        «       j                  |«      |k(  sJ ‚y )Nz.1/(33.93669377311689*fl_T + 8.484173443279222))r   ry   rm   r   r'   rE   )r=   r¸   Údfl_T_inv_dfl_TrG   s       r8   r—   zCTestTendonForceLengthInverseDeGroote2016.test_derivative_print_code°  sI   € Ü7×EÑEÀdÇiÁiÓPˆØ"Ÿ-™-¨¯	©	Ó2ˆØCˆÜ Ó"×*Ñ*¨?Ó;¸xÒGÐGÑGr:   c                 ó®   — t        j                  | j                  «      }t        | j                  |«      } |d«      t	        j
                  d«      k(  sJ ‚y )Nç        ç¡mIÏsð?)r   ry   rm   r(   rQ   rš   )r=   r¸   Úfl_T_inv_callables      r8   rœ   z6TestTendonForceLengthInverseDeGroote2016.test_lambdify¶  sC   € Ü7×EÑEÀdÇiÁiÓPˆÜ$ T§Y¡Y°Ó9ÐÙ  Ó%¬¯©°|Ó)DÒDÐDÑDr:   Nr�   rž   c                 ó  — t        j                  | j                  «      }t        | j                  |d«      }t        j                  g d¢«      }t        j                  g d¢«      }t        j                  j                   ||«      |«       y )Nr*   ©gš™™™™™É¿ç{®Gáz„¿rÑ   r¢   gR¸…ëQð?r£   ©gP×gÊfˆî?g´ß}†ð?rÒ   gçy¬lªÉð?gçªÂ­žÊð?gº‚ÊpÍð?)r   ry   rm   r(   r*   r¥   r¦   r§   ©r=   r¸   rÓ   rm   rG   s        r8   r©   z<TestTendonForceLengthInverseDeGroote2016.test_lambdify_numpy»  sg   € ä7×EÑEÀdÇiÁiÓPˆÜ$ T§Y¡Y°¸'ÓBÐÜ�{‰{Ò?Ó@ˆÜ—;‘;ò  
ó ˆô 	�‰×%Ñ%Ñ&7¸Ó&=¸xÕHr:   rª   c                 óf  — t        j                  | j                  «      }t        j	                  t        | j                  |d«      «      }t        j                  j                  g d¢«      }t        j                  j                  g d¢«      }t        j                  j                   ||«      |«       y )Nr)   rÕ   r×   )
r   ry   rm   r)   r¬   r(   r*   r¥   r¦   r§   rØ   s        r8   r­   z:TestTendonForceLengthInverseDeGroote2016.test_lambdify_jaxÊ  sx   € ä7×EÑEÀdÇiÁiÓPˆÜŸG™G¤H¨T¯Y©Y¸À%Ó$HÓIÐÜ�y‰y�‰ÒCÓDˆÜ—9‘9—?‘?ò $
ó ˆô 	�‰×%Ñ%Ñ&7¸Ó&=¸xÕHr:   )-r@   rA   rB   rQ   r®   r³   rP   rh   rn   rp   ru   r|   rÃ   rƒ   r…   r‰   r‹   rŽ   r�   r’   rR   rS   r   r   r   r   r   r   r   r!   r'   r$   r%   r"   r#   r&   r   r”   r—   rœ   r¯   r*   r©   r)   r­   r4   r:   r8   r±   r±     sØ  „ à€V‡^�^˜DÔ!ñ>ó "ð>ð ñgó ðgò
aò
Pòaò	5ò4ò
2ò
2ò
2ò
2ò
Cò<ò
?ð
 ‡[�[×ÑØ ð ØEðð
 ØEðð
 ØEðð
 !ØEðð
 !ØJðð
 !ØJðð
 ØRðð
 "ØDðð
 "ØIðð
 ØJðð
 ØJðð
 ØIðð
 ØNðð
 ðZðð ØIððw?	
óBñF<óGBðF<òHòEð
 ‡[�[×Ñ˜ ˜Ð.CÐÓDñIó EðIð ‡[�[×Ñ˜˜t˜Ð,?ÐÓ@ñIó AñIr:   r±   c                   óÈ  — e Zd Z ej                  d¬«      d„ «       Zed„ «       Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zej$                  j'                  dedfedfedfedfedfedfedfedfedfedfedfedfe dfe!dfe"dfg«      d„ «       Z#d„ Z$d„ Z%ej$                  jM                  e'du d¬«      d„ «       Z(ej$                  jM                  e)du d ¬«      d!„ «       Z*y)"Ú'TestFiberForceLengthPassiveDeGroote2016TrV   c                 óž   — t        d«      | _        t        d«      | _        t        d«      | _        | j                  | j                  f| _        y )NÚ	l_M_tilderZ   r[   )r   rÝ   r^   r_   rb   rc   s    r8   Ú-_fiber_force_length_passive_arguments_fixturezUTestFiberForceLengthPassiveDeGroote2016._fiber_force_length_passive_arguments_fixtureÜ  s8   € ä Ó,ˆŒÜ˜“-ˆŒÜ˜“-ˆŒØŸ'™' 4§7¡7Ð+ˆ�r:   c                  ó†   — t        t        t        «      sJ ‚t        t        t        «      sJ ‚t        j                  dk(  sJ ‚y )Nr   )rg   r   r   r   r@   r4   r:   r8   rh   z2TestFiberForceLengthPassiveDeGroote2016.test_classã  s:   € äÔ=¼xÔHÐHÐHÜÔ=Ô?ZÔ[Ð[Ð[Ü2×;Ñ;Ð?dÒdÐdÑdr:   c                 óˆ   — t        | j                  g| j                  ¢­Ž }t        |t         «      sJ ‚t	        |«      dk(  sJ ‚y )Nz8FiberForceLengthPassiveDeGroote2016(l_M_tilde, c_0, c_1))r   rÝ   rb   rj   rk   ©r=   Úfl_M_pass     r8   rn   z5TestFiberForceLengthPassiveDeGroote2016.test_instanceé  s=   € Ü6°t·~±~ÐWÈÏÉÒWˆÜ˜(Ô$GÔHÐHÐHÜ�8‹}Ð ZÒZÐZÑZr:   c                 ó  — t        | j                  g| j                  ¢­Ž j                  «       }|t	        | j
                  | j                  dz
  z  | j                  z  «      dz
  t	        | j
                  «      dz
  z  k(  sJ ‚y r¿   )r   rÝ   rb   r?   r
   r_   r^   rá   s     r8   rp   z1TestFiberForceLengthPassiveDeGroote2016.test_doitî  sk   € Ü6°t·~±~ÐWÈÏÉÒW×\Ñ\Ó^ˆØœC §¡¨$¯.©.¸1Ñ*<Ñ!=¸t¿w¹wÑ FÓGÈ!ÑKÌcÐRV×RYÑRYËlÐ]^ÑN^Ñ_Ò_Ð_Ñ_r:   c                 ó  — t        | j                  g| j                  ¢­Ž j                  d¬«      }|t	        | j
                  t        | j                  dz
  «      z  | j                  z  «      dz
  t	        | j
                  «      dz
  z  k(  sJ ‚y ©NFrs   rÀ   )r   rÝ   rb   r?   r
   r_   r   r^   rá   s     r8   ru   z@TestFiberForceLengthPassiveDeGroote2016.test_doit_evaluate_falseò  sy   € Ü6°t·~±~ÐWÈÏÉÒW×\Ñ\ÐfkÐ\ÓlˆØœC §¡¬¸¿¹È!Ñ9KÓ)LÑ!LÈdÏgÉgÑ UÓVÐYZÑZÔ]`Ðae×ahÑahÓ]iÐlmÑ]mÑnÒnÐnÑnr:   c                 ó¨   — t        d«      t        d«      f}t        | j                  g|¢­Ž }t        j                  | j                  «      }||k(  sJ ‚y ©Nz0.6z4.0)r   r   rÝ   ry   )r=   rb   Úfl_M_pas_manualÚfl_M_pas_constantss       r8   r|   z:TestFiberForceLengthPassiveDeGroote2016.test_with_defaultsö  sP   € ä�%‹LÜ�%‹Lð
ˆ	ô >¸d¿n¹nÐYÈyÒYˆÜ@×NÑNÈtÏ~É~Ó^ÐØÐ"4Ò4Ð4Ñ4r:   c                 ó`  — t        | j                  g| j                  ¢­Ž }| j                  t	        | j                  t        | j                  dz
  «      z  | j                  z  «      z  | j                  t	        | j                  «      dz
  z  z  }|j                  | j                  «      |k(  sJ ‚y r¿   ©r   rÝ   rb   r_   r
   r   r^   r   ©r=   râ   rG   s      r8   Ú test_differentiate_wrt_l_M_tildezHTestFiberForceLengthPassiveDeGroote2016.test_differentiate_wrt_l_M_tildeÿ  s‹   € Ü6°t·~±~ÐWÈÏÉÒWˆØ—7‘7œ3˜tŸw™w¤°t·~±~ÈÑ7IÓ'JÑJÈ4Ï7É7ÑRÓSÑSÐUY×U\ÑU\Ô^aÐbf×biÑbiÓ^jÐmnÑ^nÑUoÑpˆØ�}‰}˜TŸ^™^Ó,°Ò8Ð8Ñ8r:   c                 óš  — t        | j                  g| j                  ¢­Ž }| j                   t	        | j                  t        | j                  dz
  «      z  | j                  z  «      z  t        | j                  dz
  «      z  | j                  dz  t	        | j                  «      dz
  z  z  }|j                  | j                  «      |k(  sJ ‚y ©NrÀ   rÉ   rë   rì   s      r8   rƒ   zATestFiberForceLengthPassiveDeGroote2016.test_differentiate_wrt_c0  s§   € Ü6°t·~±~ÐWÈÏÉÒWˆà�W‰WˆH”S˜Ÿ™¤°·±À!Ñ1CÓ!DÑDÀTÇWÁWÑLÓMÑMÜ˜TŸ^™^¨aÑ/Ó0ñ1Ø26·'±'¸1±*¼cÀ$Ç'Á'»lÈQÑ>NÑ2OñQð 	ð �}‰}˜TŸW™WÓ%¨Ò1Ð1Ñ1r:   c           	      óJ  — t        | j                  g| j                  ¢­Ž }t        | j                  «       dt        | j                  t        | j                  dz
  «      z  | j                  z  «      z   z  t        | j                  «      dz
  dz  z  t        | j                  t        | j                  dz
  «      z  | j                  z  «      | j                  dz
  z  | j                  t        | j                  «      dz
  z  z  z   }|j                  | j                  «      |k(  sJ ‚y )Nrˆ   rÀ   rÉ   )r   rÝ   rb   r
   r_   r   r^   r   rì   s      r8   r…   zATestFiberForceLengthPassiveDeGroote2016.test_differentiate_wrt_c1  sù   € Ü6°t·~±~ÐWÈÏÉÒWˆä�—‘‹\ˆM˜2¤ D§G¡G¬O¸D¿N¹NÈQÑ<NÓ,OÑ$OÐPT×PWÑPWÑ$WÓ XÑXÑYÔ[^Ð_c×_fÑ_fÓ[gÐjkÑ[kÐnoÑZoÑoÜ�$—'‘'œ/¨$¯.©.¸1Ñ*<Ó=Ñ=¸d¿g¹gÑEÓFÈÏÉÐYZÑHZÑ[Ð]a×]dÑ]dÔfiÐjn×jqÑjqÓfrÐuvÑfvÑ]wÑxñyð 	ð �}‰}˜TŸW™WÓ%¨Ò1Ð1Ñ1r:   c                 ót   — t        | j                  g| j                  ¢­Ž }|j                  «       t        u sJ ‚y r3   )r   rÝ   rb   r�   r   rá   s     r8   rŽ   z4TestFiberForceLengthPassiveDeGroote2016.test_inverse  s1   € Ü6°t·~±~ÐWÈÏÉÒWˆØ×ÑÓ!Ô%OÑOÐOÑOr:   c                 ó„   — t        | j                  g| j                  ¢­Ž }d}t        «       j	                  |«      |k(  sJ ‚y )Nz4\operatorname{fl}^M_{pas} \left( l_{M tilde} \right))r   rÝ   rb   r    rE   rì   s      r8   r�   zATestFiberForceLengthPassiveDeGroote2016.test_function_print_latex  s9   € Ü6°t·~±~ÐWÈÏÉÒWˆØJˆÜ‹~×%Ñ% hÓ/°8Ò;Ð;Ñ;r:   c                 ó    — t        | j                  g| j                  ¢­Ž }d}t        «       j	                  |j                  «       «      |k(  sJ ‚y )NzN\frac{e^{\frac{c_{1} \left(l_{M tilde} - 1\right)}{c_{0}}} - 1}{e^{c_{1}} - 1})r   rÝ   rb   r    rE   r?   rì   s      r8   r’   zCTestFiberForceLengthPassiveDeGroote2016.test_expression_print_latex  s?   € Ü6°t·~±~ÐWÈÏÉÒWˆØdˆÜ‹~×%Ñ% h§m¡m£oÓ6¸(ÒBÐBÑBr:   r.   zC(0.01865736036377405*(-1 + exp(6.666666666666667*(l_M_tilde - 1))))zH(0.01865736036377405*(-1 + std::exp(6.666666666666667*(l_M_tilde - 1))))zT      (0.0186573603637741d0*(-1 + exp(6.666666666666667d0*(l_M_tilde - 1
     @ ))))zA(0.0186573603637741*(-1 + exp(6.66666666666667*(l_M_tilde - 1))))zF(0.0186573603637741*(-1 + math.exp(6.66666666666667*(l_M_tilde - 1))))zG(0.0186573603637741*(-1 + numpy.exp(6.66666666666667*(l_M_tilde - 1))))zF(0.0186573603637741*(-1 + cupy.exp(6.66666666666667*(l_M_tilde - 1))))zK(0.0186573603637741*(-1 + jax.numpy.exp(6.66666666666667*(l_M_tilde - 1))))zy(mpmath.mpf((0, 672202249456079, -55, 50))*(-1 + mpmath.exp(mpmath.mpf((0, 7505999378950827, -50, 53))*(l_M_tilde - 1))))c                 óx   — t        j                  | j                  «      } |«       j                  |«      |k(  sJ ‚y r3   )r   ry   rÝ   rE   )r=   rF   rG   râ   s       r8   r”   z7TestFiberForceLengthPassiveDeGroote2016.test_print_code"  s4   € ôH 7×DÑDÀTÇ^Á^ÓTˆÙ‹~×%Ñ% hÓ/°8Ò;Ð;Ñ;r:   c                 ó¸   — t        j                  | j                  «      }|j                  | j                  «      }d}t	        «       j                  |«      |k(  sJ ‚y )Nz;0.12438240242516*math.exp(6.66666666666667*(l_M_tilde - 1)))r   ry   rÝ   r   r'   rE   )r=   râ   Úfl_M_pas_dl_M_tilderG   s       r8   r—   zBTestFiberForceLengthPassiveDeGroote2016.test_derivative_print_codei  sK   € Ü6×DÑDÀTÇ^Á^ÓTˆØ&Ÿm™m¨D¯N©NÓ;ÐØPˆÜ Ó"×*Ñ*Ð+>Ó?À8ÒKÐKÑKr:   c                 ó®   — t        j                  | j                  «      }t        | j                  |«      } |d«      t	        j
                  d«      k(  sJ ‚y )Nr™   rÑ   )r   ry   rÝ   r(   rQ   rš   )r=   râ   Úfl_M_pas_callables      r8   rœ   z5TestFiberForceLengthPassiveDeGroote2016.test_lambdifyo  sC   € Ü6×DÑDÀTÇ^Á^ÓTˆÜ$ T§^¡^°XÓ>ÐÙ  Ó%¬¯©°sÓ);Ò;Ð;Ñ;r:   Nr�   rž   c                 ó  — t        j                  | j                  «      }t        | j                  |d«      }t        j                  g d¢«      }t        j                  g d¢«      }t        j                  j                   ||«      |«       y )Nr*   ©ç      à?çš™™™™™é?çÍÌÌÌÌÌì?r™   çš™™™™™ñ?ç333333ó?ç      ø?©g1ÙýÄol’¿gx¿Ø#^#Œ¿g‘gÎ«—‚¿rÑ   g4],eI’?gÌ-ÔË¯ª?gO¾‹#à?)r   ry   rÝ   r(   r*   r¥   r¦   r§   ©r=   râ   rø   rÝ   rG   s        r8   r©   z;TestFiberForceLengthPassiveDeGroote2016.test_lambdify_numpyt  sg   € ä6×DÑDÀTÇ^Á^ÓTˆÜ$ T§^¡^°X¸wÓGÐÜ—K‘KÒ CÓDˆ	Ü—;‘;ò  
ó ˆô 	�‰×%Ñ%Ñ&7¸	Ó&BÀHÕMr:   rª   c                 óf  — t        j                  | j                  «      }t        j	                  t        | j                  |d«      «      }t        j                  j                  g d¢«      }t        j                  j                  g d¢«      }t        j                  j                   ||«      |«       y )Nr)   rú   r  )
r   ry   rÝ   r)   r¬   r(   r*   r¥   r¦   r§   r  s        r8   r­   z9TestFiberForceLengthPassiveDeGroote2016.test_lambdify_jax„  sx   € ä6×DÑDÀTÇ^Á^ÓTˆÜŸG™G¤H¨T¯^©^¸XÀuÓ$MÓNÐÜ—I‘I—O‘OÒ$GÓHˆ	Ü—9‘9—?‘?ò $
ó ˆô 	�‰×%Ñ%Ñ&7¸	Ó&BÀHÕMr:   )+r@   rA   rB   rQ   r®   rÞ   rP   rh   rn   rp   ru   r|   rí   rƒ   r…   rŽ   r�   r’   rR   rS   r   r   r   r   r   r   r   r!   r'   r$   r%   r"   r#   r&   r   r”   r—   rœ   r¯   r*   r©   r)   r­   r4   r:   r8   rÛ   rÛ   Ú  sÐ  „ à€V‡^�^˜DÔ!ñ,ó "ð,ð ñeó ðeò
[ò
`òoò5ò9ò
2ò2òPò<ò
Cð
 ‡[�[×ÑØ ð ØUðð
 ØUðð
 ØUðð
 !ØUðð
 !ØZðð
 !ØZðð
 ððð "ØSðð
 "ØXðð
 ØYðð
 ØYðð
 ØXðð
 Ø]ðð
 ðPðð ØXððw?	
óBñF<óGBðF<òLò<ð
 ‡[�[×Ñ˜ ˜Ð.CÐÓDñNó EðNð ‡[�[×Ñ˜˜t˜Ð,?ÐÓ@ñNó AñNr:   rÛ   c                   óÈ  — e Zd Z ej                  d¬«      d„ «       Zed„ «       Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zej$                  j'                  dedfedfedfedfedfedfedfedfedfedfedfedfe dfe!dfe"dfg«      d„ «       Z#d„ Z$d„ Z%ej$                  jM                  e'du d¬«      d„ «       Z(ej$                  jM                  e)du d ¬«      d!„ «       Z*y)"Ú.TestFiberForceLengthPassiveInverseDeGroote2016TrV   c                 óž   — t        d«      | _        t        d«      | _        t        d«      | _        | j                  | j                  f| _        y )Nrâ   rZ   r[   )r   râ   r^   r_   rb   rc   s    r8   rÞ   z\TestFiberForceLengthPassiveInverseDeGroote2016._fiber_force_length_passive_arguments_fixture—  s8   € ä˜zÓ*ˆŒÜ˜“-ˆŒÜ˜“-ˆŒØŸ'™' 4§7¡7Ð+ˆ�r:   c                  ó†   — t        t        t        «      sJ ‚t        t        t        «      sJ ‚t        j                  dk(  sJ ‚y )Nr   )rg   r   r   r   r@   r4   r:   r8   rh   z9TestFiberForceLengthPassiveInverseDeGroote2016.test_classž  s:   € äÔDÄhÔOÐOÐOÜÔDÔFaÔbÐbÐbÜ9×BÑBÐFrÒrÐrÑrr:   c                 óˆ   — t        | j                  g| j                  ¢­Ž }t        |t         «      sJ ‚t	        |«      dk(  sJ ‚y )Nz>FiberForceLengthPassiveInverseDeGroote2016(fl_M_pas, c_0, c_1))r   râ   rb   rj   rk   ©r=   Úfl_M_pas_invs     r8   rn   z<TestFiberForceLengthPassiveInverseDeGroote2016.test_instance¤  sA   € ÜAÀ$Ç-Á-ÐaÐRV×R`ÑR`ÒaˆÜ˜,Ô(RÔSÐSÐSÜ�<Ó Ð$dÒdÐdÑdr:   c                 ó  — t        | j                  g| j                  ¢­Ž j                  «       }|| j                  t        | j                  t        | j                  «      dz
  z  dz   «      z  | j                  z  dz   k(  sJ ‚y r¿   )r   râ   rb   r?   r^   r   r
   r_   r	  s     r8   rp   z8TestFiberForceLengthPassiveInverseDeGroote2016.test_doit©  sn   € ÜAÀ$Ç-Á-ÐaÐRV×R`ÑR`Òa×fÑfÓhˆØ˜tŸw™w¤s¨4¯=©=¼#¸d¿g¹g»,ÈÑ:JÑ+KÈaÑ+OÓ'PÑPÐQU×QXÑQXÑXÐ[\Ñ\Ò\Ð\Ñ\r:   c           
      ó  — t        | j                  g| j                  ¢­Ž j                  d¬«      }|| j                  t        t        | j                  t        | j                  «      dz
  z  «      dz   «      z  | j                  z  dz   k(  sJ ‚y rå   )	r   râ   rb   r?   r^   r   r   r
   r_   r	  s     r8   ru   zGTestFiberForceLengthPassiveInverseDeGroote2016.test_doit_evaluate_false­  s{   € ÜAÀ$Ç-Á-ÐaÐRV×R`ÑR`Òa×fÑfÐpuÐfÓvˆØ˜tŸw™w¤s¬?¸4¿=¹=Ì#ÈdÏgÉgË,ÐYZÑJZÑ;[Ó+\Ð_`Ñ+`Ó'aÑaÐbf×biÑbiÑiÐlmÑmÒmÐmÑmr:   c                 ó¨   — t        d«      t        d«      f}t        | j                  g|¢­Ž }t        j                  | j                  «      }||k(  sJ ‚y rç   )r   r   râ   ry   )r=   rb   Úfl_M_pas_inv_manualÚfl_M_pas_inv_constantss       r8   r|   zATestFiberForceLengthPassiveInverseDeGroote2016.test_with_defaults±  sV   € ä�%‹LÜ�%‹Lð
ˆ	ô IÈÏÉÐcÐYbÒcÐÜ!K×!YÑ!YÐZ^×ZgÑZgÓ!hÐØ"Ð&<Ò<Ð<Ñ<r:   c                 ó:  — t        | j                  g| j                  ¢­Ž }| j                  t	        | j
                  «      dz
  z  | j
                  | j                  t	        | j
                  «      dz
  z  dz   z  z  }|j                  | j                  «      |k(  sJ ‚y r¿   )r   râ   rb   r^   r
   r_   r   ©r=   r
  rG   s      r8   rÃ   zJTestFiberForceLengthPassiveInverseDeGroote2016.test_differentiate_wrt_fl_Tº  s   € ÜAÀ$Ç-Á-ÐaÐRV×R`ÑR`ÒaˆØ—7‘7œC §¡›L¨1Ñ,Ñ-¨t¯w©w¸¿¹ÄsÈ4Ï7É7Ã|ÐVWÑGWÑ8XÐ[\Ñ8\Ñ/]Ñ^ˆØ× Ñ  §¡Ó/°8Ò;Ð;Ñ;r:   c                 ó   — t        | j                  g| j                  ¢­Ž }t        | j                  t	        | j
                  «      dz
  z  dz   «      | j
                  z  }|j                  | j                  «      |k(  sJ ‚y r¿   )r   râ   rb   r   r
   r_   r   r^   r  s      r8   rƒ   zHTestFiberForceLengthPassiveInverseDeGroote2016.test_differentiate_wrt_c0¿  sg   € ÜAÀ$Ç-Á-ÐaÐRV×R`ÑR`ÒaˆÜ�t—}‘}¤c¨$¯'©'£l°QÑ&6Ñ7¸!Ñ;Ó<¸T¿W¹WÑDˆØ× Ñ  §¡Ó)¨XÒ5Ð5Ñ5r:   c                 óì  — t        | j                  g| j                  ¢­Ž }| j                  | j                  z  t	        | j
                  «      z  | j
                  | j                  t	        | j
                  «      dz
  z  dz   z  z  | j                  t        | j                  t	        | j
                  «      dz
  z  dz   «      z  | j
                  dz  z  z
  }|j                  | j
                  «      |k(  sJ ‚y rï   )r   râ   rb   r^   r
   r_   r   r   r  s      r8   r…   zHTestFiberForceLengthPassiveInverseDeGroote2016.test_differentiate_wrt_c1Ä  sÇ   € ÜAÀ$Ç-Á-ÐaÐRV×R`ÑR`Òaˆà�G‰G�D—M‘MÑ!¤# d§g¡g£,Ñ.°·±¸¿¹ÌÈDÏGÉGËÐWXÑHXÑ9YÐ\]Ñ9]Ñ0^Ñ_Ø�g‰g”c˜$Ÿ-™-¬¨T¯W©W«¸Ñ)9Ñ:¸QÑ>Ó?Ñ?ÀÇÁÈÁ
ÑJñKð 	ð × Ñ  §¡Ó)¨XÒ5Ð5Ñ5r:   c                 ót   — t        | j                  g| j                  ¢­Ž }|j                  «       t        u sJ ‚y r3   )r   râ   rb   r�   r   r	  s     r8   rŽ   z;TestFiberForceLengthPassiveInverseDeGroote2016.test_inverseÌ  s4   € ÜAÀ$Ç-Á-ÐaÐRV×R`ÑR`ÒaˆØ×#Ñ#Ó%Ô)LÑLÐLÑLr:   c                 ó„   — t        | j                  g| j                  ¢­Ž }d}t        «       j	                  |«      |k(  sJ ‚y )NzG\left( \operatorname{fl}^M_{pas} \right)^{-1} \left( fl_{M pas} \right))r   râ   rb   r    rE   r  s      r8   r�   zHTestFiberForceLengthPassiveInverseDeGroote2016.test_function_print_latexÐ  s<   € ÜAÀ$Ç-Á-ÐaÐRV×R`ÑR`ÒaˆØ]ˆÜ‹~×%Ñ% lÓ3°xÒ?Ð?Ñ?r:   c                 ó    — t        | j                  g| j                  ¢­Ž }d}t        «       j	                  |j                  «       «      |k(  sJ ‚y )NzU\frac{c_{0} \log{\left(fl_{M pas} \left(e^{c_{1}} - 1\right) + 1 \right)}}{c_{1}} + 1)r   râ   rb   r    rE   r?   r€   s      r8   r’   zJTestFiberForceLengthPassiveInverseDeGroote2016.test_expression_print_latexÕ  s?   € Ü9¸$¿-¹-ÐYÈ$Ï.É.ÒYˆØkˆÜ‹~×%Ñ% d§i¡i£kÓ2°hÒ>Ð>Ñ>r:   r.   z>(1 + 0.14999999999999999*log(1 + 53.598150033144236*fl_M_pas))zC(1 + 0.14999999999999999*std::log(1 + 53.598150033144236*fl_M_pas))z;      (1 + 0.15d0*log(1.0d0 + 53.5981500331442d0*fl_M_pas))z-(1 + 0.15*log(1 + 53.5981500331442*fl_M_pas))z2(1 + 0.15*math.log(1 + 53.5981500331442*fl_M_pas))z3(1 + 0.15*numpy.log(1 + 53.5981500331442*fl_M_pas))z2(1 + 0.15*cupy.log(1 + 53.5981500331442*fl_M_pas))z7(1 + 0.15*jax.numpy.log(1 + 53.5981500331442*fl_M_pas))zs(1 + mpmath.mpf((0, 5404319552844595, -55, 53))*mpmath.log(1 + mpmath.mpf((0, 942908627019595, -44, 50))*fl_M_pas))c                 óx   — t        j                  | j                  «      } |«       j                  |«      |k(  sJ ‚y r3   )r   ry   râ   rE   )r=   rF   rG   r
  s       r8   r”   z>TestFiberForceLengthPassiveInverseDeGroote2016.test_print_codeÚ  s8   € ôF B×OÑOÐPT×P]ÑP]Ó^ˆÙ‹~×%Ñ% lÓ3°xÒ?Ð?Ñ?r:   c                 ó¸   — t        j                  | j                  «      }|j                  | j                  «      }d}t	        «       j                  |«      |k(  sJ ‚y )Nz232.1588900198865/(214.392600132577*fl_M_pas + 4.0))r   ry   râ   r   r'   rE   )r=   r
  Údfl_M_pas_inv_dfl_TrG   s       r8   r—   zITestFiberForceLengthPassiveInverseDeGroote2016.test_derivative_print_code   sP   € ÜA×OÑOÐPT×P]ÑP]Ó^ˆØ*×/Ñ/°·±Ó>ÐØGˆÜ Ó"×*Ñ*Ð+>Ó?À8ÒKÐKÑKr:   c                 ó®   — t        j                  | j                  «      }t        | j                  |«      } |d«      t	        j
                  d«      k(  sJ ‚y )NrÑ   r™   )r   ry   râ   r(   rQ   rš   )r=   r
  Úfl_M_pas_inv_callables      r8   rœ   z<TestFiberForceLengthPassiveInverseDeGroote2016.test_lambdify&  sF   € ÜA×OÑOÐPT×P]ÑP]Ó^ˆÜ (¨¯©¸Ó EÐÙ$ SÓ)¬V¯]©]¸3Ó-?Ò?Ð?Ñ?r:   Nr�   rž   c                 ó  — t        j                  | j                  «      }t        | j                  |d«      }t        j                  g d¢«      }t        j                  g d¢«      }t        j                  j                   ||«      |«       y )Nr*   ©rÖ   rÑ   g{®Gáz„?g{®Gáz”?gš™™™™™©?gš™™™™™¹?©g‘°L}Pì?r™   g>7Š®ñ?g,à5––¿ñ?gÝx¹€~ ó?gh¾lº£pô?)r   ry   râ   r(   r*   r¥   r¦   r§   ©r=   r
  r  râ   rG   s        r8   r©   zBTestFiberForceLengthPassiveInverseDeGroote2016.test_lambdify_numpy+  sj   € äA×OÑOÐPT×P]ÑP]Ó^ˆÜ (¨¯©¸ÀgÓ NÐÜ—;‘;ÒBÓCˆÜ—;‘;ò  
ó ˆô 	�‰×%Ñ%Ñ&;¸HÓ&EÀxÕPr:   rª   c                 óf  — t        j                  | j                  «      }t        j	                  t        | j                  |d«      «      }t        j                  j                  g d¢«      }t        j                  j                  g d¢«      }t        j                  j                   ||«      |«       y )Nr)   r  r  )
r   ry   râ   r)   r¬   r(   r*   r¥   r¦   r§   r  s        r8   r­   z@TestFiberForceLengthPassiveInverseDeGroote2016.test_lambdify_jax:  s{   € äA×OÑOÐPT×P]ÑP]Ó^ˆÜ #§¡¬°·±ÀÈeÓ(TÓ UÐÜ—9‘9—?‘?Ò#FÓGˆÜ—9‘9—?‘?ò $
ó ˆô 	�‰×%Ñ%Ñ&;¸HÓ&EÀxÕPr:   )+r@   rA   rB   rQ   r®   rÞ   rP   rh   rn   rp   ru   r|   rÃ   rƒ   r…   rŽ   r�   r’   rR   rS   r   r   r   r   r   r   r   r!   r'   r$   r%   r"   r#   r&   r   r”   r—   rœ   r¯   r*   r©   r)   r­   r4   r:   r8   r  r  •  sÑ  „ à€V‡^�^˜DÔ!ñ,ó "ð,ð ñsó ðsò
eò
]ònò=ò<ò
6ò
6òMò@ò
?ð
 ‡[�[×ÑØ ð ØPðð
 ØPðð
 ØPðð
 !ØPðð
 !ØUðð
 !ØUðð
 ØMðð
 "Ø?ðð
 "ØDðð
 ØEðð
 ØEðð
 ØDðð
 ØIðð
 ðIðð ØDððu>	
óAñD@óEAðD@òLò@ð
 ‡[�[×Ñ˜ ˜Ð.CÐÓDñQó EðQð ‡[�[×Ñ˜˜t˜Ð,?ÐÓ@ñQó AñQr:   r  c                   óþ  — e Zd Z ej                  d¬«      d„ «       Zed„ «       Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej6                  j9                  dedfedfedfe dfe!dfe"dfe#dfe$dfe%dfe&dfe'dfe(d fe)d!fe*d"fe+dfg«      d#„ «       Z,d$„ Z-d%„ Z.ej6                  j_                  e0d&u d'¬(«      d)„ «       Z1ej6                  j_                  e2d&u d*¬(«      d+„ «       Z3y&),Ú&TestFiberForceLengthActiveDeGroote2016TrV   c                 óº  — t        d«      | _        t        d«      | _        t        d«      | _        t        d«      | _        t        d«      | _        t        d«      | _        t        d«      | _        t        d«      | _        t        d	«      | _	        t        d
«      | _
        t        d«      | _        t        d«      | _        t        d«      | _        | j                  | j                  | j                  | j
                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  f| _        y )NrÝ   rZ   r[   r\   r]   Úc_4Úc_5Úc_6Úc_7Úc_8Úc_9Úc_10Úc_11)r   rÝ   r^   r_   r`   ra   Úc4Úc5Úc6Úc7Úc8Úc9Úc10Úc11rb   rc   s    r8   Ú,_fiber_force_length_active_arguments_fixturezSTestFiberForceLengthActiveDeGroote2016._fiber_force_length_active_arguments_fixtureL  så   € ä Ó,ˆŒÜ˜“-ˆŒÜ˜“-ˆŒÜ˜“-ˆŒÜ˜“-ˆŒÜ˜“-ˆŒÜ˜“-ˆŒÜ˜“-ˆŒÜ˜“-ˆŒÜ˜“-ˆŒÜ˜“-ˆŒÜ˜&“>ˆŒÜ˜&“>ˆŒà�G‰G�T—W‘W˜dŸg™g t§w¡w°·±¸¿¹Ø�G‰G�T—W‘W˜dŸg™g t§w¡w°·±¸$¿(¹(ð
ˆ�r:   c                  ó†   — t        t        t        «      sJ ‚t        t        t        «      sJ ‚t        j                  dk(  sJ ‚y )Nr   )rg   r   r   r   r@   r4   r:   r8   rh   z1TestFiberForceLengthActiveDeGroote2016.test_class`  s:   € äÔ<¼hÔGÐGÐGÜÔ<Ô>YÔZÐZÐZÜ1×:Ñ:Ð>bÒbÐbÑbr:   c                 óˆ   — t        | j                  g| j                  ¢­Ž }t        |t         «      sJ ‚t	        |«      dk(  sJ ‚y )NzkFiberForceLengthActiveDeGroote2016(l_M_tilde, c_0, c_1, c_2, c_3, c_4, c_5, c_6, c_7, c_8, c_9, c_10, c_11))r   rÝ   rb   rj   rk   ©r=   Úfl_M_acts     r8   rn   z4TestFiberForceLengthActiveDeGroote2016.test_instancef  sE   € Ü5°d·n±nÐVÀtÇ~Á~ÒVˆÜ˜(Ô$FÔGÐGÐGÜ�8‹}ð8ò
ð 	
ñ 
r:   c           	      óœ  — t        | j                  g| j                  ¢­Ž j                  «       }|| j                  t        | j                  | j                  z
  | j                  | j                  | j                  z  z   z  dz   dz  «      z  | j                  t        | j                  | j                  z
  | j                  | j                  | j                  z  z   z  dz   dz  «      z  z   | j                  t        | j                  | j                  z
  | j                  | j                   | j                  z  z   z  dz   dz  «      z  z   k(  sJ ‚y rÈ   )r   rÝ   rb   r?   r^   r
   r_   r`   ra   r,  r-  r.  r/  r0  r1  r2  r3  r7  s     r8   rp   z0TestFiberForceLengthActiveDeGroote2016.test_doitn  s  € Ü5°d·n±nÐVÀtÇ~Á~ÒV×[Ñ[Ó]ˆØØ�G‰G”C˜DŸN™N¨T¯W©WÑ4°t·w±wÀÇÁÈÏÉÑAWÑ7WÑXÐ[\Ñ\Ð]Ð^_Ñ_Ó`Ñ`Ø�g‰g”c˜dŸn™n¨t¯w©wÑ6¸¿¹À4Ç7Á7È4Ï>É>ÑCYÑ9YÑZÐ]^Ñ^Ð_Ð`aÑaÓbÑbñcà�g‰g”c˜dŸn™n¨t¯w©wÑ6¸¿¹ÀDÇHÁHÈTÏ^É^ÑD[Ñ9[Ñ\Ð_`Ñ`ÐaÐbcÑcÓdÑdñeò
ð 	
ñ 
r:   c           	      óÖ  — t        | j                  g| j                  ¢­Ž j                  d¬«      }|| j                  t        t        | j                  | j                  z
  «      | j                  | j                  | j                  z  z   z  dz   dz  «      z  | j                  t        t        | j                  | j                  z
  «      | j                  | j                  | j                  z  z   z  dz   dz  «      z  z   | j                  t        t        | j                  | j                  z
  «      | j                   | j"                  | j                  z  z   z  dz   dz  «      z  z   k(  sJ ‚y )NFrs   rÉ   )r   rÝ   rb   r?   r^   r
   r   r_   r`   ra   r,  r-  r.  r/  r0  r1  r2  r3  r7  s     r8   ru   z?TestFiberForceLengthActiveDeGroote2016.test_doit_evaluate_falsev  s?  € Ü5°d·n±nÐVÀtÇ~Á~ÒV×[Ñ[ÐejÐ[ÓkˆØØ�G‰G”Cœ?¨4¯>©>¸D¿G¹GÑ+CÓDÀdÇgÁgÐPT×PWÑPWÐX\×XfÑXfÑPfÑFfÑgÐjkÑkÐlÐmnÑnÓoÑoØ�g‰g”cœ_¨T¯^©^¸d¿g¹gÑ-EÓFÈÏÉÐRV×RYÑRYÐZ^×ZhÑZhÑRhÑHhÑiÐlmÑmÐnÐopÑpÓqÑqñrà�g‰g”cœ_¨T¯^©^¸d¿g¹gÑ-EÓFÈÏÉÐSW×S[ÑS[Ð\`×\jÑ\jÑSjÑHjÑkÐnoÑoÐpÐqrÑrÓsÑsñtò
ð 	
ñ 
r:   c                 óp  — t        d«      t        d«      t        d«      t        d«      t        d«      t        d«      t        d«      t        d«      t        d	«      t        d
«      t        d«      t        d«      f}t        | j                  g|¢­Ž }t        j                  | j                  «      }||k(  sJ ‚y )Nz0.814z1.06z0.162z0.0633z0.433z0.717z-0.0299rx   z0.1z1.0z0.354z0.0)r   r   rÝ   ry   )r=   rb   Úfl_M_act_manualÚfl_M_act_constantss       r8   r|   z9TestFiberForceLengthActiveDeGroote2016.test_with_defaults~  s—   € ä�'‹NÜ�&‹MÜ�'‹NÜ�(‹OÜ�'‹NÜ�'‹NÜ�)ÓÜ�%‹LÜ�%‹LÜ�%‹LÜ�'‹NÜ�%‹Lð
ˆ	ô =¸T¿^¹^ÐXÈiÒXˆÜ?×MÑMÈdÏnÉnÓ]ÐØÐ"4Ò4Ð4Ñ4r:   c           	      óX  — t        | j                  g| j                  ¢­Ž }| j                  | j                  | j                  | j
                  z
  dz  z  | j                  | j                  | j                  z  z   dz  z  | j
                  | j                  z
  | j                  | j                  | j                  z  z   dz  z  z   z  t        | j                  | j
                  z
  dz   d| j                  | j                  | j                  z  z   dz  z  z  «      z  | j                  | j                  | j                  | j                  z
  dz  z  | j                  | j                  | j                  z  z   dz  z  | j                  | j                  z
  | j                  | j                  | j                  z  z   dz  z  z   z  t        | j                  | j                  z
  dz   d| j                  | j                  | j                  z  z   dz  z  z  «      z  z   | j                  | j                  | j                  | j                  z
  dz  z  | j                  | j                  | j                  z  z   dz  z  | j                  | j                  z
  | j                  | j                  | j                  z  z   dz  z  z   z  t        | j                  | j                  z
  dz   d| j                  | j                  | j                  z  z   dz  z  z  «      z  z   }|j!                  | j                  «      |k(  sJ ‚y ©NrÉ   é   )r   rÝ   rb   r^   ra   r_   r`   r
   r,  r/  r-  r.  r0  r3  r1  r2  r   ©r=   r8  rG   s      r8   rí   zGTestFiberForceLengthActiveDeGroote2016.test_differentiate_wrt_l_M_tilde‘  s²  € Ü5°d·n±nÐVÀtÇ~Á~ÒVˆà�G‰GØ—‘˜Ÿ™¨$¯'©'Ñ1°AÑ5Ñ5°t·w±wÀÇÁÈÏÉÑAWÑ7WÐZ[Ñ6[Ñ[Ø—7‘7˜TŸ^™^Ñ+¨t¯w©w¸¿¹ÀÇÁÑ9OÑ/OÐRSÑ.SÑTñUñô �D—N‘N T§W¡WÑ,¨qÑ0Ð0°!°T·W±W¸t¿w¹wÀtÇ~Á~Ñ?UÑ5UÐXYÑ4YÑ2YÑZÓ[ñ\ð �g‰gØ—‘˜Ÿ™¨$¯'©'Ñ1°AÑ5Ñ5°t·w±wÀÇÁÈÏÉÑAWÑ7WÐZ[Ñ6[Ñ[Ø—7‘7˜TŸ^™^Ñ+¨t¯w©w¸¿¹ÀÇÁÑ9OÑ/OÐRSÑ.SÑTñUñô �D—N‘N T§W¡WÑ,¨qÑ0Ð0°!°T·W±W¸t¿w¹wÀtÇ~Á~Ñ?UÑ5UÐXYÑ4YÑ2YÑZÓ[ñ\ñ	\ð �g‰gØ—‘˜$Ÿ.™.¨4¯7©7Ñ2°QÑ6Ñ6¸¿¹À4Ç8Á8ÈDÏNÉNÑCZÑ8ZÐ]^Ñ7^Ñ^Ø—7‘7˜TŸ^™^Ñ+¨t¯x©x¸$¿(¹(À4Ç>Á>Ñ:QÑ/QÐTUÑ.UÑVñWñô �D—N‘N T§W¡WÑ,¨qÑ0Ð0°!°T·X±XÀÇÁÈÏÉÑ@WÑ5WÐZ[Ñ4[Ñ2[Ñ\Ó]ñ^ñ^ð 	ð �}‰}˜TŸ^™^Ó,°Ò8Ð8Ñ8r:   c                 óF  — t        | j                  g| j                  ¢­Ž }t        | j                  | j                  z
  dz   d| j
                  | j                  | j                  z  z   dz  z  z  «      }|j                  «       j                  | j                  «      |k(  sJ ‚y rÈ   )
r   rÝ   rb   r
   r_   r`   ra   r?   r   r^   rA  s      r8   rƒ   z@TestFiberForceLengthActiveDeGroote2016.test_differentiate_wrt_c0£  s�   € Ü5°d·n±nÐVÀtÇ~Á~ÒVˆÜ˜Ÿ™¨$¯'©'Ñ1°AÑ5Ð5°q¸$¿'¹'ÀDÇGÁGÈDÏNÉNÑDZÑ:ZÐ]^Ñ9^Ñ7^Ñ_Ó`ˆØ�}‰}‹×#Ñ# D§G¡GÓ,°Ò8Ð8Ñ8r:   c                 óÌ  — t        | j                  g| j                  ¢­Ž }| j                  | j                  | j                  z
  z  | j
                  | j                  | j                  z  z   dz  z  t        | j                  | j                  z
  dz   d| j
                  | j                  | j                  z  z   dz  z  z  «      z  }|j                  | j                  «      |k(  sJ ‚y rÈ   ©	r   rÝ   rb   r^   r_   r`   ra   r
   r   rA  s      r8   r…   z@TestFiberForceLengthActiveDeGroote2016.test_differentiate_wrt_c1¨  ó¾   € Ü5°d·n±nÐVÀtÇ~Á~ÒVˆà�G‰G�T—^‘^ d§g¡gÑ-Ñ.°·±¸$¿'¹'À$Ç.Á.Ñ:PÑ0PÐSTÑ/TÑTÜ�4—>‘> D§G¡GÑ+¨aÑ/Ð/°°D·G±G¸d¿g¹gÀdÇnÁnÑ>TÑ4TÐWXÑ3XÑ1XÑYÓZñ[ð 	ð �}‰}˜TŸW™WÓ%¨Ò1Ð1Ñ1r:   c                 óÒ  — t        | j                  g| j                  ¢­Ž }| j                  | j                  | j                  z
  dz  z  | j
                  | j                  | j                  z  z   dz  z  t        | j                  | j                  z
  dz   d| j
                  | j                  | j                  z  z   dz  z  z  «      z  }|j                  | j
                  «      |k(  sJ ‚y r?  rD  rA  s      r8   r‰   z@TestFiberForceLengthActiveDeGroote2016.test_differentiate_wrt_c2°  óÃ   € Ü5°d·n±nÐVÀtÇ~Á~ÒVˆà�G‰G�T—^‘^ d§g¡gÑ-°Ñ1Ñ1°4·7±7¸T¿W¹WÀTÇ^Á^Ñ=SÑ3SÐVWÑ2WÑWÜ�4—>‘> D§G¡GÑ+¨aÑ/Ð/°°D·G±G¸d¿g¹gÀdÇnÁnÑ>TÑ4TÐWXÑ3XÑ1XÑYÓZñ[ð 	ð �}‰}˜TŸW™WÓ%¨Ò1Ð1Ñ1r:   c                 óì  — t        | j                  g| j                  ¢­Ž }| j                  | j                  z  | j                  | j                  z
  dz  z  | j
                  | j                  | j                  z  z   dz  z  t        | j                  | j                  z
  dz   d| j
                  | j                  | j                  z  z   dz  z  z  «      z  }|j                  | j                  «      |k(  sJ ‚y r?  rD  rA  s      r8   r‹   z@TestFiberForceLengthActiveDeGroote2016.test_differentiate_wrt_c3¸  óÏ   € Ü5°d·n±nÐVÀtÇ~Á~ÒVˆà�G‰G�D—N‘NÑ" D§N¡N°T·W±WÑ$<¸qÑ#@Ñ@À$Ç'Á'ÈDÏGÉGÐTX×TbÑTbÑLbÑBbÐefÑAfÑfÜ�4—>‘> D§G¡GÑ+¨aÑ/Ð/°°D·G±G¸d¿g¹gÀdÇnÁnÑ>TÑ4TÐWXÑ3XÑ1XÑYÓZñ[ð 	ð �}‰}˜TŸW™WÓ%¨Ò1Ð1Ñ1r:   c                 ó*  — t        | j                  g| j                  ¢­Ž }t        | j                  | j                  z
  dz   d| j
                  | j                  | j                  z  z   dz  z  z  «      }|j                  | j                  «      |k(  sJ ‚y rÈ   )	r   rÝ   rb   r
   r-  r.  r/  r   r,  rA  s      r8   Útest_differentiate_wrt_c4z@TestFiberForceLengthActiveDeGroote2016.test_differentiate_wrt_c4À  sy   € Ü5°d·n±nÐVÀtÇ~Á~ÒVˆÜ˜Ÿ™¨$¯'©'Ñ1°AÑ5Ð5°q¸$¿'¹'ÀDÇGÁGÈDÏNÉNÑDZÑ:ZÐ]^Ñ9^Ñ7^Ñ_Ó`ˆØ�}‰}˜TŸW™WÓ%¨Ò1Ð1Ñ1r:   c                 óÌ  — t        | j                  g| j                  ¢­Ž }| j                  | j                  | j                  z
  z  | j
                  | j                  | j                  z  z   dz  z  t        | j                  | j                  z
  dz   d| j
                  | j                  | j                  z  z   dz  z  z  «      z  }|j                  | j                  «      |k(  sJ ‚y rÈ   ©	r   rÝ   rb   r,  r-  r.  r/  r
   r   rA  s      r8   Útest_differentiate_wrt_c5z@TestFiberForceLengthActiveDeGroote2016.test_differentiate_wrt_c5Å  rE  r:   c                 óÒ  — t        | j                  g| j                  ¢­Ž }| j                  | j                  | j                  z
  dz  z  | j
                  | j                  | j                  z  z   dz  z  t        | j                  | j                  z
  dz   d| j
                  | j                  | j                  z  z   dz  z  z  «      z  }|j                  | j
                  «      |k(  sJ ‚y r?  rM  rA  s      r8   Útest_differentiate_wrt_c6z@TestFiberForceLengthActiveDeGroote2016.test_differentiate_wrt_c6Í  rG  r:   c                 óì  — t        | j                  g| j                  ¢­Ž }| j                  | j                  z  | j                  | j                  z
  dz  z  | j
                  | j                  | j                  z  z   dz  z  t        | j                  | j                  z
  dz   d| j
                  | j                  | j                  z  z   dz  z  z  «      z  }|j                  | j                  «      |k(  sJ ‚y r?  rM  rA  s      r8   Útest_differentiate_wrt_c7z@TestFiberForceLengthActiveDeGroote2016.test_differentiate_wrt_c7Õ  rI  r:   c                 ó*  — t        | j                  g| j                  ¢­Ž }t        | j                  | j                  z
  dz   d| j
                  | j                  | j                  z  z   dz  z  z  «      }|j                  | j                  «      |k(  sJ ‚y rÈ   )	r   rÝ   rb   r
   r1  r2  r3  r   r0  rA  s      r8   Útest_differentiate_wrt_c8z@TestFiberForceLengthActiveDeGroote2016.test_differentiate_wrt_c8Ý  sy   € Ü5°d·n±nÐVÀtÇ~Á~ÒVˆÜ˜Ÿ™¨$¯'©'Ñ1°AÑ5Ð5°q¸$¿(¹(ÀTÇXÁXÈdÏnÉnÑE\Ñ:\Ð_`Ñ9`Ñ7`ÑaÓbˆØ�}‰}˜TŸW™WÓ%¨Ò1Ð1Ñ1r:   c                 óÌ  — t        | j                  g| j                  ¢­Ž }| j                  | j                  | j                  z
  z  | j
                  | j                  | j                  z  z   dz  z  t        | j                  | j                  z
  dz   d| j
                  | j                  | j                  z  z   dz  z  z  «      z  }|j                  | j                  «      |k(  sJ ‚y rÈ   ©	r   rÝ   rb   r0  r1  r2  r3  r
   r   rA  s      r8   Útest_differentiate_wrt_c9z@TestFiberForceLengthActiveDeGroote2016.test_differentiate_wrt_c9â  s¾   € Ü5°d·n±nÐVÀtÇ~Á~ÒVˆà�G‰G�T—^‘^ d§g¡gÑ-Ñ.°·±¸4¿8¹8ÀDÇNÁNÑ;RÑ0RÐUVÑ/VÑVÜ�4—>‘> D§G¡GÑ+¨aÑ/Ð/°°D·H±H¸t¿x¹xÈÏÉÑ?VÑ4VÐYZÑ3ZÑ1ZÑ[Ó\ñ]ð 	ð �}‰}˜TŸW™WÓ%¨Ò1Ð1Ñ1r:   c                 óÒ  — t        | j                  g| j                  ¢­Ž }| j                  | j                  | j                  z
  dz  z  | j
                  | j                  | j                  z  z   dz  z  t        | j                  | j                  z
  dz   d| j
                  | j                  | j                  z  z   dz  z  z  «      z  }|j                  | j
                  «      |k(  sJ ‚y r?  rV  rA  s      r8   Útest_differentiate_wrt_c10zATestFiberForceLengthActiveDeGroote2016.test_differentiate_wrt_c10ê  sÃ   € Ü5°d·n±nÐVÀtÇ~Á~ÒVˆà�G‰G�T—^‘^ d§g¡gÑ-°Ñ1Ñ1°4·8±8¸d¿h¹hÀtÇ~Á~Ñ>UÑ3UÐXYÑ2YÑYÜ�4—>‘> D§G¡GÑ+¨aÑ/Ð/°°D·H±H¸t¿x¹xÈÏÉÑ?VÑ4VÐYZÑ3ZÑ1ZÑ[Ó\ñ]ð 	ð �}‰}˜TŸX™XÓ&¨(Ò2Ð2Ñ2r:   c                 óì  — t        | j                  g| j                  ¢­Ž }| j                  | j                  z  | j                  | j                  z
  dz  z  | j
                  | j                  | j                  z  z   dz  z  t        | j                  | j                  z
  dz   d| j
                  | j                  | j                  z  z   dz  z  z  «      z  }|j                  | j                  «      |k(  sJ ‚y r?  rV  rA  s      r8   Útest_differentiate_wrt_c11zATestFiberForceLengthActiveDeGroote2016.test_differentiate_wrt_c11ò  sÏ   € Ü5°d·n±nÐVÀtÇ~Á~ÒVˆà�G‰G�D—N‘NÑ" D§N¡N°T·W±WÑ$<¸qÑ#@Ñ@À$Ç(Á(ÈTÏXÉXÐVZ×VdÑVdÑMdÑBdÐghÑAhÑhÜ�4—>‘> D§G¡GÑ+¨aÑ/Ð/°°D·H±H¸t¿x¹xÈÏÉÑ?VÑ4VÐYZÑ3ZÑ1ZÑ[Ó\ñ]ð 	ð �}‰}˜TŸX™XÓ&¨(Ò2Ð2Ñ2r:   c                 ó„   — t        | j                  g| j                  ¢­Ž }d}t        «       j	                  |«      |k(  sJ ‚y )Nz4\operatorname{fl}^M_{act} \left( l_{M tilde} \right))r   rÝ   rb   r    rE   rA  s      r8   r�   z@TestFiberForceLengthActiveDeGroote2016.test_function_print_latexú  s9   € Ü5°d·n±nÐVÀtÇ~Á~ÒVˆØJˆÜ‹~×%Ñ% hÓ/°8Ò;Ð;Ñ;r:   c                 ó    — t        | j                  g| j                  ¢­Ž }d}t        «       j	                  |j                  «       «      |k(  sJ ‚y )Na=  c_{0} e^{- \frac{\left(- c_{1} + l_{M tilde}\right)^{2}}{2 \left(c_{2} + c_{3} l_{M tilde}\right)^{2}}} + c_{4} e^{- \frac{\left(- c_{5} + l_{M tilde}\right)^{2}}{2 \left(c_{6} + c_{7} l_{M tilde}\right)^{2}}} + c_{8} e^{- \frac{\left(- c_{9} + l_{M tilde}\right)^{2}}{2 \left(c_{10} + c_{11} l_{M tilde}\right)^{2}}})r   rÝ   rb   r    rE   r?   rA  s      r8   r’   zBTestFiberForceLengthActiveDeGroote2016.test_expression_print_latexÿ  sG   € Ü5°d·n±nÐVÀtÇ~Á~ÒVˆð{ð 	ô
 ‹~×%Ñ% h§m¡m£oÓ6¸(ÒBÐBÑBr:   r.   aI  (0.81399999999999995*exp(-1.0/2.0*pow(l_M_tilde - 1.0600000000000001, 2)/pow(0.063299999999999995*l_M_tilde + 0.16200000000000001, 2)) + 0.433*exp(-1.0/2.0*pow(l_M_tilde - 0.71699999999999997, 2)/pow(0.20000000000000001*l_M_tilde - 0.029899999999999999, 2)) + 0.10000000000000001*exp(-3.9899134986753491*pow(l_M_tilde - 1.0, 2)))ab  (0.81399999999999995*exp(-1.0/2.0*std::pow(l_M_tilde - 1.0600000000000001, 2)/std::pow(0.063299999999999995*l_M_tilde + 0.16200000000000001, 2)) + 0.433*exp(-1.0/2.0*std::pow(l_M_tilde - 0.71699999999999997, 2)/std::pow(0.20000000000000001*l_M_tilde - 0.029899999999999999, 2)) + 0.10000000000000001*exp(-3.9899134986753491*std::pow(l_M_tilde - 1.0, 2)))aq  (0.81399999999999995*std::exp(-1.0/2.0*std::pow(l_M_tilde - 1.0600000000000001, 2)/std::pow(0.063299999999999995*l_M_tilde + 0.16200000000000001, 2)) + 0.433*std::exp(-1.0/2.0*std::pow(l_M_tilde - 0.71699999999999997, 2)/std::pow(0.20000000000000001*l_M_tilde - 0.029899999999999999, 2)) + 0.10000000000000001*std::exp(-3.9899134986753491*std::pow(l_M_tilde - 1.0, 2)))a6        (0.814d0*exp(-0.5d0*(l_M_tilde - 1.06d0)**2/(
     @ 0.063299999999999995d0*l_M_tilde + 0.16200000000000001d0)**2) +
     @ 0.433d0*exp(-0.5d0*(l_M_tilde - 0.717d0)**2/(
     @ 0.20000000000000001d0*l_M_tilde - 0.029899999999999999d0)**2) +
     @ 0.1d0*exp(-3.9899134986753491d0*(l_M_tilde - 1.0d0)**2))z¾(0.814*exp(-(l_M_tilde - 1.06).^2./(2*(0.0633*l_M_tilde + 0.162).^2)) + 0.433*exp(-(l_M_tilde - 0.717).^2./(2*(0.2*l_M_tilde - 0.0299).^2)) + 0.1*exp(-3.98991349867535*(l_M_tilde - 1.0).^2))zË(0.814*math.exp(-1/2*(l_M_tilde - 1.06)**2/(0.0633*l_M_tilde + 0.162)**2) + 0.433*math.exp(-1/2*(l_M_tilde - 0.717)**2/(0.2*l_M_tilde - 0.0299)**2) + 0.1*math.exp(-3.98991349867535*(l_M_tilde - 1.0)**2))zÎ(0.814*numpy.exp(-1/2*(l_M_tilde - 1.06)**2/(0.0633*l_M_tilde + 0.162)**2) + 0.433*numpy.exp(-1/2*(l_M_tilde - 0.717)**2/(0.2*l_M_tilde - 0.0299)**2) + 0.1*numpy.exp(-3.98991349867535*(l_M_tilde - 1.0)**2))zË(0.814*cupy.exp(-1/2*(l_M_tilde - 1.06)**2/(0.0633*l_M_tilde + 0.162)**2) + 0.433*cupy.exp(-1/2*(l_M_tilde - 0.717)**2/(0.2*l_M_tilde - 0.0299)**2) + 0.1*cupy.exp(-3.98991349867535*(l_M_tilde - 1.0)**2))zÚ(0.814*jax.numpy.exp(-1/2*(l_M_tilde - 1.06)**2/(0.0633*l_M_tilde + 0.162)**2) + 0.433*jax.numpy.exp(-1/2*(l_M_tilde - 0.717)**2/(0.2*l_M_tilde - 0.0299)**2) + 0.1*jax.numpy.exp(-3.98991349867535*(l_M_tilde - 1.0)**2))a€  (mpmath.mpf((0, 7331860193359167, -53, 53))*mpmath.exp(-mpmath.mpf(1)/mpmath.mpf(2)*(l_M_tilde + mpmath.mpf((1, 2386907802506363, -51, 52)))**2/(mpmath.mpf((0, 2280622851300419, -55, 52))*l_M_tilde + mpmath.mpf((0, 5836665117072163, -55, 53)))**2) + mpmath.mpf((0, 7800234554605699, -54, 53))*mpmath.exp(-mpmath.mpf(1)/mpmath.mpf(2)*(l_M_tilde + mpmath.mpf((1, 6458161865649291, -53, 53)))**2/(mpmath.mpf((0, 3602879701896397, -54, 52))*l_M_tilde + mpmath.mpf((1, 8618088246936181, -58, 53)))**2) + mpmath.mpf((0, 3602879701896397, -55, 52))*mpmath.exp(-mpmath.mpf((0, 8984486472937407, -51, 53))*(l_M_tilde + mpmath.mpf((1, 1, 0, 1)))**2))c                 óx   — t        j                  | j                  «      } |«       j                  |«      |k(  sJ ‚y r3   )r   ry   rÝ   rE   )r=   rF   rG   r8  s       r8   r”   z6TestFiberForceLengthActiveDeGroote2016.test_print_code  s4   € ôH 6×CÑCÀDÇNÁNÓSˆÙ‹~×%Ñ% hÓ/°8Ò;Ð;Ñ;r:   c                 ó¸   — t        j                  | j                  «      }|j                  | j                  «      }d}t	        «       j                  |«      |k(  sJ ‚y )NaÖ  (0.79798269973507 - 0.79798269973507*l_M_tilde)*math.exp(-3.98991349867535*(l_M_tilde - 1.0)**2) + (0.433*(0.717 - l_M_tilde)/(0.2*l_M_tilde - 0.0299)**2 + 0.0866*(l_M_tilde - 0.717)**2/(0.2*l_M_tilde - 0.0299)**3)*math.exp(-1/2*(l_M_tilde - 0.717)**2/(0.2*l_M_tilde - 0.0299)**2) + (0.814*(1.06 - l_M_tilde)/(0.0633*l_M_tilde + 0.162)**2 + 0.0515262*(l_M_tilde - 1.06)**2/(0.0633*l_M_tilde + 0.162)**3)*math.exp(-1/2*(l_M_tilde - 1.06)**2/(0.0633*l_M_tilde + 0.162)**2))r   ry   rÝ   r   r'   rE   )r=   r8  Úfl_M_act_dl_M_tilderG   s       r8   r—   zATestFiberForceLengthActiveDeGroote2016.test_derivative_print_codeo  sS   € Ü5×CÑCÀDÇNÁNÓSˆØ&Ÿm™m¨D¯N©NÓ;Ðð eð 	ô !Ó"×*Ñ*Ð+>Ó?À8ÒKÐKÑKr:   c                 ó®   — t        j                  | j                  «      }t        | j                  |«      } |d«      t	        j
                  d«      k(  sJ ‚y )Nr™   ç¦“sþÏï?)r   ry   rÝ   r(   rQ   rš   )r=   r8  Úfl_M_act_callables      r8   rœ   z4TestFiberForceLengthActiveDeGroote2016.test_lambdifyw  sC   € Ü5×CÑCÀDÇNÁNÓSˆÜ$ T§^¡^°XÓ>ÐÙ  Ó%¬¯©°|Ó)DÒDÐDÑDr:   Nr�   rž   c                 ó  — t        j                  | j                  «      }t        | j                  |d«      }t        j                  g d¢«      }t        j                  g d¢«      }t        j                  j                   ||«      |«       y )Nr*   ©rÑ   rû   r™   r   g       @©g	> P^?g]ŸŠQ«?rb  g”„þ)`™Í?gßŒ'œ�|?)r   ry   rÝ   r(   r*   r¥   r¦   r§   ©r=   r8  rc  rÝ   rG   s        r8   r©   z:TestFiberForceLengthActiveDeGroote2016.test_lambdify_numpy|  sg   € ä5×CÑCÀDÇNÁNÓSˆÜ$ T§^¡^°X¸wÓGÐÜ—K‘KÒ 9Ó:ˆ	Ü—;‘;ò  
ó ˆô 	�‰×%Ñ%Ñ&7¸	Ó&BÀHÕMr:   rª   c                 óf  — t        j                  | j                  «      }t        j	                  t        | j                  |d«      «      }t        j                  j                  g d¢«      }t        j                  j                  g d¢«      }t        j                  j                   ||«      |«       y )Nr)   re  rf  )
r   ry   rÝ   r)   r¬   r(   r*   r¥   r¦   r§   rg  s        r8   r­   z8TestFiberForceLengthActiveDeGroote2016.test_lambdify_jaxŠ  sx   € ä5×CÑCÀDÇNÁNÓSˆÜŸG™G¤H¨T¯^©^¸XÀuÓ$MÓNÐÜ—I‘I—O‘OÒ$=Ó>ˆ	Ü—9‘9—?‘?ò $
ó ˆô 	�‰×%Ñ%Ñ&7¸	Ó&BÀHÕMr:   )4r@   rA   rB   rQ   r®   r4  rP   rh   rn   rp   ru   r|   rí   rƒ   r…   r‰   r‹   rK  rN  rP  rR  rT  rW  rY  r[  r�   r’   rR   rS   r   r   r   r   r   r   r   r!   r'   r$   r%   r"   r#   r&   r   r”   r—   rœ   r¯   r*   r©   r)   r­   r4   r:   r8   r"  r"  J  s#  „ à€V‡^�^˜DÔ!ñ
ó "ð
ð& ñcó ðcò

ò
ò
ò5ò&9ò$9ò
2ò2ò2ò2ò
2ò2ò2ò2ò
2ò3ò3ò<ò
Cð ‡[�[×ÑØ ð ð `ðð ð `ðð ð `ðð !ð yðð !ð Hðð !ð Hðð ðVð	ð "ð Uðð "ð bðð ð eðð ð eðð ð bðð ð qðð ð W
ðð ð bððs_	
óbñF<óGbðF<òLòEð
 ‡[�[×Ñ˜ ˜Ð.CÐÓDñNó EðNð ‡[�[×Ñ˜˜t˜Ð,?ÐÓ@ñNó AñNr:   r"  c                   óÔ  — e Zd Z ej                  d¬«      d„ «       Zed„ «       Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej(                  j+                  dedfedfedfedfedfedfedfedfedfedfe dfe!dfe"dfe#dfe$dfg«      d„ «       Z%d„ Z&d„ Z'ej(                  jQ                  e)d u d!¬"«      d#„ «       Z*ej(                  jQ                  e+d u d$¬"«      d%„ «       Z,y )&Ú"TestFiberForceVelocityDeGroote2016TrV   c                 ó
  — t        d«      | _        t        d«      | _        t        d«      | _        t        d«      | _        t        d«      | _        | j                  | j                  | j                  | j
                  f| _        y )NÚ	v_M_tilderZ   r[   r\   r]   )r   rl  r^   r_   r`   ra   rb   rc   s    r8   Ú._muscle_fiber_force_velocity_arguments_fixturezQTestFiberForceVelocityDeGroote2016._muscle_fiber_force_velocity_arguments_fixture›  re   r:   c                  ó†   — t        t        t        «      sJ ‚t        t        t        «      sJ ‚t        j                  dk(  sJ ‚y )Nr   )rg   r   r   r   r@   r4   r:   r8   rh   z-TestFiberForceVelocityDeGroote2016.test_class¤  s:   € äÔ8¼(ÔCÐCÐCÜÔ8Ô:UÔVÐVÐVÜ-×6Ñ6Ð:ZÒZÐZÑZr:   c                 óˆ   — t        | j                  g| j                  ¢­Ž }t        |t         «      sJ ‚t	        |«      dk(  sJ ‚y )Nz=FiberForceVelocityDeGroote2016(v_M_tilde, c_0, c_1, c_2, c_3))r   rl  rb   rj   rk   ©r=   Úfv_Ms     r8   rn   z0TestFiberForceVelocityDeGroote2016.test_instanceª  s=   € Ü-¨d¯n©nÐN¸t¿~¹~ÒNˆÜ˜$Ô >Ô?Ð?Ð?Ü�4‹yÐ[Ò[Ð[Ñ[r:   c                 ól  — t        | j                  g| j                  ¢­Ž j                  «       }| j                  t        | j                  | j                  z  | j                  z   t        | j                  | j                  z  | j                  z   dz  dz   «      z   «      z  | j                  z   }||k(  sJ ‚y ©NrÉ   rÀ   )
r   rl  rb   r?   r^   r   r_   r`   r   ra   ©r=   rq  rG   s      r8   rp   z,TestFiberForceVelocityDeGroote2016.test_doit¯  sŸ   € Ü-¨d¯n©nÐN¸t¿~¹~ÒN×SÑSÓUˆà�G‰G”c˜4Ÿ7™7 T§^¡^Ñ3°d·g±gÑ=Ü�D—G‘G˜dŸn™nÑ,¨t¯w©wÑ6¸Ñ:¸QÑ>Ó?ñ@ó Añ AØCGÇ7Á7ñKð 	ð �xÒÐÑr:   c           
      ó‚  — t        | j                  g| j                  ¢­Ž j                  d¬«      }| j                  t        | j                  | j                  z  | j                  z   t        t        | j                  | j                  z  | j                  z   «      dz  dz   «      z   «      z  | j                  z   }||k(  sJ ‚y )NFrs   rÉ   rÀ   )r   rl  rb   r?   r^   r   r_   r`   r   r   ra   rt  s      r8   ru   z;TestFiberForceVelocityDeGroote2016.test_doit_evaluate_false·  s¬   € Ü-¨d¯n©nÐN¸t¿~¹~ÒN×SÑSÐ]bÐSÓcˆà�G‰G”c˜4Ÿ7™7 T§^¡^Ñ3°d·g±gÑ=Ü”? 4§7¡7¨T¯^©^Ñ#;¸d¿g¹gÑ#EÓFÈÑIÈAÑMÓNñOó Pñ PØRV×RYÑRYñZð 	ð �xÒÐÑr:   c                 óÐ   — t        d«      t        d«      t        d«      t        d«      f}t        | j                  g|¢­Ž }t        j                  | j                  «      }||k(  sJ ‚y ©Nz-0.318z-8.149z-0.374z0.886)r   r   rl  ry   )r=   rb   Úfv_M_manualÚfv_M_constantss       r8   r|   z5TestFiberForceVelocityDeGroote2016.test_with_defaults¿  s\   € ä�(‹OÜ�(‹OÜ�(‹OÜ�'‹Nð	
ˆ	ô 5°T·^±^ÐPÀiÒPˆÜ7×EÑEÀdÇnÁnÓUˆØ˜nÒ,Ð,Ñ,r:   c                 ó4  — t        | j                  g| j                  ¢­Ž }| j                  | j                  z  t        t        | j                  | j                  z  | j                  z   «      dz  dz   «      z  }|j                  | j                  «      |k(  sJ ‚y rs  )	r   rl  rb   r^   r_   r   r   r`   r   rt  s      r8   Ú test_differentiate_wrt_v_M_tildezCTestFiberForceVelocityDeGroote2016.test_differentiate_wrt_v_M_tildeÊ  s}   € Ü-¨d¯n©nÐN¸t¿~¹~ÒNˆà�G‰G�D—G‘G‰OÜ”/ $§'¡'¨$¯.©.Ñ"8¸4¿7¹7Ñ"BÓCÀQÑFÈÑJÓKñLð 	ð �y‰y˜Ÿ™Ó(¨HÒ4Ð4Ñ4r:   c           	      ó`  — t        | j                  g| j                  ¢­Ž }t        | j                  | j                  z  | j
                  z   t        t        | j                  | j                  z  | j
                  z   «      dz  dz   «      z   «      }|j                  | j                  «      |k(  sJ ‚y rs  )
r   rl  rb   r   r_   r`   r   r   r   r^   rt  s      r8   rƒ   z<TestFiberForceVelocityDeGroote2016.test_differentiate_wrt_c0Ò  sŒ   € Ü-¨d¯n©nÐN¸t¿~¹~ÒNˆÜØ�G‰G�D—N‘NÑ" T§W¡WÑ,Ü”? 4§7¡7¨4¯>©>Ñ#9¸D¿G¹GÑ#CÓDÀaÑGÈ!ÑKÓLñMó
ˆð �y‰y˜Ÿ™Ó! XÒ-Ð-Ñ-r:   c                 ó4  — t        | j                  g| j                  ¢­Ž }| j                  | j                  z  t	        t        | j                  | j                  z  | j                  z   «      dz  dz   «      z  }|j                  | j                  «      |k(  sJ ‚y rs  ©	r   rl  rb   r^   r   r   r_   r`   r   rt  s      r8   r…   z<TestFiberForceVelocityDeGroote2016.test_differentiate_wrt_c1Ú  s~   € Ü-¨d¯n©nÐN¸t¿~¹~ÒNˆà�G‰G�D—N‘NÑ"Ü”/ $§'¡'¨$¯.©.Ñ"8¸4¿7¹7Ñ"BÓCÀQÑFÈÑJÓKñLð 	ð �y‰y˜Ÿ™Ó! XÒ-Ð-Ñ-r:   c                 ó  — t        | j                  g| j                  ¢­Ž }| j                  t	        t        | j                  | j                  z  | j                  z   «      dz  dz   «      z  }|j                  | j                  «      |k(  sJ ‚y rs  r~  rt  s      r8   r‰   z<TestFiberForceVelocityDeGroote2016.test_differentiate_wrt_c2â  su   € Ü-¨d¯n©nÐN¸t¿~¹~ÒNˆà�G‰GÜ”/ $§'¡'¨$¯.©.Ñ"8¸4¿7¹7Ñ"BÓCÀQÑFÈÑJÓKñLð 	ð �y‰y˜Ÿ™Ó! XÒ-Ð-Ñ-r:   c                 óš   — t        | j                  g| j                  ¢­Ž }t        d«      }|j	                  | j
                  «      |k(  sJ ‚y r¿   )r   rl  rb   r   r   ra   rt  s      r8   r‹   z<TestFiberForceVelocityDeGroote2016.test_differentiate_wrt_c3ê  s=   € Ü-¨d¯n©nÐN¸t¿~¹~ÒNˆÜ˜1“:ˆØ�y‰y˜Ÿ™Ó! XÒ-Ð-Ñ-r:   c                 ót   — t        | j                  g| j                  ¢­Ž }|j                  «       t        u sJ ‚y r3   )r   rl  rb   r�   r   rp  s     r8   rŽ   z/TestFiberForceVelocityDeGroote2016.test_inverseï  s.   € Ü-¨d¯n©nÐN¸t¿~¹~ÒNˆØ�|‰|‹~Ô!FÑFÐFÑFr:   c                 ó„   — t        | j                  g| j                  ¢­Ž }d}t        «       j	                  |«      |k(  sJ ‚y )Nz.\operatorname{fv}^M \left( v_{M tilde} \right))r   rl  rb   r    rE   rt  s      r8   r�   z<TestFiberForceVelocityDeGroote2016.test_function_print_latexó  s9   € Ü-¨d¯n©nÐN¸t¿~¹~ÒNˆØDˆÜ‹~×%Ñ% dÓ+¨xÒ7Ð7Ñ7r:   c                 ó    — t        | j                  g| j                  ¢­Ž }d}t        «       j	                  |j                  «       «      |k(  sJ ‚y )Nzsc_{0} \log{\left(c_{1} v_{M tilde} + c_{2} + \sqrt{\left(c_{1} v_{M tilde} + c_{2}\right)^{2} + 1} \right)} + c_{3})r   rl  rb   r    rE   r?   rt  s      r8   r’   z>TestFiberForceVelocityDeGroote2016.test_expression_print_latexø  sG   € Ü-¨d¯n©nÐN¸t¿~¹~ÒNˆðDð 	ô ‹~×%Ñ% d§i¡i£kÓ2°hÒ>Ð>Ñ>r:   r.   z‚(0.88600000000000001 - 0.318*log(-8.1489999999999991*v_M_tilde - 0.374 + sqrt(1 + pow(-8.1489999999999991*v_M_tilde - 0.374, 2))))zŒ(0.88600000000000001 - 0.318*log(-8.1489999999999991*v_M_tilde - 0.374 + std::sqrt(1 + std::pow(-8.1489999999999991*v_M_tilde - 0.374, 2))))z‘(0.88600000000000001 - 0.318*std::log(-8.1489999999999991*v_M_tilde - 0.374 + std::sqrt(1 + std::pow(-8.1489999999999991*v_M_tilde - 0.374, 2))))z�      (0.886d0 - 0.318d0*log(-8.1489999999999991d0*v_M_tilde - 0.374d0 +
     @ sqrt(1.0d0 + (-8.149d0*v_M_tilde - 0.374d0)**2)))zW(0.886 - 0.318*log(-8.149*v_M_tilde - 0.374 + sqrt(1 + (-8.149*v_M_tilde - 0.374).^2)))za(0.886 - 0.318*math.log(-8.149*v_M_tilde - 0.374 + math.sqrt(1 + (-8.149*v_M_tilde - 0.374)**2)))zc(0.886 - 0.318*numpy.log(-8.149*v_M_tilde - 0.374 + numpy.sqrt(1 + (-8.149*v_M_tilde - 0.374)**2)))za(0.886 - 0.318*cupy.log(-8.149*v_M_tilde - 0.374 + cupy.sqrt(1 + (-8.149*v_M_tilde - 0.374)**2)))zk(0.886 - 0.318*jax.numpy.log(-8.149*v_M_tilde - 0.374 + jax.numpy.sqrt(1 + (-8.149*v_M_tilde - 0.374)**2)))aC  (mpmath.mpf((0, 7980378539700519, -53, 53)) - mpmath.mpf((0, 5728578726015271, -54, 53))*mpmath.log(-mpmath.mpf((0, 4587479170430271, -49, 53))*v_M_tilde + mpmath.mpf((1, 3368692521273131, -53, 52)) + mpmath.sqrt(1 + (-mpmath.mpf((0, 4587479170430271, -49, 53))*v_M_tilde + mpmath.mpf((1, 3368692521273131, -53, 52)))**2)))z\(0.886 - 0.318*math.log(-8.149*v_M_tilde - 0.374 + sqrt(1 + (-8.149*v_M_tilde - 0.374)**2)))c                 óx   — t        j                  | j                  «      } |«       j                  |«      |k(  sJ ‚y r3   )r   ry   rl  rE   )r=   rF   rG   rq  s       r8   r”   z2TestFiberForceVelocityDeGroote2016.test_print_code   s4   € ôj .×;Ñ;¸D¿N¹NÓKˆÙ‹~×%Ñ% dÓ+¨xÒ7Ð7Ñ7r:   c                 ó¸   — t        j                  | j                  «      }|j                  | j                  «      }d}t	        «       j                  |«      |k(  sJ ‚y )Nz42.591382*(1 + (-8.149*v_M_tilde - 0.374)**2)**(-1/2))r   ry   rl  r   r'   rE   )r=   rq  Údfv_M_dv_M_tilderG   s       r8   r—   z=TestFiberForceVelocityDeGroote2016.test_derivative_print_codeX  sK   € Ü-×;Ñ;¸D¿N¹NÓKˆØŸ9™9 T§^¡^Ó4ÐØIˆÜ Ó"×*Ñ*Ð+;Ó<ÀÒHÐHÑHr:   c                 ó®   — t        j                  | j                  «      }t        | j                  |«      } |d«      t	        j
                  d«      k(  sJ ‚y )NrÑ   gJ<_Y�	ð?)r   ry   rl  r(   rQ   rš   )r=   rq  Úfv_M_callables      r8   rœ   z0TestFiberForceVelocityDeGroote2016.test_lambdify^  sC   € Ü-×;Ñ;¸D¿N¹NÓKˆÜ  §¡°Ó6ˆÙ˜SÓ!¤V§]¡]Ð3DÓ%EÒEÐEÑEr:   Nr�   rž   c                 ó  — t        j                  | j                  «      }t        | j                  |d«      }t        j                  g d¢«      }t        j                  g d¢«      }t        j                  j                   ||«      |«       y )Nr*   ©g      ð¿g      à¿rÑ   rû   ©g$ù�bG¾ˆ?gÝø»ð5Ï?gÜæ[Y�	ð?g“Å‡^)\ù?)r   ry   rl  r(   r*   r¥   r¦   r§   ©r=   rq  rˆ  rl  rG   s        r8   r©   z6TestFiberForceVelocityDeGroote2016.test_lambdify_numpyc  se   € ä-×;Ñ;¸D¿N¹NÓKˆÜ  §¡°°wÓ?ˆÜ—K‘KÒ 6Ó7ˆ	Ü—;‘;ò  
ó ˆô 	�‰×%Ñ%¡m°IÓ&>ÀÕIr:   rª   c                 óf  — t        j                  | j                  «      }t        j	                  t        | j                  |d«      «      }t        j                  j                  g d¢«      }t        j                  j                  g d¢«      }t        j                  j                   ||«      |«       y )Nr)   rŠ  r‹  )
r   ry   rl  r)   r¬   r(   r*   r¥   r¦   r§   rŒ  s        r8   r­   z4TestFiberForceVelocityDeGroote2016.test_lambdify_jaxp  sv   € ä-×;Ñ;¸D¿N¹NÓKˆÜŸ™¤¨¯©¸¸uÓ EÓFˆÜ—I‘I—O‘OÒ$:Ó;ˆ	Ü—9‘9—?‘?ò $
ó ˆô 	�‰×%Ñ%¡m°IÓ&>ÀÕIr:   )-r@   rA   rB   rQ   r®   rm  rP   rh   rn   rp   ru   r|   r{  rƒ   r…   r‰   r‹   rŽ   r�   r’   rR   rS   r   r   r   r   r   r   r   r!   r'   r$   r%   r"   r#   r&   r   r”   r—   rœ   r¯   r*   r©   r)   r­   r4   r:   r8   rj  rj  ™  sÿ  „ à€V‡^�^˜DÔ!ñ>ó "ð>ð ñ[ó ð[ò
\ò
 ò ò	-ò5ò.ò.ò.ò.ò
Gò8ò
?ð ‡[�[×ÑØ ð ðVðð ðVðð ðVðð !ð`ðð !ð`ðð !ð`ðð ðKðð "ð>ðð "ðCðð ðDðð ðDðð ðCðð ðHðð ðFðð ð>ððWP	
óSñh8óiSðh8òIòFð
 ‡[�[×Ñ˜ ˜Ð.CÐÓDñ
Jó Eð
Jð ‡[�[×Ñ˜˜t˜Ð,?ÐÓ@ñ
Jó Añ
Jr:   rj  c                   óÔ  — e Zd Z ej                  d¬«      d„ «       Zed„ «       Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej(                  j+                  dedfedfedfedfedfedfedfedfedfedfe dfe!dfe"dfe#dfe$dfg«      d„ «       Z%d„ Z&d„ Z'ej(                  jQ                  e)du d¬ «      d!„ «       Z*ej(                  jQ                  e+du d"¬ «      d#„ «       Z,y)$Ú)TestFiberForceVelocityInverseDeGroote2016TrV   c                 ó
  — t        d«      | _        t        d«      | _        t        d«      | _        t        d«      | _        t        d«      | _        | j                  | j                  | j                  | j
                  f| _        y )Nrq  rZ   r[   r\   r]   )r   rq  r^   r_   r`   ra   rb   rc   s    r8   r³   zXTestFiberForceVelocityInverseDeGroote2016._tendon_force_length_inverse_arguments_fixture€  r´   r:   c                  ó†   — t        t        t        «      sJ ‚t        t        t        «      sJ ‚t        j                  dk(  sJ ‚y )Nr   )rg   r   r   r   r@   r4   r:   r8   rh   z4TestFiberForceVelocityInverseDeGroote2016.test_class‰  s:   € äÔ?ÄÔJÐJÐJÜÔ?ÔA\Ô]Ð]Ð]Ü4×=Ñ=ÐAhÒhÐhÑhr:   c                 óˆ   — t        | j                  g| j                  ¢­Ž }t        |t         «      sJ ‚t	        |«      dk(  sJ ‚y )Nz?FiberForceVelocityInverseDeGroote2016(fv_M, c_0, c_1, c_2, c_3))r   rq  rb   rj   rk   ©r=   Úfv_M_invs     r8   rn   z7TestFiberForceVelocityInverseDeGroote2016.test_instance�  s=   € Ü8¸¿¹ÐTÀTÇ^Á^ÒTˆÜ˜(Ô$IÔJÐJÐJÜ�8‹}Ð aÒaÐaÑar:   c                 óü   — t        | j                  g| j                  ¢­Ž j                  «       }|t	        | j                  | j
                  z
  | j                  z  «      | j                  z
  | j                  z  k(  sJ ‚y r3   )	r   rq  rb   r?   r   ra   r^   r`   r_   r“  s     r8   rp   z3TestFiberForceVelocityInverseDeGroote2016.test_doit”  s]   € Ü8¸¿¹ÐTÀTÇ^Á^ÒT×YÑYÓ[ˆØœD $§)¡)¨d¯g©gÑ"5°t·w±wÑ!>Ó?À$Ç'Á'ÑIÈ4Ï7É7ÑRÒRÐRÑRr:   c                 ó  — t        | j                  g| j                  ¢­Ž j                  d¬«      }|t	        t        | j                  | j                  z
  «      | j                  z  «      | j                  z
  | j                  z  k(  sJ ‚y rr   )
r   rq  rb   r?   r   r   ra   r^   r`   r_   r“  s     r8   ru   zBTestFiberForceVelocityInverseDeGroote2016.test_doit_evaluate_false˜  sn   € Ü8¸¿¹ÐTÀTÇ^Á^ÒT×YÑYÐchÐYÓiˆØœD¤°·±¸T¿W¹WÑ1DÓ!EÀdÇgÁgÑ!MÓNÐQU×QXÑQXÑXÐZ^×ZaÑZaÑaÒaÐaÑar:   c                 óÐ   — t        d«      t        d«      t        d«      t        d«      f}t        | j                  g|¢­Ž }t        j                  | j                  «      }||k(  sJ ‚y rw  )r   r   rq  ry   )r=   rb   Úfv_M_inv_manualÚfv_M_inv_constantss       r8   r|   z<TestFiberForceVelocityInverseDeGroote2016.test_with_defaultsœ  sb   € ä�(‹OÜ�(‹OÜ�(‹OÜ�'‹Nð	
ˆ	ô @ÀÇ	Á	ÐVÈIÒVˆÜB×PÑPÐQU×QZÑQZÓ[ÐØÐ"4Ò4Ð4Ñ4r:   c                 ó  — t        | j                  g| j                  ¢­Ž }t        | j                  | j                  z
  | j
                  z  «      | j
                  | j                  z  z  }|j                  | j                  «      |k(  sJ ‚y r3   ©r   rq  rb   r   ra   r^   r_   r   ©r=   r”  rG   s      r8   Útest_differentiate_wrt_fv_MzETestFiberForceVelocityInverseDeGroote2016.test_differentiate_wrt_fv_M§  se   € Ü8¸¿¹ÐTÀTÇ^Á^ÒTˆÜ˜Ÿ™ T§W¡WÑ,¨d¯g©gÑ5Ó6¸¿¹ÀÇÁ¹ÑHˆØ�}‰}˜TŸY™YÓ'¨8Ò3Ð3Ñ3r:   c                 óP  — t        | j                  g| j                  ¢­Ž }| j                  | j                  z
  t	        | j                  | j                  z
  | j
                  z  «      z  | j
                  dz  | j                  z  z  }|j                  | j
                  «      |k(  sJ ‚y rÈ   )r   rq  rb   ra   r   r^   r_   r   rœ  s      r8   rƒ   zCTestFiberForceVelocityInverseDeGroote2016.test_differentiate_wrt_c0¬  s€   € Ü8¸¿¹ÐTÀTÇ^Á^ÒTˆØ—G‘G˜dŸi™iÑ'¬¨t¯y©y¸4¿7¹7Ñ/BÀDÇGÁGÑ.KÓ)LÑLÈdÏgÉgÐWXÉjÐY]×Y`ÑY`ÑN`ÑaˆØ�}‰}˜TŸW™WÓ%¨Ò1Ð1Ñ1r:   c                 ó  — t        | j                  g| j                  ¢­Ž }| j                  t	        | j                  | j
                  z
  | j                  z  «      z
  | j                  dz  z  }|j                  | j                  «      |k(  sJ ‚y rÈ   )	r   rq  rb   r`   r   ra   r^   r_   r   rœ  s      r8   r…   zCTestFiberForceVelocityInverseDeGroote2016.test_differentiate_wrt_c1±  sj   € Ü8¸¿¹ÐTÀTÇ^Á^ÒTˆØ—G‘Gœd D§I¡I°·±Ñ$7¸¿¹Ñ#@ÓAÑAÀ4Ç7Á7ÈAÁ:ÑMˆØ�}‰}˜TŸW™WÓ%¨Ò1Ð1Ñ1r:   c                 ó¢   — t        | j                  g| j                  ¢­Ž }d| j                  z  }|j	                  | j
                  «      |k(  sJ ‚y r‡   )r   rq  rb   r_   r   r`   rœ  s      r8   r‰   zCTestFiberForceVelocityInverseDeGroote2016.test_differentiate_wrt_c2¶  sA   € Ü8¸¿¹ÐTÀTÇ^Á^ÒTˆØ�d—g‘g‘:ˆØ�}‰}˜TŸW™WÓ%¨Ò1Ð1Ñ1r:   c                 ó  — t        | j                  g| j                  ¢­Ž }t        | j                  | j                  z
  | j
                  z  «       | j
                  | j                  z  z  }|j                  | j                  «      |k(  sJ ‚y r3   r›  rœ  s      r8   r‹   zCTestFiberForceVelocityInverseDeGroote2016.test_differentiate_wrt_c3»  sh   € Ü8¸¿¹ÐTÀTÇ^Á^ÒTˆÜ˜$Ÿ)™) d§g¡gÑ-¨t¯w©wÑ6Ó7Ð7¸¿¹ÀÇÁ¹ÑIˆØ�}‰}˜TŸW™WÓ%¨Ò1Ð1Ñ1r:   c                 ót   — t        | j                  g| j                  ¢­Ž }|j                  «       t        u sJ ‚y r3   )r   rq  rb   r�   r   r“  s     r8   rŽ   z6TestFiberForceVelocityInverseDeGroote2016.test_inverseÀ  s1   € Ü8¸¿¹ÐTÀTÇ^Á^ÒTˆØ×ÑÓ!Ô%CÑCÐCÑCr:   c                 ó„   — t        | j                  g| j                  ¢­Ž }d}t        «       j	                  |«      |k(  sJ ‚y )Nz=\left( \operatorname{fv}^M \right)^{-1} \left( fv_{M} \right))r   rq  rb   r    rE   rœ  s      r8   r�   zCTestFiberForceVelocityInverseDeGroote2016.test_function_print_latexÄ  s9   € Ü8¸¿¹ÐTÀTÇ^Á^ÒTˆØSˆÜ‹~×%Ñ% hÓ/°8Ò;Ð;Ñ;r:   c                 ó    — t        | j                  g| j                  ¢­Ž }d}t        «       j	                  |j                  «       «      |k(  sJ ‚y )NzK\frac{- c_{2} + \sinh{\left(\frac{- c_{3} + fv_{M}}{c_{0}} \right)}}{c_{1}})r   rq  rb   r    rE   r?   rt  s      r8   r’   zETestFiberForceVelocityInverseDeGroote2016.test_expression_print_latexÉ  s?   € Ü4°T·Y±YÐPÀÇÁÒPˆØaˆÜ‹~×%Ñ% d§i¡i£kÓ2°hÒ>Ð>Ñ>r:   r.   zV(-0.12271444348999878*(0.374 - sinh(3.1446540880503142*(fv_M - 0.88600000000000001))))z[(-0.12271444348999878*(0.374 - std::sinh(3.1446540880503142*(fv_M - 0.88600000000000001))))z[      (-0.122714443489999d0*(0.374d0 - sinh(3.1446540880503142d0*(fv_M -
     @ 0.886d0))))zD(-0.122714443489999*(0.374 - sinh(3.14465408805031*(fv_M - 0.886))))zI(-0.122714443489999*(0.374 - math.sinh(3.14465408805031*(fv_M - 0.886))))zJ(-0.122714443489999*(0.374 - numpy.sinh(3.14465408805031*(fv_M - 0.886))))zI(-0.122714443489999*(0.374 - cupy.sinh(3.14465408805031*(fv_M - 0.886))))zN(-0.122714443489999*(0.374 - jax.numpy.sinh(3.14465408805031*(fv_M - 0.886))))zÈ(-mpmath.mpf((0, 8842507551592581, -56, 53))*(mpmath.mpf((0, 3368692521273131, -53, 52)) - mpmath.sinh(mpmath.mpf((0, 7081131489576251, -51, 53))*(fv_M + mpmath.mpf((1, 7980378539700519, -53, 53))))))c                 óx   — t        j                  | j                  «      } |«       j                  |«      |k(  sJ ‚y r3   )r   ry   rq  rE   )r=   rF   rG   r”  s       r8   r”   z9TestFiberForceVelocityInverseDeGroote2016.test_print_codeÎ  s4   € ôf 9×FÑFÀtÇyÁyÓQˆÙ‹~×%Ñ% hÓ/°8Ò;Ð;Ñ;r:   c                 ó¸   — t        j                  | j                  «      }|j                  | j                  «      }d}t	        «       j                  |«      |k(  sJ ‚y )NzE0.385894476383644*math.cosh(3.14465408805031*fv_M - 2.78616352201258))r   ry   rq  r   r'   rE   )r=   r”  Údfv_M_inv_dfv_MrG   s       r8   r—   zDTestFiberForceVelocityInverseDeGroote2016.test_derivative_print_code$  sP   € Ü8×FÑFÀtÇyÁyÓQˆØ"Ÿ-™-¨¯	©	Ó2ˆð"ð 	ô !Ó"×*Ñ*¨?Ó;¸xÒGÐGÑGr:   c                 ó®   — t        j                  | j                  «      }t        | j                  |«      } |d«      t	        j
                  d«      k(  sJ ‚y )Nr™   g±M8'$JO¿)r   ry   rq  r(   rQ   rš   )r=   r”  Úfv_M_inv_callables      r8   rœ   z7TestFiberForceVelocityInverseDeGroote2016.test_lambdify-  sD   € Ü8×FÑFÀtÇyÁyÓQˆÜ$ T§Y¡Y°Ó9ÐÙ  Ó%¬¯©Ð7MÓ)NÒNÐNÑNr:   Nr�   rž   c                 ó  — t        j                  | j                  «      }t        | j                  |d«      }t        j                  g d¢«      }t        j                  g d¢«      }t        j                  j                   ||«      |«       y )Nr*   ©rü   rý   r™   rþ   rÿ   ©gºgËUY´¿gm7éH:»¤¿gÆ²È$JO¿gõ^¦8¦?gH�²�¸?)r   ry   rq  r(   r*   r¥   r¦   r§   ©r=   r”  r©  rq  rG   s        r8   r©   z=TestFiberForceVelocityInverseDeGroote2016.test_lambdify_numpy2  sg   € ä8×FÑFÀtÇyÁyÓQˆÜ$ T§Y¡Y°¸'ÓBÐÜ�{‰{Ò4Ó5ˆÜ—;‘;ò  
ó ˆô 	�‰×%Ñ%Ñ&7¸Ó&=¸xÕHr:   rª   c                 óf  — t        j                  | j                  «      }t        j	                  t        | j                  |d«      «      }t        j                  j                  g d¢«      }t        j                  j                  g d¢«      }t        j                  j                   ||«      |«       y )Nr)   r«  r¬  )
r   ry   rq  r)   r¬   r(   r*   r¥   r¦   r§   r­  s        r8   r­   z;TestFiberForceVelocityInverseDeGroote2016.test_lambdify_jax@  sx   € ä8×FÑFÀtÇyÁyÓQˆÜŸG™G¤H¨T¯Y©Y¸À%Ó$HÓIÐÜ�y‰y�‰Ò8Ó9ˆÜ—9‘9—?‘?ò $
ó ˆô 	�‰×%Ñ%Ñ&7¸Ó&=¸xÕHr:   )-r@   rA   rB   rQ   r®   r³   rP   rh   rn   rp   ru   r|   r�  rƒ   r…   r‰   r‹   rŽ   r�   r’   rR   rS   r   r   r   r   r   r   r   r!   r'   r$   r%   r"   r#   r&   r   r”   r—   rœ   r¯   r*   r©   r)   r­   r4   r:   r8   r�  r�  ~  sô  „ à€V‡^�^˜DÔ!ñ>ó "ð>ð ñió ðiò
bò
Sòbò	5ò4ò
2ò
2ò
2ò
2ò
Dò<ò
?ð
 ‡[�[×ÑØ ð ð,ðð ð,ðð ð,ðð !ð,ðð !ð3ðð !ð3ðð ð%ðð "ððð "ððð ð%ðð ð%ðð ððð ð%ðð ð2ðð ðððSN	
óQñd<óeQðd<òHòOð
 ‡[�[×Ñ˜ ˜Ð.CÐÓDñIó EðIð ‡[�[×Ñ˜˜t˜Ð,?ÐÓ@ñIó AñIr:   r�  c                   óâ   — e Zd Zed„ «       Zeej                  j                  d¬«      d„ «       «       Zeej                  j                  dde
ie
eeeeeeddœg«      d	„ «       «       Zed
„ «       Zy)Ú!TestCharacteristicCurveCollectionc            	      óx  — t        t        t        t        t        t
        t        t        ¬«      } | j                  t        u sJ ‚| j                  t        u sJ ‚| j                  t        u sJ ‚| j                  t        u sJ ‚| j                  t
        u sJ ‚| j                  t        u sJ ‚| j                  t        u sJ ‚y ©N)Útendon_force_lengthÚtendon_force_length_inverseÚfiber_force_length_passiveÚ"fiber_force_length_passive_inverseÚfiber_force_length_activeÚfiber_force_velocityÚfiber_force_velocity_inverse)r   r   r   r   r   r   r   r   r³  r´  rµ  r¶  r·  r¸  r¹  ©Úcurvess    r8   Útest_valid_constructorz8TestCharacteristicCurveCollection.test_valid_constructorQ  s¶   € ä.Ü =Ü(LÜ'JÜ/YÜ&HÜ!?Ü)Nô
ˆð ×)Ñ)Ô-JÑJÐJÐJØ×1Ñ1Ô5YÑYÐYÐYØ×0Ñ0Ô4WÑWÐWÐWØ×8Ñ8Ô<fÑfÐfÐfØ×/Ñ/Ô3UÑUÐUÐUØ×*Ñ*Ô.LÑLÐLÐLØ×2Ñ2Ô6[Ñ[Ð[Ñ[r:   z.kw_only dataclasses only valid in Python >3.10rž   c            
      óº   — t        j                  t        «      5  t        t        t
        t        t        t        t        t        «      } d d d «       y # 1 sw Y   y xY wr3   )rQ   ÚraisesÚ	TypeErrorr   r   r   r   r   r   r   r   )Ú_s    r8   Ú%test_invalid_constructor_keyword_onlyzGTestCharacteristicCurveCollection.test_invalid_constructor_keyword_onlyd  sD   € ô �]‰]œ9Ó%ñ 		Ü-Ü-Ü4Ü3Ü:Ü2Ü.Ü5óˆA÷		÷ 		ñ 		ús   š.AÁAr>   r³  N)r³  r´  rµ  r¶  r·  r¸  r¹  Úextra_kwargc                 óv   — t        j                  t        «      5  t        di | ¤Ž}d d d «       y # 1 sw Y   y xY w)Nr4   )rQ   r¾  r¿  r   )r>   rÀ  s     r8   Ú*test_invalid_constructor_wrong_number_argszLTestCharacteristicCurveCollection.test_invalid_constructor_wrong_number_argsr  s2   € ô$ �]‰]œ9Ó%ñ 	8Ü-Ñ7°Ñ7ˆA÷	8÷ 	8ñ 	8ús   š/¯8c            	      óH  — t        t        t        t        t        t
        t        t        ¬«      } t        j                  t        «      5  d | _        d d d «       t        j                  t        «      5  d | _        d d d «       t        j                  t        «      5  d | _        d d d «       t        j                  t        «      5  d | _        d d d «       t        j                  t        «      5  d | _        d d d «       t        j                  t        «      5  d | _        d d d «       t        j                  t        «      5  d | _        d d d «       y # 1 sw Y   �ŒxY w# 1 sw Y   ŒäxY w# 1 sw Y   ŒÇxY w# 1 sw Y   ŒªxY w# 1 sw Y   Œ�xY w# 1 sw Y   ŒpxY w# 1 sw Y   y xY wr²  )r   r   r   r   r   r   r   r   rQ   r¾  ÚAttributeErrorr³  r´  rµ  r¶  r·  r¸  r¹  rº  s    r8   Útest_instance_is_immutablez<TestCharacteristicCurveCollection.test_instance_is_immutable‡  sG  € ä.Ü =Ü(LÜ'JÜ/YÜ&HÜ!?Ü)Nô
ˆô �]‰]œ>Ó*ñ 	.Ø)-ˆFÔ&÷	.ä�]‰]œ>Ó*ñ 	6Ø15ˆFÔ.÷	6ä�]‰]œ>Ó*ñ 	5Ø04ˆFÔ-÷	5ä�]‰]œ>Ó*ñ 	=Ø8<ˆFÔ5÷	=ä�]‰]œ>Ó*ñ 	4Ø/3ˆFÔ,÷	4ä�]‰]œ>Ó*ñ 	/Ø*.ˆFÔ'÷	/ä�]‰]œ>Ó*ñ 	7Ø26ˆFÔ/÷	7ð 	7÷	.ñ 	.ú÷	6ð 	6ú÷	5ð 	5ú÷	=ð 	=ú÷	4ð 	4ú÷	/ð 	/ú÷	7ð 	7úsT   ÁEÁ1EÂE(ÃE4Ã,F ÄFÄ>FÅEÅE%Å(E1Å4E=Æ F	ÆFÆF!)r@   rA   rB   rP   r¼  rQ   rR   ÚskiprÁ  rS   r   r   r   r   r   r   r   rÄ  rÇ  r4   r:   r8   r°  r°  O  s³   „ àñ\ó ð\ð$ Ø‡[�[×ÑÐMÐÓNñ
ó Oó ð
ð Ø‡[�[×ÑØà"Ð$AÐBà'DØ/SØ.QØ6`Ø-OØ(FØ0UØ#ñ	ð	
óñ 8ó!ó ð"8ð ñ7ó ñ7r:   r°  )GÚ__doc__rQ   Úsympy.core.exprr   Úsympy.core.functionr   Úsympy.core.numbersr   r   Úsympy.core.symbolr   r   Úsympy.external.importtoolsr	   Ú&sympy.functions.elementary.exponentialr
   r   Ú%sympy.functions.elementary.hyperbolicr   r   Ú(sympy.functions.elementary.miscellaneousr   Ú sympy.physics.biomechanics.curver   r   r   r   r   r   r   r   r   Úsympy.printing.cr   r   r   Úsympy.printing.cxxr   r   r   Úsympy.printing.fortranr   Úsympy.printing.lambdareprr   Úsympy.printing.latexr    Úsympy.printing.octaver!   Úsympy.printing.numpyr"   r#   r$   r%   Úsympy.printing.pycoder&   r'   Úsympy.utilities.lambdifyr(   r)   r*   ÚconfigÚupdater-   rU   r±   rÛ   r  r"  rj  r�  r°  r4   r:   r8   ú<module>rÞ     s  ðÙ Lã å +Ý (ß -ß -Ý 4ß ;ß <Ý 9÷
÷ 
õ 
÷ LÑ K÷ñ õ
 0Ý 3Ý -Ý 3÷ó ÷ CÝ -á�EÓ€Ù�gÓ€áØ‡J�J×ÑÐ&¨Ô-÷'<ñ '<÷TzJñ zJ÷z~Iñ ~I÷BxNñ xN÷vrQñ rQ÷jLNñ LN÷^
bJñ bJ÷JNIñ NI÷bP7ò P7r:   