Ask Your Question

# The Pleasures of 'Perp Dot' Products in Sagemath

Francis S. Hill, Jr. has an vector operation he calls a-Perp. It is defined as the vector perpendicular to a that is rotated 90° counterclockwise (Hill 1994:138). Wolfram also has a page on the concept here. Similar to the Normal vector, but not quite.

I wonder if there's a default Sage function, or some handy way, to do this?

Say I have vector a

a = vector(QQ, [3, 4])


and I want to get

a_Perp = vector(QQ, [-4, 3])


Hill, F. S. Jr. "The Pleasures of 'Perp Dot' Products." Ch. II.5 in Graphics Gems IV (Ed. P. S. Heckbert). San Diego: Academic Press, pp. 138-148, 1994.

edit retag close merge delete

## 2 answers

Sort by » oldest newest most voted

Alternatively, you can use the rotation matrix.

a = vector(QQ, [3, 4])
m=matrix(QQ,[[0,-1],[1,0]])
a_perp=m*a

more

## Comments

I prefer this solution as it seems most flexible to me. Please chime in if if you have comments. I'm eager to learn.

( 2016-07-25 11:25:35 -0500 )edit

There is no such function defined in Sage. Yet, you can write it as:

sage: a_perp = vector([-a[1], a[0]])
sage: a_perp
(-4, 3)


If you think this function is useful, I urge you to add it (as well as maybe "perp-dot products") into Sage by creating a ticket on trac.sagemath.org.

more

## Comments

@b-r-u-n-o, thank you for your feedback and your answer.

( 2016-07-25 11:23:10 -0500 )edit

## Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

## Stats

Asked: 2016-07-25 04:13:01 -0500

Seen: 104 times

Last updated: Jul 25 '16