Skip to content

Commit ab8d774

Browse files
committed
test: fix benchmark unsafe blocks, r=burningtree.
1 parent ddbeccd commit ab8d774

File tree

2 files changed

+60
-51
lines changed

2 files changed

+60
-51
lines changed

src/test/bench/shootout-fasta.rs

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -64,18 +64,20 @@ fn make_random_fasta(wr: io::Writer, id: ~str, desc: ~str, genelist: ~[aminoacid
6464
if str::len(op) > 0u { wr.write_line(op); }
6565
}
6666

67-
fn make_repeat_fasta(wr: io::Writer, id: ~str, desc: ~str, s: ~str, n: int) unsafe {
68-
wr.write_line(~">" + id + ~" " + desc);
69-
let mut op: ~str = ~"";
70-
let sl: uint = str::len(s);
71-
for uint::range(0u, n as uint) |i| {
72-
str::raw::push_byte(&mut op, s[i % sl]);
73-
if str::len(op) >= LINE_LENGTH() {
74-
wr.write_line(op);
75-
op = ~"";
67+
fn make_repeat_fasta(wr: io::Writer, id: ~str, desc: ~str, s: ~str, n: int) {
68+
unsafe {
69+
wr.write_line(~">" + id + ~" " + desc);
70+
let mut op: ~str = ~"";
71+
let sl: uint = str::len(s);
72+
for uint::range(0u, n as uint) |i| {
73+
str::raw::push_byte(&mut op, s[i % sl]);
74+
if str::len(op) >= LINE_LENGTH() {
75+
wr.write_line(op);
76+
op = ~"";
77+
}
7678
}
79+
if str::len(op) > 0u { wr.write_line(op); }
7780
}
78-
if str::len(op) > 0u { wr.write_line(op); }
7981
}
8082

8183
fn acid(ch: char, prob: u32) -> aminoacids { return {ch: ch, prob: prob}; }

src/test/bench/shootout-nbody.rs

Lines changed: 48 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -98,23 +98,25 @@ mod NBodySystem {
9898

9999
pub fn advance_one(bi: &mut Body::props,
100100
bj: &mut Body::props,
101-
dt: float) unsafe {
102-
let dx = bi.x - bj.x;
103-
let dy = bi.y - bj.y;
104-
let dz = bi.z - bj.z;
101+
dt: float) {
102+
unsafe {
103+
let dx = bi.x - bj.x;
104+
let dy = bi.y - bj.y;
105+
let dz = bi.z - bj.z;
105106

106-
let dSquared = dx * dx + dy * dy + dz * dz;
107+
let dSquared = dx * dx + dy * dy + dz * dz;
107108

108-
let distance = ::libc::sqrt(dSquared);
109-
let mag = dt / (dSquared * distance);
109+
let distance = ::libc::sqrt(dSquared);
110+
let mag = dt / (dSquared * distance);
110111

111-
bi.vx -= dx * bj.mass * mag;
112-
bi.vy -= dy * bj.mass * mag;
113-
bi.vz -= dz * bj.mass * mag;
112+
bi.vx -= dx * bj.mass * mag;
113+
bi.vy -= dy * bj.mass * mag;
114+
bi.vz -= dz * bj.mass * mag;
114115

115-
bj.vx += dx * bi.mass * mag;
116-
bj.vy += dy * bi.mass * mag;
117-
bj.vz += dz * bi.mass * mag;
116+
bj.vx += dx * bi.mass * mag;
117+
bj.vy += dy * bi.mass * mag;
118+
bj.vz += dz * bi.mass * mag;
119+
}
118120
}
119121

120122
pub fn move_(b: &mut Body::props, dt: float) {
@@ -123,36 +125,41 @@ mod NBodySystem {
123125
b.z += dt * b.vz;
124126
}
125127

126-
pub fn energy(bodies: &[Body::props]) -> float unsafe {
127-
let mut dx;
128-
let mut dy;
129-
let mut dz;
130-
let mut distance;
131-
let mut e = 0.0;
132-
133-
let mut i = 0;
134-
while i < 5 {
135-
e +=
136-
0.5 * bodies[i].mass *
137-
(bodies[i].vx * bodies[i].vx + bodies[i].vy * bodies[i].vy
138-
+ bodies[i].vz * bodies[i].vz);
139-
140-
let mut j = i + 1;
141-
while j < 5 {
142-
dx = bodies[i].x - bodies[j].x;
143-
dy = bodies[i].y - bodies[j].y;
144-
dz = bodies[i].z - bodies[j].z;
145-
146-
distance = ::libc::sqrt(dx * dx + dy * dy + dz * dz);
147-
e -= bodies[i].mass * bodies[j].mass / distance;
148-
149-
j += 1;
128+
pub fn energy(bodies: &[Body::props]) -> float {
129+
unsafe {
130+
let mut dx;
131+
let mut dy;
132+
let mut dz;
133+
let mut distance;
134+
let mut e = 0.0;
135+
136+
let mut i = 0;
137+
while i < 5 {
138+
e +=
139+
0.5 * bodies[i].mass *
140+
(bodies[i].vx * bodies[i].vx
141+
+ bodies[i].vy * bodies[i].vy
142+
+ bodies[i].vz * bodies[i].vz);
143+
144+
let mut j = i + 1;
145+
while j < 5 {
146+
dx = bodies[i].x - bodies[j].x;
147+
dy = bodies[i].y - bodies[j].y;
148+
dz = bodies[i].z - bodies[j].z;
149+
150+
distance = ::libc::sqrt(dx * dx
151+
+ dy * dy
152+
+ dz * dz);
153+
e -= bodies[i].mass
154+
* bodies[j].mass / distance;
155+
156+
j += 1;
157+
}
158+
159+
i += 1;
150160
}
151-
152-
i += 1;
161+
return e;
153162
}
154-
return e;
155-
156163
}
157164
}
158165

0 commit comments

Comments
 (0)