How to resolve the algorithm Exponentiation operator step by step in the Lua programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Exponentiation operator step by step in the Lua programming language

Table of Contents

Problem Statement

Most programming languages have a built-in implementation of exponentiation.

Re-implement integer exponentiation for both   intint   and   floatint   as both a procedure,   and an operator (if your language supports operator definition). If the language supports operator (or procedure) overloading, then an overloaded form should be provided for both   intint   and   floatint   variants.

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Exponentiation operator step by step in the Lua programming language

Source code in the lua programming language

number = {}

function number.pow( a, b )
    local ret = 1
    if b >= 0 then
        for i = 1, b do
            ret = ret * a.val
        end
    else
        for i = b, -1 do
            ret = ret / a.val
        end
    end    
    return ret
end

function number.New( v )
    local num = { val = v }
    local mt = { __pow = number.pow }
    setmetatable( num, mt )
    return num
end
             
x = number.New( 5 )    
print( x^2 )                   --> 25
print( number.pow( x, -4 ) )   --> 0.016


  

You may also check:How to resolve the algorithm Zero to the zero power step by step in the Fermat programming language
You may also check:How to resolve the algorithm Evaluate binomial coefficients step by step in the Pascal programming language
You may also check:How to resolve the algorithm Bitmap step by step in the Seed7 programming language
You may also check:How to resolve the algorithm Check Machin-like formulas step by step in the Python programming language
You may also check:How to resolve the algorithm Singleton step by step in the Icon and Unicon programming language