Matrix multiplication calculator.
Go to file
2024-01-31 12:04:48 -05:00
src build using nimble instead + create nimble package 2024-01-31 12:04:36 -05:00
.gitignore build using nimble instead + create nimble package 2024-01-31 12:04:36 -05:00
LICENSE Initial commit 2022-11-13 20:42:28 -05:00
multrix.nimble build using nimble instead + create nimble package 2024-01-31 12:04:36 -05:00
README.md Update README.md 2023-08-15 22:28:51 -04:00

Multrix

Matrix multiplication calculator; calculates the cross & dot products of matrices and vectors.

Usage

To calculate the dot product of 2 matrices execute the dot command or multrix command in the output bin directory.

To calculate the cross product of 2 vectors execute the cross command or multrix command in the output bin directory.

The multrix command can calculate both dot or cross products if given the respective command line argument. If no valid commandline argument is given the program will ask which type of calculation should be made.

installation

The program requires no dependencies other than the nim standard library. Just run make in the root of the project and run the executables in bin.

Math

Dot Product

$$ \begin{align*} A \cdot B = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \ a_{21} & a_{22} & \cdots & a_{1n} \ \vdots & \vdots & \ddots & \vdots \ a_{m1} & a_{m2} & \cdots & a_{mn} \ \end{bmatrix} \cdot \begin{bmatrix} b_{11} & b_{12} & \cdots & b_{1p} \ b_{21} & b_{22} & \cdots & b_{1p} \ \vdots & \vdots & \ddots & \vdots \ b_{n1} & b_{n2} & \cdots & b_{np} \ \end{bmatrix}

\begin{bmatrix} a_{11}b_{11} + \cdots + a_{1n}b_{n1} & a_{11}b_{12} + \cdots + a_{1n}b_{n2} & \cdots & a_{11}b_{1p} + \cdots + a_{1n}b_{np} \ a_{21}b_{11} + \cdots + a_{2n}b_{n1} & a_{21}b_{12} + \cdots + a_{2n}b_{n2} & \cdots & a_{21}b_{1p} + \cdots + a_{2n}b_{np} \ \vdots & \vdots & \ddots & \vdots \ a_{m1}b_{11} + \cdots + a_{mn}b_{n1} & a_{m1}b_{12} + \cdots + a_{mn}b_{n2} & \cdots & a_{m1}b_{1p} + \cdots + a_{mn}b_{np} \ \end{bmatrix} \end{align*}

Cross Product

$$ \begin{align*} \vec{A} \times \vec{B} = \begin{vmatrix} i & j & k\ a_1 & a_2 & a_3\ b_1 & b_2 & b_3 \end{vmatrix} = (a_2b_3-a_3b_2)i + (a_3b_1-a_1b_3)j+(a_1b_2-a_2b_1)k \end{align*}