# 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.