Final phase of aggregating the MathTrig function implementations into commonly-themed groups
This commit is contained in:
parent
ac5b96d0f1
commit
71bc7e6f89
|
|
@ -968,7 +968,7 @@ class Calculation
|
|||
],
|
||||
'EVEN' => [
|
||||
'category' => Category::CATEGORY_MATH_AND_TRIG,
|
||||
'functionCall' => [MathTrig\Even::class, 'evaluate'],
|
||||
'functionCall' => [MathTrig\Round::class, 'even'],
|
||||
'argumentCount' => '1',
|
||||
],
|
||||
'EXACT' => [
|
||||
|
|
@ -1859,7 +1859,7 @@ class Calculation
|
|||
],
|
||||
'ODD' => [
|
||||
'category' => Category::CATEGORY_MATH_AND_TRIG,
|
||||
'functionCall' => [MathTrig\Odd::class, 'evaluate'],
|
||||
'functionCall' => [MathTrig\Round::class, 'odd'],
|
||||
'argumentCount' => '1',
|
||||
],
|
||||
'ODDFPRICE' => [
|
||||
|
|
@ -2253,12 +2253,12 @@ class Calculation
|
|||
],
|
||||
'SQRT' => [
|
||||
'category' => Category::CATEGORY_MATH_AND_TRIG,
|
||||
'functionCall' => [MathTrig\Sqrt::class, 'evaluate'],
|
||||
'functionCall' => [MathTrig\Sqrt::class, 'sqrt'],
|
||||
'argumentCount' => '1',
|
||||
],
|
||||
'SQRTPI' => [
|
||||
'category' => Category::CATEGORY_MATH_AND_TRIG,
|
||||
'functionCall' => [MathTrig\SqrtPi::class, 'evaluate'],
|
||||
'functionCall' => [MathTrig\Sqrt::class, 'pi'],
|
||||
'argumentCount' => '1',
|
||||
],
|
||||
'STANDARDIZE' => [
|
||||
|
|
|
|||
|
|
@ -148,8 +148,8 @@ class MathTrig
|
|||
*
|
||||
* @Deprecated 1.18.0
|
||||
*
|
||||
* @see MathTrig\Even::evaluate()
|
||||
* Use the evaluate() method in the MathTrig\Even class instead
|
||||
* @see MathTrig\Round::even()
|
||||
* Use the even() method in the MathTrig\Round class instead
|
||||
*
|
||||
* @param float $number Number to round
|
||||
*
|
||||
|
|
@ -157,7 +157,7 @@ class MathTrig
|
|||
*/
|
||||
public static function EVEN($number)
|
||||
{
|
||||
return MathTrig\Even::evaluate($number);
|
||||
return MathTrig\Round::even($number);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -508,8 +508,8 @@ class MathTrig
|
|||
*
|
||||
* @Deprecated 1.18.0
|
||||
*
|
||||
* @See MathTrig\Odd::evaluate()
|
||||
* Use the evaluate method in the MathTrig\Odd class instead
|
||||
* @See MathTrig\Round::odd()
|
||||
* Use the odd method in the MathTrig\Round class instead
|
||||
*
|
||||
* @param float $number Number to round
|
||||
*
|
||||
|
|
@ -517,7 +517,7 @@ class MathTrig
|
|||
*/
|
||||
public static function ODD($number)
|
||||
{
|
||||
return MathTrig\Odd::evaluate($number);
|
||||
return MathTrig\Round::odd($number);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -726,8 +726,8 @@ class MathTrig
|
|||
*
|
||||
* @Deprecated 1.18.0
|
||||
*
|
||||
* @See MathTrig\SqrtPi::evaluate()
|
||||
* Use the evaluate method in the MathTrig\SqrtPi class instead
|
||||
* @See MathTrig\Sqrt::sqrt()
|
||||
* Use the pi method in the MathTrig\Sqrt class instead
|
||||
*
|
||||
* @param float $number Number
|
||||
*
|
||||
|
|
@ -735,7 +735,7 @@ class MathTrig
|
|||
*/
|
||||
public static function SQRTPI($number)
|
||||
{
|
||||
return MathTrig\SqrtPi::evaluate($number);
|
||||
return MathTrig\Sqrt::pi($number);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -1448,8 +1448,8 @@ class MathTrig
|
|||
*
|
||||
* @Deprecated 1.18.0
|
||||
*
|
||||
* @See MathTrig\Sqrt::evaluate()
|
||||
* Use the evaluate method in the MathTrig\Sqrt class instead
|
||||
* @See MathTrig\Sqrt::sqrt()
|
||||
* Use the sqrt method in the MathTrig\Sqrt class instead
|
||||
*
|
||||
* @param mixed $number Should be numeric
|
||||
*
|
||||
|
|
@ -1457,7 +1457,7 @@ class MathTrig
|
|||
*/
|
||||
public static function builtinSQRT($number)
|
||||
{
|
||||
return MathTrig\Sqrt::evaluate($number);
|
||||
return MathTrig\Sqrt::sqrt($number);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
namespace PhpOffice\PhpSpreadsheet\Calculation\MathTrig;
|
||||
|
||||
use Exception;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Exception;
|
||||
|
||||
class Absolute
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,35 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace PhpOffice\PhpSpreadsheet\Calculation\MathTrig;
|
||||
|
||||
use Exception;
|
||||
|
||||
class Even
|
||||
{
|
||||
/**
|
||||
* EVEN.
|
||||
*
|
||||
* Returns number rounded up to the nearest even integer.
|
||||
* You can use this function for processing items that come in twos. For example,
|
||||
* a packing crate accepts rows of one or two items. The crate is full when
|
||||
* the number of items, rounded up to the nearest two, matches the crate's
|
||||
* capacity.
|
||||
*
|
||||
* Excel Function:
|
||||
* EVEN(number)
|
||||
*
|
||||
* @param float $number Number to round
|
||||
*
|
||||
* @return float|string Rounded Number, or a string containing an error
|
||||
*/
|
||||
public static function evaluate($number)
|
||||
{
|
||||
try {
|
||||
$number = Helpers::validateNumericNullBool($number);
|
||||
} catch (Exception $e) {
|
||||
return $e->getMessage();
|
||||
}
|
||||
|
||||
return Helpers::getEven($number);
|
||||
}
|
||||
}
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
namespace PhpOffice\PhpSpreadsheet\Calculation\MathTrig;
|
||||
|
||||
use Exception;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Exception;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Functions;
|
||||
|
||||
class Gcd
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
namespace PhpOffice\PhpSpreadsheet\Calculation\MathTrig;
|
||||
|
||||
use Exception;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Exception;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Functions;
|
||||
|
||||
class Lcm
|
||||
|
|
|
|||
|
|
@ -1,38 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace PhpOffice\PhpSpreadsheet\Calculation\MathTrig;
|
||||
|
||||
use Exception;
|
||||
|
||||
class Odd
|
||||
{
|
||||
/**
|
||||
* ODD.
|
||||
*
|
||||
* Returns number rounded up to the nearest odd integer.
|
||||
*
|
||||
* @param float $number Number to round
|
||||
*
|
||||
* @return float|string Rounded Number, or a string containing an error
|
||||
*/
|
||||
public static function evaluate($number)
|
||||
{
|
||||
try {
|
||||
$number = Helpers::validateNumericNullBool($number);
|
||||
} catch (Exception $e) {
|
||||
return $e->getMessage();
|
||||
}
|
||||
|
||||
$significance = Helpers::returnSign($number);
|
||||
if ($significance == 0) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
$result = ceil($number / $significance) * $significance;
|
||||
if ($result == Helpers::getEven($result)) {
|
||||
$result += $significance;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
|
@ -119,4 +119,61 @@ class Round
|
|||
|
||||
return Functions::NAN();
|
||||
}
|
||||
|
||||
/**
|
||||
* EVEN.
|
||||
*
|
||||
* Returns number rounded up to the nearest even integer.
|
||||
* You can use this function for processing items that come in twos. For example,
|
||||
* a packing crate accepts rows of one or two items. The crate is full when
|
||||
* the number of items, rounded up to the nearest two, matches the crate's
|
||||
* capacity.
|
||||
*
|
||||
* Excel Function:
|
||||
* EVEN(number)
|
||||
*
|
||||
* @param float $number Number to round
|
||||
*
|
||||
* @return float|string Rounded Number, or a string containing an error
|
||||
*/
|
||||
public static function even($number)
|
||||
{
|
||||
try {
|
||||
$number = Helpers::validateNumericNullBool($number);
|
||||
} catch (Exception $e) {
|
||||
return $e->getMessage();
|
||||
}
|
||||
|
||||
return Helpers::getEven($number);
|
||||
}
|
||||
|
||||
/**
|
||||
* ODD.
|
||||
*
|
||||
* Returns number rounded up to the nearest odd integer.
|
||||
*
|
||||
* @param float $number Number to round
|
||||
*
|
||||
* @return float|string Rounded Number, or a string containing an error
|
||||
*/
|
||||
public static function odd($number)
|
||||
{
|
||||
try {
|
||||
$number = Helpers::validateNumericNullBool($number);
|
||||
} catch (Exception $e) {
|
||||
return $e->getMessage();
|
||||
}
|
||||
|
||||
$significance = Helpers::returnSign($number);
|
||||
if ($significance == 0) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
$result = ceil($number / $significance) * $significance;
|
||||
if ($result == Helpers::getEven($result)) {
|
||||
$result += $significance;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
namespace PhpOffice\PhpSpreadsheet\Calculation\MathTrig;
|
||||
|
||||
use Exception;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Exception;
|
||||
|
||||
class Sqrt
|
||||
{
|
||||
|
|
@ -13,9 +13,9 @@ class Sqrt
|
|||
*
|
||||
* @param mixed $number Should be numeric
|
||||
*
|
||||
* @return float|string Rounded number
|
||||
* @return float|string square roor
|
||||
*/
|
||||
public static function evaluate($number)
|
||||
public static function sqrt($number)
|
||||
{
|
||||
try {
|
||||
$number = Helpers::validateNumericNullBool($number);
|
||||
|
|
@ -25,4 +25,25 @@ class Sqrt
|
|||
|
||||
return Helpers::numberOrNan(sqrt($number));
|
||||
}
|
||||
|
||||
/**
|
||||
* SQRTPI.
|
||||
*
|
||||
* Returns the square root of (number * pi).
|
||||
*
|
||||
* @param float $number Number
|
||||
*
|
||||
* @return float|string Square Root of Number * Pi, or a string containing an error
|
||||
*/
|
||||
public static function pi($number)
|
||||
{
|
||||
try {
|
||||
$number = Helpers::validateNumericNullSubstitution($number, 0);
|
||||
Helpers::validateNotNegative($number);
|
||||
} catch (Exception $e) {
|
||||
return $e->getMessage();
|
||||
}
|
||||
|
||||
return sqrt($number * M_PI);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,29 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace PhpOffice\PhpSpreadsheet\Calculation\MathTrig;
|
||||
|
||||
use Exception;
|
||||
|
||||
class SqrtPi
|
||||
{
|
||||
/**
|
||||
* SQRTPI.
|
||||
*
|
||||
* Returns the square root of (number * pi).
|
||||
*
|
||||
* @param float $number Number
|
||||
*
|
||||
* @return float|string Square Root of Number * Pi, or a string containing an error
|
||||
*/
|
||||
public static function evaluate($number)
|
||||
{
|
||||
try {
|
||||
$number = Helpers::validateNumericNullSubstitution($number, 0);
|
||||
Helpers::validateNotNegative($number);
|
||||
} catch (Exception $e) {
|
||||
return $e->getMessage();
|
||||
}
|
||||
|
||||
return sqrt($number * M_PI);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue