Skip to content

Latest commit

 

History

History
19 lines (14 loc) · 2.21 KB

File metadata and controls

19 lines (14 loc) · 2.21 KB

Matrix

This is just a simple matrix math library in a couple of languages.

WHY

Yeah I know, I hated the matrices section back in high school too. So, then, why am i putting myself through this??? Well, matrices is a lot of keeping track of data which is always good and matrices are especially good because they ahve this special thing called ✨Matrix Multiplication✨!!! Again, I hated matrix multiplicated in school, but it is incredibly useful because it is an efficient way to do something called multiplicitive summation. It sounds complex and stuff I know, and it what it's used for makes it sound even more complex because it's used for neural networks! BUT if you break it down, all multiplicitive sums are are just adding up stuff that you previously multiplied. Matrices are ways to hold the data in ways to make it easier to keep track of it.

Why Multiple Languages?

Well, the first version of this matrix library was actually in javascript - a funny choice because JavaScript is one of my least favorite languages - because I was working on a p5.js neural network library that I needed to use matrix math for. It ended up working and I realized that I could probably rewrite it in Java and then take advantage of things like threading and it being a bit faster to make an overall better neural netowrk library, but that means that I would need a matrix library in Java, hence this repo.

In addition, I have some friends in high school who are just learning Java right now and I would love to send them a huge matrix math file with OOP and threading in it then casually ask what their last project was.

Plans

I have a bunch of plans for the future of my neural net libaray which you can see there, but here are a few more localized to these Matrix classes.

  • Add optional threading.
  • Add smart threading (Check for large matrices and thread whenever they get larger than a certain size)

Note

While you could theoretically use matrices as simple 2D arrays, this library is designed with math in mind and you can't really do math with things other than numbers in code. So, my library does not have express support for any non-numerical datatypes.