30 lines
730 B
PHP
30 lines
730 B
PHP
<?php
|
|
// XNumber.php
|
|
// Created: 2023-09-15
|
|
// Updated: 2023-11-09
|
|
|
|
namespace Index;
|
|
|
|
use InvalidArgumentException;
|
|
|
|
/**
|
|
* Provides various helper methods for numbers.
|
|
*/
|
|
final class XNumber {
|
|
public static function weighted(float $num1, float $num2, float $weight): float {
|
|
$weight = min(1, max(0, $weight));
|
|
return ($num1 * $weight) + ($num2 * (1 - $weight));
|
|
}
|
|
|
|
public static function almostEquals(float $value1, float $value2): bool {
|
|
return abs($value1 - $value2) <= PHP_FLOAT_EPSILON;
|
|
}
|
|
|
|
public static function easeInQuad(float $n): float {
|
|
return $n * $n;
|
|
}
|
|
|
|
public static function easeOutQuad(float $n): float {
|
|
return 1 - (1 - $n) * (1 - $n);
|
|
}
|
|
}
|