§
    OŠtj( ã                   óŠ  — 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: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*¦  «        ZFdS )+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                             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S )Ú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¦  «        \  }}}}}} |||¦  «        }	 |||¦  «        }
 |||¦  «        } | ¦   «                              |	|
z  |z  ¦  «        |k    sJ ‚d S )Nc                   ó*   — e Zd Zed„ ¦   «         Zd„ ZdS )úUTestCharacteristicCurveFunction.test_print_code_parenthesize.<locals>.ExampleFunctionc                 ó   — d S ©N© )ÚclsÚaÚbs      úi/var/www/html/CA-Chatbot/venv/lib/python3.11/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‘��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   s°   € ð.	ð 	ð 	ð 	ð 	Õ9ñ 	ô 	ð 	õ #Ð#5Ñ6Ô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                             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         (                    e)du d¬ ¦  «        d!„ ¦   «         Z*ej         (                    e+du d"¬ ¦  «        d#„ ¦   «         Z,dS )$Ú!TestTendonForceLengthDeGroote2016T©Úautousec                 ó  — t          d¦  «        | _        t          d¦  «        | _        t          d¦  «        | _        t          d¦  «        | _        t          d¦  «        | _        | j        | j        | j        | j        f| _        d S )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^   óa   € å Ñ,Ô,ˆŒÝ˜‘-”-ˆŒÝ˜‘-”-ˆŒÝ˜‘-”-ˆŒÝ˜‘-”-ˆŒØœ' 4¤7¨D¬G°T´WÐ=ˆŒˆˆr:   c                  óš   — t          t          t          ¦  «        sJ ‚t          t          t          ¦  «        sJ ‚t          j        dk    sJ ‚d S )Nr   )Ú
issubclassr   r   r   r@   r4   r:   r8   Ú
test_classz,TestTendonForceLengthDeGroote2016.test_classg   sL   € åÕ7½ÑBÔBÐBÐBÐBÝÕ7Õ9TÑUÔUÐUÐUÐUÝ,Ô5Ð9XÒXÐXÐXÐXÐXÐXr:   c                 óŒ   — t          | j        g| j        ¢R Ž }t          |t           ¦  «        sJ ‚t	          |¦  «        dk    sJ ‚d S )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   sP   € Ý,¨T¬^ÐM¸d¼nÐMÐMÐMˆÝ˜$Õ =Ñ>Ô>Ð>Ð>Ð>Ý�4‰yŒyÐZÒZÐZÐZÐZÐZÐZr:   c                 óÌ   — t          | j        g| j        ¢R Ž                      ¦   «         }|| j        t          | j        | j        | j        z
  z  ¦  «        z  | j        z
  k    sJ ‚d S r3   )	r   rY   rb   r?   r^   r
   ra   r_   r`   rl   s     r8   Ú	test_doitz+TestTendonForceLengthDeGroote2016.test_doitr   sd   € Ý,¨T¬^ÐM¸d¼nÐMÐMÐM×RÒRÑTÔTˆØ�t”w�s 4¤7¨D¬N¸T¼WÑ,DÑ#EÑFÔFÑFÈÌÑPÒPÐPÐPÐPÐPÐPr:   c           	      óê   — t          | j        g| j        ¢R Ž                      d¬¦  «        }|| j        t          | j        t          | j        | j        z
  ¦  «        z  ¦  «        z  | j	        z
  k    sJ ‚d S ©NF©Úevaluate)
r   rY   rb   r?   r^   r
   ra   r   r_   r`   rl   s     r8   Útest_doit_evaluate_falsez:TestTendonForceLengthDeGroote2016.test_doit_evaluate_falsev   st   € Ý,¨T¬^ÐM¸d¼nÐMÐMÐM×RÒRÐ\aÐRÑbÔbˆØ�t”w�s 4¤7­?¸4¼>ÈDÌGÑ;SÑ+TÔ+TÑ#TÑUÔUÑUÐX\ÔX_Ñ_Ò_Ð_Ð_Ð_Ð_Ð_r:   c                 óà   — t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        f}t          | j        g|¢R Ž }t          j        | j        ¦  «        }||k    sJ ‚d S ©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   sr   € å�%‰LŒLÝ�'‰NŒNÝ�&‰MŒMÝÐ%Ñ&Ô&ð	
ˆ	õ 4°D´NÐOÀYÐOÐOÐOˆÝ6ÔDÀTÄ^ÑTÔTˆØ˜nÒ,Ð,Ð,Ð,Ð,Ð,r:   c                 óø   — t          | j        g| j        ¢R Ž }| j        | j        z  t          | j        t          | j         | j        z   ¦  «        z  ¦  «        z  }|                     | j        ¦  «        |k    sJ ‚d S 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…   st   € Ý,¨T¬^ÐM¸d¼nÐMÐMÐMˆØ”7˜4œ7‘?¥3 t¤w­ÀÄ¸xÈ$Ì.Ñ?XÑ/YÔ/YÑ'YÑ#ZÔ#ZÑZˆØ�yŠy˜œÑ(Ô(¨HÒ4Ð4Ð4Ð4Ð4Ð4r:   c                 óØ   — t          | j        g| j        ¢R Ž }t          | j        t          | j         | j        z   ¦  «        z  ¦  «        }|                     | j        ¦  «        |k    sJ ‚d S r3   )	r   rY   rb   r
   ra   r   r_   r   r^   r€   s      r8   Útest_differentiate_wrt_c0z;TestTendonForceLengthDeGroote2016.test_differentiate_wrt_c0Š   sg   € Ý,¨T¬^ÐM¸d¼nÐMÐMÐMˆÝ�t”w�°´¨x¸$¼.Ñ/HÑIÔIÑIÑJÔJˆØ�yŠy˜œÑ!Ô! XÒ-Ð-Ð-Ð-Ð-Ð-r:   c                 óø   — t          | j        g| j        ¢R Ž }| j         | j        z  t          | j        t          | j        | j        z
  ¦  «        z  ¦  «        z  }|                     | j        ¦  «        |k    sJ ‚d S r3   r~   r€   s      r8   Útest_differentiate_wrt_c1z;TestTendonForceLengthDeGroote2016.test_differentiate_wrt_c1�   sw   € Ý,¨T¬^ÐM¸d¼nÐMÐMÐMˆØ”G�8˜DœGÑ#¥C¨¬µÀÄÐQUÔQXÑ@XÑ0YÔ0YÑ(YÑ$ZÔ$ZÑZˆØ�yŠy˜œÑ!Ô! XÒ-Ð-Ð-Ð-Ð-Ð-r:   c                 ó’   — t          | j        g| j        ¢R Ž }t          d¦  «        }|                     | j        ¦  «        |k    sJ ‚d S ©Néÿÿÿÿ)r   rY   rb   r   r   r`   r€   s      r8   Útest_differentiate_wrt_c2z;TestTendonForceLengthDeGroote2016.test_differentiate_wrt_c2”   sK   € Ý,¨T¬^ÐM¸d¼nÐMÐMÐMˆÝ˜2‘;”;ˆØ�yŠy˜œÑ!Ô! XÒ-Ð-Ð-Ð-Ð-Ð-r:   c                 ó  — t          | j        g| j        ¢R Ž }| j        | j        | j        z
  z  t          | j        t          | j        | j        z
  ¦  «        z  ¦  «        z  }|                     | j        ¦  «        |k    sJ ‚d S r3   )	r   rY   rb   r^   r_   r
   ra   r   r   r€   s      r8   Útest_differentiate_wrt_c3z;TestTendonForceLengthDeGroote2016.test_differentiate_wrt_c3™   s~   € Ý,¨T¬^ÐM¸d¼nÐMÐMÐMˆØ”7˜DœN¨T¬WÑ4Ñ5µc¸$¼'Å/ÐRVÔR`ÐcgÔcjÑRjÑBkÔBkÑ:kÑ6lÔ6lÑlˆØ�yŠy˜œÑ!Ô! XÒ-Ð-Ð-Ð-Ð-Ð-r:   c                 ón   — t          | j        g| j        ¢R Ž }|                     ¦   «         t          u sJ ‚d S r3   )r   rY   rb   Úinverser   rl   s     r8   Útest_inversez.TestTendonForceLengthDeGroote2016.test_inversež   s;   € Ý,¨T¬^ÐM¸d¼nÐMÐMÐMˆØ�|Š|‰~Œ~Õ!EÐEÐEÐEÐEÐEÐEr:   c                 ó†   — t          | j        g| j        ¢R Ž }d}t          ¦   «                              |¦  «        |k    sJ ‚d S )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¢   sI   € Ý,¨T¬^ÐM¸d¼nÐMÐMÐMˆØDˆÝ‰~Œ~×%Ò% dÑ+Ô+¨xÒ7Ð7Ð7Ð7Ð7Ð7r:   c                 óª   — t          | j        g| j        ¢R Ž }d}t          ¦   «                              |                     ¦   «         ¦  «        |k    sJ ‚d S )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§   sQ   € Ý,¨T¬^ÐM¸d¼nÐMÐMÐMˆØPˆÝ‰~Œ~×%Ò% d§i¢i¡k¤kÑ2Ô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                 ó~   — t          j        | j        ¦  «        } |¦   «                              |¦  «        |k    sJ ‚d S r3   )r   ry   rY   rE   )r=   rF   rG   rm   s       r8   Útest_print_codez1TestTendonForceLengthDeGroote2016.test_print_code¬   sB   € õH -Ô:¸4¼>ÑJÔJˆØˆ|‰~Œ~×%Ò% dÑ+Ô+¨xÒ7Ð7Ð7Ð7Ð7Ð7r:   c                 ó¾   — t          j        | j        ¦  «        }|                     | j        ¦  «        }d}t	          ¦   «                              |¦  «        |k    sJ ‚d S )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ó   sY   € Ý,Ô:¸4¼>ÑJÔJˆØŸ9š9 T¤^Ñ4Ô4ÐØVˆÝ Ñ"Ô"×*Ò*Ð+;Ñ<Ô<ÀÒHÐHÐHÐHÐHÐHr:   c                 ó¨   — t          j        | j        ¦  «        }t          | j        |¦  «        } |d¦  «        t	          j        d¦  «        k    sJ ‚d S )Nç      ð?gÀ Aæ§Š¿)r   ry   rY   r(   rQ   Úapprox)r=   rm   Úfl_T_callables      r8   Útest_lambdifyz/TestTendonForceLengthDeGroote2016.test_lambdifyù   sQ   € Ý,Ô:¸4¼>ÑJÔJˆÝ  ¤°Ñ6Ô6ˆØˆ}˜SÑ!Ô!¥V¤]Ð3HÑ%IÔ%IÒIÐIÐIÐIÐIÐIr:   NúNumPy not installed©Úreasonc                 ó&  — t          j        | j        ¦  «        }t          | j        |d¦  «        }t                               g d¢¦  «        }t                               g d¢¦  «        }t          j                              ||¦  «        |¦  «         d S )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þ   s‹   € å,Ô:¸4¼>ÑJÔJˆÝ  ¤°°wÑ?Ô?ˆÝ—K’KÐ 7Ð 7Ð 7Ñ8Ô8ˆ	Ý—;’;ð  
ð  
ð  
ñ ô ˆõ 	Œ×%Ò% m m°IÑ&>Ô&>ÀÑIÔIÐIÐIÐIr:   úJAX not installedc                 ój  — t          j        | j        ¦  «        }t                               t          | j        |d¦  «        ¦  «        }t          j                             g d¢¦  «        }t          j                             g d¢¦  «        }t          j         	                     ||¦  «        |¦  «         d S )Nr)   r¡   r¤   )
r   ry   rY   r)   Újitr(   r*   r¥   r¦   r§   r¨   s        r8   Útest_lambdify_jaxz3TestTendonForceLengthDeGroote2016.test_lambdify_jax  s›   € å,Ô:¸4¼>ÑJÔJˆÝŸš¥¨¬¸¸uÑ EÔ EÑFÔFˆÝ”I—O’OÐ$;Ð$;Ð$;Ñ<Ô<ˆ	Ý”9—?’?ð $
ð $
ð $
ñ ô ˆõ 	Œ×%Ò% m m°IÑ&>Ô&>ÀÑIÔIÐIÐ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ñ „\ðYð
[ð [ð [ð
Qð Qð Qð`ð `ð `ð	-ð 	-ð 	-ð5ð 5ð 5ð
.ð .ð .ð
.ð .ð .ð
.ð .ð .ð
.ð .ð .ð
Fð Fð Fð8ð 8ð 8ð
?ð ?ð ?ð
 „[×ÒØ ð ØZðð
 ØZðð
 ØZðð
 !ØZðð
 !Ø_ðð
 !Ø_ðð
 ØXðð
 "ØJðð
 "ØOðð
 ØPðð
 ØPðð
 ØOðð
 ØTðð
 ð@ðð ØOððw?	
ñBô BðF8ð 8ñGBô BðF8ðIð Ið IðJð Jð Jð
 „[×Ò˜ ˜Ð.CÐÑDÔDð
Jð 
Jñ EÔDð
Jð „[×Ò˜˜t˜Ð,?ÐÑ@Ô@ð
Jð 
Jñ AÔ@ð
Jð 
Jð 
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                             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         (                    e)du d¬ ¦  «        d!„ ¦   «         Z*ej         (                    e+du d"¬ ¦  «        d#„ ¦   «         Z,dS )$Ú(TestTendonForceLengthInverseDeGroote2016TrV   c                 ó  — t          d¦  «        | _        t          d¦  «        | _        t          d¦  «        | _        t          d¦  «        | _        t          d¦  «        | _        | j        | j        | j        | j        f| _        d S )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  ó_   € å˜6‘N”NˆŒ	Ý˜‘-”-ˆŒÝ˜‘-”-ˆŒÝ˜‘-”-ˆŒÝ˜‘-”-ˆŒØœ' 4¤7¨D¬G°T´WÐ=ˆŒˆˆr:   c                  óš   — t          t          t          ¦  «        sJ ‚t          t          t          ¦  «        sJ ‚t          j        dk    sJ ‚d S )Nr   )rg   r   r   r   r@   r4   r:   r8   rh   z3TestTendonForceLengthInverseDeGroote2016.test_class$  sL   € åÕ>ÅÑIÔIÐIÐIÐIÝÕ>Õ@[Ñ\Ô\Ð\Ð\Ð\Ý3Ô<Ð@fÒfÐfÐfÐfÐfÐfr:   c                 óŒ   — t          | j        g| j        ¢R Ž }t          |t           ¦  «        sJ ‚t	          |¦  «        dk    sJ ‚d S )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*  sP   € Ý7¸¼	ÐSÀDÄNÐSÐSÐSˆÝ˜(Õ$HÑIÔIÐIÐIÐIÝ�8‰}Œ}Ð `Ò`Ð`Ð`Ð`Ð`Ð`r:   c                 óÌ   — t          | j        g| j        ¢R Ž                      ¦   «         }|t	          | j        | j        z   | j        z  ¦  «        | j        z  | j        z   k    sJ ‚d S r3   )	r   rm   rb   r?   r   r`   r^   ra   r_   r·   s     r8   rp   z2TestTendonForceLengthInverseDeGroote2016.test_doit/  sd   € Ý7¸¼	ÐSÀDÄNÐSÐSÐS×XÒXÑZÔZˆØ�3 ¤	¨D¬GÑ 3°T´WÑ<Ñ=Ô=¸d¼gÑEÈÌÑOÒOÐOÐOÐOÐOÐOr:   c                 óê   — t          | j        g| j        ¢R Ž                      d¬¦  «        }|t	          t          | j        | j        z   | j        z  ¦  «        ¦  «        | j        z  | j	        z   k    sJ ‚d S rr   )
r   rm   rb   r?   r   r   r`   r^   ra   r_   r·   s     r8   ru   zATestTendonForceLengthInverseDeGroote2016.test_doit_evaluate_false3  st   € Ý7¸¼	ÐSÀDÄNÐSÐSÐS×XÒXÐbgÐXÑhÔhˆØ�3�°´	¸D¼GÑ0CÀTÄWÑ/LÑMÔMÑNÔNÈtÌwÑVÐY]ÔY`Ñ`Ò`Ð`Ð`Ð`Ð`Ð`r:   c                 óà   — t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        f}t          | j        g|¢R Ž }t          j        | j        ¦  «        }||k    sJ ‚d S rw   )r   r   rm   ry   )r=   rb   Úfl_T_inv_manualÚfl_T_inv_constantss       r8   r|   z;TestTendonForceLengthInverseDeGroote2016.test_with_defaults7  sv   € å�%‰LŒLÝ�'‰NŒNÝ�&‰MŒMÝÐ%Ñ&Ô&ð	
ˆ	õ ?¸t¼yÐUÈ9ÐUÐUÐUˆÝAÔOÐPTÔPYÑZÔZÐØÐ"4Ò4Ð4Ð4Ð4Ð4Ð4r:   c                 ó¨   — t          | j        g| j        ¢R Ž }d| j        | j        | j        z   z  z  }|                     | j        ¦  «        |k    sJ ‚d S ©Né   ©r   rm   rb   ra   r`   r   ©r=   r¸   rG   s      r8   Útest_differentiate_wrt_fl_TzDTestTendonForceLengthInverseDeGroote2016.test_differentiate_wrt_fl_TB  sZ   € Ý7¸¼	ÐSÀDÄNÐSÐSÐSˆØ�d”g˜tœy¨4¬7Ñ2Ñ3Ñ4ˆØ�}Š}˜TœYÑ'Ô'¨8Ò3Ð3Ð3Ð3Ð3Ð3r:   c                 ó˜   — t          | j        g| j        ¢R Ž }d| j        | j        z  z  }|                     | j        ¦  «        |k    sJ ‚d S r‡   )r   rm   rb   r^   ra   r   rÂ   s      r8   rƒ   zBTestTendonForceLengthInverseDeGroote2016.test_differentiate_wrt_c0G  sR   € Ý7¸¼	ÐSÀDÄNÐSÐSÐSˆØ�t”w˜tœw‘Ñ'ˆØ�}Š}˜TœWÑ%Ô%¨Ò1Ð1Ð1Ð1Ð1Ð1r:   c                 ó’   — t          | j        g| j        ¢R Ž }t          d¦  «        }|                     | j        ¦  «        |k    sJ ‚d S r¿   )r   rm   rb   r   r   r_   rÂ   s      r8   r…   zBTestTendonForceLengthInverseDeGroote2016.test_differentiate_wrt_c1L  sK   € Ý7¸¼	ÐSÀDÄNÐSÐSÐSˆÝ˜1‘:”:ˆØ�}Š}˜TœWÑ%Ô%¨Ò1Ð1Ð1Ð1Ð1Ð1r:   c                 ó¨   — t          | j        g| j        ¢R Ž }d| j        | j        | j        z   z  z  }|                     | j        ¦  «        |k    sJ ‚d S r¿   rÁ   rÂ   s      r8   r‰   zBTestTendonForceLengthInverseDeGroote2016.test_differentiate_wrt_c2Q  sZ   € Ý7¸¼	ÐSÀDÄNÐSÐSÐSˆØ�d”g˜tœy¨4¬7Ñ2Ñ3Ñ4ˆØ�}Š}˜TœWÑ%Ô%¨Ò1Ð1Ð1Ð1Ð1Ð1r:   c                 óî   — t          | j        g| j        ¢R Ž }t          t	          | j        | j        z   | j        z  ¦  «        ¦  «         | j        dz  z  }|                     | j        ¦  «        |k    sJ ‚d S ©Né   )	r   rm   rb   r   r   r`   r^   ra   r   rÂ   s      r8   r‹   zBTestTendonForceLengthInverseDeGroote2016.test_differentiate_wrt_c3V  st   € Ý7¸¼	ÐSÀDÄNÐSÐSÐSˆÝ�¨¬°T´WÑ)<¸d¼gÑ(EÑFÔFÑGÔGÐGÈÌÐQRÉ
ÑRˆØ�}Š}˜TœWÑ%Ô%¨Ò1Ð1Ð1Ð1Ð1Ð1r:   c                 ón   — t          | j        g| j        ¢R Ž }|                     ¦   «         t          u sJ ‚d S r3   )r   rm   rb   r�   r   r·   s     r8   rŽ   z5TestTendonForceLengthInverseDeGroote2016.test_inverse[  s?   € Ý7¸¼	ÐSÀDÄNÐSÐSÐSˆØ×ÒÑ!Ô!Õ%BÐBÐBÐBÐBÐBÐBr:   c                 ó†   — t          | j        g| j        ¢R Ž }d}t          ¦   «                              |¦  «        |k    sJ ‚d S )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_  sI   € Ý7¸¼	ÐSÀDÄNÐSÐSÐSˆØSˆÝ‰~Œ~×%Ò% hÑ/Ô/°8Ò;Ð;Ð;Ð;Ð;Ð;r:   c                 óª   — t          | j        g| j        ¢R Ž }d}t          ¦   «                              |                     ¦   «         ¦  «        |k    sJ ‚d S )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  sQ   € Ý3°D´IÐOÀÄÐOÐOÐOˆØ\ˆÝ‰~Œ~×%Ò% d§i¢i¡k¤kÑ2Ô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                 ó~   — t          j        | j        ¦  «        } |¦   «                              |¦  «        |k    sJ ‚d S r3   )r   ry   rm   rE   )r=   rF   rG   r¸   s       r8   r”   z8TestTendonForceLengthInverseDeGroote2016.test_print_codei  sB   € õH 8ÔEÀdÄiÑPÔPˆØˆ|‰~Œ~×%Ò% hÑ/Ô/°8Ò;Ð;Ð;Ð;Ð;Ð;r:   c                 ó¾   — t          j        | j        ¦  «        }|                     | j        ¦  «        }d}t	          ¦   «                              |¦  «        |k    sJ ‚d S )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°  sW   € Ý7ÔEÀdÄiÑPÔPˆØ"Ÿ-š-¨¬	Ñ2Ô2ˆØCˆÝ Ñ"Ô"×*Ò*¨?Ñ;Ô;¸xÒGÐGÐGÐGÐGÐGr:   c                 ó¨   — t          j        | j        ¦  «        }t          | j        |¦  «        } |d¦  «        t	          j        d¦  «        k    sJ ‚d S )Nç        ç¡mIÏsð?)r   ry   rm   r(   rQ   rš   )r=   r¸   Úfl_T_inv_callables      r8   rœ   z6TestTendonForceLengthInverseDeGroote2016.test_lambdify¶  sR   € Ý7ÔEÀdÄiÑPÔPˆÝ$ T¤Y°Ñ9Ô9ÐØ Ð  Ñ%Ô%­¬°|Ñ)DÔ)DÒDÐDÐDÐDÐDÐDr:   Nr�   rž   c                 ó&  — t          j        | j        ¦  «        }t          | j        |d¦  «        }t                               g d¢¦  «        }t                               g d¢¦  «        }t          j                              ||¦  «        |¦  «         d S )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»  sŽ   € å7ÔEÀdÄiÑPÔPˆÝ$ T¤Y°¸'ÑBÔBÐÝ�{Š{Ð?Ð?Ð?Ñ@Ô@ˆÝ—;’;ð  
ð  
ð  
ñ ô ˆõ 	Œ×%Ò%Ð&7Ð&7¸Ñ&=Ô&=¸xÑHÔHÐHÐHÐHr:   rª   c                 ój  — t          j        | j        ¦  «        }t                               t          | j        |d¦  «        ¦  «        }t          j                             g d¢¦  «        }t          j                             g d¢¦  «        }t          j         	                     ||¦  «        |¦  «         d S )Nr)   rÕ   r×   )
r   ry   rm   r)   r¬   r(   r*   r¥   r¦   r§   rØ   s        r8   r­   z:TestTendonForceLengthInverseDeGroote2016.test_lambdify_jaxÊ  sž   € å7ÔEÀdÄiÑPÔPˆÝŸGšG¥H¨T¬Y¸À%Ñ$HÔ$HÑIÔIÐÝŒy�ŠÐCÐCÐCÑDÔDˆÝ”9—?’?ð $
ð $
ð $
ñ ô ˆõ 	Œ×%Ò%Ð&7Ð&7¸Ñ&=Ô&=¸xÑHÔHÐHÐHÐ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ñ „\ðgð
að að að
Pð Pð Pðað að að	5ð 	5ð 	5ð4ð 4ð 4ð
2ð 2ð 2ð
2ð 2ð 2ð
2ð 2ð 2ð
2ð 2ð 2ð
Cð Cð Cð<ð <ð <ð
?ð ?ð ?ð
 „[×ÒØ ð ØEðð
 ØEðð
 ØEðð
 !ØEðð
 !ØJðð
 !ØJðð
 ØRðð
 "ØDðð
 "ØIðð
 ØJðð
 ØJðð
 ØIðð
 ØNðð
 ðZðð ØIððw?	
ñBô BðF<ð <ñGBô BðF<ðHð Hð HðEð Eð Eð
 „[×Ò˜ ˜Ð.CÐÑDÔDðIð Iñ EÔDðIð „[×Ò˜˜t˜Ð,?ÐÑ@Ô@ðIð Iñ AÔ@ðIð Ið 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                             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         &                    e'du d¬¦  «        d„ ¦   «         Z(ej         &                    e)du d ¬¦  «        d!„ ¦   «         Z*dS )"Ú'TestFiberForceLengthPassiveDeGroote2016TrV   c                 ó¤   — t          d¦  «        | _        t          d¦  «        | _        t          d¦  «        | _        | j        | j        f| _        d S )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Ü  s?   € å Ñ,Ô,ˆŒÝ˜‘-”-ˆŒÝ˜‘-”-ˆŒØœ' 4¤7Ð+ˆŒˆˆr:   c                  óš   — t          t          t          ¦  «        sJ ‚t          t          t          ¦  «        sJ ‚t          j        dk    sJ ‚d S )Nr   )rg   r   r   r   r@   r4   r:   r8   rh   z2TestFiberForceLengthPassiveDeGroote2016.test_classã  sL   € åÕ=½xÑHÔHÐHÐHÐHÝÕ=Õ?ZÑ[Ô[Ð[Ð[Ð[Ý2Ô;Ð?dÒdÐdÐdÐdÐdÐdr:   c                 óŒ   — t          | j        g| j        ¢R Ž }t          |t           ¦  «        sJ ‚t	          |¦  «        dk    sJ ‚d S )Nz8FiberForceLengthPassiveDeGroote2016(l_M_tilde, c_0, c_1))r   rÝ   rb   rj   rk   ©r=   Úfl_M_pass     r8   rn   z5TestFiberForceLengthPassiveDeGroote2016.test_instanceé  sP   € Ý6°t´~ÐWÈÌÐWÐWÐWˆÝ˜(Õ$GÑHÔHÐHÐHÐHÝ�8‰}Œ}Ð ZÒZÐZÐZÐZÐZÐZr:   c                 óè   — t          | j        g| j        ¢R Ž                      ¦   «         }|t	          | j        | j        dz
  z  | j        z  ¦  «        dz
  t	          | j        ¦  «        dz
  z  k    sJ ‚d S r¿   )r   rÝ   rb   r?   r
   r_   r^   rá   s     r8   rp   z1TestFiberForceLengthPassiveDeGroote2016.test_doitî  su   € Ý6°t´~ÐWÈÌÐWÐWÐW×\Ò\Ñ^Ô^ˆØ�C ¤¨$¬.¸1Ñ*<Ñ!=¸t¼wÑ FÑGÔGÈ!ÑKÍcÐRVÔRYÉlÌlÐ]^ÑN^Ñ_Ò_Ð_Ð_Ð_Ð_Ð_r:   c                 ó  — t          | j        g| j        ¢R Ž                      d¬¦  «        }|t	          | j        t          | j        dz
  ¦  «        z  | j        z  ¦  «        dz
  t	          | j        ¦  «        dz
  z  k    sJ ‚d S ©NFrs   rÀ   )r   rÝ   rb   r?   r
   r_   r   r^   rá   s     r8   ru   z@TestFiberForceLengthPassiveDeGroote2016.test_doit_evaluate_falseò  s‡   € Ý6°t´~ÐWÈÌÐWÐWÐW×\Ò\ÐfkÐ\ÑlÔlˆØ�C ¤­¸¼È!Ñ9KÑ)LÔ)LÑ!LÈdÌgÑ UÑVÔVÐYZÑZÕ]`ÐaeÔahÑ]iÔ]iÐlmÑ]mÑnÒnÐnÐnÐnÐnÐnr:   c                 ó¨   — t          d¦  «        t          d¦  «        f}t          | j        g|¢R Ž }t          j        | j        ¦  «        }||k    sJ ‚d S ©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ö  s_   € å�%‰LŒLÝ�%‰LŒLð
ˆ	õ >¸d¼nÐYÈyÐYÐYÐYˆÝ@ÔNÈtÌ~Ñ^Ô^ÐØÐ"4Ò4Ð4Ð4Ð4Ð4Ð4r:   c                 ó,  — t          | j        g| j        ¢R Ž }| j        t	          | j        t          | j        dz
  ¦  «        z  | j        z  ¦  «        z  | j        t	          | j        ¦  «        dz
  z  z  }|                     | j        ¦  «        |k    sJ ‚d S 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ÐWÐWˆØ”7�3˜tœw¥°t´~ÈÑ7IÑ'JÔ'JÑJÈ4Ì7ÑRÑSÔSÑSÐUYÔU\Õ^aÐbfÔbiÑ^jÔ^jÐmnÑ^nÑUoÑpˆØ�}Š}˜Tœ^Ñ,Ô,°Ò8Ð8Ð8Ð8Ð8Ð8r:   c                 ód  — t          | j        g| j        ¢R Ž }| 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        ¦  «        |k    sJ ‚d S ©NrÀ   rÉ   rë   rì   s      r8   rƒ   zATestFiberForceLengthPassiveDeGroote2016.test_differentiate_wrt_c0  s°   € Ý6°t´~ÐWÈÌÐWÐWÐWˆàŒWˆH•S˜œ¥°´À!Ñ1CÑ!DÔ!DÑDÀTÄWÑLÑMÔMÑMÝ˜Tœ^¨aÑ/Ñ0Ô0ñ1Ø26´'¸1±*½cÀ$Ä'¹l¼lÈQÑ>NÑ2OñQð 	ð �}Š}˜TœWÑ%Ô%¨Ò1Ð1Ð1Ð1Ð1Ð1r:   c           	      ó  — t          | j        g| j        ¢R Ž }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        ¦  «        |k    sJ ‚d S )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ÐWÐWˆå�”‰\Œ\ˆM˜2¥ D¤G­O¸D¼NÈQÑ<NÑ,OÔ,OÑ$OÐPTÔPWÑ$WÑ XÔ XÑXÑYÕ[^Ð_cÔ_fÑ[gÔ[gÐjkÑ[kÐnoÑZoÑoÝ�$”'�/¨$¬.¸1Ñ*<Ñ=Ô=Ñ=¸d¼gÑEÑFÔFÈÌÐYZÑHZÑ[Ð]aÔ]dÕfiÐjnÔjqÑfrÔfrÐuvÑfvÑ]wÑxñyð 	ð �}Š}˜TœWÑ%Ô%¨Ò1Ð1Ð1Ð1Ð1Ð1r:   c                 ón   — t          | j        g| j        ¢R Ž }|                     ¦   «         t          u sJ ‚d S r3   )r   rÝ   rb   r�   r   rá   s     r8   rŽ   z4TestFiberForceLengthPassiveDeGroote2016.test_inverse  s?   € Ý6°t´~ÐWÈÌÐWÐWÐWˆØ×ÒÑ!Ô!Õ%OÐOÐOÐOÐOÐOÐOr:   c                 ó†   — t          | j        g| j        ¢R Ž }d}t          ¦   «                              |¦  «        |k    sJ ‚d S )Nz4\operatorname{fl}^M_{pas} \left( l_{M tilde} \right))r   rÝ   rb   r    rE   rì   s      r8   r�   zATestFiberForceLengthPassiveDeGroote2016.test_function_print_latex  sI   € Ý6°t´~ÐWÈÌÐWÐWÐWˆØJˆÝ‰~Œ~×%Ò% hÑ/Ô/°8Ò;Ð;Ð;Ð;Ð;Ð;r:   c                 óª   — t          | j        g| j        ¢R Ž }d}t          ¦   «                              |                     ¦   «         ¦  «        |k    sJ ‚d S )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  sQ   € Ý6°t´~ÐWÈÌÐWÐWÐWˆØdˆÝ‰~Œ~×%Ò% h§m¢m¡o¤oÑ6Ô6¸(ÒBÐBÐBÐ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                 ó~   — t          j        | j        ¦  «        } |¦   «                              |¦  «        |k    sJ ‚d S r3   )r   ry   rÝ   rE   )r=   rF   rG   râ   s       r8   r”   z7TestFiberForceLengthPassiveDeGroote2016.test_print_code"  sB   € õH 7ÔDÀTÄ^ÑTÔTˆØˆ|‰~Œ~×%Ò% hÑ/Ô/°8Ò;Ð;Ð;Ð;Ð;Ð;r:   c                 ó¾   — t          j        | j        ¦  «        }|                     | j        ¦  «        }d}t	          ¦   «                              |¦  «        |k    sJ ‚d S )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  sY   € Ý6ÔDÀTÄ^ÑTÔTˆØ&Ÿmšm¨D¬NÑ;Ô;ÐØPˆÝ Ñ"Ô"×*Ò*Ð+>Ñ?Ô?À8ÒKÐKÐKÐKÐKÐKr:   c                 ó¨   — t          j        | j        ¦  «        }t          | j        |¦  «        } |d¦  «        t	          j        d¦  «        k    sJ ‚d S )Nr™   rÑ   )r   ry   rÝ   r(   rQ   rš   )r=   râ   Úfl_M_pas_callables      r8   rœ   z5TestFiberForceLengthPassiveDeGroote2016.test_lambdifyo  sR   € Ý6ÔDÀTÄ^ÑTÔTˆÝ$ T¤^°XÑ>Ô>ÐØ Ð  Ñ%Ô%­¬°sÑ);Ô);Ò;Ð;Ð;Ð;Ð;Ð;r:   Nr�   rž   c                 ó&  — t          j        | j        ¦  «        }t          | j        |d¦  «        }t                               g d¢¦  «        }t                               g d¢¦  «        }t          j                              ||¦  «        |¦  «         d S )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  sŽ   € å6ÔDÀTÄ^ÑTÔTˆÝ$ T¤^°X¸wÑGÔGÐÝ—K’KÐ CÐ CÐ CÑDÔDˆ	Ý—;’;ð  
ð  
ð  
ñ ô ˆõ 	Œ×%Ò%Ð&7Ð&7¸	Ñ&BÔ&BÀHÑMÔMÐMÐMÐMr:   rª   c                 ój  — t          j        | j        ¦  «        }t                               t          | j        |d¦  «        ¦  «        }t          j                             g d¢¦  «        }t          j                             g d¢¦  «        }t          j         	                     ||¦  «        |¦  «         d S )Nr)   rú   r  )
r   ry   rÝ   r)   r¬   r(   r*   r¥   r¦   r§   r  s        r8   r­   z9TestFiberForceLengthPassiveDeGroote2016.test_lambdify_jax„  sž   € å6ÔDÀTÄ^ÑTÔTˆÝŸGšG¥H¨T¬^¸XÀuÑ$MÔ$MÑNÔNÐÝ”I—O’OÐ$GÐ$GÐ$GÑHÔHˆ	Ý”9—?’?ð $
ð $
ð $
ñ ô ˆõ 	Œ×%Ò%Ð&7Ð&7¸	Ñ&BÔ&BÀHÑMÔMÐMÐMÐ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ñ „\ðeð
[ð [ð [ð
`ð `ð `ðoð oð oð5ð 5ð 5ð9ð 9ð 9ð
2ð 2ð 2ð2ð 2ð 2ðPð Pð Pð<ð <ð <ð
Cð Cð Cð
 „[×ÒØ ð ØUðð
 ØUðð
 ØUðð
 !ØUðð
 !ØZðð
 !ØZðð
 ððð "ØSðð
 "ØXðð
 ØYðð
 ØYðð
 ØXðð
 Ø]ðð
 ðPðð ØXððw?	
ñBô BðF<ð <ñGBô BðF<ðLð Lð Lð<ð <ð <ð
 „[×Ò˜ ˜Ð.CÐÑDÔDðNð Nñ EÔDðNð „[×Ò˜˜t˜Ð,?ÐÑ@Ô@ðNð Nñ AÔ@ðNð Nð 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                             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         &                    e'du d¬¦  «        d„ ¦   «         Z(ej         &                    e)du d ¬¦  «        d!„ ¦   «         Z*dS )"Ú.TestFiberForceLengthPassiveInverseDeGroote2016TrV   c                 ó¤   — t          d¦  «        | _        t          d¦  «        | _        t          d¦  «        | _        | j        | j        f| _        d S )Nrâ   rZ   r[   )r   râ   r^   r_   rb   rc   s    r8   rÞ   z\TestFiberForceLengthPassiveInverseDeGroote2016._fiber_force_length_passive_arguments_fixture—  s?   € å˜zÑ*Ô*ˆŒÝ˜‘-”-ˆŒÝ˜‘-”-ˆŒØœ' 4¤7Ð+ˆŒˆˆr:   c                  óš   — t          t          t          ¦  «        sJ ‚t          t          t          ¦  «        sJ ‚t          j        dk    sJ ‚d S )Nr   )rg   r   r   r   r@   r4   r:   r8   rh   z9TestFiberForceLengthPassiveInverseDeGroote2016.test_classž  sL   € åÕDÅhÑOÔOÐOÐOÐOÝÕDÕFaÑbÔbÐbÐbÐbÝ9ÔBÐFrÒrÐrÐrÐrÐrÐrr:   c                 óŒ   — t          | j        g| j        ¢R Ž }t          |t           ¦  «        sJ ‚t	          |¦  «        dk    sJ ‚d S )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¤  sT   € ÝAÀ$Ä-ÐaÐRVÔR`ÐaÐaÐaˆÝ˜,Õ(RÑSÔSÐSÐSÐSÝ�<Ñ Ô Ð$dÒdÐdÐdÐdÐdÐdr:   c                 óè   — t          | j        g| j        ¢R Ž                      ¦   «         }|| j        t          | j        t          | j        ¦  «        dz
  z  dz   ¦  «        z  | j        z  dz   k    sJ ‚d S r¿   )r   râ   rb   r?   r^   r   r
   r_   r	  s     r8   rp   z8TestFiberForceLengthPassiveInverseDeGroote2016.test_doit©  sw   € ÝAÀ$Ä-ÐaÐRVÔR`ÐaÐaÐa×fÒfÑhÔhˆØ˜tœw¥s¨4¬=½#¸d¼g¹,¼,ÈÑ:JÑ+KÈaÑ+OÑ'PÔ'PÑPÐQUÔQXÑXÐ[\Ñ\Ò\Ð\Ð\Ð\Ð\Ð\r:   c           
      ó  — t          | j        g| j        ¢R Ž                      d¬¦  «        }|| j        t          t          | j        t          | j        ¦  «        dz
  z  ¦  «        dz   ¦  «        z  | j        z  dz   k    sJ ‚d S rå   )	r   râ   rb   r?   r^   r   r   r
   r_   r	  s     r8   ru   zGTestFiberForceLengthPassiveInverseDeGroote2016.test_doit_evaluate_false­  s‡   € ÝAÀ$Ä-ÐaÐRVÔR`ÐaÐaÐa×fÒfÐpuÐfÑvÔvˆØ˜tœw¥s­?¸4¼=Í#ÈdÌgÉ,Ì,ÐYZÑJZÑ;[Ñ+\Ô+\Ð_`Ñ+`Ñ'aÔ'aÑaÐbfÔbiÑiÐlmÑmÒmÐmÐmÐmÐmÐmr:   c                 ó¨   — t          d¦  «        t          d¦  «        f}t          | j        g|¢R Ž }t          j        | j        ¦  «        }||k    sJ ‚d S rç   )r   r   râ   ry   )r=   rb   Úfl_M_pas_inv_manualÚfl_M_pas_inv_constantss       r8   r|   zATestFiberForceLengthPassiveInverseDeGroote2016.test_with_defaults±  sd   € å�%‰LŒLÝ�%‰LŒLð
ˆ	õ IÈÌÐcÐYbÐcÐcÐcÐÝ!KÔ!YÐZ^ÔZgÑ!hÔ!hÐØ"Ð&<Ò<Ð<Ð<Ð<Ð<Ð<r:   c                 ó  — t          | j        g| j        ¢R Ž }| j        t	          | j        ¦  «        dz
  z  | j        | j        t	          | j        ¦  «        dz
  z  dz   z  z  }|                     | j        ¦  «        |k    sJ ‚d S 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`ÐaÐaÐaˆØ”7�C ¤™LœL¨1Ñ,Ñ-¨t¬w¸¼ÅsÈ4Ì7Á|Ä|ÐVWÑGWÑ8XÐ[\Ñ8\Ñ/]Ñ^ˆØ× Ò  ¤Ñ/Ô/°8Ò;Ð;Ð;Ð;Ð;Ð;r:   c                 óâ   — t          | j        g| j        ¢R Ž }t          | j        t	          | j        ¦  «        dz
  z  dz   ¦  «        | j        z  }|                     | j        ¦  «        |k    sJ ‚d S r¿   )r   râ   rb   r   r
   r_   r   r^   r  s      r8   rƒ   zHTestFiberForceLengthPassiveInverseDeGroote2016.test_differentiate_wrt_c0¿  sq   € ÝAÀ$Ä-ÐaÐRVÔR`ÐaÐaÐaˆÝ�t”}¥c¨$¬'¡l¤l°QÑ&6Ñ7¸!Ñ;Ñ<Ô<¸T¼WÑDˆØ× Ò  ¤Ñ)Ô)¨XÒ5Ð5Ð5Ð5Ð5Ð5r:   c                 ó˜  — t          | j        g| j        ¢R Ž }| 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        ¦  «        |k    sJ ‚d S rï   )r   râ   rb   r^   r
   r_   r   r   r  s      r8   r…   zHTestFiberForceLengthPassiveInverseDeGroote2016.test_differentiate_wrt_c1Ä  sÇ   € ÝAÀ$Ä-ÐaÐRVÔR`ÐaÐaÐaˆàŒG�D”MÑ!¥# d¤g¡,¤,Ñ.°´¸¼ÍÈDÌGÉÌÐWXÑHXÑ9YÐ\]Ñ9]Ñ0^Ñ_ØŒg•c˜$œ-­¨T¬W©¬¸Ñ)9Ñ:¸QÑ>Ñ?Ô?Ñ?ÀÄÈÁ
ÑJñKð 	ð × Ò  ¤Ñ)Ô)¨XÒ5Ð5Ð5Ð5Ð5Ð5r:   c                 ón   — t          | j        g| j        ¢R Ž }|                     ¦   «         t          u sJ ‚d S r3   )r   râ   rb   r�   r   r	  s     r8   rŽ   z;TestFiberForceLengthPassiveInverseDeGroote2016.test_inverseÌ  sA   € ÝAÀ$Ä-ÐaÐRVÔR`ÐaÐaÐaˆØ×#Ò#Ñ%Ô%Õ)LÐLÐLÐLÐLÐLÐLr:   c                 ó†   — t          | j        g| j        ¢R Ž }d}t          ¦   «                              |¦  «        |k    sJ ‚d S )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Ð  sK   € ÝAÀ$Ä-ÐaÐRVÔR`ÐaÐaÐaˆØ]ˆÝ‰~Œ~×%Ò% lÑ3Ô3°xÒ?Ð?Ð?Ð?Ð?Ð?r:   c                 óª   — t          | j        g| j        ¢R Ž }d}t          ¦   «                              |                     ¦   «         ¦  «        |k    sJ ‚d S )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Õ  sQ   € Ý9¸$¼-ÐYÈ$Ì.ÐYÐYÐYˆØkˆÝ‰~Œ~×%Ò% d§i¢i¡k¤kÑ2Ô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                 ó~   — t          j        | j        ¦  «        } |¦   «                              |¦  «        |k    sJ ‚d S r3   )r   ry   râ   rE   )r=   rF   rG   r
  s       r8   r”   z>TestFiberForceLengthPassiveInverseDeGroote2016.test_print_codeÚ  sE   € õF BÔOÐPTÔP]Ñ^Ô^ˆØˆ|‰~Œ~×%Ò% lÑ3Ô3°xÒ?Ð?Ð?Ð?Ð?Ð?r:   c                 ó¾   — t          j        | j        ¦  «        }|                     | j        ¦  «        }d}t	          ¦   «                              |¦  «        |k    sJ ‚d S )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   s]   € ÝAÔOÐPTÔP]Ñ^Ô^ˆØ*×/Ò/°´Ñ>Ô>ÐØGˆÝ Ñ"Ô"×*Ò*Ð+>Ñ?Ô?À8ÒKÐKÐKÐKÐKÐKr:   c                 ó¨   — t          j        | j        ¦  «        }t          | j        |¦  «        } |d¦  «        t	          j        d¦  «        k    sJ ‚d S )NrÑ   r™   )r   ry   râ   r(   rQ   rš   )r=   r
  Úfl_M_pas_inv_callables      r8   rœ   z<TestFiberForceLengthPassiveInverseDeGroote2016.test_lambdify&  sT   € ÝAÔOÐPTÔP]Ñ^Ô^ˆÝ (¨¬¸Ñ EÔ EÐØ$Ð$ SÑ)Ô)­V¬]¸3Ñ-?Ô-?Ò?Ð?Ð?Ð?Ð?Ð?r:   Nr�   rž   c                 ó&  — t          j        | j        ¦  «        }t          | j        |d¦  «        }t                               g d¢¦  «        }t                               g d¢¦  «        }t          j                              ||¦  «        |¦  «         d S )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+  s�   € åAÔOÐPTÔP]Ñ^Ô^ˆÝ (¨¬¸ÀgÑ NÔ NÐÝ—;’;ÐBÐBÐBÑCÔCˆÝ—;’;ð  
ð  
ð  
ñ ô ˆõ 	Œ×%Ò%Ð&;Ð&;¸HÑ&EÔ&EÀxÑPÔPÐPÐPÐPr:   rª   c                 ój  — t          j        | j        ¦  «        }t                               t          | j        |d¦  «        ¦  «        }t          j                             g d¢¦  «        }t          j                             g d¢¦  «        }t          j         	                     ||¦  «        |¦  «         d S )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ÐPTÔP]Ñ^Ô^ˆÝ #§¢­°´ÀÈeÑ(TÔ(TÑ UÔ UÐÝ”9—?’?Ð#FÐ#FÐ#FÑGÔGˆÝ”9—?’?ð $
ð $
ð $
ñ ô ˆõ 	Œ×%Ò%Ð&;Ð&;¸HÑ&EÔ&EÀxÑPÔPÐPÐPÐ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ñ „\ðsð
eð eð eð
]ð ]ð ]ðnð nð nð=ð =ð =ð<ð <ð <ð
6ð 6ð 6ð
6ð 6ð 6ðMð Mð Mð@ð @ð @ð
?ð ?ð ?ð
 „[×ÒØ ð ØPðð
 ØPðð
 ØPðð
 !ØPðð
 !ØUðð
 !ØUðð
 ØMðð
 "Ø?ðð
 "ØDðð
 ØEðð
 ØEðð
 ØDðð
 ØIðð
 ðIðð ØDððu>	
ñAô AðD@ð @ñEAô AðD@ðLð Lð Lð@ð @ð @ð
 „[×Ò˜ ˜Ð.CÐÑDÔDðQð Qñ EÔDðQð „[×Ò˜˜t˜Ð,?ÐÑ@Ô@ðQð Qñ AÔ@ðQð Qð 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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         /                    e0d&u d'¬(¦  «        d)„ ¦   «         Z1ej         /                    e2d&u d*¬(¦  «        d+„ ¦   «         Z3d&S ),Ú&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| _        d S )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�T”W˜dœg t¤w°´¸¼ØŒG�T”W˜dœg t¤w°´¸$¼(ð
ˆŒˆˆr:   c                  óš   — t          t          t          ¦  «        sJ ‚t          t          t          ¦  «        sJ ‚t          j        dk    sJ ‚d S )Nr   )rg   r   r   r   r@   r4   r:   r8   rh   z1TestFiberForceLengthActiveDeGroote2016.test_class`  sL   € åÕ<½hÑGÔGÐGÐGÐGÝÕ<Õ>YÑZÔZÐZÐZÐZÝ1Ô:Ð>bÒbÐbÐbÐbÐbÐbr:   c                 óŒ   — t          | j        g| j        ¢R Ž }t          |t           ¦  «        sJ ‚t	          |¦  «        dk    sJ ‚d S )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  s^   € Ý5°d´nÐVÀtÄ~ÐVÐVÐVˆÝ˜(Õ$FÑGÔGÐGÐGÐGÝ�8‰}Œ}ð8ò
ð 
ð 
ð 
ð 
ð 
r:   c           	      óú  — t          | j        g| j        ¢R Ž                      ¦   «         }|| 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 ‚d S 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ÐVÀtÄ~ÐVÐVÐV×[Ò[Ñ]Ô]ˆØØŒG•C˜DœN¨T¬WÑ4°t´wÀÄÈÌÑAWÑ7WÑXÐ[\Ñ\Ð]Ð^_Ñ_Ñ`Ô`Ñ`ØŒg•c˜dœn¨t¬wÑ6¸¼À4Ä7È4Ì>ÑCYÑ9YÑZÐ]^Ñ^Ð_Ð`aÑaÑbÔbÑbñcàŒg•c˜dœn¨t¬wÑ6¸¼ÀDÄHÈTÌ^ÑD[Ñ9[Ñ\Ð_`Ñ`ÐaÐbcÑcÑdÔdÑdñeò
ð 
ð 
ð 
ð 
ð 
r:   c           	      óL  — t          | j        g| j        ¢R Ž                      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 ‚d S )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ÐVÀtÄ~ÐVÐVÐV×[Ò[ÐejÐ[ÑkÔkˆØØŒG•C�?¨4¬>¸D¼GÑ+CÑDÔDÀdÄgÐPTÔPWÐX\ÔXfÑPfÑFfÑgÐjkÑkÐlÐmnÑnÑoÔoÑoØŒg•c�_¨T¬^¸d¼gÑ-EÑFÔFÈÌÐRVÔRYÐZ^ÔZhÑRhÑHhÑiÐlmÑmÐnÐopÑpÑqÔqÑqñràŒg•c�_¨T¬^¸d¼gÑ-EÑFÔFÈÌÐSWÔS[Ð\`Ô\jÑSjÑHjÑkÐnoÑoÐpÐqrÑrÑsÔsÑsñtò
ð 
ð 
ð 
ð 
ð 
r:   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¦  «        f}t          | j        g|¢R Ž }t          j        | j        ¦  «        }||k    sJ ‚d S )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ŒNÝ�&‰MŒMÝ�'‰NŒNÝ�(‰OŒOÝ�'‰NŒNÝ�'‰NŒNÝ�)ÑÔÝ�%‰LŒLÝ�%‰LŒLÝ�%‰LŒLÝ�'‰NŒNÝ�%‰LŒLð
ˆ	õ =¸T¼^ÐXÈiÐXÐXÐXˆÝ?ÔMÈdÌnÑ]Ô]ÐØÐ"4Ò4Ð4Ð4Ð4Ð4Ð4r:   c           	      ób  — t          | j        g| j        ¢R Ž }| 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        ¦  «        |k    sJ ‚d S ©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‘  sa  € Ý5°d´nÐVÀtÄ~ÐVÐVÐVˆàŒGØ”˜œ¨$¬'Ñ1°AÑ5Ñ5°t´wÀÄÈÌÑAWÑ7WÐZ[Ñ6[Ñ[Ø”7˜Tœ^Ñ+¨t¬w¸¼ÀÄÑ9OÑ/OÐRSÑ.SÑTñUñõ �D”N T¤WÑ,¨qÑ0Ð0°!°T´W¸t¼wÀtÄ~Ñ?UÑ5UÐXYÑ4YÑ2YÑZÑ[Ô[ñ\ð ŒgØ”˜œ¨$¬'Ñ1°AÑ5Ñ5°t´wÀÄÈÌÑAWÑ7WÐZ[Ñ6[Ñ[Ø”7˜Tœ^Ñ+¨t¬w¸¼ÀÄÑ9OÑ/OÐRSÑ.SÑTñUñõ �D”N T¤WÑ,¨qÑ0Ð0°!°T´W¸t¼wÀtÄ~Ñ?UÑ5UÐXYÑ4YÑ2YÑZÑ[Ô[ñ\ñ	\ð ŒgØ”˜$œ.¨4¬7Ñ2°QÑ6Ñ6¸¼À4Ä8ÈDÌNÑCZÑ8ZÐ]^Ñ7^Ñ^Ø”7˜Tœ^Ñ+¨t¬x¸$¼(À4Ä>Ñ:QÑ/QÐTUÑ.UÑVñWñõ �D”N T¤WÑ,¨qÑ0Ð0°!°T´XÀÄÈÌÑ@WÑ5WÐZ[Ñ4[Ñ2[Ñ\Ñ]Ô]ñ^ñ^ð 	ð �}Š}˜Tœ^Ñ,Ô,°Ò8Ð8Ð8Ð8Ð8Ð8r:   c                 ó  — t          | j        g| j        ¢R Ž }t          | j        | j        z
  dz   d| j        | j        | j        z  z   dz  z  z  ¦  «        }|                     ¦   «                              | j	        ¦  «        |k    sJ ‚d S 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ÐVÀtÄ~ÐVÐVÐVˆÝ˜œ¨$¬'Ñ1°AÑ5Ð5°q¸$¼'ÀDÄGÈDÌNÑDZÑ:ZÐ]^Ñ9^Ñ7^Ñ_Ñ`Ô`ˆØ�}Š}‰Œ×#Ò# D¤GÑ,Ô,°Ò8Ð8Ð8Ð8Ð8Ð8r:   c                 óV  — t          | j        g| j        ¢R Ž }| 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        ¦  «        |k    sJ ‚d S rÈ   ©	r   rÝ   rb   r^   r_   r`   ra   r
   r   rA  s      r8   r…   z@TestFiberForceLengthActiveDeGroote2016.test_differentiate_wrt_c1¨  ó·   € Ý5°d´nÐVÀtÄ~ÐVÐVÐVˆàŒG�T”^ d¤gÑ-Ñ.°´¸$¼'À$Ä.Ñ:PÑ0PÐSTÑ/TÑTÝ�4”> D¤GÑ+¨aÑ/Ð/°°D´G¸d¼gÀdÄnÑ>TÑ4TÐWXÑ3XÑ1XÑYÑZÔZñ[ð 	ð �}Š}˜TœWÑ%Ô%¨Ò1Ð1Ð1Ð1Ð1Ð1r:   c                 ó\  — t          | j        g| j        ¢R Ž }| 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        ¦  «        |k    sJ ‚d S r?  rD  rA  s      r8   r‰   z@TestFiberForceLengthActiveDeGroote2016.test_differentiate_wrt_c2°  ó¼   € Ý5°d´nÐVÀtÄ~ÐVÐVÐVˆàŒG�T”^ d¤gÑ-°Ñ1Ñ1°4´7¸T¼WÀTÄ^Ñ=SÑ3SÐVWÑ2WÑWÝ�4”> D¤GÑ+¨aÑ/Ð/°°D´G¸d¼gÀdÄnÑ>TÑ4TÐWXÑ3XÑ1XÑYÑZÔZñ[ð 	ð �}Š}˜TœWÑ%Ô%¨Ò1Ð1Ð1Ð1Ð1Ð1r:   c                 ól  — t          | j        g| j        ¢R Ž }| 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        ¦  «        |k    sJ ‚d S r?  rD  rA  s      r8   r‹   z@TestFiberForceLengthActiveDeGroote2016.test_differentiate_wrt_c3¸  óÅ   € Ý5°d´nÐVÀtÄ~ÐVÐVÐVˆàŒG�D”NÑ" D¤N°T´WÑ$<¸qÑ#@Ñ@À$Ä'ÈDÌGÐTXÔTbÑLbÑBbÐefÑAfÑfÝ�4”> D¤GÑ+¨aÑ/Ð/°°D´G¸d¼gÀdÄnÑ>TÑ4TÐWXÑ3XÑ1XÑYÑZÔZñ[ð 	ð �}Š}˜TœWÑ%Ô%¨Ò1Ð1Ð1Ð1Ð1Ð1r:   c                 óð   — t          | j        g| j        ¢R Ž }t          | j        | j        z
  dz   d| j        | j        | j        z  z   dz  z  z  ¦  «        }|                     | j        ¦  «        |k    sJ ‚d S rÈ   )	r   rÝ   rb   r
   r-  r.  r/  r   r,  rA  s      r8   Útest_differentiate_wrt_c4z@TestFiberForceLengthActiveDeGroote2016.test_differentiate_wrt_c4À  s~   € Ý5°d´nÐVÀtÄ~ÐVÐVÐVˆÝ˜œ¨$¬'Ñ1°AÑ5Ð5°q¸$¼'ÀDÄGÈDÌNÑDZÑ:ZÐ]^Ñ9^Ñ7^Ñ_Ñ`Ô`ˆØ�}Š}˜TœWÑ%Ô%¨Ò1Ð1Ð1Ð1Ð1Ð1r:   c                 óV  — t          | j        g| j        ¢R Ž }| 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        ¦  «        |k    sJ ‚d S 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        ¢R Ž }| 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        ¦  «        |k    sJ ‚d S r?  rM  rA  s      r8   Útest_differentiate_wrt_c6z@TestFiberForceLengthActiveDeGroote2016.test_differentiate_wrt_c6Í  rG  r:   c                 ól  — t          | j        g| j        ¢R Ž }| 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        ¦  «        |k    sJ ‚d S r?  rM  rA  s      r8   Útest_differentiate_wrt_c7z@TestFiberForceLengthActiveDeGroote2016.test_differentiate_wrt_c7Õ  rI  r:   c                 óð   — t          | j        g| j        ¢R Ž }t          | j        | j        z
  dz   d| j        | j        | j        z  z   dz  z  z  ¦  «        }|                     | j        ¦  «        |k    sJ ‚d S rÈ   )	r   rÝ   rb   r
   r1  r2  r3  r   r0  rA  s      r8   Útest_differentiate_wrt_c8z@TestFiberForceLengthActiveDeGroote2016.test_differentiate_wrt_c8Ý  s~   € Ý5°d´nÐVÀtÄ~ÐVÐVÐVˆÝ˜œ¨$¬'Ñ1°AÑ5Ð5°q¸$¼(ÀTÄXÈdÌnÑE\Ñ:\Ð_`Ñ9`Ñ7`ÑaÑbÔbˆØ�}Š}˜TœWÑ%Ô%¨Ò1Ð1Ð1Ð1Ð1Ð1r:   c                 óV  — t          | j        g| j        ¢R Ž }| 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        ¦  «        |k    sJ ‚d S 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ÐVÀtÄ~ÐVÐVÐVˆàŒG�T”^ d¤gÑ-Ñ.°´¸4¼8ÀDÄNÑ;RÑ0RÐUVÑ/VÑVÝ�4”> D¤GÑ+¨aÑ/Ð/°°D´H¸t¼xÈÌÑ?VÑ4VÐYZÑ3ZÑ1ZÑ[Ñ\Ô\ñ]ð 	ð �}Š}˜TœWÑ%Ô%¨Ò1Ð1Ð1Ð1Ð1Ð1r:   c                 ó\  — t          | j        g| j        ¢R Ž }| 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        ¦  «        |k    sJ ‚d S r?  rV  rA  s      r8   Útest_differentiate_wrt_c10zATestFiberForceLengthActiveDeGroote2016.test_differentiate_wrt_c10ê  s¼   € Ý5°d´nÐVÀtÄ~ÐVÐVÐVˆàŒG�T”^ d¤gÑ-°Ñ1Ñ1°4´8¸d¼hÀtÄ~Ñ>UÑ3UÐXYÑ2YÑYÝ�4”> D¤GÑ+¨aÑ/Ð/°°D´H¸t¼xÈÌÑ?VÑ4VÐYZÑ3ZÑ1ZÑ[Ñ\Ô\ñ]ð 	ð �}Š}˜TœXÑ&Ô&¨(Ò2Ð2Ð2Ð2Ð2Ð2r:   c                 ól  — t          | j        g| j        ¢R Ž }| 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        ¦  «        |k    sJ ‚d S r?  rV  rA  s      r8   Útest_differentiate_wrt_c11zATestFiberForceLengthActiveDeGroote2016.test_differentiate_wrt_c11ò  sÅ   € Ý5°d´nÐVÀtÄ~ÐVÐVÐVˆàŒG�D”NÑ" D¤N°T´WÑ$<¸qÑ#@Ñ@À$Ä(ÈTÌXÐVZÔVdÑMdÑBdÐghÑAhÑhÝ�4”> D¤GÑ+¨aÑ/Ð/°°D´H¸t¼xÈÌÑ?VÑ4VÐYZÑ3ZÑ1ZÑ[Ñ\Ô\ñ]ð 	ð �}Š}˜TœXÑ&Ô&¨(Ò2Ð2Ð2Ð2Ð2Ð2r:   c                 ó†   — t          | j        g| j        ¢R Ž }d}t          ¦   «                              |¦  «        |k    sJ ‚d S )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ú  sI   € Ý5°d´nÐVÀtÄ~ÐVÐVÐVˆØJˆÝ‰~Œ~×%Ò% hÑ/Ô/°8Ò;Ð;Ð;Ð;Ð;Ð;r:   c                 óª   — t          | j        g| j        ¢R Ž }d}t          ¦   «                              |                     ¦   «         ¦  «        |k    sJ ‚d S )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ÿ  sY   € Ý5°d´nÐVÀtÄ~ÐVÐVÐVˆð{ð 	õ
 ‰~Œ~×%Ò% h§m¢m¡o¤oÑ6Ô6¸(ÒBÐBÐBÐ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                 ó~   — t          j        | j        ¦  «        } |¦   «                              |¦  «        |k    sJ ‚d S r3   )r   ry   rÝ   rE   )r=   rF   rG   r8  s       r8   r”   z6TestFiberForceLengthActiveDeGroote2016.test_print_code  sB   € õH 6ÔCÀDÄNÑSÔSˆØˆ|‰~Œ~×%Ò% hÑ/Ô/°8Ò;Ð;Ð;Ð;Ð;Ð;r:   c                 ó¾   — t          j        | j        ¦  «        }|                     | j        ¦  «        }d}t	          ¦   «                              |¦  «        |k    sJ ‚d S )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  sa   € Ý5ÔCÀDÄNÑSÔSˆØ&Ÿmšm¨D¬NÑ;Ô;Ðð eð 	õ !Ñ"Ô"×*Ò*Ð+>Ñ?Ô?À8ÒKÐKÐKÐKÐKÐKr:   c                 ó¨   — t          j        | j        ¦  «        }t          | j        |¦  «        } |d¦  «        t	          j        d¦  «        k    sJ ‚d S )Nr™   ç¦“sþÏï?)r   ry   rÝ   r(   rQ   rš   )r=   r8  Úfl_M_act_callables      r8   rœ   z4TestFiberForceLengthActiveDeGroote2016.test_lambdifyw  sR   € Ý5ÔCÀDÄNÑSÔSˆÝ$ T¤^°XÑ>Ô>ÐØ Ð  Ñ%Ô%­¬°|Ñ)DÔ)DÒDÐDÐDÐDÐDÐDr:   Nr�   rž   c                 ó&  — t          j        | j        ¦  «        }t          | j        |d¦  «        }t                               g d¢¦  «        }t                               g d¢¦  «        }t          j                              ||¦  «        |¦  «         d S )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|  sŽ   € å5ÔCÀDÄNÑSÔSˆÝ$ T¤^°X¸wÑGÔGÐÝ—K’KÐ 9Ð 9Ð 9Ñ:Ô:ˆ	Ý—;’;ð  
ð  
ð  
ñ ô ˆõ 	Œ×%Ò%Ð&7Ð&7¸	Ñ&BÔ&BÀHÑMÔMÐMÐMÐMr:   rª   c                 ój  — t          j        | j        ¦  «        }t                               t          | j        |d¦  «        ¦  «        }t          j                             g d¢¦  «        }t          j                             g d¢¦  «        }t          j         	                     ||¦  «        |¦  «         d S )Nr)   re  rf  )
r   ry   rÝ   r)   r¬   r(   r*   r¥   r¦   r§   rg  s        r8   r­   z8TestFiberForceLengthActiveDeGroote2016.test_lambdify_jaxŠ  sž   € å5ÔCÀDÄNÑSÔSˆÝŸGšG¥H¨T¬^¸XÀuÑ$MÔ$MÑNÔNÐÝ”I—O’OÐ$=Ð$=Ð$=Ñ>Ô>ˆ	Ý”9—?’?ð $
ð $
ð $
ñ ô ˆõ 	Œ×%Ò%Ð&7Ð&7¸	Ñ&BÔ&BÀHÑMÔMÐMÐMÐ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  sF  € € € € € à€V„^˜DÐ!Ñ!Ô!ð
ð 
ñ "Ô!ð
ð& ðcð cñ „\ðcð

ð 
ð 
ð
ð 
ð 
ð
ð 
ð 
ð5ð 5ð 5ð&9ð 9ð 9ð$9ð 9ð 9ð
2ð 2ð 2ð2ð 2ð 2ð2ð 2ð 2ð2ð 2ð 2ð
2ð 2ð 2ð2ð 2ð 2ð2ð 2ð 2ð2ð 2ð 2ð
2ð 2ð 2ð3ð 3ð 3ð3ð 3ð 3ð<ð <ð <ð
Cð Cð Cð „[×ÒØ ð ð `ðð ð `ðð ð `ðð !ð yðð !ð Hðð !ð Hðð ðVð	ð "ð Uðð "ð bðð ð eðð ð eðð ð bðð ð qðð ð W
ðð ð bððs_	
ñbô bðF<ð <ñGbô bðF<ðLð Lð LðEð Eð Eð
 „[×Ò˜ ˜Ð.CÐÑDÔDðNð Nñ EÔDðNð „[×Ò˜˜t˜Ð,?ÐÑ@Ô@ðNð Nñ AÔ@ðNð Nð 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                             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         (                    e)d u d!¬"¦  «        d#„ ¦   «         Z*ej         (                    e+d u d$¬"¦  «        d%„ ¦   «         Z,d S )&Ú"TestFiberForceVelocityDeGroote2016TrV   c                 ó  — t          d¦  «        | _        t          d¦  «        | _        t          d¦  «        | _        t          d¦  «        | _        t          d¦  «        | _        | j        | j        | j        | j        f| _        d S )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 ‚d S )Nr   )rg   r   r   r   r@   r4   r:   r8   rh   z-TestFiberForceVelocityDeGroote2016.test_class¤  sL   € åÕ8½(ÑCÔCÐCÐCÐCÝÕ8Õ:UÑVÔVÐVÐVÐVÝ-Ô6Ð:ZÒZÐZÐZÐZÐZÐZr:   c                 óŒ   — t          | j        g| j        ¢R Ž }t          |t           ¦  «        sJ ‚t	          |¦  «        dk    sJ ‚d S )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ª  sP   € Ý-¨d¬nÐN¸t¼~ÐNÐNÐNˆÝ˜$Õ >Ñ?Ô?Ð?Ð?Ð?Ý�4‰yŒyÐ[Ò[Ð[Ð[Ð[Ð[Ð[r:   c                 ó&  — t          | j        g| j        ¢R Ž                      ¦   «         }| j        t          | j        | j        z  | j        z   t          | j        | j        z  | j        z   dz  dz   ¦  «        z   ¦  «        z  | j	        z   }||k    sJ ‚d S ©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¸t¼~ÐNÐNÐN×SÒSÑUÔUˆàŒG•c˜4œ7 T¤^Ñ3°d´gÑ=Ý�D”G˜dœnÑ,¨t¬wÑ6¸Ñ:¸QÑ>Ñ?Ô?ñ@ñ Aô Añ AØCGÄ7ñKð 	ð �xÒÐÐÐÐÐr:   c           
      óD  — t          | j        g| j        ¢R Ž                      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 ‚d S )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¸t¼~ÐNÐNÐN×SÒSÐ]bÐSÑcÔcˆàŒG•c˜4œ7 T¤^Ñ3°d´gÑ=Ý•? 4¤7¨T¬^Ñ#;¸d¼gÑ#EÑFÔFÈÑIÈAÑMÑNÔNñOñ Pô Pñ PØRVÔRYñZð 	ð �xÒÐÐÐÐÐr:   c                 óà   — t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        f}t          | j        g|¢R Ž }t          j        | j        ¦  «        }||k    sJ ‚d S ©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¿  so   € å�(‰OŒOÝ�(‰OŒOÝ�(‰OŒOÝ�'‰NŒNð	
ˆ	õ 5°T´^ÐPÀiÐPÐPÐPˆÝ7ÔEÀdÄnÑUÔUˆØ˜nÒ,Ð,Ð,Ð,Ð,Ð,r:   c                 ó  — t          | j        g| j        ¢R Ž }| j        | j        z  t          t          | j        | j        z  | j        z   ¦  «        dz  dz   ¦  «        z  }|                     | j        ¦  «        |k    sJ ‚d S 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¸t¼~ÐNÐNÐNˆàŒG�D”G‰OÝ•/ $¤'¨$¬.Ñ"8¸4¼7Ñ"BÑCÔCÀQÑFÈÑJÑKÔKñLð 	ð �yŠy˜œÑ(Ô(¨HÒ4Ð4Ð4Ð4Ð4Ð4r:   c           	      ó,  — t          | j        g| j        ¢R Ž }t          | j        | j        z  | j        z   t          t          | j        | j        z  | j        z   ¦  «        dz  dz   ¦  «        z   ¦  «        }|                     | j	        ¦  «        |k    sJ ‚d S 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¸t¼~ÐNÐNÐNˆÝØŒG�D”NÑ" T¤WÑ,Ý•? 4¤7¨4¬>Ñ#9¸D¼GÑ#CÑDÔDÀaÑGÈ!ÑKÑLÔLñMñ
ô 
ˆð �yŠy˜œÑ!Ô! XÒ-Ð-Ð-Ð-Ð-Ð-r:   c                 ó  — t          | j        g| j        ¢R Ž }| j        | j        z  t	          t          | j        | j        z  | j        z   ¦  «        dz  dz   ¦  «        z  }|                     | j        ¦  «        |k    sJ ‚d S rs  ©	r   rl  rb   r^   r   r   r_   r`   r   rt  s      r8   r…   z<TestFiberForceVelocityDeGroote2016.test_differentiate_wrt_c1Ú  s†   € Ý-¨d¬nÐN¸t¼~ÐNÐNÐNˆàŒG�D”NÑ"Ý•/ $¤'¨$¬.Ñ"8¸4¼7Ñ"BÑCÔCÀQÑFÈÑJÑKÔKñLð 	ð �yŠy˜œÑ!Ô! XÒ-Ð-Ð-Ð-Ð-Ð-r:   c                 óò   — t          | j        g| j        ¢R Ž }| j        t	          t          | j        | j        z  | j        z   ¦  «        dz  dz   ¦  «        z  }|                     | j        ¦  «        |k    sJ ‚d S rs  r~  rt  s      r8   r‰   z<TestFiberForceVelocityDeGroote2016.test_differentiate_wrt_c2â  s   € Ý-¨d¬nÐN¸t¼~ÐNÐNÐNˆàŒGÝ•/ $¤'¨$¬.Ñ"8¸4¼7Ñ"BÑCÔCÀQÑFÈÑJÑKÔKñLð 	ð �yŠy˜œÑ!Ô! XÒ-Ð-Ð-Ð-Ð-Ð-r:   c                 ó’   — t          | j        g| j        ¢R Ž }t          d¦  «        }|                     | j        ¦  «        |k    sJ ‚d S r¿   )r   rl  rb   r   r   ra   rt  s      r8   r‹   z<TestFiberForceVelocityDeGroote2016.test_differentiate_wrt_c3ê  sK   € Ý-¨d¬nÐN¸t¼~ÐNÐNÐNˆÝ˜1‘:”:ˆØ�yŠy˜œÑ!Ô! XÒ-Ð-Ð-Ð-Ð-Ð-r:   c                 ón   — t          | j        g| j        ¢R Ž }|                     ¦   «         t          u sJ ‚d S r3   )r   rl  rb   r�   r   rp  s     r8   rŽ   z/TestFiberForceVelocityDeGroote2016.test_inverseï  s;   € Ý-¨d¬nÐN¸t¼~ÐNÐNÐNˆØ�|Š|‰~Œ~Õ!FÐFÐFÐFÐFÐFÐFr:   c                 ó†   — t          | j        g| j        ¢R Ž }d}t          ¦   «                              |¦  «        |k    sJ ‚d S )Nz.\operatorname{fv}^M \left( v_{M tilde} \right))r   rl  rb   r    rE   rt  s      r8   r�   z<TestFiberForceVelocityDeGroote2016.test_function_print_latexó  sI   € Ý-¨d¬nÐN¸t¼~ÐNÐNÐNˆØDˆÝ‰~Œ~×%Ò% dÑ+Ô+¨xÒ7Ð7Ð7Ð7Ð7Ð7r:   c                 óª   — t          | j        g| j        ¢R Ž }d}t          ¦   «                              |                     ¦   «         ¦  «        |k    sJ ‚d S )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ø  sY   € Ý-¨d¬nÐN¸t¼~ÐNÐNÐNˆðDð 	õ ‰~Œ~×%Ò% d§i¢i¡k¤kÑ2Ô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                 ó~   — t          j        | j        ¦  «        } |¦   «                              |¦  «        |k    sJ ‚d S r3   )r   ry   rl  rE   )r=   rF   rG   rq  s       r8   r”   z2TestFiberForceVelocityDeGroote2016.test_print_code   sB   € õj .Ô;¸D¼NÑKÔKˆØˆ|‰~Œ~×%Ò% dÑ+Ô+¨xÒ7Ð7Ð7Ð7Ð7Ð7r:   c                 ó¾   — t          j        | j        ¦  «        }|                     | j        ¦  «        }d}t	          ¦   «                              |¦  «        |k    sJ ‚d S )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  sY   € Ý-Ô;¸D¼NÑKÔKˆØŸ9š9 T¤^Ñ4Ô4ÐØIˆÝ Ñ"Ô"×*Ò*Ð+;Ñ<Ô<ÀÒHÐHÐHÐHÐHÐHr:   c                 ó¨   — t          j        | j        ¦  «        }t          | j        |¦  «        } |d¦  «        t	          j        d¦  «        k    sJ ‚d S )NrÑ   gJ<_Y�	ð?)r   ry   rl  r(   rQ   rš   )r=   rq  Úfv_M_callables      r8   rœ   z0TestFiberForceVelocityDeGroote2016.test_lambdify^  sQ   € Ý-Ô;¸D¼NÑKÔKˆÝ  ¤°Ñ6Ô6ˆØˆ}˜SÑ!Ô!¥V¤]Ð3DÑ%EÔ%EÒEÐEÐEÐEÐEÐEr:   Nr�   rž   c                 ó&  — t          j        | j        ¦  «        }t          | j        |d¦  «        }t                               g d¢¦  «        }t                               g d¢¦  «        }t          j                              ||¦  «        |¦  «         d S )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  s‹   € å-Ô;¸D¼NÑKÔKˆÝ  ¤°°wÑ?Ô?ˆÝ—K’KÐ 6Ð 6Ð 6Ñ7Ô7ˆ	Ý—;’;ð  
ð  
ð  
ñ ô ˆõ 	Œ×%Ò% m m°IÑ&>Ô&>ÀÑIÔIÐIÐIÐIr:   rª   c                 ój  — t          j        | j        ¦  «        }t                               t          | j        |d¦  «        ¦  «        }t          j                             g d¢¦  «        }t          j                             g d¢¦  «        }t          j         	                     ||¦  «        |¦  «         d S )Nr)   rŠ  r‹  )
r   ry   rl  r)   r¬   r(   r*   r¥   r¦   r§   rŒ  s        r8   r­   z4TestFiberForceVelocityDeGroote2016.test_lambdify_jaxp  s›   € å-Ô;¸D¼NÑKÔKˆÝŸš¥¨¬¸¸uÑ EÔ EÑFÔFˆÝ”I—O’OÐ$:Ð$:Ð$:Ñ;Ô;ˆ	Ý”9—?’?ð $
ð $
ð $
ñ ô ˆõ 	Œ×%Ò% m m°IÑ&>Ô&>ÀÑIÔIÐIÐ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ð 5ð 5ð.ð .ð .ð.ð .ð .ð.ð .ð .ð.ð .ð .ð
Gð Gð Gð8ð 8ð 8ð
?ð ?ð ?ð „[×ÒØ ð ðVðð ðVðð ðVðð !ð`ðð !ð`ðð !ð`ðð ðKðð "ð>ðð "ðCðð ðDðð ðDðð ðCðð ðHðð ðFðð ð>ððWP	
ñSô Sðh8ð 8ñiSô Sðh8ðIð Ið IðFð Fð Fð
 „[×Ò˜ ˜Ð.CÐÑDÔDð
Jð 
Jñ EÔDð
Jð „[×Ò˜˜t˜Ð,?ÐÑ@Ô@ð
Jð 
Jñ AÔ@ð
Jð 
Jð 
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                             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         (                    e)du d¬ ¦  «        d!„ ¦   «         Z*ej         (                    e+du d"¬ ¦  «        d#„ ¦   «         Z,dS )$Ú)TestFiberForceVelocityInverseDeGroote2016TrV   c                 ó  — t          d¦  «        | _        t          d¦  «        | _        t          d¦  «        | _        t          d¦  «        | _        t          d¦  «        | _        | j        | j        | j        | j        f| _        d S )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 ‚d S )Nr   )rg   r   r   r   r@   r4   r:   r8   rh   z4TestFiberForceVelocityInverseDeGroote2016.test_class‰  sL   € åÕ?ÅÑJÔJÐJÐJÐJÝÕ?ÕA\Ñ]Ô]Ð]Ð]Ð]Ý4Ô=ÐAhÒhÐhÐhÐhÐhÐhr:   c                 óŒ   — t          | j        g| j        ¢R Ž }t          |t           ¦  «        sJ ‚t	          |¦  «        dk    sJ ‚d S )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�  sP   € Ý8¸¼ÐTÀTÄ^ÐTÐTÐTˆÝ˜(Õ$IÑJÔJÐJÐJÐJÝ�8‰}Œ}Ð aÒaÐaÐaÐaÐaÐar:   c                 óÌ   — t          | j        g| j        ¢R Ž                      ¦   «         }|t	          | j        | j        z
  | j        z  ¦  «        | j        z
  | j        z  k    sJ ‚d S r3   )	r   rq  rb   r?   r   ra   r^   r`   r_   r“  s     r8   rp   z3TestFiberForceVelocityInverseDeGroote2016.test_doit”  sd   € Ý8¸¼ÐTÀTÄ^ÐTÐTÐT×YÒYÑ[Ô[ˆØ�D $¤)¨d¬gÑ"5°t´wÑ!>Ñ?Ô?À$Ä'ÑIÈ4Ì7ÑRÒRÐRÐRÐRÐRÐRr:   c                 óê   — t          | j        g| j        ¢R Ž                      d¬¦  «        }|t	          t          | j        | j        z
  ¦  «        | j        z  ¦  «        | j        z
  | j	        z  k    sJ ‚d S rr   )
r   rq  rb   r?   r   r   ra   r^   r`   r_   r“  s     r8   ru   zBTestFiberForceVelocityInverseDeGroote2016.test_doit_evaluate_false˜  sv   € Ý8¸¼ÐTÀTÄ^ÐTÐTÐT×YÒYÐchÐYÑiÔiˆØ�D¥°´¸T¼WÑ1DÑ!EÔ!EÀdÄgÑ!MÑNÔNÐQUÔQXÑXÐZ^ÔZaÑaÒaÐaÐaÐaÐaÐar:   c                 óà   — t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        f}t          | j        g|¢R Ž }t          j        | j        ¦  «        }||k    sJ ‚d S rw  )r   r   rq  ry   )r=   rb   Úfv_M_inv_manualÚfv_M_inv_constantss       r8   r|   z<TestFiberForceVelocityInverseDeGroote2016.test_with_defaultsœ  st   € å�(‰OŒOÝ�(‰OŒOÝ�(‰OŒOÝ�'‰NŒNð	
ˆ	õ @ÀÄ	ÐVÈIÐVÐVÐVˆÝBÔPÐQUÔQZÑ[Ô[ÐØÐ"4Ò4Ð4Ð4Ð4Ð4Ð4r:   c                 óÜ   — t          | j        g| j        ¢R Ž }t          | j        | j        z
  | j        z  ¦  «        | j        | j        z  z  }|                     | j        ¦  «        |k    sJ ‚d S r3   ©r   rq  rb   r   ra   r^   r_   r   ©r=   r”  rG   s      r8   Útest_differentiate_wrt_fv_MzETestFiberForceVelocityInverseDeGroote2016.test_differentiate_wrt_fv_M§  sj   € Ý8¸¼ÐTÀTÄ^ÐTÐTÐTˆÝ˜œ T¤WÑ,¨d¬gÑ5Ñ6Ô6¸¼ÀÄ¹ÑHˆØ�}Š}˜TœYÑ'Ô'¨8Ò3Ð3Ð3Ð3Ð3Ð3r:   c                 ó  — t          | j        g| j        ¢R Ž }| j        | j        z
  t	          | j        | j        z
  | j        z  ¦  «        z  | j        dz  | j        z  z  }|                     | j        ¦  «        |k    sJ ‚d S rÈ   )r   rq  rb   ra   r   r^   r_   r   rœ  s      r8   rƒ   zCTestFiberForceVelocityInverseDeGroote2016.test_differentiate_wrt_c0¬  s€   € Ý8¸¼ÐTÀTÄ^ÐTÐTÐTˆØ”G˜dœiÑ'­¨t¬y¸4¼7Ñ/BÀDÄGÑ.KÑ)LÔ)LÑLÈdÌgÐWXÉjÐY]ÔY`ÑN`ÑaˆØ�}Š}˜TœWÑ%Ô%¨Ò1Ð1Ð1Ð1Ð1Ð1r:   c                 óâ   — t          | j        g| j        ¢R Ž }| j        t	          | j        | j        z
  | j        z  ¦  «        z
  | j        dz  z  }|                     | j        ¦  «        |k    sJ ‚d S rÈ   )	r   rq  rb   r`   r   ra   r^   r_   r   rœ  s      r8   r…   zCTestFiberForceVelocityInverseDeGroote2016.test_differentiate_wrt_c1±  so   € Ý8¸¼ÐTÀTÄ^ÐTÐTÐTˆØ”G�d D¤I°´Ñ$7¸¼Ñ#@ÑAÔAÑAÀ4Ä7ÈAÁ:ÑMˆØ�}Š}˜TœWÑ%Ô%¨Ò1Ð1Ð1Ð1Ð1Ð1r:   c                 óˆ   — t          | j        g| j        ¢R Ž }d| j        z  }|                     | j        ¦  «        |k    sJ ‚d S r‡   )r   rq  rb   r_   r   r`   rœ  s      r8   r‰   zCTestFiberForceVelocityInverseDeGroote2016.test_differentiate_wrt_c2¶  sK   € Ý8¸¼ÐTÀTÄ^ÐTÐTÐTˆØ�d”g‘:ˆØ�}Š}˜TœWÑ%Ô%¨Ò1Ð1Ð1Ð1Ð1Ð1r:   c                 óÞ   — t          | j        g| j        ¢R Ž }t          | j        | j        z
  | j        z  ¦  «         | j        | j        z  z  }|                     | j        ¦  «        |k    sJ ‚d S r3   r›  rœ  s      r8   r‹   zCTestFiberForceVelocityInverseDeGroote2016.test_differentiate_wrt_c3»  sm   € Ý8¸¼ÐTÀTÄ^ÐTÐTÐTˆÝ˜$œ) d¤gÑ-¨t¬wÑ6Ñ7Ô7Ð7¸¼ÀÄ¹ÑIˆØ�}Š}˜TœWÑ%Ô%¨Ò1Ð1Ð1Ð1Ð1Ð1r:   c                 ón   — t          | j        g| j        ¢R Ž }|                     ¦   «         t          u sJ ‚d S r3   )r   rq  rb   r�   r   r“  s     r8   rŽ   z6TestFiberForceVelocityInverseDeGroote2016.test_inverseÀ  s?   € Ý8¸¼ÐTÀTÄ^ÐTÐTÐTˆØ×ÒÑ!Ô!Õ%CÐCÐCÐCÐCÐCÐCr:   c                 ó†   — t          | j        g| j        ¢R Ž }d}t          ¦   «                              |¦  «        |k    sJ ‚d S )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Ä  sI   € Ý8¸¼ÐTÀTÄ^ÐTÐTÐTˆØSˆÝ‰~Œ~×%Ò% hÑ/Ô/°8Ò;Ð;Ð;Ð;Ð;Ð;r:   c                 óª   — t          | j        g| j        ¢R Ž }d}t          ¦   «                              |                     ¦   «         ¦  «        |k    sJ ‚d S )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É  sQ   € Ý4°T´YÐPÀÄÐPÐPÐPˆØaˆÝ‰~Œ~×%Ò% d§i¢i¡k¤kÑ2Ô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                 ó~   — t          j        | j        ¦  «        } |¦   «                              |¦  «        |k    sJ ‚d S r3   )r   ry   rq  rE   )r=   rF   rG   r”  s       r8   r”   z9TestFiberForceVelocityInverseDeGroote2016.test_print_codeÎ  sB   € õf 9ÔFÀtÄyÑQÔQˆØˆ|‰~Œ~×%Ò% hÑ/Ô/°8Ò;Ð;Ð;Ð;Ð;Ð;r:   c                 ó¾   — t          j        | j        ¦  «        }|                     | j        ¦  «        }d}t	          ¦   «                              |¦  «        |k    sJ ‚d S )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$  s^   € Ý8ÔFÀtÄyÑQÔQˆØ"Ÿ-š-¨¬	Ñ2Ô2ˆð"ð 	õ !Ñ"Ô"×*Ò*¨?Ñ;Ô;¸xÒGÐGÐGÐGÐGÐGr:   c                 ó¨   — t          j        | j        ¦  «        }t          | j        |¦  «        } |d¦  «        t	          j        d¦  «        k    sJ ‚d S )Nr™   g±M8'$JO¿)r   ry   rq  r(   rQ   rš   )r=   r”  Úfv_M_inv_callables      r8   rœ   z7TestFiberForceVelocityInverseDeGroote2016.test_lambdify-  sS   € Ý8ÔFÀtÄyÑQÔQˆÝ$ T¤Y°Ñ9Ô9ÐØ Ð  Ñ%Ô%­¬Ð7MÑ)NÔ)NÒNÐNÐNÐNÐNÐNr:   Nr�   rž   c                 ó&  — t          j        | j        ¦  «        }t          | j        |d¦  «        }t                               g d¢¦  «        }t                               g d¢¦  «        }t          j                              ||¦  «        |¦  «         d S )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  sŽ   € å8ÔFÀtÄyÑQÔQˆÝ$ T¤Y°¸'ÑBÔBÐÝ�{Š{Ð4Ð4Ð4Ñ5Ô5ˆÝ—;’;ð  
ð  
ð  
ñ ô ˆõ 	Œ×%Ò%Ð&7Ð&7¸Ñ&=Ô&=¸xÑHÔHÐHÐHÐHr:   rª   c                 ój  — t          j        | j        ¦  «        }t                               t          | j        |d¦  «        ¦  «        }t          j                             g d¢¦  «        }t          j                             g d¢¦  «        }t          j         	                     ||¦  «        |¦  «         d S )Nr)   r«  r¬  )
r   ry   rq  r)   r¬   r(   r*   r¥   r¦   r§   r­  s        r8   r­   z;TestFiberForceVelocityInverseDeGroote2016.test_lambdify_jax@  sž   € å8ÔFÀtÄyÑQÔQˆÝŸGšG¥H¨T¬Y¸À%Ñ$HÔ$HÑIÔIÐÝŒy�ŠÐ8Ð8Ð8Ñ9Ô9ˆÝ”9—?’?ð $
ð $
ð $
ñ ô ˆõ 	Œ×%Ò%Ð&7Ð&7¸Ñ&=Ô&=¸xÑHÔHÐHÐHÐ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ñ „\ðið
bð bð bð
Sð Sð Sðbð bð bð	5ð 	5ð 	5ð4ð 4ð 4ð
2ð 2ð 2ð
2ð 2ð 2ð
2ð 2ð 2ð
2ð 2ð 2ð
Dð Dð Dð<ð <ð <ð
?ð ?ð ?ð
 „[×ÒØ ð ð,ðð ð,ðð ð,ðð !ð,ðð !ð3ðð !ð3ðð ð%ðð "ððð "ððð ð%ðð ð%ðð ððð ð%ðð ð2ðð ðððSN	
ñQô Qðd<ð <ñeQô Qðd<ðHð Hð HðOð Oð Oð
 „[×Ò˜ ˜Ð.CÐÑDÔDðIð Iñ EÔDðIð „[×Ò˜˜t˜Ð,?ÐÑ@Ô@ðIð Iñ AÔ@ðIð Ið Ir:   r�  c                   ó  — e Zd Zed„ ¦   «         Zeej                             d¬¦  «        d„ ¦   «         ¦   «         Zeej         	                    dde
ie
eeeeeeddœg¦  «        d	„ ¦   «         ¦   «         Zed
„ ¦   «         ZdS )Ú!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 ‚d S ©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ÐJØÔ1Õ5YÐYÐYÐYÐYØÔ0Õ4WÐWÐWÐWÐWØÔ8Õ<fÐfÐfÐfÐfØÔ/Õ3UÐUÐUÐUÐUØÔ*Õ.LÐLÐLÐLÐLØÔ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 ¦  «         d S # 1 swxY w Y   d S r3   )rQ   ÚraisesÚ	TypeErrorr   r   r   r   r   r   r   r   )Ú_s    r8   Ú%test_invalid_constructor_keyword_onlyzGTestCharacteristicCurveCollection.test_invalid_constructor_keyword_onlyd  sœ   € õ Œ]�9Ñ%Ô%ð 		ð 		Ý-Ý-Ý4Ý3Ý:Ý2Ý.Ý5ñô ˆAð		ð 		ð 		ñ 		ô 		ð 		ð 		ð 		ð 		ð 		ð 		ð 		øøøð 		ð 		ð 		ð 		ð 		ð 		s   š9A Á A$Á'A$r>   r³  N)r³  r´  rµ  r¶  r·  r¸  r¹  Úextra_kwargc                 ó‚   — t          j        t          ¦  «        5  t          di | ¤Ž}d d d ¦  «         d S # 1 swxY w Y   d S )Nr4   )rQ   r¾  r¿  r   )r>   rÀ  s     r8   Ú*test_invalid_constructor_wrong_number_argszLTestCharacteristicCurveCollection.test_invalid_constructor_wrong_number_argsr  s‹   € õ$ Œ]�9Ñ%Ô%ð 	8ð 	8Ý-Ð7Ð7°Ð7Ð7ˆAð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð 	8ð 	8s   š4´8»8c            	      óŠ  — t          t          t          t          t          t
          t          t          ¬¦  «        } t          j	        t          ¦  «        5  d | _        d d d ¦  «         n# 1 swxY w Y   t          j	        t          ¦  «        5  d | _        d d d ¦  «         n# 1 swxY w Y   t          j	        t          ¦  «        5  d | _        d d d ¦  «         n# 1 swxY w Y   t          j	        t          ¦  «        5  d | _        d d d ¦  «         n# 1 swxY w Y   t          j	        t          ¦  «        5  d | _        d d d ¦  «         n# 1 swxY w Y   t          j	        t          ¦  «        5  d | _        d d d ¦  «         n# 1 swxY w Y   t          j	        t          ¦  «        5  d | _        d d d ¦  «         d S # 1 swxY w Y   d S 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‡  s7  € å.Ý =Ý(LÝ'JÝ/YÝ&HÝ!?Ý)Nð
ñ 
ô 
ˆõ Œ]�>Ñ*Ô*ð 	.ð 	.Ø)-ˆFÔ&ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.åŒ]�>Ñ*Ô*ð 	6ð 	6Ø15ˆFÔ.ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6åŒ]�>Ñ*Ô*ð 	5ð 	5Ø04ˆFÔ-ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5åŒ]�>Ñ*Ô*ð 	=ð 	=Ø8<ˆFÔ5ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=åŒ]�>Ñ*Ô*ð 	4ð 	4Ø/3ˆFÔ,ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4åŒ]�>Ñ*Ô*ð 	/ð 	/Ø*.ˆFÔ'ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/åŒ]�>Ñ*Ô*ð 	7ð 	7Ø26ˆFÔ/ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð 	7ð 	7s~   ÁA'Á'A+Á.A+ÂBÂB#Â&B#ÃCÃCÃCÃ;DÄDÄDÄ3EÅEÅEÅ+E?Å?FÆFÆ#F8Æ8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ÔNð
ð 
ñ OÔNñ „\ð
ð Ø„[×ÒØà"Ð$AÐBà'DØ/SØ.QØ6`Ø-OØ(FØ0UØ#ð	ð 	ð	
ñô ð 8ð 8ñ!ô ñ „\ð"8ð ð7ð 7ñ „\ð7ð 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Þ     sc  ðØ LÐ Là €€€à +Ð +Ð +Ð +Ð +Ð +Ø (Ð (Ð (Ð (Ð (Ð (Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð LÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ Kðð ð ð ð ð ð ð ð ð ð
 0Ð /Ð /Ð /Ð /Ð /Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø -Ð -Ð -Ð -Ð -Ð -Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3ðð ð ð ð ð ð ð ð ð ð ð ð CÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ -Ð -Ð -Ð -Ð -Ð -à€m�EÑÔ€Øˆ�gÑÔ€àð .Ø„J×ÒÐ&¨Ñ-Ô-Ð-ð'<ð '<ð '<ð '<ð '<ñ '<ô '<ð '<ðTzJð zJð zJð zJð zJñ zJô zJð zJðz~Ið ~Ið ~Ið ~Ið ~Iñ ~Iô ~Ið ~IðBxNð xNð xNð xNð xNñ xNô xNð xNðvrQð rQð rQð rQð rQñ rQô rQð rQðjLNð LNð LNð LNð LNñ LNô LNð LNð^
bJð bJð bJð bJð bJñ bJô bJð bJðJNIð NIð NIð NIð NIñ NIô NIð NIðbP7ð P7ð P7ð P7ð P7ñ P7ô P7ð P7ð P7ð P7r:   