-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbindings_math.cpp
More file actions
88 lines (69 loc) · 5.17 KB
/
Copy pathbindings_math.cpp
File metadata and controls
88 lines (69 loc) · 5.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <pybind11/pybind11.h>
#include "screamer/common/base.h"
#include "screamer/common/transform.h"
#include "screamer/transform_functions.h"
#include "screamer/linear.h"
#include "screamer/power.h"
namespace py = pybind11;
void init_bindings_math(py::module& m) {
py::class_<screamer::Transform<(double (*)(double)) std::abs>>(m, "Abs")
.def(py::init<>())
.def("__call__", &screamer::Transform<(double (*)(double)) std::abs>::operator(), py::arg("value"))
.def("reset", &screamer::Transform<(double (*)(double)) std::abs>::reset, "Reset to the initial state.");
py::class_<screamer::Transform<(double (*)(double)) std::log>>(m, "Log")
.def(py::init<>())
.def("__call__", &screamer::Transform<(double (*)(double)) std::log>::operator(), py::arg("value"))
.def("reset", &screamer::Transform<(double (*)(double)) std::log>::reset, "Reset to the initial state.");
py::class_<screamer::Transform<(double (*)(double)) std::exp>>(m, "Exp")
.def(py::init<>())
.def("__call__", &screamer::Transform<(double (*)(double)) std::exp>::operator(), py::arg("value"))
.def("reset", &screamer::Transform<(double (*)(double)) std::exp>::reset, "Reset to the initial state.");
py::class_<screamer::Transform<(double (*)(double)) std::sqrt>>(m, "Sqrt")
.def(py::init<>())
.def("__call__", &screamer::Transform<(double (*)(double)) std::sqrt>::operator(), py::arg("value"))
.def("reset", &screamer::Transform<(double (*)(double)) std::sqrt>::reset, "Reset to the initial state.");
py::class_<screamer::Transform<(double (*)(double)) std::erf>>(m, "Erf")
.def(py::init<>())
.def("__call__", &screamer::Transform<(double (*)(double)) std::erf>::operator(), py::arg("value"))
.def("reset", &screamer::Transform<(double (*)(double)) std::erf>::reset, "Reset to the initial state.");
py::class_<screamer::Transform<(double (*)(double)) std::erfc>>(m, "Erfc")
.def(py::init<>())
.def("__call__", &screamer::Transform<(double (*)(double)) std::erfc>::operator(), py::arg("value"))
.def("reset", &screamer::Transform<(double (*)(double)) std::erfc>::reset, "Reset to the initial state.");
py::class_<screamer::Transform<(double (*)(double))screamer::signum<double> >>(m, "Sign")
.def(py::init<>())
.def("__call__", &screamer::Transform<(double (*)(double)) screamer::signum<double>>::operator(), py::arg("value"))
.def("reset", &screamer::Transform<(double (*)(double)) screamer::signum<double>>::reset, "Reset to the initial state.");
py::class_<screamer::Transform<(double (*)(double)) std::tanh>>(m, "Tanh")
.def(py::init<>())
.def("__call__", &screamer::Transform<(double (*)(double)) std::tanh>::operator(), py::arg("value"))
.def("reset", &screamer::Transform<(double (*)(double)) std::tanh>::reset, "Reset to the initial state.");
py::class_<screamer::Transform<(double (*)(double)) screamer::relu>>(m, "Relu")
.def(py::init<>())
.def("__call__", &screamer::Transform<(double (*)(double)) screamer::relu>::operator(), py::arg("value"))
.def("reset", &screamer::Transform<(double (*)(double)) screamer::relu>::reset, "Reset to the initial state.");
py::class_<screamer::Transform<(double (*)(double)) screamer::selu>>(m, "Selu")
.def(py::init<>())
.def("__call__", &screamer::Transform<(double (*)(double)) screamer::selu>::operator(), py::arg("value"))
.def("reset", &screamer::Transform<(double (*)(double)) screamer::selu>::reset, "Reset to the initial state.");
py::class_<screamer::Transform<(double (*)(double)) screamer::elu>>(m, "Elu")
.def(py::init<>())
.def("__call__", &screamer::Transform<(double (*)(double)) screamer::elu>::operator(), py::arg("value"))
.def("reset", &screamer::Transform<(double (*)(double)) screamer::elu>::reset, "Reset to the initial state.");
py::class_<screamer::Transform<(double (*)(double)) screamer::softsign>>(m, "Softsign")
.def(py::init<>())
.def("__call__", &screamer::Transform<(double (*)(double)) screamer::softsign>::operator(), py::arg("value"))
.def("reset", &screamer::Transform<(double (*)(double)) screamer::softsign>::reset, "Reset to the initial state.");
py::class_<screamer::Transform<(double (*)(double)) screamer::sigmoid>>(m, "Sigmoid")
.def(py::init<>())
.def("__call__", &screamer::Transform<(double (*)(double)) screamer::sigmoid>::operator(), py::arg("value"))
.def("reset", &screamer::Transform<(double (*)(double)) screamer::sigmoid>::reset, "Reset to the initial state.");
py::class_<screamer::Linear, screamer::ScreamerBase>(m, "Linear")
.def(py::init<double, double>(), py::arg("scale"), py::arg("shift"))
.def("__call__", &screamer::Linear::operator(), py::arg("value"))
.def("reset", &screamer::Linear::reset, "Reset to the initial state.");
py::class_<screamer::Power, screamer::ScreamerBase>(m, "Power")
.def(py::init<double>(), py::arg("p"))
.def("__call__", &screamer::Power::operator(), py::arg("value"))
.def("reset", &screamer::Power::reset, "Reset to the initial state.");
}