Code Duplication    Length = 36-38 lines in 2 locations

src/PhpSpreadsheet/Calculation/MathTrig.php 2 locations

@@ 517-552 (lines=36) @@
514
     * @param    array    $matrixValues    A matrix of values
515
     * @return    float
516
     */
517
    public static function MDETERM($matrixValues)
518
    {
519
        $matrixData = [];
520
        if (!is_array($matrixValues)) {
521
            $matrixValues = [[$matrixValues]];
522
        }
523
524
        $row = $maxColumn = 0;
525
        foreach ($matrixValues as $matrixRow) {
526
            if (!is_array($matrixRow)) {
527
                $matrixRow = [$matrixRow];
528
            }
529
            $column = 0;
530
            foreach ($matrixRow as $matrixCell) {
531
                if ((is_string($matrixCell)) || ($matrixCell === null)) {
532
                    return Functions::VALUE();
533
                }
534
                $matrixData[$column][$row] = $matrixCell;
535
                ++$column;
536
            }
537
            if ($column > $maxColumn) {
538
                $maxColumn = $column;
539
            }
540
            ++$row;
541
        }
542
        if ($row != $maxColumn) {
543
            return Functions::VALUE();
544
        }
545
546
        try {
547
            $matrix = new \PhpSpreadsheet\Shared\JAMA\Matrix($matrixData);
548
549
            return $matrix->det();
550
        } catch (\PhpSpreadsheet\Exception $ex) {
551
            return Functions::VALUE();
552
        }
553
    }
554
555
    /**
@@ 567-604 (lines=38) @@
564
     * @param    array    $matrixValues    A matrix of values
565
     * @return    array
566
     */
567
    public static function MINVERSE($matrixValues)
568
    {
569
        $matrixData = [];
570
        if (!is_array($matrixValues)) {
571
            $matrixValues = [[$matrixValues]];
572
        }
573
574
        $row = $maxColumn = 0;
575
        foreach ($matrixValues as $matrixRow) {
576
            if (!is_array($matrixRow)) {
577
                $matrixRow = [$matrixRow];
578
            }
579
            $column = 0;
580
            foreach ($matrixRow as $matrixCell) {
581
                if ((is_string($matrixCell)) || ($matrixCell === null)) {
582
                    return Functions::VALUE();
583
                }
584
                $matrixData[$column][$row] = $matrixCell;
585
                ++$column;
586
            }
587
            if ($column > $maxColumn) {
588
                $maxColumn = $column;
589
            }
590
            ++$row;
591
        }
592
        foreach ($matrixValues as $matrixRow) {
593
            if (count($matrixRow) != $maxColumn) {
594
                return Functions::VALUE();
595
            }
596
        }
597
598
        try {
599
            $matrix = new \PhpSpreadsheet\Shared\JAMA\Matrix($matrixData);
600
601
            return $matrix->inverse()->getArray();
602
        } catch (\PhpSpreadsheet\Exception $ex) {
603
            return Functions::VALUE();
604
        }
605
    }
606
607
    /**