Power (function): Difference between revisions

From APL Wiki
Jump to navigation Jump to search
m (Text replacement - "<source" to "<syntaxhighlight")
m (Text replacement - "</source>" to "</syntaxhighlight>")
 
Line 1: Line 1:
:''This page describes the dyadic function. For the monadic function that uses <math>e</math> as a base, see [[Exponential]]. For the iteration operator, see [[Power (operator)]].''
:''This page describes the dyadic function. For the monadic function that uses <math>e</math> as a base, see [[Exponential]]. For the iteration operator, see [[Power (operator)]].''


{{Built-in|Power|*}} is a [[dyadic]] [[scalar function]] that computes the [[wikipedia:exponentiation|exponentiation]] function of the two [[argument|arguments]], so that <syntaxhighlight lang=apl inline>X*Y</source> is <syntaxhighlight lang=apl inline>X</source> raised to the power <syntaxhighlight lang=apl inline>Y</source>. Power shares the [[glyph]] <syntaxhighlight lang=apl inline>*</source> with the monadic arithmetic function [[Exponential]].
{{Built-in|Power|*}} is a [[dyadic]] [[scalar function]] that computes the [[wikipedia:exponentiation|exponentiation]] function of the two [[argument|arguments]], so that <syntaxhighlight lang=apl inline>X*Y</syntaxhighlight> is <syntaxhighlight lang=apl inline>X</syntaxhighlight> raised to the power <syntaxhighlight lang=apl inline>Y</syntaxhighlight>. Power shares the [[glyph]] <syntaxhighlight lang=apl inline>*</syntaxhighlight> with the monadic arithmetic function [[Exponential]].


== Examples ==
== Examples ==
Line 7: Line 7:
       2*¯1 0 1 2 3 4 5
       2*¯1 0 1 2 3 4 5
0.5 1 2 4 8 16 32
0.5 1 2 4 8 16 32
</source>
</syntaxhighlight>
A common technique is to choose [[sign]] based on a [[Boolean]] array:
A common technique is to choose [[sign]] based on a [[Boolean]] array:
<syntaxhighlight lang=apl>
<syntaxhighlight lang=apl>
       ¯1*1 0 0 1 0
       ¯1*1 0 0 1 0
¯1 1 1 ¯1 1
¯1 1 1 ¯1 1
</source>
</syntaxhighlight>


== Properties ==
== Properties ==


For positive integer <syntaxhighlight lang=apl inline>Y</source>, <syntaxhighlight lang=apl inline>X*Y</source> equals the [[times|product]] of <syntaxhighlight lang=apl inline>Y</source> copies of <syntaxhighlight lang=apl inline>X</source>. When <syntaxhighlight lang=apl inline>Y</source> is 0, <syntaxhighlight lang=apl inline>X*Y</source> equals 1, possibly except when <syntaxhighlight lang=apl inline>X</source> is also 0 (since [[wikipedia:zero to the power of zero|zero to the power of zero]] is undefined in mathematics).
For positive integer <syntaxhighlight lang=apl inline>Y</syntaxhighlight>, <syntaxhighlight lang=apl inline>X*Y</syntaxhighlight> equals the [[times|product]] of <syntaxhighlight lang=apl inline>Y</syntaxhighlight> copies of <syntaxhighlight lang=apl inline>X</syntaxhighlight>. When <syntaxhighlight lang=apl inline>Y</syntaxhighlight> is 0, <syntaxhighlight lang=apl inline>X*Y</syntaxhighlight> equals 1, possibly except when <syntaxhighlight lang=apl inline>X</syntaxhighlight> is also 0 (since [[wikipedia:zero to the power of zero|zero to the power of zero]] is undefined in mathematics).


<syntaxhighlight lang=apl>
<syntaxhighlight lang=apl>
Line 25: Line 25:
       1 2 3*0
       1 2 3*0
1 1 1
1 1 1
</source>
</syntaxhighlight>


[[negate|Negating]] the exponent (right argument) gives the [[reciprocal]] of the return value.
[[negate|Negating]] the exponent (right argument) gives the [[reciprocal]] of the return value.
Line 32: Line 32:
       (2*¯4)=÷2*4
       (2*¯4)=÷2*4
1
1
</source>
</syntaxhighlight>


If the exponent is the [[reciprocal]] of some number n, the result is the n-th [[root]] of the base. For example, a right argument of <syntaxhighlight lang=apl inline>÷2</source> gives the [[square root]].
If the exponent is the [[reciprocal]] of some number n, the result is the n-th [[root]] of the base. For example, a right argument of <syntaxhighlight lang=apl inline>÷2</syntaxhighlight> gives the [[square root]].


<syntaxhighlight lang=apl>
<syntaxhighlight lang=apl>
Line 41: Line 41:
       9*÷2
       9*÷2
3
3
</source>
</syntaxhighlight>


Power has two inverses, [[Root]] and [[Logarithm]]:
Power has two inverses, [[Root]] and [[Logarithm]]:
Line 51: Line 51:
       3√8
       3√8
2
2
</source>
</syntaxhighlight>


== External links ==
== External links ==

Latest revision as of 21:38, 10 September 2022

This page describes the dyadic function. For the monadic function that uses as a base, see Exponential. For the iteration operator, see Power (operator).
*

Power (*) is a dyadic scalar function that computes the exponentiation function of the two arguments, so that X*Y is X raised to the power Y. Power shares the glyph * with the monadic arithmetic function Exponential.

Examples

      2*¯1 0 1 2 3 4 5
0.5 1 2 4 8 16 32

A common technique is to choose sign based on a Boolean array:

      ¯1*1 0 0 1 0
¯1 1 1 ¯1 1

Properties

For positive integer Y, X*Y equals the product of Y copies of X. When Y is 0, X*Y equals 1, possibly except when X is also 0 (since zero to the power of zero is undefined in mathematics).

      3*5
243 
      ×/5⍴3
243
      1 2 3*0
1 1 1

Negating the exponent (right argument) gives the reciprocal of the return value.

      (2*¯4)=÷2*4
1

If the exponent is the reciprocal of some number n, the result is the n-th root of the base. For example, a right argument of ÷2 gives the square root.

      3*2
9
      9*÷2
3

Power has two inverses, Root and Logarithm:

      2*3
8
      2⍟8
3
      3√8
2

External links

Documentation

APL built-ins [edit]
Primitives (Timeline) Functions
Scalar
Monadic ConjugateNegateSignumReciprocalMagnitudeExponentialNatural LogarithmFloorCeilingFactorialNotPi TimesRollTypeImaginarySquare RootRound
Dyadic AddSubtractTimesDivideResiduePowerLogarithmMinimumMaximumBinomialComparison functionsBoolean functions (And, Or, Nand, Nor) ∙ GCDLCMCircularComplexRoot
Non-Scalar
Structural ShapeReshapeTallyDepthRavelEnlistTableCatenateReverseRotateTransposeRazeMixSplitEncloseNestCut (K)PairLinkPartitioned EnclosePartition
Selection FirstPickTakeDropUniqueIdentityStopSelectReplicateExpandSet functions (IntersectionUnionWithout) ∙ Bracket indexingIndexCartesian ProductSort
Selector Index generatorGradeIndex OfInterval IndexIndicesDealPrefix and suffix vectors
Computational MatchNot MatchMembershipFindNub SieveEncodeDecodeMatrix InverseMatrix DivideFormatExecuteMaterialiseRange
Operators Monadic EachCommuteConstantReplicateExpandReduceWindowed ReduceScanOuter ProductKeyI-BeamSpawnFunction axisIdentity (Null, Ident)
Dyadic BindCompositions (Compose, Reverse Compose, Beside, Withe, Atop, Over) ∙ Inner ProductDeterminantPowerAtUnderRankDepthVariantStencilCutDirect definition (operator)Identity (Lev, Dex)
Quad names Index originComparison toleranceMigration levelAtomic vector