forked from mrdoob/three.js
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFloat32Array.js
More file actions
82 lines (72 loc) · 2.01 KB
/
Float32Array.js
File metadata and controls
82 lines (72 loc) · 2.01 KB
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
(function() {
var input = new Float32Array(10000 * 3);
var output = new Float32Array(10000 * 3);
for (var j = 0, jl = input.length; j < jl; j++) {
input[j] = j;
}
var inputVectors = [];
var outputVectors = [];
for (var j = 0, jl = input.length / 3; j < jl; j++) {
inputVectors.push(new THREE.Vector3(j * 3, j * 3 + 1, j * 3 + 2));
outputVectors.push(new THREE.Vector3());
}
var s = Bench.newSuite("Float 32 Arrays");
s.add('Float32Array-Float32Array', function() {
var value3 = new Float32Array(3);
for (var i = 0, il = input.length / 3; i < il; i += 3) {
value3[0] = input[i + 0];
value3[1] = input[i + 1];
value3[2] = input[i + 2];
value3[0] *= 1.01;
value3[1] *= 1.03;
value3[2] *= 0.98;
output[i + 0] = value3[0];
output[i + 1] = value3[1];
output[i + 2] = value3[2];
}
});
s.add('Float32Array-Array', function() {
var value2 = [0, 0, 0];
for (var i = 0, il = input.length / 3; i < il; i += 3) {
value2[0] = input[i + 0];
value2[1] = input[i + 1];
value2[2] = input[i + 2];
value2[0] *= 1.01;
value2[1] *= 1.03;
value2[2] *= 0.98;
output[i + 0] = value2[0];
output[i + 1] = value2[1];
output[i + 2] = value2[2];
}
});
s.add('Float32Array-Literal', function() {
var x,
y,
z;
for (var i = 0, il = input.length / 3; i < il; i += 3) {
x = input[i + 0];
y = input[i + 1];
z = input[i + 2];
x *= 1.01;
y *= 1.03;
z *= 0.98;
output[i + 0] = x;
output[i + 1] = y;
output[i + 2] = z;
}
});
s.add('Float32Array-Vector3', function() {
var value = new THREE.Vector3();
for (var i = 0, il = input.length / 3; i < il; i += 3) {
value.x = input[i + 0];
value.y = input[i + 1];
value.z = input[i + 2];
value.x *= 1.01;
value.y *= 1.03;
value.z *= 0.98;
output[i + 0] = value.x;
output[i + 1] = value.y;
output[i + 2] = value.z;
}
});
})();