Update to the last rust-nightly.

Version of rustc: 0.13.0-nightly (63c4f22f2 2014-11-05 22:31:44 +0000).
This commit is contained in:
Sébastien Crozet 2014-11-06 14:20:59 +01:00
parent 3834913402
commit a2848e6e18
11 changed files with 44 additions and 29 deletions

View File

@ -1,6 +1,5 @@
#![feature(macro_rules)] #![feature(macro_rules)]
extern crate debug;
extern crate test; extern crate test;
extern crate "nalgebra" as na; extern crate "nalgebra" as na;

View File

@ -1,6 +1,5 @@
#![feature(macro_rules)] #![feature(macro_rules)]
extern crate debug;
extern crate test; extern crate test;
extern crate "nalgebra" as na; extern crate "nalgebra" as na;

View File

@ -652,7 +652,7 @@ macro_rules! scalar_mul_impl (
DMat { DMat {
nrows: left.nrows, nrows: left.nrows,
ncols: left.ncols, ncols: left.ncols,
mij: left.mij.iter().map(|a| a * *right).collect() mij: left.mij.iter().map(|a| *a * *right).collect()
} }
} }
} }
@ -667,7 +667,7 @@ macro_rules! scalar_div_impl (
DMat { DMat {
nrows: left.nrows, nrows: left.nrows,
ncols: left.ncols, ncols: left.ncols,
mij: left.mij.iter().map(|a| a / *right).collect() mij: left.mij.iter().map(|a| *a / *right).collect()
} }
} }
} }
@ -682,7 +682,7 @@ macro_rules! scalar_add_impl (
DMat { DMat {
nrows: left.nrows, nrows: left.nrows,
ncols: left.ncols, ncols: left.ncols,
mij: left.mij.iter().map(|a| a + *right).collect() mij: left.mij.iter().map(|a| *a + *right).collect()
} }
} }
} }
@ -697,7 +697,7 @@ macro_rules! scalar_sub_impl (
DMat { DMat {
nrows: left.nrows, nrows: left.nrows,
ncols: left.ncols, ncols: left.ncols,
mij: left.mij.iter().map(|a| a - *right).collect() mij: left.mij.iter().map(|a| *a - *right).collect()
} }
} }
} }

View File

@ -169,10 +169,10 @@ macro_rules! dvec_impl(
let mut elt = basis_element.clone(); let mut elt = basis_element.clone();
elt = elt - self * Dot::dot(&basis_element, self); elt = elt - *self * Dot::dot(&basis_element, self);
for v in res.iter() { for v in res.iter() {
elt = elt - v * Dot::dot(&elt, v) elt = elt - *v * Dot::dot(&elt, v)
}; };
if !ApproxEq::approx_eq(&Norm::sqnorm(&elt), &Zero::zero()) { if !ApproxEq::approx_eq(&Norm::sqnorm(&elt), &Zero::zero()) {
@ -336,7 +336,7 @@ macro_rules! dvec_scalar_mul_impl (
impl $mul<$n, $dvec<$n>> for $n { impl $mul<$n, $dvec<$n>> for $n {
#[inline] #[inline]
fn binop(left: &$dvec<$n>, right: &$n) -> $dvec<$n> { fn binop(left: &$dvec<$n>, right: &$n) -> $dvec<$n> {
FromIterator::from_iter(left.as_slice().iter().map(|a| a * *right)) FromIterator::from_iter(left.as_slice().iter().map(|a| *a * *right))
} }
} }
) )
@ -347,7 +347,7 @@ macro_rules! dvec_scalar_div_impl (
impl $div<$n, $dvec<$n>> for $n { impl $div<$n, $dvec<$n>> for $n {
#[inline] #[inline]
fn binop(left: &$dvec<$n>, right: &$n) -> $dvec<$n> { fn binop(left: &$dvec<$n>, right: &$n) -> $dvec<$n> {
FromIterator::from_iter(left.as_slice().iter().map(|a| a / *right)) FromIterator::from_iter(left.as_slice().iter().map(|a| *a / *right))
} }
} }
) )
@ -358,7 +358,7 @@ macro_rules! dvec_scalar_add_impl (
impl $add<$n, $dvec<$n>> for $n { impl $add<$n, $dvec<$n>> for $n {
#[inline] #[inline]
fn binop(left: &$dvec<$n>, right: &$n) -> $dvec<$n> { fn binop(left: &$dvec<$n>, right: &$n) -> $dvec<$n> {
FromIterator::from_iter(left.as_slice().iter().map(|a| a + *right)) FromIterator::from_iter(left.as_slice().iter().map(|a| *a + *right))
} }
} }
) )
@ -369,7 +369,7 @@ macro_rules! dvec_scalar_sub_impl (
impl $sub<$n, $dvec<$n>> for $n { impl $sub<$n, $dvec<$n>> for $n {
#[inline] #[inline]
fn binop(left: &$dvec<$n>, right: &$n) -> $dvec<$n> { fn binop(left: &$dvec<$n>, right: &$n) -> $dvec<$n> {
FromIterator::from_iter(left.as_slice().iter().map(|a| a - *right)) FromIterator::from_iter(left.as_slice().iter().map(|a| *a - *right))
} }
} }
) )

View File

@ -88,7 +88,7 @@ macro_rules! pnt_mul_iso_impl(
impl<N: Clone + Num> $tmul<N, $tv<N>> for $t<N> { impl<N: Clone + Num> $tmul<N, $tv<N>> for $t<N> {
#[inline] #[inline]
fn binop(left: &$tv<N>, right: &$t<N>) -> $tv<N> { fn binop(left: &$tv<N>, right: &$t<N>) -> $tv<N> {
(left + right.translation) * right.rotation (*left + right.translation) * right.rotation
} }
} }
) )
@ -140,12 +140,12 @@ macro_rules! translate_impl(
impl<N: Clone + Add<N, N> + Sub<N, N>> Translate<$tv<N>> for $t<N> { impl<N: Clone + Add<N, N> + Sub<N, N>> Translate<$tv<N>> for $t<N> {
#[inline] #[inline]
fn translate(&self, v: &$tv<N>) -> $tv<N> { fn translate(&self, v: &$tv<N>) -> $tv<N> {
v + self.translation *v + self.translation
} }
#[inline] #[inline]
fn inv_translate(&self, v: &$tv<N>) -> $tv<N> { fn inv_translate(&self, v: &$tv<N>) -> $tv<N> {
v - self.translation *v - self.translation
} }
} }
) )
@ -235,7 +235,7 @@ macro_rules! transformation_impl(
} }
fn append_transformation_cpy(iso: &$t<N>, t: &$t<N>) -> $t<N> { fn append_transformation_cpy(iso: &$t<N>, t: &$t<N>) -> $t<N> {
t * *iso *t * *iso
} }
fn prepend_transformation(&mut self, t: &$t<N>) { fn prepend_transformation(&mut self, t: &$t<N>) {
@ -284,7 +284,7 @@ macro_rules! transform_impl(
#[inline] #[inline]
fn inv_transform(t: &$t<N>, p: &$tp<N>) -> $tp<N> { fn inv_transform(t: &$t<N>, p: &$tp<N>) -> $tp<N> {
t.rotation.inv_transform(&(p - t.translation)) t.rotation.inv_transform(&(*p - t.translation))
} }
} }
) )

View File

@ -136,7 +136,7 @@ impl<N: Mul<N, N> + Sub<N, N> + Add<N, N>> QuatMulRhs<N, Quat<N>> for Quat<N> {
impl<N: ApproxEq<N> + Float + Clone> QuatDivRhs<N, Quat<N>> for Quat<N> { impl<N: ApproxEq<N> + Float + Clone> QuatDivRhs<N, Quat<N>> for Quat<N> {
#[inline] #[inline]
fn binop(left: &Quat<N>, right: &Quat<N>) -> Quat<N> { fn binop(left: &Quat<N>, right: &Quat<N>) -> Quat<N> {
left * Inv::inv_cpy(right).expect("Unable to invert the denominator.") *left * Inv::inv_cpy(right).expect("Unable to invert the denominator.")
} }
} }

View File

@ -37,24 +37,24 @@ macro_rules! rotate_impl(
impl<N: Num + Clone> $trhs<N> for $tv<N> { impl<N: Num + Clone> $trhs<N> for $tv<N> {
#[inline] #[inline]
fn rotate(t: &$t<N>, v: &$tv<N>) -> $tv<N> { fn rotate(t: &$t<N>, v: &$tv<N>) -> $tv<N> {
t * *v *t * *v
} }
#[inline] #[inline]
fn inv_rotate(t: &$t<N>, v: &$tv<N>) -> $tv<N> { fn inv_rotate(t: &$t<N>, v: &$tv<N>) -> $tv<N> {
v * *t *v * *t
} }
} }
impl<N: Num + Clone> $trhs<N> for $tp<N> { impl<N: Num + Clone> $trhs<N> for $tp<N> {
#[inline] #[inline]
fn rotate(t: &$t<N>, p: &$tp<N>) -> $tp<N> { fn rotate(t: &$t<N>, p: &$tp<N>) -> $tp<N> {
t * *p *t * *p
} }
#[inline] #[inline]
fn inv_rotate(t: &$t<N>, p: &$tp<N>) -> $tp<N> { fn inv_rotate(t: &$t<N>, p: &$tp<N>) -> $tp<N> {
p * *t *p * *t
} }
} }
) )

View File

@ -136,7 +136,7 @@ impl<N: Clone + Add<N, N> + Neg<N>> Translation<vec::Vec0<N>> for vec::Vec0<N> {
#[inline] #[inline]
fn inv_translation(&self) -> vec::Vec0<N> { fn inv_translation(&self) -> vec::Vec0<N> {
-self -*self
} }
#[inline] #[inline]
@ -156,7 +156,7 @@ impl<N: Clone + Add<N, N> + Neg<N>> Translation<vec::Vec0<N>> for vec::Vec0<N> {
#[inline] #[inline]
fn prepend_translation_cpy(vec: &vec::Vec0<N>, t: &vec::Vec0<N>) -> vec::Vec0<N> { fn prepend_translation_cpy(vec: &vec::Vec0<N>, t: &vec::Vec0<N>) -> vec::Vec0<N> {
vec + *t *vec + *t
} }
#[inline] #[inline]

View File

@ -8,7 +8,7 @@ use std::slice::{Items, MutItems};
use std::iter::{Iterator, FromIterator}; use std::iter::{Iterator, FromIterator};
use traits::operations::{ApproxEq, POrd, POrdering, PartialLess, PartialEqual, use traits::operations::{ApproxEq, POrd, POrdering, PartialLess, PartialEqual,
PartialGreater, NotComparable, Axpy, ScalarAdd, ScalarSub, ScalarMul, PartialGreater, NotComparable, Axpy, ScalarAdd, ScalarSub, ScalarMul,
ScalarDiv}; ScalarDiv, Absolute};
use traits::geometry::{Transform, Rotate, FromHomogeneous, ToHomogeneous, Dot, Norm, use traits::geometry::{Transform, Rotate, FromHomogeneous, ToHomogeneous, Dot, Norm,
Translation, Translate}; Translation, Translate};
use traits::structure::{Basis, Cast, Dim, Indexable, Iterable, IterableMut, VecAsPnt, Shape, use traits::structure::{Basis, Cast, Dim, Indexable, Iterable, IterableMut, VecAsPnt, Shape,
@ -135,6 +135,7 @@ rotate_impl!(Pnt1)
transform_impl!(Vec1, Pnt1) transform_impl!(Vec1, Pnt1)
vec_as_pnt_impl!(Vec1, Pnt1, x) vec_as_pnt_impl!(Vec1, Pnt1, x)
num_float_vec_impl!(Vec1, Vec1MulRhs, Vec1DivRhs) num_float_vec_impl!(Vec1, Vec1MulRhs, Vec1DivRhs)
absolute_vec_impl!(Vec1, x)
/// Vector of dimension 2. /// Vector of dimension 2.
#[deriving(Eq, PartialEq, Encodable, Decodable, Clone, Hash, Rand, Zero, Show)] #[deriving(Eq, PartialEq, Encodable, Decodable, Clone, Hash, Rand, Zero, Show)]
@ -239,6 +240,7 @@ rotate_impl!(Pnt2)
transform_impl!(Vec2, Pnt2) transform_impl!(Vec2, Pnt2)
vec_as_pnt_impl!(Vec2, Pnt2, x, y) vec_as_pnt_impl!(Vec2, Pnt2, x, y)
num_float_vec_impl!(Vec2, Vec2MulRhs, Vec2DivRhs) num_float_vec_impl!(Vec2, Vec2MulRhs, Vec2DivRhs)
absolute_vec_impl!(Vec2, x, y)
/// Vector of dimension 3. /// Vector of dimension 3.
#[deriving(Eq, PartialEq, Encodable, Decodable, Clone, Hash, Rand, Zero, Show)] #[deriving(Eq, PartialEq, Encodable, Decodable, Clone, Hash, Rand, Zero, Show)]
@ -348,6 +350,7 @@ rotate_impl!(Pnt3)
transform_impl!(Vec3, Pnt3) transform_impl!(Vec3, Pnt3)
vec_as_pnt_impl!(Vec3, Pnt3, x, y, z) vec_as_pnt_impl!(Vec3, Pnt3, x, y, z)
num_float_vec_impl!(Vec3, Vec3MulRhs, Vec3DivRhs) num_float_vec_impl!(Vec3, Vec3MulRhs, Vec3DivRhs)
absolute_vec_impl!(Vec3, x, y, z)
/// Vector of dimension 4. /// Vector of dimension 4.
@ -457,6 +460,7 @@ rotate_impl!(Pnt4)
transform_impl!(Vec4, Pnt4) transform_impl!(Vec4, Pnt4)
vec_as_pnt_impl!(Vec4, Pnt4, x, y, z, w) vec_as_pnt_impl!(Vec4, Pnt4, x, y, z, w)
num_float_vec_impl!(Vec4, Vec4MulRhs, Vec4DivRhs) num_float_vec_impl!(Vec4, Vec4MulRhs, Vec4DivRhs)
absolute_vec_impl!(Vec4, x, y, z, w)
/// Vector of dimension 5. /// Vector of dimension 5.
#[deriving(Eq, PartialEq, Encodable, Decodable, Clone, Hash, Rand, Zero, Show)] #[deriving(Eq, PartialEq, Encodable, Decodable, Clone, Hash, Rand, Zero, Show)]
@ -567,6 +571,7 @@ rotate_impl!(Pnt5)
transform_impl!(Vec5, Pnt5) transform_impl!(Vec5, Pnt5)
vec_as_pnt_impl!(Vec5, Pnt5, x, y, z, w, a) vec_as_pnt_impl!(Vec5, Pnt5, x, y, z, w, a)
num_float_vec_impl!(Vec5, Vec5MulRhs, Vec5DivRhs) num_float_vec_impl!(Vec5, Vec5MulRhs, Vec5DivRhs)
absolute_vec_impl!(Vec5, x, y, z, w, a)
/// Vector of dimension 6. /// Vector of dimension 6.
#[deriving(Eq, PartialEq, Encodable, Decodable, Clone, Hash, Rand, Zero, Show)] #[deriving(Eq, PartialEq, Encodable, Decodable, Clone, Hash, Rand, Zero, Show)]
@ -677,3 +682,4 @@ rotate_impl!(Pnt6)
transform_impl!(Vec6, Pnt6) transform_impl!(Vec6, Pnt6)
vec_as_pnt_impl!(Vec6, Pnt6, x, y, z, w, a, b) vec_as_pnt_impl!(Vec6, Pnt6, x, y, z, w, a, b)
num_float_vec_impl!(Vec6, Vec6MulRhs, Vec6DivRhs) num_float_vec_impl!(Vec6, Vec6MulRhs, Vec6DivRhs)
absolute_vec_impl!(Vec6, x, y, z, w, a, b)

View File

@ -323,7 +323,7 @@ macro_rules! basis_impl(
elt = elt - *n * Dot::dot(&basis_element, n); elt = elt - *n * Dot::dot(&basis_element, n);
for v in basis.iter() { for v in basis.iter() {
elt = elt - v * Dot::dot(&elt, v) elt = elt - *v * Dot::dot(&elt, v)
}; };
if !ApproxEq::approx_eq(&Norm::sqnorm(&elt), &Zero::zero()) { if !ApproxEq::approx_eq(&Norm::sqnorm(&elt), &Zero::zero()) {
@ -519,7 +519,7 @@ macro_rules! translation_impl(
#[inline] #[inline]
fn inv_translation(&self) -> $t<N> { fn inv_translation(&self) -> $t<N> {
-self -*self
} }
#[inline] #[inline]
@ -539,7 +539,7 @@ macro_rules! translation_impl(
#[inline] #[inline]
fn prepend_translation_cpy(transform: &$t<N>, t: &$t<N>) -> $t<N> { fn prepend_translation_cpy(transform: &$t<N>, t: &$t<N>) -> $t<N> {
transform + *t *transform + *t
} }
#[inline] #[inline]
@ -773,3 +773,14 @@ macro_rules! num_float_vec_impl(
} }
) )
) )
macro_rules! absolute_vec_impl(
($t: ident, $comp0: ident $(,$compN: ident)*) => (
impl<N: Signed> Absolute<$t<N>> for $t<N> {
#[inline]
fn abs(m: &$t<N>) -> $t<N> {
$t::new(m.$comp0.abs() $(, m.$compN.abs() )*)
}
}
)
)

View File

@ -12,7 +12,7 @@ macro_rules! test_iterator_impl(
let mut mv: $t = v.clone(); let mut mv: $t = v.clone();
let n: $n = random(); let n: $n = random();
let nv: $t = v.iter().map(|e| e * n).collect(); let nv: $t = v.iter().map(|e| *e * n).collect();
for e in mv.iter_mut() { for e in mv.iter_mut() {
*e = *e * n *e = *e * n