/**
* Perpendicular of A on B
* https://en.wikipedia.org/wiki/Vector_projection#Vector_projection
*
* A⋅B⊥
* perpᵇA = ---- B⊥
* |B|²
*
* @param Vector $B
*
* @return Vector
*/
public function perp(Vector $B) : Vector
{
$A⋅B⊥ = $B->perpDotProduct($this);
$│B│² = $B->l2norm() ** 2;
$B⊥ = $B->perpendicular();
return $B⊥->scalarMultiply($A⋅B⊥ / $│B│²);
}