File tree Expand file tree Collapse file tree 2 files changed +19
-1
lines changed
branches/try2/src/libstd/num Expand file tree Collapse file tree 2 files changed +19
-1
lines changed Original file line number Diff line number Diff line change @@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
5
5
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
6
6
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
7
7
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8
- refs/heads/try2: c9620dc0528866bda3a0d70036af082f45c78e96
8
+ refs/heads/try2: 8f63f9789b12a69723630ae072b6ba63203ed0f6
9
9
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
10
10
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
11
11
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
Original file line number Diff line number Diff line change @@ -203,6 +203,9 @@ impl<T: Copy + Num + Ord>
203
203
}
204
204
}
205
205
206
+ impl<T: Copy + Num + Ord>
207
+ Num for Ratio<T> {}
208
+
206
209
/* Utils */
207
210
impl<T: Copy + Num + Ord>
208
211
Round for Ratio<T> {
@@ -242,6 +245,12 @@ impl<T: Copy + Num + Ord>
242
245
}
243
246
}
244
247
248
+ impl<T: Copy + Num + Ord> Fractional for Ratio<T> {
249
+ #[inline]
250
+ fn recip(&self) -> Ratio<T> {
251
+ Ratio::new_raw(self.denom, self.numer)
252
+ }
253
+ }
245
254
246
255
/* String conversions */
247
256
impl<T: ToStr> ToStr for Ratio<T> {
@@ -446,6 +455,15 @@ mod test {
446
455
assert_eq!(_3_2.fract(), _1_2);
447
456
}
448
457
458
+ #[test]
459
+ fn test_recip() {
460
+ assert_eq!(_1 * _1.recip(), _1);
461
+ assert_eq!(_2 * _2.recip(), _1);
462
+ assert_eq!(_1_2 * _1_2.recip(), _1);
463
+ assert_eq!(_3_2 * _3_2.recip(), _1);
464
+ assert_eq!(_neg1_2 * _neg1_2.recip(), _1);
465
+ }
466
+
449
467
#[test]
450
468
fn test_to_from_str() {
451
469
fn test(r: Rational, s: ~str) {
You can’t perform that action at this time.
0 commit comments