public function project(Vector $b) : self
    {
        $bHat = $this->dot($b) / ($b->l2Norm() ** 2);

        return $b->multiply($bHat);
    }
public function project(Vector $b) : self
    {
        $bHat = $this->dot($b) / ($b->l2Norm() ** 2);

        return $b->multiply($bHat);
    }
public function project ( Vector $ b ) : self { $ bHat = $ this -> dot ( $ b ) / ( $ b -> l2Norm ( ) ** 2 ) ; return $ b -> multiply ( $ bHat ) ; }
Project this vector on another vector.

@param \Rubix\Tensor\Vector $b
@return self
Project this vector on another vector .