Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork14
Easy-to-use Scientific Computing library in/for C++ available for Linux and Windows.
License
mlcpp/Matrix
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
2.1.Linux
2.2.Windows
5.1.Initializers
5.2.Slicing
5.3.Printing/Viewing
5.4.Indexing
5.5.Operators
5.6.Broadcasting
5.7.Minimum, Maximum
5.10.Matrix Algebra
5.11.Miscellaneous
This describes the installation process using cmake. As pre-requisites, you'llneed git and cmake installed.
# Check out the library.$ git clone https://github.com/mlcpp/Matrix.git&&cd Matrix# Make a build directory to place the build output.$ cmake -E make_directory"build"# Generate build system files with cmake.$ cmake -E chdir"build" cmake -DCMAKE_BUILD_TYPE=Release ../# Build the library.$ cmake -DCMAKE_BUILD_TYPE=Release -S. -B"build"
On a unix system, the build directory should now look something like this:
/Matrix /build /examples /abs /addition ...- C++ compiler (gcc or clang)
- git
- clang-format
- make (for Makefiles)
- cmake (version 3.13 or higher)
# Check out the library.$ git clone https://github.com/mlcpp/Matrix.git&&cd Matrix# Create build directory.$ mkdir build# Enter into build directory.$cd build# Run CMake. This step will generate a Makefile in the build/ folder.$ cmake ../# Compile all files and place the binaries inside build/examples/ folder.$ make# Compile single file and place the binary inside build/examples/ folder.$ make<file_name_without_extension>
- C++ compiler (mingw-gcc)
- git (msysgit)
- clang-format
- mingw-make or mingw32-make (for Makefiles)
- cmake (version 3.13 or higher)
Add these tools to PATH.
Note: Run the following commands in msysgit terminal.
# Check out the library.$ git clone https://github.com/mlcpp/Matrix.git&&cd Matrix# Create build directory.$ mkdir build# Enter into build directory.$cd build# Run CMake. This step will generate a Makefile in the build/ folder.$ cmake ../# Compile all files and place the binaries inside build/examples/ folder.$ mingw-make# use mingw32-make if using 32-bit Windows# Compile single file and place the binary inside build/examples/ folder.$ mingw-make<file_name_without_extension># use mingw32-make if using 32-bit Windows
To compile g_benchmark binaries:
Linux:make benchmarks
Windows:mingw32-make benchmarks
To compile g_test binaries:
Linux:make tests
Windows:mingw32-make tests
This guide contains detailed explanation of all the methods and functions available and how to use them.
More detailed information about how to use these methods and functions is available in/examples.
Note: Hered-type means any C++ data type.
Many initializer functions are provided that returnMatrix object.
| Function | Parameters | Return value | Description |
|---|---|---|---|
matrix.init() | 1 Parameter: | Matrix object | Creates aMatrix object of same dimensions and values as provided in the parameter. |
matrix.eye() | 1 Parameter: | Matrix object | Creates an identityMatrix object of the size given as parameters. |
matrix.zeros() | 2 Parameters: | Matrix object | Creates aMatrix object of all elements0 of the size given as parameters. |
matrix.ones() | 2 Parameters: | Matrix object | Creates aMatrix object of all elements1 of the size given as parameters. |
matrix.genfromtxt() | 2 Parameters: | Matrix object | Creates aMatrix object with data elements as in the given file. |
Matrix objects can be sliced likeNumPy arrays.
| Function | Parameters | Return value | Description |
|---|---|---|---|
Matrix.slice() | 4 Parameter: | Matrix object | Slices theMatrix object according to the indices provided. |
Matrix.slice_select() | 4 Parameter: | Matrix object | Slices theMatrix object to get all rows which have value(3rd parameter) in secondMatrix object and one column(4th parameter) |
A number of methods are provided to print/view aMatrix object in different ways.
| Function | Parameters | Return value | Description |
|---|---|---|---|
Matrix.print() | 0 Parameters | void | Prints the wholeMatrix object onto the console. |
Matrix.head() | 0 Parameters | void | Prints first 5 rows of theMatrix object onto the console. |
Matrix.tail() | 0 Parameters | void | Prints first 5 rows of theMatrix object onto the console. |
Matrix.view() | 2 Parameters: | void | Prints the value on the provided index. |
Matrix.view() | 4 Parameters: | void | Prints theMatrix object according to the indices provided. |
Indexing can be used to get or assign value to a particular element.
For example, let there is aMatrix object named mat. If we want to get the value at index (5,3) we can do this as follows:
double val = mat(5,3);Similarly, if we want to assign the value to index (5,3) we can do this by:
mat(5,3) = 10.54;Support for almost all standard C++ operators is provided. This includes:
- Arithmetic operators (+, -, \*, /)
- Compound assignment operatos (+=, -=, \*=, /=)
- Increment and decrement operators (++, --)
- Relational and Comparison operators (==, !=, <, >, <=, >=)
- Unary Minus (-)
Broadcasting is in-built in the Basic Mathematical operations i.e., addition, subtraction, multiplication and division.
Following binary operations are possible:
- Matrix = Matrix @ Matrix
- Matrix = Matrix @ Vector
- Matrix = Matrix @ Scalar
where, @ is any operator from (+, -, *, /)
Note: Vector is aMatrix object where row lengthor column length is equal to 1.
Following unary operations are possible:
- Matrix = @Matrix
where, @ is any operator from (-)
| Function | Parameters | Return value | Description |
|---|---|---|---|
matrix.min() | 2 Parameters: | Matrix object | Method to get the minimum value along an axis |
matrix.max() | 2 Parameters: | Matrix object | Method to get the maximum value along an axis |
matrix.argmin() | 2 Parameters: | Matrix object | Method to get the index of minimum value along an axis |
matrix.argmax() | 2 Parameters: | Matrix object | Method to get the index of maximum value along an axis |
| Function | Parameters | Return value | Description |
|---|---|---|---|
matrix.sqrt() | 1 Parameter: | Matrix object | Method to get the sqrt of each element of aMatrix object |
matrix.power() | 2 Parameters: | Matrix object | Method to calculate power of each element of aMatrix object |
matrix.power() | 2 Parameters: | Matrix object | Method to calculate power of each element of aMatrix object |
matrix.exp() | 1 Parameter: | Matrix object | Method to calculate exponential of all elements in theMatrix object |
matrix.log() | 1 Parameter: | Matrix object | Method to calculate natural logarithm of all elements in the in theMatrix object |
matrix.abs() | 1 Parameter: | Matrix object | Method to get absolute value of all elements in the in theMatrix object |
Note: Broadcasting in power() methods works in the same way as in Basic Mathematical operations.
| Function | Parameters | Return value | Description |
|---|---|---|---|
matrix.sum() | 2 Parameters: | Matrix object | Method to calculate the sum over an axis of aMatrix object |
matrix.mean() | 2 Parameters: | Matrix object | Method to calculate the mean over an axis of aMatrix object |
matrix.std() | 2 Parameters: | Matrix object | Method to calculate the standard deviation over an axis of aMatrix object |
| Function | Parameters | Return value | Description |
|---|---|---|---|
Matrix.transpose() | 0 Parameters | Matrix object | Method to return the Tranpose of aMatrix object |
matrix.matmul() | 2 Parameters: | Matrix object | Method to calculate matrix multiplication |
matrix.determinant() | 2 Parameters: | double | Method to calculate the Determinant of aMatrix object |
matrix.inverse() | 1 Parameter: | Matrix object | Method to calculate the Inverse of aMatrix object |
| Function | Parameters | Return value | Description |
|---|---|---|---|
matrix.concatenate() | 3 Parameters: | Matrix object | Method to concatenate/join twoMatrix objects |
Matrix.get() | 0 Parameters | std::vector<std::vector<d-type>> | Method to get theMatrix object as a 2D vector |
Matrix.get_row() | 1 Parameter: | std::vector<d-type> | Method to get a row of aMatrix object in the form of a vector |
Matrix.get_col() | 1 Parameter: | std::vector<d-type> | Method to get a column of aMatrix object in the form of a vector |
matrix.delete_() | 3 Parameters: | Matrix object | Method to delete a row or column of aMatrix object |
matrix.reciprocal() | 1 Parameter: | Matrix object | Method to calculate reciprocal of all elements in theMatrix object |
Matrix.row_length() | 0 Parameters | int | Method to get the number of rows in aMatrix object |
Matrix.col_length() | 0 Parameters | int | Method to get the number of columns in aMatrix object |
About
Easy-to-use Scientific Computing library in/for C++ available for Linux and Windows.
Topics
Resources
License
Code of conduct
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Contributors7
Uh oh!
There was an error while loading.Please reload this page.