!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/uploads/script/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Trend/   drwxr-xr-x
Free 13.39 GB of 57.97 GB (23.1%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     PolynomialBestFit.php (5.48 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace PhpOffice\PhpSpreadsheet\Shared\Trend;

use 
PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix;

class 
PolynomialBestFit extends BestFit
{
    
/**
     * Algorithm type to use for best-fit
     * (Name of this Trend class).
     *
     * @var string
     */
    
protected $bestFitType 'polynomial';

    
/**
     * Polynomial order.
     *
     * @var int
     */
    
protected $order 0;

    
/**
     * Return the order of this polynomial.
     *
     * @return int
     */
    
public function getOrder()
    {
        return 
$this->order;
    }

    
/**
     * Return the Y-Value for a specified value of X.
     *
     * @param float $xValue X-Value
     *
     * @return float Y-Value
     */
    
public function getValueOfYForX($xValue)
    {
        
$retVal $this->getIntersect();
        
$slope $this->getSlope();
        foreach (
$slope as $key => $value) {
            if (
$value != 0.0) {
                
$retVal += $value $xValue ** ($key 1);
            }
        }

        return 
$retVal;
    }

    
/**
     * Return the X-Value for a specified value of Y.
     *
     * @param float $yValue Y-Value
     *
     * @return float X-Value
     */
    
public function getValueOfXForY($yValue)
    {
        return (
$yValue $this->getIntersect()) / $this->getSlope();
    }

    
/**
     * Return the Equation of the best-fit line.
     *
     * @param int $dp Number of places of decimal precision to display
     *
     * @return string
     */
    
public function getEquation($dp 0)
    {
        
$slope $this->getSlope($dp);
        
$intersect $this->getIntersect($dp);

        
$equation 'Y = ' $intersect;
        foreach (
$slope as $key => $value) {
            if (
$value != 0.0) {
                
$equation .= ' + ' $value ' * X';
                if (
$key 0) {
                    
$equation .= '^' . ($key 1);
                }
            }
        }

        return 
$equation;
    }

    
/**
     * Return the Slope of the line.
     *
     * @param int $dp Number of places of decimal precision to display
     *
     * @return string
     */
    
public function getSlope($dp 0)
    {
        if (
$dp != 0) {
            
$coefficients = [];
            foreach (
$this->slope as $coefficient) {
                
$coefficients[] = round($coefficient$dp);
            }

            return 
$coefficients;
        }

        return 
$this->slope;
    }

    public function 
getCoefficients($dp 0)
    {
        return 
array_merge([$this->getIntersect($dp)], $this->getSlope($dp));
    }

    
/**
     * Execute the regression and calculate the goodness of fit for a set of X and Y data values.
     *
     * @param int $order Order of Polynomial for this regression
     * @param float[] $yValues The set of Y-values for this regression
     * @param float[] $xValues The set of X-values for this regression
     */
    
private function polynomialRegression($order$yValues$xValues): void
    
{
        
// calculate sums
        
$x_sum array_sum($xValues);
        
$y_sum array_sum($yValues);
        
$xx_sum $xy_sum $yy_sum 0;
        for (
$i 0$i $this->valueCount; ++$i) {
            
$xy_sum += $xValues[$i] * $yValues[$i];
            
$xx_sum += $xValues[$i] * $xValues[$i];
            
$yy_sum += $yValues[$i] * $yValues[$i];
        }
        
/*
         *    This routine uses logic from the PHP port of polyfit version 0.1
         *    written by Michael Bommarito and Paul Meagher
         *
         *    The function fits a polynomial function of order $order through
         *    a series of x-y data points using least squares.
         *
         */
        
$A = [];
        
$B = [];
        for (
$i 0$i $this->valueCount; ++$i) {
            for (
$j 0$j <= $order; ++$j) {
                
$A[$i][$j] = $xValues[$i] ** $j;
            }
        }
        for (
$i 0$i $this->valueCount; ++$i) {
            
$B[$i] = [$yValues[$i]];
        }
        
$matrixA = new Matrix($A);
        
$matrixB = new Matrix($B);
        
$C $matrixA->solve($matrixB);

        
$coefficients = [];
        for (
$i 0$i $C->getRowDimension(); ++$i) {
            
$r $C->get($i0);
            if (
abs($r) <= 10 ** (-9)) {
                
$r 0;
            }
            
$coefficients[] = $r;
        }

        
$this->intersect array_shift($coefficients);
        
$this->slope $coefficients;

        
$this->calculateGoodnessOfFit($x_sum$y_sum$xx_sum$yy_sum$xy_sum000);
        foreach (
$this->xValues as $xKey => $xValue) {
            
$this->yBestFitValues[$xKey] = $this->getValueOfYForX($xValue);
        }
    }

    
/**
     * Define the regression and calculate the goodness of fit for a set of X and Y data values.
     *
     * @param int $order Order of Polynomial for this regression
     * @param float[] $yValues The set of Y-values for this regression
     * @param float[] $xValues The set of X-values for this regression
     * @param bool $const
     */
    
public function __construct($order$yValues$xValues = [], $const true)
    {
        
parent::__construct($yValues$xValues);

        if (!
$this->error) {
            if (
$order $this->valueCount) {
                
$this->bestFitType .= '_' $order;
                
$this->order $order;
                
$this->polynomialRegression($order$yValues$xValues);
                if ((
$this->getGoodnessOfFit() < 0.0) || ($this->getGoodnessOfFit() > 1.0)) {
                    
$this->error true;
                }
            } else {
                
$this->error true;
            }
        }
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0059 ]--