11#! /usr/bin/env lua
22
33function SystemFamily ()
4- local env = os.getenv (" COMSPEC" )
5-
6- if env then
7- env = os.getenv (" OS" )
8- if env then
9- return " NT"
10- else
11- return " DOS"
12- end
13- else
14- env = os.getenv (" SHELL" )
15- if env then
16- return " UNIX"
17- else
18- return " Unknown"
19- end
20- end
4+ local env = os.getenv (" COMSPEC" )
5+
6+ if env then
7+ env = os.getenv (" OS" )
8+ if env then
9+ return " NT"
10+ else
11+ return " DOS"
12+ end
13+ else
14+ env = os.getenv (" SHELL" )
15+ if env then
16+ return " UNIX"
17+ else
18+ return " Unknown"
19+ end
20+ end
2121end
2222
2323local function benchmark_pi ()
24- local iterations = 100000
25- local pi = 3
26- local sign = 1
24+ local iterations = 100000
25+ local pi = 3
26+ local sign = 1
2727
28- io.write (" Benchmarking Pi (" .. iterations .. " iterations)...\t " )
28+ io.write (" Benchmarking Pi (" .. iterations .. " iterations)...\t " )
2929
30- local start_time = os.clock ()
30+ local start_time = os.clock ()
3131
32- -- Calculate using Nilakantha series
33- for i = 2 , iterations * 2 , 2 do
34- pi = pi + sign * (4 / (i * (i + 1 ) * (i + 2 )))
35- sign = - sign -- Alternate the sign for each term
36- end
32+ -- Calculate using Nilakantha series
33+ for i = 2 , iterations * 2 , 2 do
34+ pi = pi + sign * (4 / (i * (i + 1 ) * (i + 2 )))
35+ sign = - sign -- Alternate the sign for each term
36+ end
3737
38- local end_time = os.clock ()
38+ local end_time = os.clock ()
3939
40- io.write (string.format (" %.6f" , end_time - start_time ) .. " seconds\n " )
40+ io.write (string.format (" %.6f" , end_time - start_time ) .. " seconds\n " )
4141end
4242
4343local function benchmark_gcd ()
4444
45- -- Function to compute the greatest common divisor
46- local function gcd (a , b )
47- while b ~= 0 do
48- a , b = b , a % b
49- end
50- return a
51- end
45+ -- Function to compute the greatest common divisor
46+ local function gcd (a , b )
47+ while b ~= 0 do
48+ a , b = b , a % b
49+ end
50+ return a
51+ end
5252
53- local iterations = 100000
54- local result = 0
53+ local iterations = 100000
54+ local result = 0
5555
56- io.write (" Benchmarking GCD (" .. iterations .. " iterations)...\t " )
56+ io.write (" Benchmarking GCD (" .. iterations .. " iterations)...\t " )
5757
58- local start_time = os.clock ()
58+ local start_time = os.clock ()
5959
60- for i = 1 , iterations do
61- local x = i
62- local y = iterations - i + 1
63- result = gcd (x , y )
64- end
60+ for i = 1 , iterations do
61+ local x = i
62+ local y = iterations - i + 1
63+ result = gcd (x , y )
64+ end
6565
66- local end_time = os.clock ()
66+ local end_time = os.clock ()
6767
68- io.write (string.format (" %.6f" , end_time - start_time ) .. " seconds\n " )
68+ io.write (string.format (" %.6f" , end_time - start_time ) .. " seconds\n " )
6969end
7070
7171local function benchmark_mul ()
72- local iterations = 100000
72+ local iterations = 100000
7373
74- io.write (" Benchmarking Mul (" .. iterations .. " iterations)...\t " )
74+ io.write (" Benchmarking Mul (" .. iterations .. " iterations)...\t " )
7575
76- local start_time = os.clock ()
77- local result = 1
78- for i = 1 , iterations do
79- result = (result * i ) % 1000000007 -- Keep the result small to avoid overflow
80- end
76+ local start_time = os.clock ()
77+ local result = 1
78+ for i = 1 , iterations do
79+ result = (result * i ) % 1000000007 -- Keep the result small to avoid overflow
80+ end
8181
82- local end_time = os.clock ()
82+ local end_time = os.clock ()
8383
84- io.write (string.format (" %.6f" , end_time - start_time ) .. " seconds\n " )
84+ io.write (string.format (" %.6f" , end_time - start_time ) .. " seconds\n " )
8585end
8686
8787local function benchmark_div ()
88- local iterations = 100000
88+ local iterations = 100000
8989
90- io.write (" Benchmarking Div (" .. iterations .. " iterations)...\t " )
91- iterations = iterations + 1
90+ io.write (" Benchmarking Div (" .. iterations .. " iterations)...\t " )
91+ iterations = iterations + 1
9292
93- local start_time = os.clock ()
94- local result = 1
95- for i = 2 , iterations do
96- result = result / i -- Add 10 to avoid divide-by-zero
97- end
93+ local start_time = os.clock ()
94+ local result = 1
95+ for i = 2 , iterations do
96+ result = result / i
97+ end
9898
99- local end_time = os.clock ()
99+ local end_time = os.clock ()
100100
101- io.write (string.format (" %.6f" , end_time - start_time ) .. " seconds\n " )
101+ io.write (string.format (" %.6f" , end_time - start_time ) .. " seconds\n " )
102102end
103103
104104local function benchmark_add ()
105- local iterations = 100000
105+ local iterations = 100000
106106
107- io.write (" Benchmarking Add (" .. iterations .. " iterations)...\t " )
107+ io.write (" Benchmarking Add (" .. iterations .. " iterations)...\t " )
108108
109- local start_time = os.clock ()
110- local result = 1
111- for i = 1 , iterations do
112- result = result + i
113- end
109+ local start_time = os.clock ()
110+ local result = 1
111+ for i = 1 , iterations do
112+ result = result + i
113+ end
114114
115- local end_time = os.clock ()
115+ local end_time = os.clock ()
116116
117- io.write (string.format (" %.6f" , end_time - start_time ) .. " seconds\n " )
117+ io.write (string.format (" %.6f" , end_time - start_time ) .. " seconds\n " )
118118end
119119
120120local function benchmark_sub ()
121- local iterations = 100000
121+ local iterations = 100000
122122
123- io.write (" Benchmarking Sub (" .. iterations .. " iterations)...\t " )
123+ io.write (" Benchmarking Sub (" .. iterations .. " iterations)...\t " )
124124
125- local start_time = os.clock ()
126- local result = 1
127- for i = iterations , 1 , - 1 do
128- result = result - i
129- end
125+ local start_time = os.clock ()
126+ local result = 1
127+ for i = iterations , 1 , - 1 do
128+ result = result - i
129+ end
130130
131- local end_time = os.clock ()
131+ local end_time = os.clock ()
132132
133- io.write (string.format (" %.6f" , end_time - start_time ) .. " seconds\n " )
133+ io.write (string.format (" %.6f" , end_time - start_time ) .. " seconds\n " )
134134end
135135
136136local function benchmark_array ()
137- local elements = 1000 -- Total number of array elements (adjust for intensity)
137+ local elements = 1000
138138
139- io.write (" Benchmarking Array (" .. elements .. " iterations)...\t " )
139+ io.write (" Benchmarking Array (" .. elements .. " iterations)...\t " )
140140
141- local start_time = os.clock ()
141+ local start_time = os.clock ()
142142
143- local array = {}
144- for i = 1 , elements do
145- array [i ] = i % 10 -- Arbitrary initialization
146- end
143+ local array = {}
144+ for i = 1 , elements do
145+ array [i ] = i % 10
146+ end
147147
148- for i = 1 , elements do
149- array [i ] = array [i ] * 2 -- Double every element
150- end
148+ for i = 1 , elements do
149+ array [i ] = array [i ] * 2
150+ end
151151
152- local sum = 0
153- for i = 1 , elements do
154- sum = sum + array [i ]
155- end
152+ local sum = 0
153+ for i = 1 , elements do
154+ sum = sum + array [i ]
155+ end
156156
157- local end_time = os.clock ()
157+ local end_time = os.clock ()
158158
159- io.write (string.format (" %.6f" , end_time - start_time ) .. " seconds\n " )
159+ io.write (string.format (" %.6f" , end_time - start_time ) .. " seconds\n " )
160160end
161161
162162-- Some information
@@ -185,4 +185,4 @@ end_time = os.clock()
185185
186186print ()
187187print (" Total memory usage (KB):" , collectgarbage (" count" ))
188- print (" Total benchmark time: " , string.format (" %.6f" , end_time - start_time ))
188+ print (" Total benchmark time: " , string.format (" %.6f" , end_time - start_time ))
0 commit comments