Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mono / benchmark / life.cs
1 // created on 03/03/2002 at 15:12\r
2 using System;\r
3 \r
4 class App {\r
5     static String s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15;\r
6     static int[] offsets = {-16, -15, -14, -1, 1, 14, 15, 16};\r
7     public static int Main(String[] args) {\r
8             int i2 = 500;\r
9             int i0;\r
10             double n2;\r
11             DateTime start, end;\r
12             start = DateTime.Now;\r
13         s0 = "               ";\r
14         s1 = "               ";\r
15         s2 = "               ";\r
16         s3 = "      ***      ";\r
17         s4 = "               ";\r
18         s5 = "               ";\r
19         s6 = "         *     ";\r
20         s7 = "         *     ";\r
21         s8 = "         *     ";\r
22         s9 = "     *         ";\r
23         s10 ="     *         ";\r
24         s11 ="     *         ";\r
25         s12 ="               ";\r
26         s13 ="               ";\r
27         s14 ="               ";\r
28         s15 ="";\r
29         s15 = s0+s1+s2+s3+s4+s5+s6+s7+s8+s9+s10+s11+s12+s13+s14;\r
30         dump();\r
31         i0 =0;\r
32         while (i0++ < i2) {\r
33                 generate();\r
34                 dump();\r
35         }\r        \r
36         end = DateTime.Now;\r
37         n2 = (end-start).TotalMilliseconds;\r
38         Console.WriteLine("{0} generations in {1} milliseconds, {2} gen/sec.",\r
39         i2, (int)n2, (int)(i2/(n2/1000)));\r
40         return 0;\r
41 }\r\r    \r
42 static void generate() {\r
43         int i0, i1, i2, i3;\r
44         i0 = s15.Length;\r
45         s1 = "";\r
46         i1 = 0;\r
47         do {\r
48                 i2 = 0;\r
49                 foreach (int offset in offsets) {\r
50                         i3 = (offset + i0 + i1) % i0;\r
51                         if (s15.Substring(i3, 1) == "*")\r
52                                 i2++;\r
53                 }\r            \r
54                 if (s15.Substring(i1, 1) == "*") {\r
55                         if (i2 < 2 || i2 > 3) {\r
56                                 s1 += " ";\r
57                         } else {\r
58                                 s1 += "*";\r
59                         }\r
60                 } else {\r
61                         if (i2 == 3) {\r
62                                 s1 += "*";\r
63                         } else {\r
64                                 s1 += "*";\r
65                         }\r
66                 }\r
67         } while (++i1 < i0);\r
68         s15 = s1;\r
69 }\r
70 static void dump() {\r
71         ;\r
72 }\r
73 }\r\r\r
74 \r