# Linear Algebraic Shell

DESCRIPTION

LAS - Linear Algeberaic Shell is a command based matrix transformation visualizer for 2D space.

USAGE

#### NUMBER ARGUMENTS

LAS supports two kinds of number arguments. Real numbers (floating point) and trigonometric functions. Trigonometric functions have the format (func x) where x is a real number. For example: (sin 2), (cos 18.9999). Trigonometric functions must always be surrounded by parentheses and CAN NOT be nested like (cos (cos 1))! currently only cosine and sine are supported.

#### VECTOR

You can use vector, vec, or v to create vectors, it takes two number arguments. For example:

`>>> vec x y`
`>>> vector (cos x) y`
`>>> v x (sin y)`
`>>> v (cos x) (sin y)`

#### TRANSFORM

You can apply a matirx transformation to the space using transform or t for short. It takes 4 number arguments m11 m12 m21 m22 in that order. For example:

`>>> t m11 m12 m21 m22`

#### ROTATE

You can use rotate, rot, or r to rotate the space. It takes the degree as an argument and not a radian. Rotate is basically just a specialization of the transform command that applies the matrix with first row [cos(deg) -sin(deg)] and second row [sin(deg) cos(deg)]. Examples:

`>>> rot 90`
`>>> rotate 180`

#### RESET

You can use reset to reset the state of the world, reverse all transformations and remove all displayed vectors.

`>>> reset`
EXAMPLE

The following commands:

`>>> v 1 0`
`>>> v 0 1`
`>>> t 2 0 0 2`
`>>> t 1 0 1 1`
`>>> t 0.5 0 0 0.5`

would create the two basis vectors, scale the whole space by a factor of 2, take the basis vector (1 0) to (1 1), and then scale back to the original factor.

BUGS
• sign reversing transformations are animated in a funky way.
• if this is unusable on your device then it's a bug, unless you're surfing with a NES emulator.
CONTACT

If you find a bug or just wanna chit chat then send me an email at nullp0tr at gmail dot com. You can also directly contribute to the project on github :)