blob: 3b5308f8c28aeca761332cb3e015ec886da145b0 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
package scala.collection.parallel.benchmarks.generic
class Dummy(val in: Int) {
var num = in
override def toString = in.toString
override def hashCode = in
def dummy = num + in
def one = "1".length
}
object DummyOperators extends Operators[Dummy] {
val foreachFun = (a: Dummy) => {
a
()
}
val reducer = (a: Dummy, b: Dummy) => {
var i = 0
if (a.in > b.in) {
a.num = a.in + b.in + i
a
} else {
b.num = a.in + b.in + i
b
}
}
private def rec(a: Int, b: Int): Int = {
val result = if (b == 0) a else {
rec(b, a - b * (a / b))
}
result + 1000
}
val mediumreducer = (a: Dummy, b: Dummy) => {
var i = 0
var sum = a.num + b.num
b.num = rec(a.num, b.num)
b
}
val filterer = (a: Dummy) => {
a.in % 2 == 0
}
val mapper = (a: Dummy) => {
a.num = a.dummy + a.num + a.in + a.one
a
}
override val mapper2 = (a: Dummy) => {
val x = 1
new Dummy(a.in * -2 + x)
}
val heavymapper = (a: Dummy) => {
var i = -100
while (i < 0) {
if (a.in < i) a.num += 1
i += 1
}
a
}
val flatmapper = (a: Dummy) => {
List(a, a, a, a, a)
}
val taker = (a: Dummy) => {
a.in >= 0
}
val eachFun: Dummy => Unit = (d: Dummy) => {
d.dummy
}
override val eachPairFun: ((Dummy, Dummy)) => Unit = p => {
p._1.dummy
p._2.dummy
}
override def sequence(sz: Int): Seq[Dummy] = {
val pa = new collection.parallel.mutable.ParArray[Dummy](sz)
for (i <- 0 until sz) pa(i) = new Dummy(i)
pa
}
}
|