pub fn project(&self, p: &Point<T>) -> Point<T> {
        let p = p - &self.offset;
        let mut q = self.offset.clone();

        for b in &self.basis {
            q += b * p.dot(b);
        }

        q
    }
/// Projects a point onto the subspace.
Projects a point onto the subspace.
Projects a point onto the subspace .
pub fn project(&self, p: &Point<T>) -> Point<T> {
        let p = p - &self.offset;
        let mut q = self.offset.clone();
        for b in &self.basis {
            q += b * p.dot(b);
        }
        q
    }
pub fn project ( & self , p : & Point < T > ) -> Point < T > { let p = p - & self . offset ; let mut q = self . offset . clone ( ) ; for b in & self . basis { q += b * p . dot ( b ) ; } q }
Projects a point onto the subspace.
Projects a point onto the subspace .
&self
p
&Point<T>
&self
p
&Point<T>