mlcpp / matrix Goto Github PK
View Code? Open in Web Editor NEWEasy-to-use Scientific Computing library in/for C++ available for Linux and Windows.
Home Page: https://mlcpp.github.io/Matrix/
License: MIT License
Easy-to-use Scientific Computing library in/for C++ available for Linux and Windows.
Home Page: https://mlcpp.github.io/Matrix/
License: MIT License
The naming scheme and use of Matrix methods should be similar to that of Python NumPy. Accordingly, read_csv method should be changed to genfromtxt.
Steps to follow:
g++ benchmark/BM_genfromtxt.cpp -std=c++11 -I./include/ -isystem ./lib/benchmark/include -L./lib/benchmark/build/src -lbenchmark -lpthread -o ./benchmark/linux_binaries/BM_genfromtxt
g++ benchmark/BM_all.cpp -std=c++11 -I./include/ -isystem ./lib/benchmark/include -L./lib/benchmark/build/src -lbenchmark -lpthread -o ./benchmark/linux_binaries/BM_all
Note: All the above steps should be a part of one commit with the message "Renames read_csv to genfromtxt".
make bechmarks
and make tests
results in an error when compiling in Windows. make examples
works as expected.
Bechmarks and Tests binaries should have been created.
Error
New version of Google Benchmark and googletest causing this error.
The current build system does not compile the benchmarking files present in the benchmark/ directory.
The directory structure will be
/Matrix
/benchmark
/linux_binaries
/macos_binaries
/windows_executables
...
...
When in Matrix/benchmark/ the command used to compile will be
g++ <file_name>.cpp -std=c++11 -I../include/ -isystem ../lib/benchmark/include -L../lib/benchmark/build/src -lbenchmark -lpthread -o ./linux_binaries/<file_name>
Note: You can contact @ashok-arora if you face any problem while solving this issue.
To improve readability method declarations should be in a .hpp file and definitions should be in a .cpp file which is not the case currently.
Note: Do not change file names.
Note: You can contact @aniketsharma00411 if you face any problem while solving this issue.
Examples are created to make it easier for beginners to use the library. But the size of the Boston dataset makes them complext and hampers their usability.
Thus, a smaller dataset (like the one in the tests/ directory) should be used to improve them.
Add the smaller dataset in the examples/ directory only.
Recompile the examples using make
and make sure that they are working properly.
Note: You can contact @ashok-arora if you face any problem while solving this issue.
It is impossible to work with const Matrix
objects as none of the methods are declared const
.
Using a const Matrix
object I can't even call basic methods like row_length()
, col_length()
, print(), etc. as none of these are declared
const` even though they are not changing the object value.
row_length()
, col_length()
and other methods not changing the object should run when called using a const Matrix
object.
row_length()
, col_length()
and other methods not changing the object give error when when called using a const Matrix
object.
Add const
keyword to methods which will not change the object value.
Currently, we can only initialize a Matrix
object using <std::vector<std::vector<double>>
or <std::vector<std::vector<std::string>>
.
So, if I want to create a Matrix
with 1 row and 1 column I need to create a 2-D vector object and then use the init()
method which seems a bit redundant.
Overload init()
method such that we can use a double
, std::string
, std::vector<double>
and std::vector<std::string>
to initialize a Matrix
object.
After completion, init(2) should give me a Matrix
object with 1 element. Similarly, for 1-D vectors.
Currently, the required CMake version is 3.19.0 which is not yet available for all OSs.
The required version is CMakeLists.txt should be the oldest which will work without any issue.
The CMake gives the error
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:2 (project):
The CMAKE_CXX_COMPILER:
cl
is not a full path and was not found in the PATH.
To use the NMake generator with Visual C++, cmake must be run from a shell
that can use the compiler cl from the command line. This environment is
unable to invoke the cl compiler. To fix this problem, run cmake from the
Visual Studio Command Prompt (vcvarsall.bat).
Tell CMake where to find the compiler by setting either the environment
variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
to the compiler, or to the compiler name if it is in the PATH.
-- Configuring incomplete, errors occurred!
See also "C:/Users/Harshit_Singh/Documents/my doc/linear_algebra/Matrix/build/CMakeFiles/CMakeOutput.log".
See also "C:/Users/Harshit_Singh/Documents/my doc/linear_algebra/Matrix/build/CMakeFiles/CMakeError.log".
but the file compiles when the file is compiled using the following code:
g++ examples/abs.cpp -std=c++11 -I./include/ -o ./build/abs
GitHub Socialify should be added to README to make it more attractive and make the project appealing to a vast audience.
Note: You can contact @aniketsharma00411 if you face any problem while solving this issue.
All edge cases are not covered by current unit tests thus more unit tests should be added to cover those.
All methods currently have atleast one unit test for them and all tests for a method should be present in the same file.
Note: This issue will not be assigned to anyone but anyone can work on it. Just create a pull request mentioning the issue and what edge cases you covered which were not previously checked. This issue will not be closed.
After cloning the repo and following the installation procedure, make benchmarks
gives error that google benchmark is not installed.
make
, make all
and make benchmarks
should install google benchmark if not found. Similarly, make
, make all
and make tests
should install googletest in not found in lib/ directory.
I need to install google benchmark and googletest everytime when working on a fresh clone from their respective repo.
To provide an easier way to view API documentation, the function comments should be converted to Doxygen comments.
The naming scheme of Matrix methods should be similar to that used in Python NumPy. Accordingly, del method should be renamed to delete.
Steps to follow:
g++ benchmark/BM_delete.cpp -std=c++11 -I./include/ -isystem ./lib/benchmark/include -L./lib/benchmark/build/src -lbenchmark -lpthread -o ./benchmark/linux_binaries/BM_delete
g++ benchmark/BM_all.cpp -std=c++11 -I./include/ -isystem ./lib/benchmark/include -L./lib/benchmark/build/src -lbenchmark -lpthread -o ./benchmark/linux_binaries/BM_all
Note: All the above steps should be a part of one commit with the message "Renames del to delete".
The parameter description of read_csv() is not accurate in README.md
Job of std:string
parameter should be "Path of the" instead of "File Name of the".
Integrate Google Test into this repository.
The naming scheme of Matrix methods should be similar to that used in Python NumPy. Accordingly, concat method should be renamed to concatenate.
Steps to follow:
g++ benchmark/BM_concatenate.cpp -std=c++11 -I./include/ -isystem ./lib/benchmark/include -L./lib/benchmark/build/src -lbenchmark -lpthread -o ./benchmark/linux_binaries/BM_concatenate
g++ benchmark/BM_all.cpp -std=c++11 -I./include/ -isystem ./lib/benchmark/include -L./lib/benchmark/build/src -lbenchmark -lpthread -o ./benchmark/linux_binaries/BM_all
Note: All the above steps should be a part of one commit with the message "Renames concat to concatenate".
Compiling manually is a time-consuming task.
cmake can be used to compile tests/tests.cpp
Currently, I am using the below command to compile and run
cd tests
g++ tests.cpp -I../include -lgtest -lpthread -o ../build/tests/tests && ../build/tests/tests
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.