matrix-engine 1.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- matrix_engine-1.1.0/.vscode/c_cpp_properties.json +15 -0
- matrix_engine-1.1.0/.vscode/launch.json +17 -0
- matrix_engine-1.1.0/.vscode/tasks.json +19 -0
- matrix_engine-1.1.0/CMakeLists.txt +77 -0
- matrix_engine-1.1.0/LICENSE +21 -0
- matrix_engine-1.1.0/PKG-INFO +239 -0
- matrix_engine-1.1.0/README.md +197 -0
- matrix_engine-1.1.0/build/ALL_BUILD.vcxproj +219 -0
- matrix_engine-1.1.0/build/ALL_BUILD.vcxproj.filters +8 -0
- matrix_engine-1.1.0/build/CMakeCache.txt +385 -0
- matrix_engine-1.1.0/build/CMakeFiles/350701677c7ee3fcade0e8d8ea2eb8bc/INSTALL_force.rule +1 -0
- matrix_engine-1.1.0/build/CMakeFiles/350701677c7ee3fcade0e8d8ea2eb8bc/RUN_TESTS_force.rule +1 -0
- matrix_engine-1.1.0/build/CMakeFiles/350701677c7ee3fcade0e8d8ea2eb8bc/generate.stamp.rule +1 -0
- matrix_engine-1.1.0/build/CMakeFiles/4.3.2/CMakeCXXCompiler.cmake +102 -0
- matrix_engine-1.1.0/build/CMakeFiles/4.3.2/CMakeDetermineCompilerABI_CXX.bin +0 -0
- matrix_engine-1.1.0/build/CMakeFiles/4.3.2/CMakeRCCompiler.cmake +6 -0
- matrix_engine-1.1.0/build/CMakeFiles/4.3.2/CMakeSystem.cmake +15 -0
- matrix_engine-1.1.0/build/CMakeFiles/4.3.2/CompilerIdCXX/CMakeCXXCompilerId.cpp +949 -0
- matrix_engine-1.1.0/build/CMakeFiles/4.3.2/CompilerIdCXX/CompilerIdCXX.exe +0 -0
- matrix_engine-1.1.0/build/CMakeFiles/4.3.2/CompilerIdCXX/CompilerIdCXX.vcxproj +72 -0
- matrix_engine-1.1.0/build/CMakeFiles/4.3.2/CompilerIdCXX/Debug/CMakeCXXCompilerId.obj +0 -0
- matrix_engine-1.1.0/build/CMakeFiles/4.3.2/CompilerIdCXX/Debug/CompilerIdCXX.exe.recipe +11 -0
- matrix_engine-1.1.0/build/CMakeFiles/4.3.2/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/CMakeFiles/4.3.2/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/CMakeFiles/4.3.2/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/CMakeFiles/4.3.2/CompilerIdCXX/Debug/CompilerIdCXX.tlog/Cl.items.tlog +1 -0
- matrix_engine-1.1.0/build/CMakeFiles/4.3.2/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CompilerIdCXX.lastbuildstate +2 -0
- matrix_engine-1.1.0/build/CMakeFiles/4.3.2/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/CMakeFiles/4.3.2/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/CMakeFiles/4.3.2/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.secondary.1.tlog +1 -0
- matrix_engine-1.1.0/build/CMakeFiles/4.3.2/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/CMakeFiles/4.3.2/VCTargetsPath/x64/Debug/VCTargetsPath.recipe +11 -0
- matrix_engine-1.1.0/build/CMakeFiles/4.3.2/VCTargetsPath/x64/Debug/VCTargetsPath.tlog/VCTargetsPath.lastbuildstate +2 -0
- matrix_engine-1.1.0/build/CMakeFiles/4.3.2/VCTargetsPath.txt +1 -0
- matrix_engine-1.1.0/build/CMakeFiles/4.3.2/VCTargetsPath.vcxproj +31 -0
- matrix_engine-1.1.0/build/CMakeFiles/CMakeConfigureLog.yaml +2474 -0
- matrix_engine-1.1.0/build/CMakeFiles/InstallScripts.json +7 -0
- matrix_engine-1.1.0/build/CMakeFiles/TargetDirectories.txt +13 -0
- matrix_engine-1.1.0/build/CMakeFiles/cmake.check_cache +1 -0
- matrix_engine-1.1.0/build/CMakeFiles/generate.stamp +1 -0
- matrix_engine-1.1.0/build/CMakeFiles/generate.stamp.depend +42 -0
- matrix_engine-1.1.0/build/CMakeFiles/generate.stamp.list +1 -0
- matrix_engine-1.1.0/build/CTestTestfile.cmake +111 -0
- matrix_engine-1.1.0/build/Debug/_matrix_engine.exp +0 -0
- matrix_engine-1.1.0/build/Debug/_matrix_engine.lib +0 -0
- matrix_engine-1.1.0/build/Debug/cpp_math.lib +0 -0
- matrix_engine-1.1.0/build/Debug/cpp_math.pdb +0 -0
- matrix_engine-1.1.0/build/Debug/test_matrix.exe +0 -0
- matrix_engine-1.1.0/build/Debug/test_matrix.pdb +0 -0
- matrix_engine-1.1.0/build/Debug/test_matrix_basics.exe +0 -0
- matrix_engine-1.1.0/build/Debug/test_matrix_basics.pdb +0 -0
- matrix_engine-1.1.0/build/Debug/test_matrix_linalg.exe +0 -0
- matrix_engine-1.1.0/build/Debug/test_matrix_linalg.pdb +0 -0
- matrix_engine-1.1.0/build/Debug/test_matrix_logic.exe +0 -0
- matrix_engine-1.1.0/build/Debug/test_matrix_logic.pdb +0 -0
- matrix_engine-1.1.0/build/Debug/test_templates.exe +0 -0
- matrix_engine-1.1.0/build/Debug/test_templates.pdb +0 -0
- matrix_engine-1.1.0/build/Debug/test_validation.exe +0 -0
- matrix_engine-1.1.0/build/Debug/test_validation.pdb +0 -0
- matrix_engine-1.1.0/build/Debug/test_vector.exe +0 -0
- matrix_engine-1.1.0/build/Debug/test_vector.pdb +0 -0
- matrix_engine-1.1.0/build/Debug/test_vector_basics.exe +0 -0
- matrix_engine-1.1.0/build/Debug/test_vector_basics.pdb +0 -0
- matrix_engine-1.1.0/build/Debug/test_vector_logic.exe +0 -0
- matrix_engine-1.1.0/build/Debug/test_vector_logic.pdb +0 -0
- matrix_engine-1.1.0/build/Debug/vector_demo.exe +0 -0
- matrix_engine-1.1.0/build/Debug/vector_demo.pdb +0 -0
- matrix_engine-1.1.0/build/INSTALL.vcxproj +209 -0
- matrix_engine-1.1.0/build/INSTALL.vcxproj.filters +13 -0
- matrix_engine-1.1.0/build/RUN_TESTS.vcxproj +199 -0
- matrix_engine-1.1.0/build/RUN_TESTS.vcxproj.filters +13 -0
- matrix_engine-1.1.0/build/Testing/Temporary/CTestCostData.txt +10 -0
- matrix_engine-1.1.0/build/Testing/Temporary/LastTest.log +115 -0
- matrix_engine-1.1.0/build/ZERO_CHECK.vcxproj +179 -0
- matrix_engine-1.1.0/build/ZERO_CHECK.vcxproj.filters +13 -0
- matrix_engine-1.1.0/build/_matrix_engine.dir/Debug/_matrix_engine.cp311-win_amd64.ilk +0 -0
- matrix_engine-1.1.0/build/_matrix_engine.dir/Debug/_matrix_engine.cp311-win_amd64.pyd.recipe +14 -0
- matrix_engine-1.1.0/build/_matrix_engine.dir/Debug/_matrix_engine.tlog/CL.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/_matrix_engine.dir/Debug/_matrix_engine.tlog/CL.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/_matrix_engine.dir/Debug/_matrix_engine.tlog/CL.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/_matrix_engine.dir/Debug/_matrix_engine.tlog/Cl.items.tlog +1 -0
- matrix_engine-1.1.0/build/_matrix_engine.dir/Debug/_matrix_engine.tlog/CustomBuild.command.1.tlog +10 -0
- matrix_engine-1.1.0/build/_matrix_engine.dir/Debug/_matrix_engine.tlog/CustomBuild.read.1.tlog +41 -0
- matrix_engine-1.1.0/build/_matrix_engine.dir/Debug/_matrix_engine.tlog/CustomBuild.write.1.tlog +2 -0
- matrix_engine-1.1.0/build/_matrix_engine.dir/Debug/_matrix_engine.tlog/_matrix_engine.lastbuildstate +2 -0
- matrix_engine-1.1.0/build/_matrix_engine.dir/Debug/_matrix_engine.tlog/link.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/_matrix_engine.dir/Debug/_matrix_engine.tlog/link.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/_matrix_engine.dir/Debug/_matrix_engine.tlog/link.secondary.1.tlog +4 -0
- matrix_engine-1.1.0/build/_matrix_engine.dir/Debug/_matrix_engine.tlog/link.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/_matrix_engine.dir/Debug/bindings.obj +0 -0
- matrix_engine-1.1.0/build/_matrix_engine.dir/Debug/vc145.pdb +0 -0
- matrix_engine-1.1.0/build/_matrix_engine.vcxproj +400 -0
- matrix_engine-1.1.0/build/_matrix_engine.vcxproj.filters +16 -0
- matrix_engine-1.1.0/build/cmake_install.cmake +68 -0
- matrix_engine-1.1.0/build/cpp_math.dir/Debug/Matrix.obj +0 -0
- matrix_engine-1.1.0/build/cpp_math.dir/Debug/Vector.obj +0 -0
- matrix_engine-1.1.0/build/cpp_math.dir/Debug/cpp_math.lib.recipe +11 -0
- matrix_engine-1.1.0/build/cpp_math.dir/Debug/cpp_math.tlog/CL.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/cpp_math.dir/Debug/cpp_math.tlog/CL.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/cpp_math.dir/Debug/cpp_math.tlog/CL.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/cpp_math.dir/Debug/cpp_math.tlog/Cl.items.tlog +2 -0
- matrix_engine-1.1.0/build/cpp_math.dir/Debug/cpp_math.tlog/CustomBuild.command.1.tlog +10 -0
- matrix_engine-1.1.0/build/cpp_math.dir/Debug/cpp_math.tlog/CustomBuild.read.1.tlog +41 -0
- matrix_engine-1.1.0/build/cpp_math.dir/Debug/cpp_math.tlog/CustomBuild.write.1.tlog +2 -0
- matrix_engine-1.1.0/build/cpp_math.dir/Debug/cpp_math.tlog/Lib-link.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/cpp_math.dir/Debug/cpp_math.tlog/Lib-link.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/cpp_math.dir/Debug/cpp_math.tlog/Lib.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/cpp_math.dir/Debug/cpp_math.tlog/cpp_math.lastbuildstate +2 -0
- matrix_engine-1.1.0/build/cpp_math.slnx +65 -0
- matrix_engine-1.1.0/build/cpp_math.vcxproj +322 -0
- matrix_engine-1.1.0/build/cpp_math.vcxproj.filters +19 -0
- matrix_engine-1.1.0/build/test_matrix.dir/Debug/test_matrix.exe.recipe +14 -0
- matrix_engine-1.1.0/build/test_matrix.dir/Debug/test_matrix.ilk +0 -0
- matrix_engine-1.1.0/build/test_matrix.dir/Debug/test_matrix.obj +0 -0
- matrix_engine-1.1.0/build/test_matrix.dir/Debug/test_matrix.tlog/CL.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix.dir/Debug/test_matrix.tlog/CL.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix.dir/Debug/test_matrix.tlog/CL.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix.dir/Debug/test_matrix.tlog/Cl.items.tlog +1 -0
- matrix_engine-1.1.0/build/test_matrix.dir/Debug/test_matrix.tlog/CustomBuild.command.1.tlog +10 -0
- matrix_engine-1.1.0/build/test_matrix.dir/Debug/test_matrix.tlog/CustomBuild.read.1.tlog +41 -0
- matrix_engine-1.1.0/build/test_matrix.dir/Debug/test_matrix.tlog/CustomBuild.write.1.tlog +2 -0
- matrix_engine-1.1.0/build/test_matrix.dir/Debug/test_matrix.tlog/link.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix.dir/Debug/test_matrix.tlog/link.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix.dir/Debug/test_matrix.tlog/link.secondary.1.tlog +2 -0
- matrix_engine-1.1.0/build/test_matrix.dir/Debug/test_matrix.tlog/link.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix.dir/Debug/test_matrix.tlog/test_matrix.lastbuildstate +2 -0
- matrix_engine-1.1.0/build/test_matrix.dir/Debug/vc145.pdb +0 -0
- matrix_engine-1.1.0/build/test_matrix.vcxproj +385 -0
- matrix_engine-1.1.0/build/test_matrix.vcxproj.filters +16 -0
- matrix_engine-1.1.0/build/test_matrix_basics.dir/Debug/test_mat.1005DB10.tlog/CL.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix_basics.dir/Debug/test_mat.1005DB10.tlog/CL.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix_basics.dir/Debug/test_mat.1005DB10.tlog/CL.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix_basics.dir/Debug/test_mat.1005DB10.tlog/Cl.items.tlog +1 -0
- matrix_engine-1.1.0/build/test_matrix_basics.dir/Debug/test_mat.1005DB10.tlog/CustomBuild.command.1.tlog +10 -0
- matrix_engine-1.1.0/build/test_matrix_basics.dir/Debug/test_mat.1005DB10.tlog/CustomBuild.read.1.tlog +41 -0
- matrix_engine-1.1.0/build/test_matrix_basics.dir/Debug/test_mat.1005DB10.tlog/CustomBuild.write.1.tlog +2 -0
- matrix_engine-1.1.0/build/test_matrix_basics.dir/Debug/test_mat.1005DB10.tlog/link.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix_basics.dir/Debug/test_mat.1005DB10.tlog/link.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix_basics.dir/Debug/test_mat.1005DB10.tlog/link.secondary.1.tlog +2 -0
- matrix_engine-1.1.0/build/test_matrix_basics.dir/Debug/test_mat.1005DB10.tlog/link.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix_basics.dir/Debug/test_mat.1005DB10.tlog/test_matrix_basics.lastbuildstate +2 -0
- matrix_engine-1.1.0/build/test_matrix_basics.dir/Debug/test_matrix_basics.exe.recipe +14 -0
- matrix_engine-1.1.0/build/test_matrix_basics.dir/Debug/test_matrix_basics.ilk +0 -0
- matrix_engine-1.1.0/build/test_matrix_basics.dir/Debug/test_matrix_basics.obj +0 -0
- matrix_engine-1.1.0/build/test_matrix_basics.dir/Debug/vc145.pdb +0 -0
- matrix_engine-1.1.0/build/test_matrix_basics.vcxproj +385 -0
- matrix_engine-1.1.0/build/test_matrix_basics.vcxproj.filters +16 -0
- matrix_engine-1.1.0/build/test_matrix_linalg.dir/Debug/test_mat.842069A5.tlog/CL.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix_linalg.dir/Debug/test_mat.842069A5.tlog/CL.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix_linalg.dir/Debug/test_mat.842069A5.tlog/CL.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix_linalg.dir/Debug/test_mat.842069A5.tlog/Cl.items.tlog +1 -0
- matrix_engine-1.1.0/build/test_matrix_linalg.dir/Debug/test_mat.842069A5.tlog/CustomBuild.command.1.tlog +10 -0
- matrix_engine-1.1.0/build/test_matrix_linalg.dir/Debug/test_mat.842069A5.tlog/CustomBuild.read.1.tlog +41 -0
- matrix_engine-1.1.0/build/test_matrix_linalg.dir/Debug/test_mat.842069A5.tlog/CustomBuild.write.1.tlog +2 -0
- matrix_engine-1.1.0/build/test_matrix_linalg.dir/Debug/test_mat.842069A5.tlog/link.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix_linalg.dir/Debug/test_mat.842069A5.tlog/link.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix_linalg.dir/Debug/test_mat.842069A5.tlog/link.secondary.1.tlog +2 -0
- matrix_engine-1.1.0/build/test_matrix_linalg.dir/Debug/test_mat.842069A5.tlog/link.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix_linalg.dir/Debug/test_mat.842069A5.tlog/test_matrix_linalg.lastbuildstate +2 -0
- matrix_engine-1.1.0/build/test_matrix_linalg.dir/Debug/test_matrix_linalg.exe.recipe +14 -0
- matrix_engine-1.1.0/build/test_matrix_linalg.dir/Debug/test_matrix_linalg.ilk +0 -0
- matrix_engine-1.1.0/build/test_matrix_linalg.dir/Debug/test_matrix_linalg.obj +0 -0
- matrix_engine-1.1.0/build/test_matrix_linalg.dir/Debug/vc145.pdb +0 -0
- matrix_engine-1.1.0/build/test_matrix_linalg.vcxproj +385 -0
- matrix_engine-1.1.0/build/test_matrix_linalg.vcxproj.filters +16 -0
- matrix_engine-1.1.0/build/test_matrix_logic.dir/Debug/test_mat.D93E5584.tlog/CL.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix_logic.dir/Debug/test_mat.D93E5584.tlog/CL.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix_logic.dir/Debug/test_mat.D93E5584.tlog/CL.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix_logic.dir/Debug/test_mat.D93E5584.tlog/Cl.items.tlog +1 -0
- matrix_engine-1.1.0/build/test_matrix_logic.dir/Debug/test_mat.D93E5584.tlog/CustomBuild.command.1.tlog +10 -0
- matrix_engine-1.1.0/build/test_matrix_logic.dir/Debug/test_mat.D93E5584.tlog/CustomBuild.read.1.tlog +41 -0
- matrix_engine-1.1.0/build/test_matrix_logic.dir/Debug/test_mat.D93E5584.tlog/CustomBuild.write.1.tlog +2 -0
- matrix_engine-1.1.0/build/test_matrix_logic.dir/Debug/test_mat.D93E5584.tlog/link.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix_logic.dir/Debug/test_mat.D93E5584.tlog/link.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix_logic.dir/Debug/test_mat.D93E5584.tlog/link.secondary.1.tlog +2 -0
- matrix_engine-1.1.0/build/test_matrix_logic.dir/Debug/test_mat.D93E5584.tlog/link.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_matrix_logic.dir/Debug/test_mat.D93E5584.tlog/test_matrix_logic.lastbuildstate +2 -0
- matrix_engine-1.1.0/build/test_matrix_logic.dir/Debug/test_matrix_logic.exe.recipe +14 -0
- matrix_engine-1.1.0/build/test_matrix_logic.dir/Debug/test_matrix_logic.ilk +0 -0
- matrix_engine-1.1.0/build/test_matrix_logic.dir/Debug/test_matrix_logic.obj +0 -0
- matrix_engine-1.1.0/build/test_matrix_logic.dir/Debug/vc145.pdb +0 -0
- matrix_engine-1.1.0/build/test_matrix_logic.vcxproj +385 -0
- matrix_engine-1.1.0/build/test_matrix_logic.vcxproj.filters +16 -0
- matrix_engine-1.1.0/build/test_templates.dir/Debug/test_templates.exe.recipe +14 -0
- matrix_engine-1.1.0/build/test_templates.dir/Debug/test_templates.ilk +0 -0
- matrix_engine-1.1.0/build/test_templates.dir/Debug/test_templates.obj +0 -0
- matrix_engine-1.1.0/build/test_templates.dir/Debug/test_templates.tlog/CL.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_templates.dir/Debug/test_templates.tlog/CL.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_templates.dir/Debug/test_templates.tlog/CL.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_templates.dir/Debug/test_templates.tlog/Cl.items.tlog +1 -0
- matrix_engine-1.1.0/build/test_templates.dir/Debug/test_templates.tlog/CustomBuild.command.1.tlog +10 -0
- matrix_engine-1.1.0/build/test_templates.dir/Debug/test_templates.tlog/CustomBuild.read.1.tlog +41 -0
- matrix_engine-1.1.0/build/test_templates.dir/Debug/test_templates.tlog/CustomBuild.write.1.tlog +2 -0
- matrix_engine-1.1.0/build/test_templates.dir/Debug/test_templates.tlog/link.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_templates.dir/Debug/test_templates.tlog/link.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_templates.dir/Debug/test_templates.tlog/link.secondary.1.tlog +2 -0
- matrix_engine-1.1.0/build/test_templates.dir/Debug/test_templates.tlog/link.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_templates.dir/Debug/test_templates.tlog/test_templates.lastbuildstate +2 -0
- matrix_engine-1.1.0/build/test_templates.dir/Debug/vc145.pdb +0 -0
- matrix_engine-1.1.0/build/test_templates.vcxproj +385 -0
- matrix_engine-1.1.0/build/test_templates.vcxproj.filters +16 -0
- matrix_engine-1.1.0/build/test_validation.dir/Debug/test_validation.exe.recipe +14 -0
- matrix_engine-1.1.0/build/test_validation.dir/Debug/test_validation.ilk +0 -0
- matrix_engine-1.1.0/build/test_validation.dir/Debug/test_validation.obj +0 -0
- matrix_engine-1.1.0/build/test_validation.dir/Debug/test_validation.tlog/CL.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_validation.dir/Debug/test_validation.tlog/CL.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_validation.dir/Debug/test_validation.tlog/CL.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_validation.dir/Debug/test_validation.tlog/Cl.items.tlog +1 -0
- matrix_engine-1.1.0/build/test_validation.dir/Debug/test_validation.tlog/CustomBuild.command.1.tlog +10 -0
- matrix_engine-1.1.0/build/test_validation.dir/Debug/test_validation.tlog/CustomBuild.read.1.tlog +41 -0
- matrix_engine-1.1.0/build/test_validation.dir/Debug/test_validation.tlog/CustomBuild.write.1.tlog +2 -0
- matrix_engine-1.1.0/build/test_validation.dir/Debug/test_validation.tlog/link.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_validation.dir/Debug/test_validation.tlog/link.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_validation.dir/Debug/test_validation.tlog/link.secondary.1.tlog +2 -0
- matrix_engine-1.1.0/build/test_validation.dir/Debug/test_validation.tlog/link.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_validation.dir/Debug/test_validation.tlog/test_validation.lastbuildstate +2 -0
- matrix_engine-1.1.0/build/test_validation.dir/Debug/vc145.pdb +0 -0
- matrix_engine-1.1.0/build/test_validation.vcxproj +385 -0
- matrix_engine-1.1.0/build/test_validation.vcxproj.filters +16 -0
- matrix_engine-1.1.0/build/test_vector.dir/Debug/test_vector.exe.recipe +14 -0
- matrix_engine-1.1.0/build/test_vector.dir/Debug/test_vector.ilk +0 -0
- matrix_engine-1.1.0/build/test_vector.dir/Debug/test_vector.obj +0 -0
- matrix_engine-1.1.0/build/test_vector.dir/Debug/test_vector.tlog/CL.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_vector.dir/Debug/test_vector.tlog/CL.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_vector.dir/Debug/test_vector.tlog/CL.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_vector.dir/Debug/test_vector.tlog/Cl.items.tlog +1 -0
- matrix_engine-1.1.0/build/test_vector.dir/Debug/test_vector.tlog/CustomBuild.command.1.tlog +10 -0
- matrix_engine-1.1.0/build/test_vector.dir/Debug/test_vector.tlog/CustomBuild.read.1.tlog +41 -0
- matrix_engine-1.1.0/build/test_vector.dir/Debug/test_vector.tlog/CustomBuild.write.1.tlog +2 -0
- matrix_engine-1.1.0/build/test_vector.dir/Debug/test_vector.tlog/link.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_vector.dir/Debug/test_vector.tlog/link.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_vector.dir/Debug/test_vector.tlog/link.secondary.1.tlog +2 -0
- matrix_engine-1.1.0/build/test_vector.dir/Debug/test_vector.tlog/link.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_vector.dir/Debug/test_vector.tlog/test_vector.lastbuildstate +2 -0
- matrix_engine-1.1.0/build/test_vector.dir/Debug/vc145.pdb +0 -0
- matrix_engine-1.1.0/build/test_vector.vcxproj +385 -0
- matrix_engine-1.1.0/build/test_vector.vcxproj.filters +16 -0
- matrix_engine-1.1.0/build/test_vector_basics.dir/Debug/test_vec.622E7542.tlog/CL.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_vector_basics.dir/Debug/test_vec.622E7542.tlog/CL.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_vector_basics.dir/Debug/test_vec.622E7542.tlog/CL.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_vector_basics.dir/Debug/test_vec.622E7542.tlog/Cl.items.tlog +1 -0
- matrix_engine-1.1.0/build/test_vector_basics.dir/Debug/test_vec.622E7542.tlog/CustomBuild.command.1.tlog +10 -0
- matrix_engine-1.1.0/build/test_vector_basics.dir/Debug/test_vec.622E7542.tlog/CustomBuild.read.1.tlog +41 -0
- matrix_engine-1.1.0/build/test_vector_basics.dir/Debug/test_vec.622E7542.tlog/CustomBuild.write.1.tlog +2 -0
- matrix_engine-1.1.0/build/test_vector_basics.dir/Debug/test_vec.622E7542.tlog/link.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_vector_basics.dir/Debug/test_vec.622E7542.tlog/link.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_vector_basics.dir/Debug/test_vec.622E7542.tlog/link.secondary.1.tlog +2 -0
- matrix_engine-1.1.0/build/test_vector_basics.dir/Debug/test_vec.622E7542.tlog/link.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_vector_basics.dir/Debug/test_vec.622E7542.tlog/test_vector_basics.lastbuildstate +2 -0
- matrix_engine-1.1.0/build/test_vector_basics.dir/Debug/test_vector_basics.exe.recipe +14 -0
- matrix_engine-1.1.0/build/test_vector_basics.dir/Debug/test_vector_basics.ilk +0 -0
- matrix_engine-1.1.0/build/test_vector_basics.dir/Debug/test_vector_basics.obj +0 -0
- matrix_engine-1.1.0/build/test_vector_basics.dir/Debug/vc145.pdb +0 -0
- matrix_engine-1.1.0/build/test_vector_basics.vcxproj +385 -0
- matrix_engine-1.1.0/build/test_vector_basics.vcxproj.filters +16 -0
- matrix_engine-1.1.0/build/test_vector_logic.dir/Debug/test_vec.669E983D.tlog/CL.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_vector_logic.dir/Debug/test_vec.669E983D.tlog/CL.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_vector_logic.dir/Debug/test_vec.669E983D.tlog/CL.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_vector_logic.dir/Debug/test_vec.669E983D.tlog/Cl.items.tlog +1 -0
- matrix_engine-1.1.0/build/test_vector_logic.dir/Debug/test_vec.669E983D.tlog/CustomBuild.command.1.tlog +10 -0
- matrix_engine-1.1.0/build/test_vector_logic.dir/Debug/test_vec.669E983D.tlog/CustomBuild.read.1.tlog +41 -0
- matrix_engine-1.1.0/build/test_vector_logic.dir/Debug/test_vec.669E983D.tlog/CustomBuild.write.1.tlog +2 -0
- matrix_engine-1.1.0/build/test_vector_logic.dir/Debug/test_vec.669E983D.tlog/link.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_vector_logic.dir/Debug/test_vec.669E983D.tlog/link.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_vector_logic.dir/Debug/test_vec.669E983D.tlog/link.secondary.1.tlog +2 -0
- matrix_engine-1.1.0/build/test_vector_logic.dir/Debug/test_vec.669E983D.tlog/link.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/test_vector_logic.dir/Debug/test_vec.669E983D.tlog/test_vector_logic.lastbuildstate +2 -0
- matrix_engine-1.1.0/build/test_vector_logic.dir/Debug/test_vector_logic.exe.recipe +14 -0
- matrix_engine-1.1.0/build/test_vector_logic.dir/Debug/test_vector_logic.ilk +0 -0
- matrix_engine-1.1.0/build/test_vector_logic.dir/Debug/test_vector_logic.obj +0 -0
- matrix_engine-1.1.0/build/test_vector_logic.dir/Debug/vc145.pdb +0 -0
- matrix_engine-1.1.0/build/test_vector_logic.vcxproj +385 -0
- matrix_engine-1.1.0/build/test_vector_logic.vcxproj.filters +16 -0
- matrix_engine-1.1.0/build/vector_demo.dir/Debug/vc145.pdb +0 -0
- matrix_engine-1.1.0/build/vector_demo.dir/Debug/vector_demo.exe.recipe +14 -0
- matrix_engine-1.1.0/build/vector_demo.dir/Debug/vector_demo.ilk +0 -0
- matrix_engine-1.1.0/build/vector_demo.dir/Debug/vector_demo.obj +0 -0
- matrix_engine-1.1.0/build/vector_demo.dir/Debug/vector_demo.tlog/CL.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/vector_demo.dir/Debug/vector_demo.tlog/CL.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/vector_demo.dir/Debug/vector_demo.tlog/CL.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/vector_demo.dir/Debug/vector_demo.tlog/Cl.items.tlog +1 -0
- matrix_engine-1.1.0/build/vector_demo.dir/Debug/vector_demo.tlog/CustomBuild.command.1.tlog +10 -0
- matrix_engine-1.1.0/build/vector_demo.dir/Debug/vector_demo.tlog/CustomBuild.read.1.tlog +41 -0
- matrix_engine-1.1.0/build/vector_demo.dir/Debug/vector_demo.tlog/CustomBuild.write.1.tlog +2 -0
- matrix_engine-1.1.0/build/vector_demo.dir/Debug/vector_demo.tlog/link.command.1.tlog +0 -0
- matrix_engine-1.1.0/build/vector_demo.dir/Debug/vector_demo.tlog/link.read.1.tlog +0 -0
- matrix_engine-1.1.0/build/vector_demo.dir/Debug/vector_demo.tlog/link.secondary.1.tlog +2 -0
- matrix_engine-1.1.0/build/vector_demo.dir/Debug/vector_demo.tlog/link.write.1.tlog +0 -0
- matrix_engine-1.1.0/build/vector_demo.dir/Debug/vector_demo.tlog/vector_demo.lastbuildstate +2 -0
- matrix_engine-1.1.0/build/vector_demo.vcxproj +385 -0
- matrix_engine-1.1.0/build/vector_demo.vcxproj.filters +16 -0
- matrix_engine-1.1.0/build/x64/Debug/ALL_BUILD/ALL_BUILD.recipe +41 -0
- matrix_engine-1.1.0/build/x64/Debug/ALL_BUILD/ALL_BUILD.tlog/ALL_BUILD.lastbuildstate +2 -0
- matrix_engine-1.1.0/build/x64/Debug/ALL_BUILD/ALL_BUILD.tlog/CustomBuild.command.1.tlog +10 -0
- matrix_engine-1.1.0/build/x64/Debug/ALL_BUILD/ALL_BUILD.tlog/CustomBuild.read.1.tlog +41 -0
- matrix_engine-1.1.0/build/x64/Debug/ALL_BUILD/ALL_BUILD.tlog/CustomBuild.write.1.tlog +2 -0
- matrix_engine-1.1.0/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.recipe +11 -0
- matrix_engine-1.1.0/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.command.1.tlog +10 -0
- matrix_engine-1.1.0/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.read.1.tlog +42 -0
- matrix_engine-1.1.0/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.write.1.tlog +2 -0
- matrix_engine-1.1.0/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.tlog/ZERO_CHECK.lastbuildstate +2 -0
- matrix_engine-1.1.0/examples/vector_demo.cpp +15 -0
- matrix_engine-1.1.0/include/Matrix.hpp +471 -0
- matrix_engine-1.1.0/include/Vector.hpp +329 -0
- matrix_engine-1.1.0/include/exceptions.hpp +45 -0
- matrix_engine-1.1.0/include/validation.hpp +173 -0
- matrix_engine-1.1.0/matrix_engine/Debug/_matrix_engine.cp311-win_amd64.pyd +0 -0
- matrix_engine-1.1.0/matrix_engine/Debug/_matrix_engine.pdb +0 -0
- matrix_engine-1.1.0/matrix_engine/__init__.py +25 -0
- matrix_engine-1.1.0/matrix_engine/__init__.pyi +475 -0
- matrix_engine-1.1.0/matrix_engine/_matrix_engine.cp311-win_amd64.pyd +0 -0
- matrix_engine-1.1.0/matrix_engine/_matrix_engine.pdb +0 -0
- matrix_engine-1.1.0/pyproject.toml +37 -0
- matrix_engine-1.1.0/python/bindings.cpp +876 -0
- matrix_engine-1.1.0/tests/cpp/test_matrix_basics.cpp +39 -0
- matrix_engine-1.1.0/tests/cpp/test_matrix_linalg.cpp +33 -0
- matrix_engine-1.1.0/tests/cpp/test_matrix_logic.cpp +28 -0
- matrix_engine-1.1.0/tests/cpp/test_templates.cpp +27 -0
- matrix_engine-1.1.0/tests/cpp/test_validation.cpp +56 -0
- matrix_engine-1.1.0/tests/cpp/test_vector_basics.cpp +36 -0
- matrix_engine-1.1.0/tests/cpp/test_vector_logic.cpp +27 -0
- matrix_engine-1.1.0/tests/python/run_tests.py +12 -0
- matrix_engine-1.1.0/tests/python/test_matrix_basics.py +32 -0
- matrix_engine-1.1.0/tests/python/test_matrix_linalg.py +26 -0
- matrix_engine-1.1.0/tests/python/test_matrix_logic.py +29 -0
- matrix_engine-1.1.0/tests/python/test_validation_api.py +49 -0
- matrix_engine-1.1.0/tests/python/test_vector_basics.py +37 -0
- matrix_engine-1.1.0/tests/python/test_vector_logic.py +29 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"configurations": [
|
|
3
|
+
{
|
|
4
|
+
"name": "Win32",
|
|
5
|
+
"includePath": [
|
|
6
|
+
"${workspaceFolder}/include",
|
|
7
|
+
"${workspaceFolder}/**"
|
|
8
|
+
],
|
|
9
|
+
"compilerPath": "cl.exe",
|
|
10
|
+
"cppStandard": "c++17",
|
|
11
|
+
"intelliSenseMode": "windows-msvc-x64"
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"version": 4
|
|
15
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.2.0",
|
|
3
|
+
"configurations": [
|
|
4
|
+
{
|
|
5
|
+
"name": "Run vector_demo",
|
|
6
|
+
"type": "cppvsdbg",
|
|
7
|
+
"request": "launch",
|
|
8
|
+
"program": "${workspaceFolder}/build/Debug/vector_demo.exe",
|
|
9
|
+
"args": [],
|
|
10
|
+
"stopAtEntry": false,
|
|
11
|
+
"cwd": "${workspaceFolder}",
|
|
12
|
+
"environment": [],
|
|
13
|
+
"console": "integratedTerminal",
|
|
14
|
+
"preLaunchTask": "Build vector_demo"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "2.0.0",
|
|
3
|
+
"tasks": [
|
|
4
|
+
{
|
|
5
|
+
"label": "Build vector_demo",
|
|
6
|
+
"type": "shell",
|
|
7
|
+
"command": "cmake",
|
|
8
|
+
"args": [
|
|
9
|
+
"--build",
|
|
10
|
+
"${workspaceFolder}/build"
|
|
11
|
+
],
|
|
12
|
+
"group": {
|
|
13
|
+
"kind": "build",
|
|
14
|
+
"isDefault": true
|
|
15
|
+
},
|
|
16
|
+
"problemMatcher": "$msCompile"
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.16)
|
|
2
|
+
|
|
3
|
+
project(cpp_math LANGUAGES CXX)
|
|
4
|
+
|
|
5
|
+
set(CMAKE_CXX_STANDARD 20)
|
|
6
|
+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
7
|
+
enable_testing()
|
|
8
|
+
|
|
9
|
+
set(PYBIND11_FINDPYTHON ON)
|
|
10
|
+
find_package(Python COMPONENTS Interpreter Development.Module REQUIRED)
|
|
11
|
+
find_package(pybind11 REQUIRED)
|
|
12
|
+
|
|
13
|
+
# Header-only C++ library
|
|
14
|
+
add_library(cpp_math INTERFACE)
|
|
15
|
+
|
|
16
|
+
target_include_directories(cpp_math
|
|
17
|
+
INTERFACE
|
|
18
|
+
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
# Python extension module
|
|
22
|
+
pybind11_add_module(_matrix_engine
|
|
23
|
+
python/bindings.cpp
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
target_link_libraries(_matrix_engine
|
|
27
|
+
PRIVATE
|
|
28
|
+
cpp_math
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
target_include_directories(_matrix_engine
|
|
32
|
+
PRIVATE
|
|
33
|
+
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
# Demo executable
|
|
37
|
+
add_executable(vector_demo
|
|
38
|
+
examples/vector_demo.cpp
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
target_link_libraries(vector_demo
|
|
42
|
+
PRIVATE
|
|
43
|
+
cpp_math
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
function(add_cpp_math_test name source)
|
|
47
|
+
add_executable(${name} ${source})
|
|
48
|
+
target_link_libraries(${name}
|
|
49
|
+
PRIVATE
|
|
50
|
+
cpp_math
|
|
51
|
+
)
|
|
52
|
+
add_test(NAME ${name} COMMAND ${name})
|
|
53
|
+
endfunction()
|
|
54
|
+
|
|
55
|
+
add_cpp_math_test(test_vector_basics tests/cpp/test_vector_basics.cpp)
|
|
56
|
+
add_cpp_math_test(test_vector_logic tests/cpp/test_vector_logic.cpp)
|
|
57
|
+
add_cpp_math_test(test_matrix_basics tests/cpp/test_matrix_basics.cpp)
|
|
58
|
+
add_cpp_math_test(test_matrix_linalg tests/cpp/test_matrix_linalg.cpp)
|
|
59
|
+
add_cpp_math_test(test_matrix_logic tests/cpp/test_matrix_logic.cpp)
|
|
60
|
+
add_cpp_math_test(test_validation tests/cpp/test_validation.cpp)
|
|
61
|
+
add_cpp_math_test(test_templates tests/cpp/test_templates.cpp)
|
|
62
|
+
|
|
63
|
+
# Put the compiled .pyd next to your Python package
|
|
64
|
+
set_target_properties(_matrix_engine PROPERTIES
|
|
65
|
+
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/matrix_engine
|
|
66
|
+
LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/matrix_engine
|
|
67
|
+
LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/matrix_engine
|
|
68
|
+
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/matrix_engine
|
|
69
|
+
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/matrix_engine
|
|
70
|
+
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/matrix_engine
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
# Optional install command
|
|
74
|
+
install(TARGETS _matrix_engine
|
|
75
|
+
LIBRARY DESTINATION matrix_engine
|
|
76
|
+
RUNTIME DESTINATION matrix_engine
|
|
77
|
+
)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Noah Ryan
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
|
+
Name: matrix_engine
|
|
3
|
+
Version: 1.1.0
|
|
4
|
+
Summary: C++ matrix and vector engine with pybind11 bindings
|
|
5
|
+
Author: Noah Ryan
|
|
6
|
+
License: MIT License
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2026 Noah Ryan
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in all
|
|
18
|
+
copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
26
|
+
SOFTWARE.
|
|
27
|
+
|
|
28
|
+
Classifier: Development Status :: 3 - Alpha
|
|
29
|
+
Classifier: Intended Audience :: Developers
|
|
30
|
+
Classifier: Intended Audience :: Science/Research
|
|
31
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
32
|
+
Classifier: Programming Language :: C++
|
|
33
|
+
Classifier: Programming Language :: Python :: 3
|
|
34
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
35
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
36
|
+
Classifier: Topic :: Scientific/Engineering
|
|
37
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
38
|
+
Project-URL: Repository, https://github.com/njryan-boou/Scientific-data-processing-backend-built-with-FastAPI
|
|
39
|
+
Project-URL: Issues, https://github.com/njryan-boou/Scientific-data-processing-backend-built-with-FastAPI/issues
|
|
40
|
+
Requires-Python: >=3.11
|
|
41
|
+
Description-Content-Type: text/markdown
|
|
42
|
+
|
|
43
|
+
# Matrix Engine
|
|
44
|
+
|
|
45
|
+
Header-only C++ vector and matrix templates with Python bindings built through
|
|
46
|
+
pybind11.
|
|
47
|
+
|
|
48
|
+
## Features
|
|
49
|
+
|
|
50
|
+
- Header-only C++ templates: `VectorT<T>` and `MatrixT<T>`
|
|
51
|
+
- Python API using double-based aliases: `Vector` and `Matrix`
|
|
52
|
+
- Vector arithmetic, dot product, magnitude, normalization, and 3D cross product
|
|
53
|
+
- Matrix arithmetic, transpose, matrix multiplication, matrix-vector multiplication, and determinant for 2x2 and 3x3 matrices
|
|
54
|
+
- Elementwise comparison and logical mask operators
|
|
55
|
+
- Row iteration for matrices in Python
|
|
56
|
+
- Custom validation helpers and exception types exposed to Python
|
|
57
|
+
- C++ tests through CTest and Python tests through `unittest`
|
|
58
|
+
|
|
59
|
+
## Layout
|
|
60
|
+
|
|
61
|
+
```text
|
|
62
|
+
cpp_math/
|
|
63
|
+
include/ C++ headers
|
|
64
|
+
matrix_engine/ Python package files and built extension output
|
|
65
|
+
python/ pybind11 bindings
|
|
66
|
+
tests/cpp/ C++ tests
|
|
67
|
+
tests/python/ Python tests
|
|
68
|
+
examples/ C++ examples
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## C++ Usage
|
|
72
|
+
|
|
73
|
+
```cpp
|
|
74
|
+
#include "Matrix.hpp"
|
|
75
|
+
#include "Vector.hpp"
|
|
76
|
+
|
|
77
|
+
#include <iostream>
|
|
78
|
+
|
|
79
|
+
int main()
|
|
80
|
+
{
|
|
81
|
+
Vector v({1.0, 2.0, 3.0});
|
|
82
|
+
Vector w({4.0, 5.0, 6.0});
|
|
83
|
+
|
|
84
|
+
std::cout << v.dot(w) << "\n";
|
|
85
|
+
|
|
86
|
+
Matrix A({{1.0, 2.0}, {3.0, 4.0}});
|
|
87
|
+
Matrix B({{5.0, 6.0}, {7.0, 8.0}});
|
|
88
|
+
|
|
89
|
+
std::cout << A.matmul(B);
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
The default aliases use `double`:
|
|
94
|
+
|
|
95
|
+
```cpp
|
|
96
|
+
using Vector = VectorT<double>;
|
|
97
|
+
using Matrix = MatrixT<double>;
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
You can also use other numeric types:
|
|
101
|
+
|
|
102
|
+
```cpp
|
|
103
|
+
VectorT<float> vf({1.0f, 2.0f});
|
|
104
|
+
MatrixT<int> mi({{1, 2}, {3, 4}});
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Python Usage
|
|
108
|
+
|
|
109
|
+
```python
|
|
110
|
+
import matrix_engine as me
|
|
111
|
+
|
|
112
|
+
v = me.Vector([1.0, 2.0, 3.0])
|
|
113
|
+
w = me.Vector([4.0, 5.0, 6.0])
|
|
114
|
+
|
|
115
|
+
print(v @ w) # dot product
|
|
116
|
+
print(v + w) # elementwise addition
|
|
117
|
+
print(v < w) # elementwise mask: 1.0 for true, 0.0 for false
|
|
118
|
+
|
|
119
|
+
A = me.Matrix([[1.0, 2.0], [3.0, 4.0]])
|
|
120
|
+
B = me.Matrix([[5.0, 6.0], [7.0, 8.0]])
|
|
121
|
+
|
|
122
|
+
print(A @ B) # matrix multiplication
|
|
123
|
+
print(A.determinant())
|
|
124
|
+
|
|
125
|
+
for row in A:
|
|
126
|
+
print(row) # rows are Vector instances
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Validation And Exceptions
|
|
130
|
+
|
|
131
|
+
The Python API exposes custom exception classes:
|
|
132
|
+
|
|
133
|
+
```python
|
|
134
|
+
import matrix_engine as me
|
|
135
|
+
|
|
136
|
+
try:
|
|
137
|
+
me.Matrix([[1.0, 2.0, 3.0]]).determinant()
|
|
138
|
+
except me.ShapeError as exc:
|
|
139
|
+
print(exc)
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Available exception types:
|
|
143
|
+
|
|
144
|
+
- `LinalgError`
|
|
145
|
+
- `ShapeError`
|
|
146
|
+
- `DimensionError`
|
|
147
|
+
- `IndexError`
|
|
148
|
+
- `EmptyMatrixError`
|
|
149
|
+
- `ValueError`
|
|
150
|
+
|
|
151
|
+
Validation helpers are available under `me.validation`:
|
|
152
|
+
|
|
153
|
+
```python
|
|
154
|
+
me.validation.square(matrix)
|
|
155
|
+
me.validation.same_shape(lhs, rhs)
|
|
156
|
+
me.validation.multiplication(lhs, rhs)
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Most operations call validation internally, so users usually do not need to call
|
|
160
|
+
these helpers directly.
|
|
161
|
+
|
|
162
|
+
## Build
|
|
163
|
+
|
|
164
|
+
From the repository root:
|
|
165
|
+
|
|
166
|
+
```powershell
|
|
167
|
+
cmake -S cpp_math -B cpp_math/build
|
|
168
|
+
cmake --build cpp_math/build
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
From inside `cpp_math`:
|
|
172
|
+
|
|
173
|
+
```powershell
|
|
174
|
+
cmake -S . -B build
|
|
175
|
+
cmake --build build
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
The extension module is built into:
|
|
179
|
+
|
|
180
|
+
```text
|
|
181
|
+
cpp_math/matrix_engine/
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Install For Python Development
|
|
185
|
+
|
|
186
|
+
From inside `cpp_math`:
|
|
187
|
+
|
|
188
|
+
```powershell
|
|
189
|
+
pip install -e .
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
If you are working from the repository root without installing, add `cpp_math`
|
|
193
|
+
to `PYTHONPATH` or insert it into `sys.path`:
|
|
194
|
+
|
|
195
|
+
```python
|
|
196
|
+
import sys
|
|
197
|
+
from pathlib import Path
|
|
198
|
+
|
|
199
|
+
sys.path.insert(0, str(Path.cwd() / "cpp_math"))
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
## Tests
|
|
203
|
+
|
|
204
|
+
Build first:
|
|
205
|
+
|
|
206
|
+
```powershell
|
|
207
|
+
cmake --build cpp_math/build
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Run C++ tests:
|
|
211
|
+
|
|
212
|
+
```powershell
|
|
213
|
+
ctest --test-dir cpp_math/build -C Debug --output-on-failure
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
Run Python tests:
|
|
217
|
+
|
|
218
|
+
```powershell
|
|
219
|
+
python cpp_math/tests/python/run_tests.py
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
The GitHub Actions workflow in `.github/workflows/tests.yml` runs both the C++
|
|
223
|
+
and Python test suites.
|
|
224
|
+
|
|
225
|
+
## Current Limitations
|
|
226
|
+
|
|
227
|
+
These methods are declared but not implemented yet:
|
|
228
|
+
|
|
229
|
+
- `Matrix.inverse()`
|
|
230
|
+
- `Matrix.adjugate()`
|
|
231
|
+
- `Matrix.rref()`
|
|
232
|
+
- `Matrix.rank()`
|
|
233
|
+
- `Vector.solve()`
|
|
234
|
+
|
|
235
|
+
They validate inputs where appropriate and then raise `ValueError`.
|
|
236
|
+
|
|
237
|
+
## License
|
|
238
|
+
|
|
239
|
+
MIT. See `LICENSE`.
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# Matrix Engine
|
|
2
|
+
|
|
3
|
+
Header-only C++ vector and matrix templates with Python bindings built through
|
|
4
|
+
pybind11.
|
|
5
|
+
|
|
6
|
+
## Features
|
|
7
|
+
|
|
8
|
+
- Header-only C++ templates: `VectorT<T>` and `MatrixT<T>`
|
|
9
|
+
- Python API using double-based aliases: `Vector` and `Matrix`
|
|
10
|
+
- Vector arithmetic, dot product, magnitude, normalization, and 3D cross product
|
|
11
|
+
- Matrix arithmetic, transpose, matrix multiplication, matrix-vector multiplication, and determinant for 2x2 and 3x3 matrices
|
|
12
|
+
- Elementwise comparison and logical mask operators
|
|
13
|
+
- Row iteration for matrices in Python
|
|
14
|
+
- Custom validation helpers and exception types exposed to Python
|
|
15
|
+
- C++ tests through CTest and Python tests through `unittest`
|
|
16
|
+
|
|
17
|
+
## Layout
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
cpp_math/
|
|
21
|
+
include/ C++ headers
|
|
22
|
+
matrix_engine/ Python package files and built extension output
|
|
23
|
+
python/ pybind11 bindings
|
|
24
|
+
tests/cpp/ C++ tests
|
|
25
|
+
tests/python/ Python tests
|
|
26
|
+
examples/ C++ examples
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## C++ Usage
|
|
30
|
+
|
|
31
|
+
```cpp
|
|
32
|
+
#include "Matrix.hpp"
|
|
33
|
+
#include "Vector.hpp"
|
|
34
|
+
|
|
35
|
+
#include <iostream>
|
|
36
|
+
|
|
37
|
+
int main()
|
|
38
|
+
{
|
|
39
|
+
Vector v({1.0, 2.0, 3.0});
|
|
40
|
+
Vector w({4.0, 5.0, 6.0});
|
|
41
|
+
|
|
42
|
+
std::cout << v.dot(w) << "\n";
|
|
43
|
+
|
|
44
|
+
Matrix A({{1.0, 2.0}, {3.0, 4.0}});
|
|
45
|
+
Matrix B({{5.0, 6.0}, {7.0, 8.0}});
|
|
46
|
+
|
|
47
|
+
std::cout << A.matmul(B);
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
The default aliases use `double`:
|
|
52
|
+
|
|
53
|
+
```cpp
|
|
54
|
+
using Vector = VectorT<double>;
|
|
55
|
+
using Matrix = MatrixT<double>;
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
You can also use other numeric types:
|
|
59
|
+
|
|
60
|
+
```cpp
|
|
61
|
+
VectorT<float> vf({1.0f, 2.0f});
|
|
62
|
+
MatrixT<int> mi({{1, 2}, {3, 4}});
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Python Usage
|
|
66
|
+
|
|
67
|
+
```python
|
|
68
|
+
import matrix_engine as me
|
|
69
|
+
|
|
70
|
+
v = me.Vector([1.0, 2.0, 3.0])
|
|
71
|
+
w = me.Vector([4.0, 5.0, 6.0])
|
|
72
|
+
|
|
73
|
+
print(v @ w) # dot product
|
|
74
|
+
print(v + w) # elementwise addition
|
|
75
|
+
print(v < w) # elementwise mask: 1.0 for true, 0.0 for false
|
|
76
|
+
|
|
77
|
+
A = me.Matrix([[1.0, 2.0], [3.0, 4.0]])
|
|
78
|
+
B = me.Matrix([[5.0, 6.0], [7.0, 8.0]])
|
|
79
|
+
|
|
80
|
+
print(A @ B) # matrix multiplication
|
|
81
|
+
print(A.determinant())
|
|
82
|
+
|
|
83
|
+
for row in A:
|
|
84
|
+
print(row) # rows are Vector instances
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Validation And Exceptions
|
|
88
|
+
|
|
89
|
+
The Python API exposes custom exception classes:
|
|
90
|
+
|
|
91
|
+
```python
|
|
92
|
+
import matrix_engine as me
|
|
93
|
+
|
|
94
|
+
try:
|
|
95
|
+
me.Matrix([[1.0, 2.0, 3.0]]).determinant()
|
|
96
|
+
except me.ShapeError as exc:
|
|
97
|
+
print(exc)
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Available exception types:
|
|
101
|
+
|
|
102
|
+
- `LinalgError`
|
|
103
|
+
- `ShapeError`
|
|
104
|
+
- `DimensionError`
|
|
105
|
+
- `IndexError`
|
|
106
|
+
- `EmptyMatrixError`
|
|
107
|
+
- `ValueError`
|
|
108
|
+
|
|
109
|
+
Validation helpers are available under `me.validation`:
|
|
110
|
+
|
|
111
|
+
```python
|
|
112
|
+
me.validation.square(matrix)
|
|
113
|
+
me.validation.same_shape(lhs, rhs)
|
|
114
|
+
me.validation.multiplication(lhs, rhs)
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Most operations call validation internally, so users usually do not need to call
|
|
118
|
+
these helpers directly.
|
|
119
|
+
|
|
120
|
+
## Build
|
|
121
|
+
|
|
122
|
+
From the repository root:
|
|
123
|
+
|
|
124
|
+
```powershell
|
|
125
|
+
cmake -S cpp_math -B cpp_math/build
|
|
126
|
+
cmake --build cpp_math/build
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
From inside `cpp_math`:
|
|
130
|
+
|
|
131
|
+
```powershell
|
|
132
|
+
cmake -S . -B build
|
|
133
|
+
cmake --build build
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
The extension module is built into:
|
|
137
|
+
|
|
138
|
+
```text
|
|
139
|
+
cpp_math/matrix_engine/
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Install For Python Development
|
|
143
|
+
|
|
144
|
+
From inside `cpp_math`:
|
|
145
|
+
|
|
146
|
+
```powershell
|
|
147
|
+
pip install -e .
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
If you are working from the repository root without installing, add `cpp_math`
|
|
151
|
+
to `PYTHONPATH` or insert it into `sys.path`:
|
|
152
|
+
|
|
153
|
+
```python
|
|
154
|
+
import sys
|
|
155
|
+
from pathlib import Path
|
|
156
|
+
|
|
157
|
+
sys.path.insert(0, str(Path.cwd() / "cpp_math"))
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Tests
|
|
161
|
+
|
|
162
|
+
Build first:
|
|
163
|
+
|
|
164
|
+
```powershell
|
|
165
|
+
cmake --build cpp_math/build
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Run C++ tests:
|
|
169
|
+
|
|
170
|
+
```powershell
|
|
171
|
+
ctest --test-dir cpp_math/build -C Debug --output-on-failure
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Run Python tests:
|
|
175
|
+
|
|
176
|
+
```powershell
|
|
177
|
+
python cpp_math/tests/python/run_tests.py
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
The GitHub Actions workflow in `.github/workflows/tests.yml` runs both the C++
|
|
181
|
+
and Python test suites.
|
|
182
|
+
|
|
183
|
+
## Current Limitations
|
|
184
|
+
|
|
185
|
+
These methods are declared but not implemented yet:
|
|
186
|
+
|
|
187
|
+
- `Matrix.inverse()`
|
|
188
|
+
- `Matrix.adjugate()`
|
|
189
|
+
- `Matrix.rref()`
|
|
190
|
+
- `Matrix.rank()`
|
|
191
|
+
- `Vector.solve()`
|
|
192
|
+
|
|
193
|
+
They validate inputs where appropriate and then raise `ValueError`.
|
|
194
|
+
|
|
195
|
+
## License
|
|
196
|
+
|
|
197
|
+
MIT. See `LICENSE`.
|