o
    8VaZ                     @   s  d Z ddlmZ edZer ddlmZmZmZmZ ddlm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZumvZvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z mZmZmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZumvZvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmHZHmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmÐZÐmĐZĐmŐZŐmƐZƐmǐZǐmZmȐZȐmɐZɐmʐZʐmːZːm̐Z̐m͐Z͐mΐZΐmϐZϐmАZАmѐZѐmҐZҐmӐZӐmԐZԐmՐZՐm֐Z֐mאZא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mZmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZ ddlmZmZ dd	lmZmZmZmZmZmZmZm Z  dd
lmZmZmZ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mZmZmZmZ ddlmZ dd dD \ZZZZZZZZZ Z!Z"Z#Z$Z%Z&Z'Z(Z)Z*Z+Z,Z-Z.Z/Z0Z1Z2Z3Z4Z5Z6dd dD \Z7Z8Z9Z:Z;Z<Z=Z>Z?Z@ZAZBZCZDZEZFZ?Z@ZGZHZIZJZKZLZMZNZOZPZQZRed\	ZSZTZUZVZWZXZYZZZ[dZ\dZ]dZ^dd Z_dd Z`dd Zadd Zbdd Zcdd  Zdd!d" Zed#d$ Zfd%d& Zgd'd( Zhd)d* Zid+d, Zjd-d. Zkd/d0 Zld1d2 Zmd3d4 Znd5d6 Zod7d8 Zpd9d: Zqd;d< Zrd=d> Zsd?d@ ZtdAdB ZudCdD ZvdEdF ZwdGdH ZxdIdJ ZydKdL ZzdMdN Z{dOdP Z|dQdR Z}dSdT Z~dUdV ZdWdX ZdYdZ Zd[d\ Zd]d^ Zd_d` Zdadb Zdcdd Zdedf Zdgdh Zdidj ZdS )kz
This code is automatically generated. Never edit it manually.
For details of generating the code see `rubi_parsing_guide.md` in `parsetools`.
    )import_modulematchpy)PatternReplacementRuleCustomConstraintis_match(  IntSumSetWithModuleScanMapAndFalseQZeroQ	NegativeQNonzeroQFreeQNFreeQListLog	PositiveQPositiveIntegerQNegativeIntegerQIntegerQ	IntegersQComplexNumberQPureComplexNumberQRealNumericQPositiveOrZeroQNegativeOrZeroQFractionOrNegativeQNegQEqualUnequalIntPartFracPart	RationalQProductQSumQNonsumQSubstFirstRestSqrtNumberQSqrtNumberSumQLinearQSqrtArcCoshCoefficientDenominatorHypergeometric2F1NotSimplifyFractionalPartIntegerPartAppellF1
EllipticPi	EllipticE	EllipticFArcTanArcCotArcCothArcTanhArcSinArcSinhArcCosArcCscArcSecArcCschArcSechSinhTanhCoshSechCschCoth	LessEqualLessGreaterGreaterEqual	FractionQIntLinearcQExpandIndependentQPowerQIntegerPowerQPositiveIntegerPowerQFractionalPowerQAtomQExpQLogQHeadMemberQTrigQSinQCosQTanQCotQSecQCscQSinCosTanCotSecCscHyperbolicQSinhQCoshQTanhQCothQSechQCschQInverseTrigQSinCosQ	SinhCoshQ	LeafCount	NumeratorNumberQNumericQLengthListQImReInverseHyperbolicQInverseFunctionQTrigHyperbolicFreeQInverseFunctionFreeQRealQEqQFractionalPowerFreeQComplexFreeQPolynomialQFactorSquareFreePowerOfLinearQExponent
QuadraticQLinearPairQBinomialPartsTrinomialPartsPolyQEvenQOddQPerfectSquareQNiceSqrtAuxQ	NiceSqrtQTogetherPosAuxPosQCoefficientList
ReplaceAllExpandLinearProductGCDContentFactorNumericFactorNonnumericFactorsMakeAssocListGensymSubstKernelSubstExpandExpressionApart
SmartApartMatchQPolynomialQuotientRemainderFreeFactorsNonfreeFactorsRemoveContentAuxRemoveContent	FreeTermsNonfreeTermsExpandAlgebraicFunctionCollectReciprocalsExpandCleanupAlgebraicFunctionQCoeffLeadTermRemainingTerms
LeadFactorRemainingFactorsLeadBase
LeadDegreeNumerDenom	hypergeomExponMergeMonomialsPolynomialDivide	BinomialQ
TrinomialQGeneralizedBinomialQGeneralizedTrinomialQFactorSquareFreeListPerfectPowerTestSquareFreeFactorTestRationalFunctionQRationalFunctionFactorsNonrationalFunctionFactorsReverseRationalFunctionExponentsRationalFunctionExpandExpandIntegrandSimplerQSimplerSqrtQSumSimplerQBinomialDegreeTrinomialDegreeCancelCommonFactorsSimplerIntegrandQGeneralizedBinomialDegreeGeneralizedBinomialPartsGeneralizedTrinomialDegreeGeneralizedTrinomialParts	MonomialQMonomialSumQMinimumMonomialExponentMonomialExponentLinearMatchQPowerOfLinearMatchQQuadraticMatchQCubicMatchQBinomialMatchQTrinomialMatchQGeneralizedBinomialMatchQGeneralizedTrinomialMatchQQuotientOfLinearsMatchQPolynomialTermQPolynomialTermsNonpolynomialTermsPseudoBinomialPartsNormalizePseudoBinomialPseudoBinomialPairQPseudoBinomialQPolynomialGCDPolyGCDAlgebraicFunctionFactorsNonalgebraicFunctionFactorsQuotientOfLinearsPQuotientOfLinearsPartsQuotientOfLinearsQFlattenSortAbsurdNumberQAbsurdNumberFactorsNonabsurdNumberFactorsSumSimplerAuxQPrependDropCombineExponentsFactorIntegerFactorAbsurdNumberSubstForInverseFunctionSubstForFractionalPower*SubstForFractionalPowerOfQuotientOfLinears"FractionalPowerOfQuotientOfLinearsSubstForFractionalPowerQSubstForFractionalPowerAuxQFractionalPowerOfSquareQFractionalPowerSubexpressionQApplyFactorNumericGcdMergeableFactorQMergeFactorMergeFactorsTrigSimplifyQTrigSimplifyTrigSimplifyRecurOrderFactorOrderSmallestOrderedQMinimumDegreePositiveFactorsSignNonpositiveFactorsPolynomialInAuxQPolynomialInQExponentInAux
ExponentInPolynomialInSubstAuxPolynomialInSubstDistribDistributeDegreeFunctionOfPowerDivideDegreesOfFactorsMonomialFactorFullSimplifyFunctionOfLinearSubstFunctionOfLinearNormalizeIntegrandNormalizeIntegrandAuxNormalizeIntegrandFactorNormalizeIntegrandFactorBaseNormalizeTogetherNormalizeLeadTermSignsAbsorbMinusSignNormalizeSumFactorsSignOfFactorNormalizePowerOfLinearSimplifyIntegrandSimplifyTermTogetherSimplifySmartSimplifySubstForExpnExpandToSumUnifySum
UnifyTerms	UnifyTerm	CalculusQFunctionOfInverseLinearPureFunctionOfSinhQPureFunctionOfTanhQPureFunctionOfCoshQIntegerQuotientQOddQuotientQEvenQuotientQFindTrigFactorFunctionOfSinhQFunctionOfCoshQOddHyperbolicPowerQFunctionOfTanhQFunctionOfTanhWeightFunctionOfHyperbolicQSmartNumeratorSmartDenominatorSubstForAuxActivateTrig
ExpandTrig
TrigExpandSubstForTrigSubstForHyperbolicInertTrigFreeQLCMSubstForFractionalPowerOfLinearFractionalPowerOfLinearInverseFunctionOfLinear
InertTrigQInertReciprocalQDeactivateTrigFixInertTrigFunctionDeactivateTrigAuxPowerOfInertTrigSumQPiecewiseLinearQKnownTrigIntegrandQKnownSineIntegrandQKnownTangentIntegrandQKnownCotangentIntegrandQKnownSecantIntegrandQTryPureTanSubstTryTanhSubstTryPureTanhSubstAbsurdNumberGCDAbsurdNumberGCDListExpandTrigExpandExpandTrigReduceExpandTrigReduceAuxNormalizeTrig	TrigToExpExpandTrigToExp
TrigReduceFunctionOfTrigAlgebraicTrigFunctionQFunctionOfHyperbolicFunctionOfQFunctionOfExpnQPureFunctionOfSinQPureFunctionOfCosQPureFunctionOfTanQPureFunctionOfCotQFunctionOfCosQFunctionOfSinQOddTrigPowerQFunctionOfTanQFunctionOfTanWeightFunctionOfTrigQFunctionOfDensePolynomialsQFunctionOfLogPowerVariableExpnPowerVariableDegreePowerVariableSubstEulerIntegrandQFunctionOfSquareRootOfQuadraticSquareRootOfQuadraticSubstDividesEasyDQProductOfLinearPowersQRtNthRoot	AtomBaseQSumBaseQNegSumBaseQAllNegTermQSomeNegTermQTrigSquareQRtAux
TrigSquareIntSumIntTermMap2ConstantFactorSameQReplacePartCommonFactorsMostMainFactorPositionFunctionOfExponentialQFunctionOfExponentialFunctionOfExponentialFunction FunctionOfExponentialFunctionAuxFunctionOfExponentialTestFunctionOfExponentialTestAuxstdev	rubi_testIfIntQuadraticQIntBinomialQRectifyTangentRectifyCotangent
Inequality	ConditionSimpSimpHelpSplitProductSplitSumSubstForrG  FresnelSFresnelCErfcErfiGammaFunctionOfTrigOfLinearQElementaryFunctionQComplexUnsameQ_SimpFixFactorSimpFixFactor_FixSimplifyFixSimplify_SimplifyAntiderivativeSumSimplifyAntiderivativeSum_SimplifyAntiderivativeSimplifyAntiderivative_TrigSimplifyAuxTrigSimplifyAuxCancelPartPolyLogDDistSum_doitPolynomialQuotientFloorPolynomialRemainderFactorr  CosIntegralSinIntegralLogIntegralSinhIntegralCoshIntegralRuleErf	PolyGammaExpIntegralEiExpIntegralELogGammaUtilityOperator	FactorialZeta
ProductLogDerivativeDividesHypergeometricPFQIntHideOneQNullrubi_exprubi_logDiscriminantNegativeQuotient)IntegralSsqrtAndOrIntegerFloatModIAbssimplifyMulAddPowsign
EulerGammaWC)symbolsSymbol)sincostancotcscsecr  erf)acoshasinhatanhacothacschasechcoshsinhtanhcothsechcsch)atanacscasinacotacosasecatan2)pic                 C      g | ]}t |qS  r  .0ir  r  U/usr/lib/python3/dist-packages/sympy/integrals/rubi/rules/integrand_simplification.py
<listcomp>       r  ZABCFGHabcdefghijklmnpqrtuvswxyzc                 C   r  r  r  r  r  r  r  r     r  )a1a2b1b2Zc1Zc2Zd1Zd2n1n2Ze1Ze2f1f2Zg1Zg2r  r  Zn3PqPmZPxQmQrZQxZjnZmnZnon2ZRFxZRGxzi ii Pqq Q R r C k uFNc                  C   s  ddl m} m}m}m}m}m}m}m}m	}m
}	m}
m}m}m}m}m}m}m}m}m}m}m}m}m}m}m}m}m}m}m}m}m }m!} m"}!m#}"m$}#m%}$m&}%m'}&m(}'m)}(m*})m+}*m,}+m-},m.}-m/}.m0}/m1}0m2}1m3}2m4}3m5}4m6}5m7}6m8}7m9}8m:}9m;}:m<};m=}<m>}=m?}>m@}?mA}@mB}AmC}B tDtEtFtGtHdtId tHdtId  tHdtId tHdtId tG||||| }CtJ|CtK}DtDtEtGtHdtId tHdtId tHdtId tHdtId tHdtId tG|||||}EtJ|EtL}FtDtEtFtGtHd	tId tHd
tId  tGtHdtId tHdtId  tHdtId tHdtId tG||||||| }GtJ|GtM}HtDtEtGtHd	tId tHd
tId tGtHdtId tHdtId  tHdtId tHdtId tHdtId tG|||||||}ItJ|ItN}JtDtEtGtHd	tId tHd
tId tGtHdtId tHdtId  tHdtId tHdtId tHdtId tG|||||||}KtJ|KtO}LtDtEtPtHdtId tPtHdtId  tHdtId tHdtId tHdtId tG|||	}MtJ|MtQ}NtDtEtRtS tHdtId tG|
||}OtJ|OtT}PtDtEtFtG||}QtJ|QtU}RtDtEtFtVtGtHd
tId   tG||||}StJ|StW}TtDtEtX tG}UtJ|UtY}VtDtEtXtZtIdtF tG||}WtJ|Wt[}XtDtEtFtX tG||}YtJ|Yt\}ZtDtEtXtG|}[tJ|[t]}\tDtEtXtGtHd
tId tHdtId  tG||||}]tJ|]t^}^tDtEtPtHdtId tVtP t_  tHdtId tG|||}_tJ|_t`}`tDtEtPtHdtId ta tPtHdtId t_  tHdtId tG||||||}atJ|atb}btDtEtPtHdtId ta tPtHdtId t_  tHdtId tG||||||}ctJ|ctc}dtDtEtPtHdtId ta tPtHdtId t_  tHdtId tG|||||||}etJ|etd}ftDtEtPtHdtId ta tPtHdtId t_  tHdtId tG|||||||}gtJ|gte}htDtEtFtPtHdtId  tHdtId tftPtHdtId  tHdtId  tHdtId tG||||||||	}itJ|itg}jtDtEtFtPtHdtId  ta tftPtHdtId  t_  tHdtId tG|||||||||
}ktJ|kth}ltDtEtFtPtHdtId  ta tftPtHdtId  t_  tHdtId tG||||||||	}mtJ|mti}ntDtEtPtHdtId ta tPtId tHd
tId tPtHdtId   tHdtId tG|||| |!}otJ|otj}ptDtEtFtPtHdtId  ta tPtId tHdtId tPtHdtId  tHdtId  tHdtId tG|||#|$|%|"| |!	}qtJ|qtk}rtDtEtFtGtHdtId tHdtId  tHdtId tftGtHdtId tHdtId  tHdtId  tHdtId tG|||||||&|'|(|)}stJ|stl}ttDtEtFtGtHdtId tHdtId  tHdtId tftGtm tHdtId  tHdtId  tHdtId tG|||||||||*|+|,|-}utJ|utn}vtDtEtFtGtId tHd
tId  tGtHdtId  tHdtId tHdtId tG||||.|'}wtJ|wto}xtDtEtFtGt_ tHdtId  tGtHdtId tHd
tId  tHdtId tHdtId tG|||||/|.|'}ytJ|ytp}ztDtEtqtGtHdtId  tGtId tHd
tId tGtHdtId  tHdtId tHdtId  tG|||||1||0}{tJ|{tr}|tDtEtGtHdtId tHdtId tGtHdtId tHdtId  tHdtId tHdtId tG||||3||2}}tJ|}ts}~tDtEtGtHdtId tHdtId tGtHdtId tHdtId  tGtHdtId tHd
tId  tHdtId tHdtId tG|||||3|5||2|4
}tJ|tt}tDtEtGtHdtId tFtGt_ tHdtId   tG|||||6}tJ|tu}tDtEtGtHdtId tFtGt_ tHdtId  tS  tG||||||6|7}tJ|tv}tDtEtGtHdtId twtGtHdtId tHdtId  tS  txtGtHdtId tHdtId  tS  tG|:|;|<|=||||8|9|7}tJ|ty}tDtEtztRtHdtId tHdtId tHdtId tHdtId  tG|||||
|>t{t|}tJ|t}}tDtEtztRtHdtId tHdtId tRtHdtId tHd
tId  tHdtId tHdtId  tG||||||/|
|>t{t~
}tJ|t}tDtEtta ttS  tHdtId tG|?|@|A|Bt{t}tJ|t}tDtEtttS  tHdtId tG|@|A|Bt{t}tJ|t}g |D|F|H|J|L|N|P|R|T|V|X|Z|\|^|`|b|d|f|h|j|l|n|p|r|t|v|x|z|||~||||||||S )Nr   )Ccons1cons2cons3cons4cons5cons6cons7cons8cons9cons10cons11cons12cons13cons14cons15cons16cons17cons18cons19cons20cons21cons22cons23cons24cons25cons26cons27cons28cons29cons30cons31cons32cons33cons34cons35cons36cons37cons38cons39cons40cons41cons42cons43cons44cons45cons46cons47cons48cons49cons50cons51cons52cons53cons54cons55cons56cons57cons58cons59cons60cons61cons62cons63cons64cons65cons66cons67n   bpuajcwmd   CBAqr  err  r  )Z sympy.integrals.rubi.constraintsr#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rb  rc  rd  re  r   r  a_x_r  r  r   replacement1replacement2replacement3replacement4replacement5v_replacement6Pm_p_replacement7replacement8b_replacement9u_replacement10r  replacement11replacement12replacement13replacement14n_replacement15m_replacement16replacement17replacement18replacement19c_replacement20replacement21replacement22replacement23replacement24replacement25j_replacement26replacement27replacement28d_replacement29replacement30replacement31replacement32replacement33a1_a2_replacement34Qm_r   With35replacement35With36replacement36Pq_Qr_With37replacement37With38replacement38)r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rb  rc  rd  re  Zpattern1Zrule1Zpattern2Zrule2Zpattern3Zrule3Zpattern4Zrule4Zpattern5Zrule5Zpattern6Zrule6Zpattern7Zrule7Zpattern8Zrule8Zpattern9Zrule9Z	pattern10Zrule10Z	pattern11Zrule11Z	pattern12Zrule12Z	pattern13Zrule13Z	pattern14Zrule14Z	pattern15Zrule15Z	pattern16Zrule16Z	pattern17Zrule17Z	pattern18Zrule18Z	pattern19Zrule19Z	pattern20Zrule20Z	pattern21Zrule21Z	pattern22Zrule22Z	pattern23Zrule23Z	pattern24Zrule24Z	pattern25Zrule25Z	pattern26Zrule26Z	pattern27Zrule27Z	pattern28Zrule28Z	pattern29Zrule29Z	pattern30Zrule30Z	pattern31Zrule31Z	pattern32Zrule32Z	pattern33Zrule33Z	pattern34Zrule34Z	pattern35Zrule35Z	pattern36Zrule36Z	pattern37Zrule37Z	pattern38Zrule38r  r  r  integrand_simplification   s    T
^
x


^
&

,

 


6
<
P
P
R
R
p
^
\
d
|


`
n
v
r

@
H

\

6
0
r  c                 C   s   t ||||  |  |S Nr   rk  rh  rf  ri  rj  xr  r  r  rz    s   rz  c                 C   s   t | | | |S r  r  r  r  r  r  r{  	     r{  c                 C   s.   t ||||  ||td|    |  |S Nrq  r   r  rk  rh  rm  rl  rf  ri  rj  r  r  r  r  r|       .r|  c                 C   s&   t || ||td|    |  |S r  r  r  r  r  r  r}    s   &r}  c                 C   s   t || |||   |  |S r  r  r  r  r  r  r~       r~  c                 C   s   t ||| |  | |  |S r  r  )rk  rh  ri  rj  vrn  r  r  r  r  r    r  r  c                 C   s   t | | | |S r  r  )r   ri  rj  r  r  r  r  r    r  r  c                 C   s   t | | |S r  )r  )rk  r  r  r  r  r  !  s   r  c                 C   s*   t | |||  td  td|  |S r  r  r  )rk  rh  rm  r  r  r  r  r  %  s   *r  c                 C   s   t tdt| ||S Nr  r  r   rj  r  r  r  r  r  )  s   r  c                 C   s   t ttd| t|||S )Nr   )r  r  r  r   rk  rj  r  r  r  r  r  -     r  c                 C   s   t | t|||S r  r  r   r  r  r  r  r  1  r  r  c                 C   s   t t| ||S r  )r  r  r  r  r  r  r  5  s   r  c                 C   s   t t|| | |  ||S r  )r   r   )rm  ro  rj  r  r  r  r  r  9  r  r  c                 C   s(   t | |  t|| | ||   ||S r  r  )rh  ro  rf  rj  r  r  r  r  r  r  =     (r  c                 C   sZ   t | |tdd   ||tdd    t||  t| |  t||||   ||S )Nrg  rq  r  r  r  r  r   rk  rh  ro  rf  rj  r  r  r  r  r  r  A     Zr  c                 C   sZ   t | |tdd   ||tdd    t| |  t||  t||||   ||S )Nr  rq  rg  r  r  r  r  r  r  E  r  r  c                 C   s@   t | ||  | | |   || |  t||||   ||S r  r  r  r  r  r  r  I     @r  c                 C   sZ   t | t|  |t|  | | t|   || t|  t|| | ||   ||S r  )r  r%   r&   r   r  r  r  r  r  M  r  r  c	           	      C   .   t || | t||||  ||   ||S r  r  	rk  rh  rm  rp  ro  rf  rj  r  r  r  r  r  r  Q  r  r  c	           	      C   r  r  r  r  r  r  r  r  U  r  r  c	           	      C   sD   t | ||  | |||  |   t||||  ||   ||S r  r  r  r  r  r  r  Y  s   Dr  c                 C   s:   t td|  t|| | |td   |||   ||S Nrg  r  )rk  rh  rm  ro  rj  r  r  r  r  r  r  ]     :r  c	           	      C   sT   t |td t||||  |td   t|| ||  || |  | ||S )Nrg  )r  r  r   r  )	rt  rs  rr  rk  rh  ro  rj  r  r  r  r  r  r  a  s   Tr  c
           
      C   s@   t ||  | t||	| |   | ||	|   ||   |	|	S r  r  )
rk  rh  rm  rp  ro  rf  ri  ru  rj  r  r  r  r  r  e  r  r  c
           
      C   s:   t |td  | | t|| ||	|   |   |	|	S r  r  )
rk  rh  rm  rp  rl  ro  rf  ri  rj  r  r  r  r  r  i  r  r  c                 C   sJ   t tdtd |  ||   | |td| |  td|   |S r  r  )rk  rh  rm  ri  rj  r  r  r  r  r  m  s   Jr  c                 C   s<   t ||  t||td |||   td|   ||S r  )r  r   r  )rk  rh  rm  rf  r  ri  rj  r  r  r  r  r  q  s   <r  c              
   C   s:   t || tt|| ||| ||  ||td   |S r  )r  r+   r   r  )rk  rh  rm  rp  rv  ri  r  r  r  r  r  u  r  r  c                 C   s0   t ||||   | ||| |    |  |S r  r  )rk  rh  ro  ri  ru  rj  r  r  r  r  r  y  s   0r  c	           	      C   sB   t ||||   | ||| |    ||| |    |  |S r  r  )	rk  rh  rm  ro  ri  ru  rw  rj  r  r  r  r  r  }  s   Br  c                 C   s(   t tt| |||   |||  |S r  )r  logr   )rk  rh  ro  rf  r  r  r  r  r    r  r  c                 C   s6   t | |||   |td  || |td   |S r  r  )rk  rh  ro  rf  ri  r  r  r  r  r    s   6r  c                 C   s^   t | |||   |td  ||||   |td   td| | | |td   |S )Nrg  rq  r  )r  r  r  r  ro  rf  ri  r  r  r  r  r    s   ^r  c              
   C   sz   t |ttttfrdS t| |}ttt|||td t	| | t
| || t
|||td t| |  r;dS dS NFr  T
isinstanceintr  floatr  r   r  r#   r  r   r   r  r   r!  rk  rh  rf  ri  r  ro  r  r  r  r       
Rr  c                 C   sT   t | |}tt|||td |t| ||  tt||||   | ||| |S r  r   r  r   r  r+   r   r  r  r  r  r    s   
Jr  c	           
   
   C   sz   t |ttttfrdS t| |}	ttt|||	td t	| |	 t
| ||	 t
|||	td t| |  r;dS dS r  r  
r   r!  rk  rh  rm  rf  r  ri  r  ro  r  r  r  r    r  r  c	           
   	   C   sh   t | |}	tt|||	td |	t| ||	  tt||||   ||td|    | ||| |S )Nr  rq  r  r  r  r  r  r    s   
^r  c                 C   s:   t |ttttfrdS t| ||}t|td rdS dS r  r  r  r  r  r  r   r   r  r  r"  ro  ri  rj  r  gcdr  r  r  r       r  c                 C   sB   t | ||}t|||  | t| |||  t||||  |S r  )r   r   r  r  r  r  r  r       6r  c                 C   s:   t |ttttfrdS t| ||}t|td rdS dS r  r  r  r"  ri  rj  r  r  r  r  r  r    r  r  c                 C   sB   t | ||}t||td  | t| || t||||  |S r  )r   r   r  r  r  r  r  r  r    r  r  (  __doc__Zsympy.externalr   r   r   r   r   r   Z%sympy.integrals.rubi.utility_functionr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rb  rc  rd  re  rf  rg  rh  ri  rj  rk  rl  rm  rn  ro  rp  rq  rr  rs  rt  ru  rv  rw  rx  ry  rz  r{  r|  r}  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  Zexpr  r  r  r  r  Zsympyr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  Zsympy.integrals.rubi.symbolr  Zsympy.core.symbolr  r  Zsympy.functionsr  r  r  r  r  r  r  Z%sympy.functions.elementary.hyperbolicr  r  r  r  r  r   r  r  r  r  r  r  Z(sympy.functions.elementary.trigonometricr  r  r	  r
  r  r  r  r  ZPiZA_ZB_ZC_ZF_ZG_ZH_rx  r  r  r  Ze_Zf_Zg_Zh_Zi_r  Zk_Zl_r  r  r  Zq_Zr_Zt_r  r  Zs_Zw_ry  Zy_Zz_r  r  Zb1_Zb2_Zc1_Zc2_Zd1_Zd2_Zn1_Zn2_Ze1_Ze2_Zf1_Zf2_Zg1_Zg2_Zn3_r  r  ZPx_r  r  ZQx_Zjn_Zmn_Znon2_ZRFx_ZRGx_r  iiZPqqQRrw  rr  krj  Z	_UseGammaZ	ShowStepsZStepCounterr  rz  r{  r|  r}  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  <module>   s               nJjB.

{


































	

	

	
	