Completed
Push — master ( 324e2b...ef0a32 )
by Nikita
04:10 queued 01:46
created
src/Regression/InterfaceRegression.php 1 patch
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -10,18 +10,18 @@
 block discarded – undo
10 10
 interface InterfaceRegression
11 11
 {
12 12
 	
13
-	public function calculate();
13
+    public function calculate();
14 14
 
15
-	/**
16
-	 * @param array $data
17
-	 *
18
-	 * @return array
19
-	 */
20
-	public function setSourceSequence(array $data);
15
+    /**
16
+     * @param array $data
17
+     *
18
+     * @return array
19
+     */
20
+    public function setSourceSequence(array $data);
21 21
 
22
-	/**
23
-	 * @return RegressionModel
24
-	 */
25
-	public function getRegressionModel(): RegressionModel;
22
+    /**
23
+     * @return RegressionModel
24
+     */
25
+    public function getRegressionModel(): RegressionModel;
26 26
 
27 27
 }
28 28
\ No newline at end of file
Please login to merge, or discard this patch.
src/Regression/LinearRegression.php 1 patch
Indentation   +40 added lines, -40 removed lines patch added patch discarded remove patch
@@ -14,54 +14,54 @@
 block discarded – undo
14 14
  */
15 15
 class LinearRegression extends AbstractRegression implements InterfaceRegression
16 16
 {
17
-	/**
18
-	 * LinearRegression constructor.
19
-	 */
20
-	public function __construct()
21
-	{
22
-		$this->sumIndex = [0, 0, 0, 0, 0, 0];
23
-		$this->dimension = count($this->sumIndex);
24
-	}
17
+    /**
18
+     * LinearRegression constructor.
19
+     */
20
+    public function __construct()
21
+    {
22
+        $this->sumIndex = [0, 0, 0, 0, 0, 0];
23
+        $this->dimension = count($this->sumIndex);
24
+    }
25 25
 
26
-	/**
27
-	 * @throws RegressionException
28
-	 */
29
-	public function calculate()
30
-	{
31
-		if ($this->sourceSequence === null) {
32
-			throw new RegressionException('The input sequence is not set');
33
-		}
26
+    /**
27
+     * @throws RegressionException
28
+     */
29
+    public function calculate()
30
+    {
31
+        if ($this->sourceSequence === null) {
32
+            throw new RegressionException('The input sequence is not set');
33
+        }
34 34
 
35
-		if (count($this->sourceSequence) < $this->dimension) {
36
-			throw new RegressionException('The dimension of the sequence of at least ' . $this->dimension);
37
-		}
35
+        if (count($this->sourceSequence) < $this->dimension) {
36
+            throw new RegressionException('The dimension of the sequence of at least ' . $this->dimension);
37
+        }
38 38
 
39
-		$k = 0;
39
+        $k = 0;
40 40
 
41
-		foreach ($this->sourceSequence as $k => $v) {
42
-			if ($v[1] !== null) {
43
-				$this->sumIndex[0] += $v[0];
44
-				$this->sumIndex[1] += $v[1];
45
-				$this->sumIndex[2] += $v[0] * $v[0];
46
-				$this->sumIndex[3] += $v[0] * $v[1];
47
-				$this->sumIndex[4] += $v[1] * $v[1];
48
-			}
49
-		}
41
+        foreach ($this->sourceSequence as $k => $v) {
42
+            if ($v[1] !== null) {
43
+                $this->sumIndex[0] += $v[0];
44
+                $this->sumIndex[1] += $v[1];
45
+                $this->sumIndex[2] += $v[0] * $v[0];
46
+                $this->sumIndex[3] += $v[0] * $v[1];
47
+                $this->sumIndex[4] += $v[1] * $v[1];
48
+            }
49
+        }
50 50
 
51
-		$k += 1;
51
+        $k += 1;
52 52
 
53
-		$gradient = ($k * $this->sumIndex[3] - $this->sumIndex[0] * $this->sumIndex[1]) /
54
-			($k * $this->sumIndex[2] - $this->sumIndex[0] * $this->sumIndex[0]);
53
+        $gradient = ($k * $this->sumIndex[3] - $this->sumIndex[0] * $this->sumIndex[1]) /
54
+            ($k * $this->sumIndex[2] - $this->sumIndex[0] * $this->sumIndex[0]);
55 55
 		
56
-		$intercept = $this->sumIndex[1] / $k - $gradient * $this->sumIndex[0] / $k;
56
+        $intercept = $this->sumIndex[1] / $k - $gradient * $this->sumIndex[0] / $k;
57 57
 
58
-		foreach ($this->sourceSequence as $i => $val) {
59
-			$coordinate = [$val[0], $val[0] * $gradient + $intercept];
60
-			$this->resultSequence[] = $coordinate;
61
-		}
58
+        foreach ($this->sourceSequence as $i => $val) {
59
+            $coordinate = [$val[0], $val[0] * $gradient + $intercept];
60
+            $this->resultSequence[] = $coordinate;
61
+        }
62 62
 
63
-		$this->equation = 'y = ' .  round($gradient, 1) .  'x + ' . round($intercept, 1);
63
+        $this->equation = 'y = ' .  round($gradient, 1) .  'x + ' . round($intercept, 1);
64 64
 
65
-		$this->push();
66
-	}
65
+        $this->push();
66
+    }
67 67
 }
Please login to merge, or discard this patch.
src/Regression/RegressionFactory.php 1 patch
Indentation   +54 added lines, -54 removed lines patch added patch discarded remove patch
@@ -12,64 +12,64 @@
 block discarded – undo
12 12
  */
13 13
 class RegressionFactory
14 14
 {
15
-	/**
16
-	 * @param array $data
17
-	 * @return RegressionModel
18
-	 * @throws TypeError
19
-	 */
20
-	public static function Linear(array $data): RegressionModel
21
-	{
22
-		return self::createContainer(LinearRegression::class, $data);
23
-	}
15
+    /**
16
+     * @param array $data
17
+     * @return RegressionModel
18
+     * @throws TypeError
19
+     */
20
+    public static function Linear(array $data): RegressionModel
21
+    {
22
+        return self::createContainer(LinearRegression::class, $data);
23
+    }
24 24
 
25
-	/**
26
-	 * @param array $data
27
-	 * @return RegressionModel
28
-	 * @throws TypeError
29
-	 */
30
-	public static function Exponential(array $data): RegressionModel
31
-	{
32
-		return self::createContainer(ExponentialRegression::class, $data);
33
-	}
25
+    /**
26
+     * @param array $data
27
+     * @return RegressionModel
28
+     * @throws TypeError
29
+     */
30
+    public static function Exponential(array $data): RegressionModel
31
+    {
32
+        return self::createContainer(ExponentialRegression::class, $data);
33
+    }
34 34
 
35
-	/**
36
-	 * @param array $data
37
-	 * @return RegressionModel
38
-	 * @throws TypeError
39
-	 */
40
-	public static function Logarithmic(array $data): RegressionModel
41
-	{
42
-		return self::createContainer(LogarithmicRegression::class, $data);
43
-	}
35
+    /**
36
+     * @param array $data
37
+     * @return RegressionModel
38
+     * @throws TypeError
39
+     */
40
+    public static function Logarithmic(array $data): RegressionModel
41
+    {
42
+        return self::createContainer(LogarithmicRegression::class, $data);
43
+    }
44 44
 
45
-	/**
46
-	 * @param array $data
47
-	 * @return RegressionModel
48
-	 * @throws TypeError
49
-	 */
50
-	public static function Power(array $data): RegressionModel
51
-	{
52
-		return self::createContainer(PowerRegression::class, $data);
53
-	}
45
+    /**
46
+     * @param array $data
47
+     * @return RegressionModel
48
+     * @throws TypeError
49
+     */
50
+    public static function Power(array $data): RegressionModel
51
+    {
52
+        return self::createContainer(PowerRegression::class, $data);
53
+    }
54 54
 
55
-	/**
56
-	 * @param string $className
57
-	 * @param array $data
58
-	 * @return InterfaceRegression
59
-	 * @throws TypeError
60
-	 */
61
-	protected static function createContainer(string $className, array $data): RegressionModel
62
-	{
63
-		/** @var InterfaceRegression $regressionObj */
64
-		$regressionObj = new $className();
55
+    /**
56
+     * @param string $className
57
+     * @param array $data
58
+     * @return InterfaceRegression
59
+     * @throws TypeError
60
+     */
61
+    protected static function createContainer(string $className, array $data): RegressionModel
62
+    {
63
+        /** @var InterfaceRegression $regressionObj */
64
+        $regressionObj = new $className();
65 65
 
66
-		if (!$regressionObj instanceof InterfaceRegression) {
67
-			throw new TypeError('the object' . $className .
68
-				'  is not compatible with the interface ' . InterfaceRegression::class);
69
-		}
66
+        if (!$regressionObj instanceof InterfaceRegression) {
67
+            throw new TypeError('the object' . $className .
68
+                '  is not compatible with the interface ' . InterfaceRegression::class);
69
+        }
70 70
 
71
-		$regressionObj->setSourceSequence($data);
72
-		$regressionObj->calculate();
73
-		return $regressionObj->getRegressionModel();
74
-	}
71
+        $regressionObj->setSourceSequence($data);
72
+        $regressionObj->calculate();
73
+        return $regressionObj->getRegressionModel();
74
+    }
75 75
 }
76 76
\ No newline at end of file
Please login to merge, or discard this patch.
src/autoload.php 1 patch
Indentation   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -1,21 +1,21 @@
 block discarded – undo
1 1
 <?php
2 2
 
3 3
 spl_autoload_register(
4
-	function($className) {
5
-		$className = ltrim($className, '\\');
6
-		$fileName = '';
7
-		if ($lastNsPos = strripos($className, '\\')) {
8
-			$namespace = substr($className, 0, $lastNsPos);
9
-			$className = substr($className, $lastNsPos + 1);
10
-			$fileName = str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
11
-		}
12
-		$fileName = __DIR__ . DIRECTORY_SEPARATOR . $fileName . $className . '.php';
13
-		if (file_exists($fileName)) {
14
-			include $fileName;
15
-			return true;
16
-		}
17
-		return false;
18
-	}
4
+    function($className) {
5
+        $className = ltrim($className, '\\');
6
+        $fileName = '';
7
+        if ($lastNsPos = strripos($className, '\\')) {
8
+            $namespace = substr($className, 0, $lastNsPos);
9
+            $className = substr($className, $lastNsPos + 1);
10
+            $fileName = str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
11
+        }
12
+        $fileName = __DIR__ . DIRECTORY_SEPARATOR . $fileName . $className . '.php';
13
+        if (file_exists($fileName)) {
14
+            include $fileName;
15
+            return true;
16
+        }
17
+        return false;
18
+    }
19 19
 );
20 20
 
21 21
 ?>
22 22
\ No newline at end of file
Please login to merge, or discard this patch.
src/Regression/ExponentialRegression.php 1 patch
Indentation   +37 added lines, -37 removed lines patch added patch discarded remove patch
@@ -16,50 +16,50 @@
 block discarded – undo
16 16
     /**
17 17
      * ExponentialRegression constructor.
18 18
      */
19
-	public function __construct()
20
-	{
21
-		$this->sumIndex = [0, 0, 0, 0, 0, 0];
22
-		$this->dimension = count($this->sumIndex);
23
-	}
19
+    public function __construct()
20
+    {
21
+        $this->sumIndex = [0, 0, 0, 0, 0, 0];
22
+        $this->dimension = count($this->sumIndex);
23
+    }
24 24
 
25
-	/**
26
-	 * @throws RegressionException
27
-	 */
28
-	public function calculate()
29
-	{
30
-		if ($this->sourceSequence === null) {
31
-			throw new RegressionException('The input sequence is not set');
32
-		}
25
+    /**
26
+     * @throws RegressionException
27
+     */
28
+    public function calculate()
29
+    {
30
+        if ($this->sourceSequence === null) {
31
+            throw new RegressionException('The input sequence is not set');
32
+        }
33 33
 
34
-		if (count($this->sourceSequence) < $this->dimension) {
35
-			throw new RegressionException('The dimension of the sequence of at least ' . $this->dimension);
36
-		}
34
+        if (count($this->sourceSequence) < $this->dimension) {
35
+            throw new RegressionException('The dimension of the sequence of at least ' . $this->dimension);
36
+        }
37 37
 
38
-		$k = 0;
38
+        $k = 0;
39 39
 
40
-		foreach ($this->sourceSequence as $k => $v) {
41
-			if ($v[1] !== null) {
42
-				$this->sumIndex[0] += $v[0];
43
-				$this->sumIndex[1] += $v[1];
44
-				$this->sumIndex[2] += $v[0] * $v[0] * $v[1];
45
-				$this->sumIndex[3] += $v[1] * log($v[1]);
46
-				$this->sumIndex[4] += $v[0] * $v[1] * log($v[1]);
47
-				$this->sumIndex[5] += $v[0] * $v[1];
48
-			}
49
-		}
40
+        foreach ($this->sourceSequence as $k => $v) {
41
+            if ($v[1] !== null) {
42
+                $this->sumIndex[0] += $v[0];
43
+                $this->sumIndex[1] += $v[1];
44
+                $this->sumIndex[2] += $v[0] * $v[0] * $v[1];
45
+                $this->sumIndex[3] += $v[1] * log($v[1]);
46
+                $this->sumIndex[4] += $v[0] * $v[1] * log($v[1]);
47
+                $this->sumIndex[5] += $v[0] * $v[1];
48
+            }
49
+        }
50 50
 
51
-		$denominator = $this->sumIndex[1] * $this->sumIndex[2] - $this->sumIndex[5] * $this->sumIndex[5];
51
+        $denominator = $this->sumIndex[1] * $this->sumIndex[2] - $this->sumIndex[5] * $this->sumIndex[5];
52 52
 
53
-		$A = exp(($this->sumIndex[2] * $this->sumIndex[3] - $this->sumIndex[5] * $this->sumIndex[4]) / $denominator);
54
-		$B = ($this->sumIndex[1] * $this->sumIndex[4] - $this->sumIndex[5] * $this->sumIndex[3]) / $denominator;
53
+        $A = exp(($this->sumIndex[2] * $this->sumIndex[3] - $this->sumIndex[5] * $this->sumIndex[4]) / $denominator);
54
+        $B = ($this->sumIndex[1] * $this->sumIndex[4] - $this->sumIndex[5] * $this->sumIndex[3]) / $denominator;
55 55
 
56
-		foreach ($this->sourceSequence as $i => $val) {
57
-			$coordinate = [$val[0], $A * exp($B * $val[0])];
58
-			$this->resultSequence[] = $coordinate;
59
-		}
56
+        foreach ($this->sourceSequence as $i => $val) {
57
+            $coordinate = [$val[0], $A * exp($B * $val[0])];
58
+            $this->resultSequence[] = $coordinate;
59
+        }
60 60
 
61
-		$this->equation = 'y = ' . round($A, 2) . '+ e^(' . round($B, 2) . 'x)';
61
+        $this->equation = 'y = ' . round($A, 2) . '+ e^(' . round($B, 2) . 'x)';
62 62
 
63
-		$this->push();
64
-	}
63
+        $this->push();
64
+    }
65 65
 }
Please login to merge, or discard this patch.