# mathgen, or why I'm so so sorry Go's type system is a double-edged sword, and the inner edge will definitely get you when you go to do generic math. I opted against using the `reflect` library, and instead went for codegen. So while the result is barely readable, it will at least be somewhat faster, theoretically. This module generates the `math.go` file which resides in the core library. The `mathgen.tpl` file is where most of the magic happens. It is virtually unreadable. The biggest reason for this is that I want it to be able to pass through `go fmt` unphased, so that it doesn't end up getting changed back and forth throughout the code's history. ## Running You can run code gen by running `make gen` in the `core/` directory. The `Makefile` in the root of the project should also reference this, so running that in the root should also result in the file getting regenerated.