types/Matrix.Types.ps1xml

<?xml version="1.0" encoding="utf-8" ?>
<Types>
    <Type>
        <Name>Matrix</Name>
        <Members>
            <ScriptMethod>
                <Name>Add</Name>
                <Script>
                    [Matrix]::Add($this, $args[0])
                </Script>
            </ScriptMethod>
            <ScriptMethod>
                <Name>Adj</Name>
                <Script>
                    [Matrix]::Adj($this)
                </Script>
            </ScriptMethod>
            <ScriptProperty>
                <Name>Columns</Name>
                <GetScriptBlock>
                    [Matrix]::Transpose($this).Rows
                </GetScriptBlock>
            </ScriptProperty>
            <ScriptMethod>
                <Name>Det</Name>
                <Script>
                    if ($this.IsSquare()) {
                      [Matrix]::Det($this)
                    } else {
                      'ERROR: Determinant can only be calculated for square matrices' | Write-Color -Red
                    }
                </Script>
            </ScriptMethod>
            <ScriptMethod>
                <Name>Dot</Name>
                <Script>
                    [Matrix]::Dot($this, $args[0])
                </Script>
            </ScriptMethod>
            <ScriptMethod>
                <Name>Inverse</Name>
                <Script>
                    [Matrix]::Invert($this)
                </Script>
            </ScriptMethod>
            <ScriptMethod>
                <Name>IsDiagonal</Name>
                <Script>
                    $this | Test-DiagonalMatrix
                </Script>
            </ScriptMethod>
            <ScriptMethod>
                <Name>IsSquare</Name>
                <Script>
                    $this | Test-SquareMatrix
                </Script>
            </ScriptMethod>
            <ScriptMethod>
                <Name>IsSymmetric</Name>
                <Script>
                    $this | Test-SymmetricMatrix
                </Script>
            </ScriptMethod>
            <ScriptMethod>
                <Name>Multiply</Name>
                <Script>
                    [Matrix]::Multiply($this, $args[0])
                </Script>
            </ScriptMethod>
            <ScriptMethod>
                <Name>Trace</Name>
                <Script>
                    [Matrix]::Trace($this)
                </Script>
            </ScriptMethod>
            <ScriptMethod>
                <Name>Transpose</Name>
                <Script>
                    [Matrix]::Transpose($this)
                </Script>
            </ScriptMethod>
        </Members>
    </Type>
</Types>