403Webshell
Server IP : 104.21.80.248  /  Your IP : 172.71.28.156
Web Server : Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30
System : Windows NT WIN-ECQAAA40806 6.2 build 9200 (Windows Server 2012 Standard Edition) i586
User : SYSTEM ( 0)
PHP Version : 5.6.30
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /Inetpub/www/myschool/triamudom/tuprblearn/lib/mlbackend/php/phpml/src/Phpml/Math/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /Inetpub/www/myschool/triamudom/tuprblearn/lib/mlbackend/php/phpml/src/Phpml/Math/Set.php
<?php

declare(strict_types=1);

namespace Phpml\Math;

use ArrayIterator;
use IteratorAggregate;

class Set implements IteratorAggregate
{
    /**
     * @var string[]|int[]|float[]|bool[]
     */
    private $elements = [];

    /**
     * @param string[]|int[]|float[]|bool[] $elements
     */
    public function __construct(array $elements = [])
    {
        $this->elements = self::sanitize($elements);
    }

    /**
     * Creates the union of A and B.
     */
    public static function union(self $a, self $b): self
    {
        return new self(array_merge($a->toArray(), $b->toArray()));
    }

    /**
     * Creates the intersection of A and B.
     */
    public static function intersection(self $a, self $b): self
    {
        return new self(array_intersect($a->toArray(), $b->toArray()));
    }

    /**
     * Creates the difference of A and B.
     */
    public static function difference(self $a, self $b): self
    {
        return new self(array_diff($a->toArray(), $b->toArray()));
    }

    /**
     * Creates the Cartesian product of A and B.
     *
     * @return Set[]
     */
    public static function cartesian(self $a, self $b): array
    {
        $cartesian = [];

        foreach ($a as $multiplier) {
            foreach ($b as $multiplicand) {
                $cartesian[] = new self(array_merge([$multiplicand], [$multiplier]));
            }
        }

        return $cartesian;
    }

    /**
     * Creates the power set of A.
     *
     * @return Set[]
     */
    public static function power(self $a): array
    {
        $power = [new self()];

        foreach ($a as $multiplicand) {
            foreach ($power as $multiplier) {
                $power[] = new self(array_merge([$multiplicand], $multiplier->toArray()));
            }
        }

        return $power;
    }

    /**
     * @param string|int|float|bool $element
     */
    public function add($element): self
    {
        return $this->addAll([$element]);
    }

    /**
     * @param string[]|int[]|float[]|bool[] $elements
     */
    public function addAll(array $elements): self
    {
        $this->elements = self::sanitize(array_merge($this->elements, $elements));

        return $this;
    }

    /**
     * @param string|int|float $element
     */
    public function remove($element): self
    {
        return $this->removeAll([$element]);
    }

    /**
     * @param string[]|int[]|float[] $elements
     */
    public function removeAll(array $elements): self
    {
        $this->elements = self::sanitize(array_diff($this->elements, $elements));

        return $this;
    }

    /**
     * @param string|int|float $element
     */
    public function contains($element): bool
    {
        return $this->containsAll([$element]);
    }

    /**
     * @param string[]|int[]|float[] $elements
     */
    public function containsAll(array $elements): bool
    {
        return count(array_diff($elements, $this->elements)) === 0;
    }

    /**
     * @return string[]|int[]|float[]|bool[]
     */
    public function toArray(): array
    {
        return $this->elements;
    }

    public function getIterator(): ArrayIterator
    {
        return new ArrayIterator($this->elements);
    }

    public function isEmpty(): bool
    {
        return $this->cardinality() === 0;
    }

    public function cardinality(): int
    {
        return count($this->elements);
    }

    /**
     * Removes duplicates and rewrites index.
     *
     * @param string[]|int[]|float[]|bool[] $elements
     *
     * @return string[]|int[]|float[]|bool[]
     */
    private static function sanitize(array $elements): array
    {
        sort($elements, SORT_ASC);

        return array_values(array_unique($elements, SORT_ASC));
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit