nfTlWNl rn Ѻq$³*%yNk9SCq*Z"B, O.}deNgn&aIYuim_0΀uV#pCpp)JPHG"#p=[8H(F^^T5FA$D Fs_LYo[@nޑ15CMd퉮ʺEN?6hN6ϒv!ݬE,aX!ĒHhI{5aSߦxvݕVUE{a'xM⤜ njB6\QM-{gfZ\"k{ae2:b1-ZXywP qy6=q{y9[@z Hr"_Qpc'so&D{ 4y nim6L# 61^=q'0M%ؿ+M#2^]$~W(ð4W$9BZ *vA߾u{BtT|خji`snu 2T=,g<`}FvLI iZ9AȖN{RZgK.bF#!/2m 1V2k;'(&KOJq-8gȫ)Bmڰyޙx! #;.˩Edj\rt*(Z2hNe i"OpT(Mo,7{9dw@-{! ,'6HH,F 7Dg5 _Ds: قmYGnHǾ$`VJ ~wdCZK[p:l\ /DCwx)nLSH.CHq:ljG^Q DKmGϏ #),p{ӍھϨYC≠iZ pI5@\ڥ`}R;ե~5x!Ίx=.Yo`@`/5M%e5(Af:85rϒmE(PGrrV ;WXԈ5YN*'T3p99%vjOD'w5xөDO,0ZJad 'YJ#yi᷼y=@$z2389|Q-1-iCec:w*eܤi`Z꠨ bwY9REadܣv؟ś;msc(񷺹izjct 1<;z{}992^aL/ԝ} KA篧]V &~y:- ,u/9p^ 2(\Z']F޹T;}Ѩ6i'~X/c>TvFn_CT;1 '5._aRAn(Gpc|k$>ՋT֊+ʲkWv_?]%,ɘX=Y (sEnt7gj d#K97+KD$V&܀[Z^' p3wGUw!u_ɮD 0[Ĝ&_'^иee+50<"B-mjyͲ3RlqdS {VFb!¯.B#fnV嗘nUkӄ+%ד!{n 7#>1JNU>/\DƨPdގ'ؿb3(;&gIpBlDc6fRK*ǛtQŏڄ&d:U"* \30hyPd/lq.afHΤkR!whK Ə}'仩~A4?= kg~?.<; +X ѵ ^˹.0߁bn90-:폶ť-"ѵ5D8 1@BvvACm7bA\ts4Q鮹k5U`xi^Ј .GAF# ?%/p05Zg(Լ9",H=,2cOpT%~X3e|ZU6I{oAQB<^E{]wصg[t>'՗RrV1,Nq;<ڽO2zT+LT)EpWEfxA2Ei=RИv'^)pW@Њ!>#DM(W](9KnDl:$+=r=ky6TKп}?J9C\ ,vA4AIV񦸉NsV S~EM۩maM'L{)vsL? [?[z\)a^:AFp]mfilޭ>Ĕ tF՜_]8F&gJ`K׉c&&oyT3nM];lƕ}YUu3'&Sq =b` lE4NȄXuG3G ]u&NFfOoM\10wGr̰ݢATfI11WF0VKvM)x/z{iI$dsN;w5]t$bvO3@PNAN2() function accepts its arguments in the reverse order to the standard * PHP atan2() function, so we need to reverse them here before calling the PHP atan() function. * * Excel Function: * ATAN2(xCoordinate,yCoordinate) * * @param mixed $xCoordinate should be float, the x-coordinate of the point, or can be an array of numbers * @param mixed $yCoordinate should be float, the y-coordinate of the point, or can be an array of numbers * * @return array|float|string * The inverse tangent of the specified x- and y-coordinates, or a string containing an error * If an array of numbers is passed as one of the arguments, then the returned result will also be an array * with the same dimensions */ public static function atan2($xCoordinate, $yCoordinate) { if (is_array($xCoordinate) || is_array($yCoordinate)) { return self::evaluateArrayArguments([self::class, __FUNCTION__], $xCoordinate, $yCoordinate); } try { $xCoordinate = Helpers::validateNumericNullBool($xCoordinate); $yCoordinate = Helpers::validateNumericNullBool($yCoordinate); } catch (Exception $e) { return $e->getMessage(); } if (($xCoordinate == 0) && ($yCoordinate == 0)) { return ExcelError::DIV0(); } return atan2($yCoordinate, $xCoordinate); } }