## Expand description

## Calcify

A crate for 3-D and 4-D vector and matrix algebra, conceived for use in physics simulations. Builds out from a basic ThreeVec struct including most commonly used operations built in. Includes physics constants, 3 and 4-D vectors and matrices and many associated operations, collections, histograms, and output trees, which are serialized in json or MessagePack.

### ICalcify

Python command line utility and module for analyzing Tree files.

Check it out here!

## Modules

## Structs

A histogram is a Collection of Bins

Branch

A wrapper around the std::vec::vec

Tree of Collections of only a single type, which impl the Feed trait for added functionality

Four Matrix

Four Vector

Point, or Two Vector, depending on your perspective. A plot is a Collection of Points

A 2D histogram is a Collection of PointBins

Three dimensional scalar field

Three Matrix

Three Vector

Three dimensional vector field

Tree of Collections for saving to a file.

## Enums

Variants of S space-time invariant

## Traits

Deserialization trait which all types you intend to get out of a Tree need to implement. Really only designed to work with data that was serialized with the Calcify::Serializable trait and will not work on arbitrarily modified tree files

Serialization trait which all types you intend to put in a Tree need to implement.

## Functions

Beta factor, |v| over the speed pf light in a vacuum, in SI.

Returns a FourVec, inside a Result, boosted into a frame of arbitrary velocity **v**.

Return the angle between two vectors in degrees

Gamma, the lorentz factor, in SI.

Return the angle between two vectors in radians