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:
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 */