AnonSec Shell
Server IP : 54.36.91.62  /  Your IP : 216.73.217.117
Web Server : Apache
System : Linux webm013.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User : coopiak ( 151928)
PHP Version : 8.3.23
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/coopiak/amisdesseniors-fr/votreville/libraries/CBLib/CBLib/Math/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/coopiak/amisdesseniors-fr/votreville/libraries/CBLib/CBLib/Math/Interval.php
<?php
/**
* CBLib, Community Builder Library(TM)
* @version $Id: 4/17/14 1:56 PM $
* @package CBLib\Math
* @copyright (C) 2004-2023 www.joomlapolis.com / Lightning MultiCom SA - and its licensors, all rights reserved
* @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU/GPL version 2
*/

namespace CBLib\Math;

defined('CBLIB') or die();

/**
 * CBLib\Math\Interval Class implementation
 *
 * Partly inspired with thanks from Laravel and Symfony
 */
class Interval
{
	/**
	 * Tests if a given number belongs to a given math interval.
	 *
	 * An interval can represent a finite set of numbers:
	 *
	 *  {1,2,3,4}
	 *
	 * An interval can represent numbers between two numbers:
	 *
	 *  [1, +Inf]
	 *  ]-1,2[
	 *
	 * The left delimiter can be [ (inclusive) or ] (exclusive).
	 * The right delimiter can be [ (exclusive) or ] (inclusive).
	 * Beside numbers, you can use -Inf and +Inf for the infinite.
	 *
	 * @see    http://en.wikipedia.org/wiki/Interval_%28mathematics%29
	 *         http://en.wikipedia.org/wiki/ISO_31-11
	 *
	 * @param integer $number   A number
	 * @param string  $interval An interval
	 *
	 * @return Boolean
	 *
	 * @throws \InvalidArgumentException
	 */
	public static function test($number, $interval)
	{
		$interval = trim($interval);

		if (!preg_match('/^'.self::getIntervalRegexp().'$/x', $interval, $matches)) {
			throw new \InvalidArgumentException(sprintf('"%s" is not a valid interval.', $interval));
		}

		if ($matches[1]) {
			foreach (explode(',', $matches[2]) as $n) {
				if ($number == $n) {
					return true;
				}
			}
		} else {
			$leftNumber = self::convertNumber($matches['left']);
			$rightNumber = self::convertNumber($matches['right']);

			return
				('[' === $matches['left_delimiter'] ? $number >= $leftNumber : $number > $leftNumber)
				&& (']' === $matches['right_delimiter'] ? $number <= $rightNumber : $number < $rightNumber)
				;
		}

		return false;
	}

	/**
	 * Returns a Regexp that matches valid intervals.
	 *
	 * @return string A Regexp (without the delimiters)
	 */
	public static function getIntervalRegexp()
	{
		return <<<EOF
        ({\s*
            (\-?\d+(\.\d+)?[\s*,\s*\-?\d+(\.\d+)?]*)
        \s*})

            |

        (?P<left_delimiter>[\[\]])
            \s*
            (?P<left>-Inf|\-?\d+(\.\d+)?)
            \s*,\s*
            (?P<right>\+?Inf|\-?\d+(\.\d+)?)
            \s*
        (?P<right_delimiter>[\[\]])
EOF;
	}

	/**
	 * Converts string into float and '-Inf' and '+Inf'/'Inf' strings into minimum or maximum (float)
	 *
	 * @param  string  $number
	 * @return float
	 */
	private static function convertNumber($number)
	{
		if ('-Inf' === $number) {
			return log(0);
		} elseif ('+Inf' === $number || 'Inf' === $number) {
			return -log(0);
		}

		return (float) $number;
	}
} 

Anon7 - 2022
AnonSec Team