I would guess that, as previously suggested,
for i = 1, count do a[i] = a[i] * i end
would really rather be
for i = 1, count do a[i] = i * i end
Bob
Barkow, Eileen wrote:
I keep getting this error both in MVS and UNIX.
LUA: //'xcics.lua4z.samplib(cpu)':4: attempt to perform arithmetic on field '?
' (a nil value)
stack traceback:
//'xcics.lua4z.samplib(cpu)':4: in main chunk
ÝC¨: ?
***
-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf
Of Bass, Walter W
Sent: Friday, October 24, 2014 2:21 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: [ANN] Lua4z: the Lua programming language on z/OS, with batteries
-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU]
On Behalf Of David Crayford
Sent: Thursday, October 23, 2014 10:08 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: [ANN] Lua4z: the Lua programming language on z/OS, with
batteries>
<snip>
OK, let's try simple matrix multiplication which should test both array
access and math.
/* REXX */
arg count
if count = "" then count = 1000000
start = sysvar("SYSCPU")
do i = 1 to count
a.i = i * i
end
say 'CPU time = 'sysvar("SYSCPU") - start
CPU time = 3.57
local t = require("timer")()
local count = arg[1] or 1000000
local a = {}
for i = 1, count do a[i] = a[i] * i end
t:print_elapsed()
elapsed time: 0.131965
That's a huge difference, two orders of magnitude.
<snip remainder>
Maybe I'm just showing my ignorance of the Lua language syntax, but this statement:
" a[i] = a[i] * i "
Does not appear to be the equivalent to the REXX statement:
" a.i = i * i "
In fact, I would expect that the above Lua statement is actually multiplying i by an
uninitialized variable "a[i]". Assuming the above code executes without error,
then due to the principle of least astonishment, I would imagine that this uninitialized
value is assumed to be zero.
If that IS what is happening, it will of course be MUCH faster to compute i * 0
than to compute i squared.
Can someone with Lua syntax knowledge please enlighten me?
Thanks,
Bill Bass
United HealthCare / Optum
This e-mail, including attachments, may include confidential and/or proprietary
information, and may be used only by the person or entity to which it is
addressed. If the reader of this e-mail is not the intended recipient or his or
her authorized agent, the reader is hereby notified that any dissemination,
distribution or copying of this e-mail is prohibited. If you have received this
e-mail in error, please notify the sender by replying to this message and
delete this e-mail immediately.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to
lists...@listserv.ua.edu with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN