lua

A copy of the Lua development repository
Log | Files | Refs | README

commit 9d067ab73b6befa0a5418f1df35c711f6c6918b3
parent 2f4162bc473b995117e95c88230f637ca3e1c866
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date:   Fri, 13 Nov 2020 09:58:40 -0300

Optimization for 'n^2'

Squares are much more common than other exponentiations, and 'n*n' is
much more efficient than 'pow'.

Diffstat:
Mllimits.h | 3++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/llimits.h b/llimits.h @@ -326,7 +326,8 @@ typedef l_uint32 Instruction; /* exponentiation */ #if !defined(luai_numpow) -#define luai_numpow(L,a,b) ((void)L, l_mathop(pow)(a,b)) +#define luai_numpow(L,a,b) \ + ((void)L, (b == 2) ? (a)*(a) : l_mathop(pow)(a,b)) #endif /* the others are quite standard operations */