• Places
    • Home
    • Graphs
    • Prefixes
  • Admin
    • Users
    • Settings
    • Plugins
    • Statistics
  • CPACK
    • Home
    • List packs
    • Submit pack
  • Repository
    • Load local file
    • Load from HTTP
    • Load from library
    • Remove triples
    • Clear repository
  • Query
    • YASGUI SPARQL Editor
    • Simple Form
    • SWISH Prolog shell
  • Help
    • Documentation
    • Tutorial
    • Roadmap
    • HTTP Services
  • Login

4.27.2.6 Arithmetic Functions
All Application Manual Name SummaryHelp

  • Documentation
    • Reference manual
      • Built-in Predicates
        • Arithmetic
          • General purpose arithmetic
            • Arithmetic Functions
              • -/1
              • +/1
              • +/2
              • -/2
              • */2
              • //2
              • mod/2
              • rem/2
              • ///2
              • div/2
              • rdiv/2
              • gcd/2
              • lcm/2
              • abs/1
              • sign/1
              • cmpr/2
              • copysign/2
              • nexttoward/2
              • roundtoward/2
              • max/2
              • maxr/2
              • min/2
              • minr/2
              • ./2
              • random/1
              • random_float/0
              • round/1
              • integer/1
              • float/1
              • rational/1
              • rationalize/1
              • numerator/1
              • denominator/1
              • float_fractional_part/1
              • float_integer_part/1
              • truncate/1
              • floor/1
              • ceiling/1
              • ceil/1
              • >>/2
              • <</2
              • \//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
Result = Expr1**Expr2. The result is a float, unless SWI-Prolog is compiled with unbounded integer support and the inputs are integers and produce an integer result. The integer expressions 0 ** I, 1 ** I and -1 ** I are guaranteed to work for any integer I. For other integer base values the size of the result is estimated before the computation and a resource error is raised if the result cannot be represented. See section 2.19.2 for the maximum size of an integer. Note that this limit is significantly smaller if the system is built using GMP and the C type long is smaller than 64 bits, as is the case on Windows.

The ISO standard demands a float result for all inputs and introduces ^/2 for integer exponentiation. The function float/1 can be used on one or both arguments to force a floating point result. Note that casting the input result in a floating point computation, while casting the output performs integer exponentiation followed by a conversion to float.

ClioPatria (version V3.1.1-59-g7b9a7a3)