pytorch
1#include <torch/csrc/jit/mobile/prim_ops_registery.h>
2
3namespace torch {
4namespace jit {
5namespace mobile {
6
7static std::unordered_map<std::string, std::function<void(Stack&)>>&
8primOpsFnTable() {
9static std::unordered_map<std::string, std::function<void(Stack&)>>
10prim_ops_fn;
11return prim_ops_fn;
12}
13
14void registerPrimOpsFunction(
15const std::string& name,
16const std::function<void(Stack&)>& fn) {
17primOpsFnTable()[name] = fn;
18}
19
20bool hasPrimOpsFn(const std::string& name) {
21return primOpsFnTable().count(name);
22}
23
24std::function<void(Stack&)>& getPrimOpsFn(const std::string& name) {
25TORCH_CHECK(
26hasPrimOpsFn(name),
27"Prim Ops Function for ",
28name,
29" is not promoted yet.");
30return primOpsFnTable()[name];
31}
32
33} // namespace mobile
34} // namespace jit
35} // namespace torch
36