## API Documentation

There a couple of things that don’t really fit in to any of the class references listed above. The first one is that there exist a series of shorthand functions for creating objects in Sylvester. They are:

`$V`

– short for`Vector.create`

`$M`

– short for`Matrix.create`

`$L`

– short for`Line.create`

`$P`

– short for`Plane.create`

### Note on accuracy

The second is that a lot of functionality in Sylvester relies on computing
various quantities and comparing them to zero. Rounding errors on floating
point numbers mean that quantities that should be zero can actually be a bit
off. Therefore, quantities are compared to the value of
`Sylvester.precision`

– if the absolute value of
`x`

is less than this number, `x`

is considered to be
equal to zero. By default, `Sylvester.precision`

is set to
`1e-6`

, but you can just set the value yourself if you want to be
more strict – it should ideally be several orders of magnitude smaller
than the vector/matrix elements you’re working with.

### Null return values

Finally, as a general rule, trying to compute something that is not
mathematically meaningful (like multiplying matrices with incompatible sizes)
will produce a result of `null`

. Similarly, trying to compute
something that does not exist, such as the intersection of two parallel
lines, will return `null`

.