PoshFunctions

Functions/Get-Power.ps1

 function Get-Power { <# .SYNOPSIS     Provides exponentian .DESCRIPTION     Provides exponentian, also called power as in "2 to the power 3" equals 8 .PARAMETER Base     The base number that will be raised to a power .PARAMETER Power     To what level the exponentian will go. Defaults to 1. .PARAMETER IncludeOriginal     A switch to determine if you want the input parameters to be included in the output .NOTES     To do square or cube roots invert the power.         square root, -Power (1/2)         cube root, -Power (1/3)     and so on. .EXAMPLE     Get-Power -Base 2 -Power 3       Returns 8 .EXAMPLE     Get-Power -Base 2 -Power 10       Returns 1024 .EXAMPLE     Get-Power -Base 4 -Power 0.5       Returns 2 .EXAMPLE     Get-Power -Base 2 -Power 5 -IncludeOriginal       Base Power Result     ---- ----- ------     2 5 32 .EXAMPLE     Get-Power -Base 27 -Power (1/3) -IncludeOriginal       Base Power Result     ---- ----- ------     27 0.333333333333333 3 .OUTPUTS     [double] .LINK #>     #region parameter     [CmdletBinding(ConfirmImpact='Low')]     [OutputType('double')]     Param (         [parameter(Mandatory,HelpMessage='Enter the base number you wish to be exponentiated',Position=0,ValueFromPipeline)]         [double[]] \$Base,         [parameter(Position=1)]         [double] \$Power = 1,         [switch] \$IncludeOriginal     )     #endregion parameter     begin {         Write-Verbose -Message "Starting [\$(\$MyInvocation.Mycommand)]"     }     process {         foreach (\$currentNumber in \$Base) {             \$ReturnVal = [double] [math]::Pow(\$currentNumber,\$Power)             if (\$IncludeOriginal) {                 New-Object -TypeName 'psobject' -Property ([ordered] @{                     Base   = \$currentNumber                     Power  = \$Power                     Result = \$ReturnVal                 })             } else {                 Write-Output -InputObject \$ReturnVal             }         }     }     end {         Write-Verbose -Message "Ending [\$(\$MyInvocation.Mycommand)]"     } }