-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbindings.cpp
More file actions
21 lines (18 loc) · 780 Bytes
/
Copy pathbindings.cpp
File metadata and controls
21 lines (18 loc) · 780 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <pybind11/pybind11.h>
#include <pybind11/stl.h>
#include "matrix.h"
namespace py = pybind11;
PYBIND11_MODULE(linalg, m) {
m.doc() = "Linear algebra engine";
py::class_<M>(m, "M")
.def(py::init<std::vector<std::vector<double>>>())
.def("det", py::overload_cast<>(&M::det))
.def("det", py::overload_cast<long long, long long, long long, long long>(&M::det))
.def("inv", &M::inv)
.def("T", &M::T)
.def("__add__", &M::operator+)
.def("__sub__", &M::operator-)
.def("__mul__", py::overload_cast<const M&>(&M::operator*, py::const_))
.def("__mul__", py::overload_cast<double>(&M::operator*, py::const_))
.def("__rmul__",[](const M& m, double lambda){ return lambda * m; });
}