projog

4.13. ** - calculates the result of the first argument raised to the power of the second argument.

Examples

?- X is 2 ** 1.
X = 2

yes

?- X is 2 ** 2.
X = 4

yes

?- X is 2 ** 5.
X = 32

yes

?- X is 5 ** 3.
X = 125

yes

?- X is 5.0 ** 3.
X = 125.0

yes

?- X is 5 ** 3.0.
X = 125.0

yes

?- X is 5.0 ** 3.0.
X = 125.0

yes

?- X is 2 + 5 ** 3 - 1.
X = 126

yes

?- X is -2 ** 2.
X = 4

yes

?- X is -2 ** -2.
X = 0.25

yes

?- X is 2 ** -2.
X = 0.25

yes

?- X is 0.5 ** 2.
X = 0.25

yes

?- X is 2 ** 3.
X = 8

yes

?- X is 2 ** -3.
X = 0.125

yes

?- X is 1 ** -100.
X = 1

yes

?- X is -1 ** -3.
X = -1

yes

?- X is 0 ** 2.
X = 0

yes

?- X is 2 ** 0.25.
X = 1.189207115002721

yes

?- X is 2 ** -0.25.
X = 0.8408964152537145

yes

?- X is -2 ** 0.25.
X = NaN

yes

?- X is -2 ** -0.25.
X = NaN

yes

?- X is 0 ** -1.
X = Infinity

yes

?- X is 0.0 ** -1.0.
X = Infinity

yes

?- X is 0 ** 0.
X = 1

yes

?- X is 0.0 ** 0.0.
X = 1.0

yes

?- X is 1 ** -5.
X = 1

yes

?- X is -1 ** -4.
X = 1

yes

?- X is -1 ** -5.
X = -1

yes

Note: "^" is a synonym for "**".

?- X is 3^7.
X = 2187

yes