4.27.2.3 Arithmetic Functions
AllApplicationManualNameSummaryHelp

  • Documentation
    • Reference manual
      • Built-in Predicates
        • Arithmetic
          • General purpose arithmetic
            • Arithmetic Functions
              • -/1
              • +/1
              • +/2
              • -/2
              • */2
              • f-//2
              • mod/2
              • rem/2
              • f-///2
              • div/2
              • rdiv/2
              • gcd/2
              • abs/1
              • sign/1
              • copysign/2
              • max/2
              • min/2
              • ./2
              • random/1
              • random_float/0
              • round/1
              • integer/1
              • float/1
              • rational/1
              • rationalize/1
              • float_fractional_part/1
              • float_integer_part/1
              • truncate/1
              • floor/1
              • ceiling/1
              • ceil/1
              • >>/2
              • <</2
              • f-\//2
              • /\/2
              • xor/2
              • \/1
              • sqrt/1
              • sin/1
              • cos/1
              • tan/1
              • asin/1
              • acos/1
              • atan/1
              • atan2/2
              • atan/2
              • sinh/1
              • cosh/1
              • tanh/1
              • asinh/1
              • acosh/1
              • atanh/1
              • log/1
              • log10/1
              • exp/1
              • **/2
              • ^/2
              • powm/3
              • lgamma/1
              • erf/1
              • erfc/1
              • pi/0
              • e/0
              • epsilon/0
              • inf/0
              • nan/0
              • cputime/0
              • eval/1
              • msb/1
              • lsb/1
              • popcount/1
              • getbit/2
    • Packages
Availability:Arithmetic function (see is/2)
[ISO]+Expr1 ^ +Expr2
In SWI-Prolog, ^/2 is equivalent to **/2. The ISO version is similar, except that it produces a evaluation error if both Expr1 and Expr2 are integers and the result is not an integer. The table below illustrates the behaviour of the exponentiation functions in ISO and SWI.

Expr1 Expr2 FunctionSWIISO
IntInt**/2 Int or FloatFloat
IntFloat**/2 FloatFloat
RationalInt**/2 Rational-
FloatInt**/2 FloatFloat
FloatFloat**/2 FloatFloat
IntInt^/2 Int or FloatInt or error
IntFloat^/2 FloatFloat
RationalInt^/2 Rational-
FloatInt^/2 FloatFloat
FloatFloat^/2 FloatFloat