nd2py.core.calc package
The implementation of calculation functionality of Symbol, including:
- NumpyCalc: Calculate the value of a Symbol tree using numpy.
- TorchCalc: Calculate the value of a Symbol tree using torch.
nd2py.core.calc.numpy_calc module
-
nd2py.core.calc.numpy_calc.unpack_operands()[source]
-
class nd2py.core.calc.numpy_calc.NumpyCalc[source]
Bases: Visitor
-
generic_visit(node: Symbol, *args, **kwargs)[source]
-
visit_Empty(node: Empty, *args, **kwargs)[source]
-
visit_Number(node: Number, *args, **kwargs)[source]
-
visit_Variable(node: Variable, *args, **kwargs)[source]
-
visit_Add(node: Add, x1, x2, *args, **kwargs)[source]
-
visit_Sub(node: Sub, x1, x2, *args, **kwargs)[source]
-
visit_Mul(node: Mul, x1, x2, *args, **kwargs)[source]
-
visit_Div(node: Div, x1, x2, *args, **kwargs)[source]
-
visit_Pow(node: Pow, x1, x2, *args, **kwargs)[source]
-
visit_Max(node: Max, x1, x2, *args, **kwargs)[source]
-
visit_Min(node: Min, x1, x2, *args, **kwargs)[source]
-
visit_Identity(node: Identity, x, *args, **kwargs)[source]
-
visit_Sin(node: Sin, x, *args, **kwargs)[source]
-
visit_Cos(node: Cos, x, *args, **kwargs)[source]
-
visit_Tan(node: Tan, x, *args, **kwargs)[source]
-
visit_Sec(node: Sec, x, *args, **kwargs)[source]
-
visit_Csc(node: Csc, x, *args, **kwargs)[source]
-
visit_Cot(node: Cot, x, *args, **kwargs)[source]
-
visit_Log(node: Log, x, *args, **kwargs)[source]
-
visit_LogAbs(node: LogAbs, x, *args, **kwargs)[source]
-
visit_Exp(node: Exp, x, *args, **kwargs)[source]
-
visit_Abs(node: Abs, x, *args, **kwargs)[source]
-
visit_Neg(node: Neg, x, *args, **kwargs)[source]
-
visit_Inv(node: Inv, x, *args, **kwargs)[source]
-
visit_Sqrt(node: Sqrt, x, *args, **kwargs)[source]
-
visit_SqrtAbs(node: SqrtAbs, x, *args, **kwargs)[source]
-
visit_Pow2(node: Pow2, x, *args, **kwargs)[source]
-
visit_Pow3(node: Pow3, x, *args, **kwargs)[source]
-
visit_Arcsin(node: Arcsin, x, *args, **kwargs)[source]
-
visit_Arccos(node: Arccos, x, *args, **kwargs)[source]
-
visit_Arctan(node: Arctan, x, *args, **kwargs)[source]
-
visit_Sinh(node: Sinh, x, *args, **kwargs)[source]
-
visit_Cosh(node: Cosh, x, *args, **kwargs)[source]
-
visit_Tanh(node: Tanh, x, *args, **kwargs)[source]
-
visit_Sech(node: Sech, x, *args, **kwargs)[source]
-
visit_Csch(node: Csch, x, *args, **kwargs)[source]
-
visit_Coth(node: Coth, x, *args, **kwargs)[source]
-
visit_Sigmoid(node: Sigmoid, x, *args, **kwargs)[source]
-
visit_Regular(node: Regular, x1, x2, *args, **kwargs)[source]
-
visit_Sour(node: Sour, x, *args, **kwargs)[source]
(, n_nodes or 1) -> (, n_edges or 1)
-
visit_Targ(node: Targ, x, *args, **kwargs)[source]
(, n_nodes or 1) -> (, n_edges or 1)
-
visit_Aggr(node: Aggr, x, *args, **kwargs)[source]
(, n_edges or 1) -> (, n_nodes)
-
visit_Rgga(node: Rgga, x, *args, **kwargs)[source]
(, n_edges or 1) -> (, n_nodes)
-
visit_Readout(node: Readout, x, *args, **kwargs)[source]
(, n_nodes or n_edges or 1) -> (, 1)
nd2py.core.calc.torch_calc module
-
nd2py.core.calc.torch_calc.unpack_operands(mask_out_nan=False, double_check_nan=False, fill_nan_input=1.0, fill_nan_output=torch.nan)[source]
Decorator to unpack operands of a node and apply a function to them.
:param mask_out_nan: whether to replace NaN values in the input with fill_nan_input
:param double_check_nan: whether to calculate the output for invalid inputs. Set to True can lead to performance degradation, but helps with operations like Div and Inv which map Non-nan to nan.
:param fill_nan_input: value to replace NaN values in the input This can be any value as long as ‘func’ does not map it to nan.
:param fill_nan_output: value to replace NaN values in the output
-
class nd2py.core.calc.torch_calc.TorchCalc[source]
Bases: Visitor
-
generic_visit(node: Symbol, *args, **kwargs)[source]
-
visit_Empty(node: Empty, *args, **kwargs)[source]
-
visit_Number(node: Number, *args, **kwargs)[source]
-
visit_Variable(node: Variable, *args, **kwargs)[source]
-
visit_Add(node: Add, x1, x2, *args, **kwargs)[source]
-
visit_Sub(node: Sub, x1, x2, *args, **kwargs)[source]
-
visit_Mul(node: Mul, x1, x2, *args, **kwargs)[source]
-
visit_Div(node: Div, x1, x2, *args, **kwargs)[source]
-
visit_Pow(node: Pow, x1, x2, *args, **kwargs)[source]
-
visit_Max(node: Max, x1, x2, *args, **kwargs)[source]
-
visit_Min(node: Min, x1, x2, *args, **kwargs)[source]
-
visit_Sin(node: Sin, x, *args, **kwargs)[source]
-
visit_Cos(node: Cos, x, *args, **kwargs)[source]
-
visit_Tan(node: Tan, x, *args, **kwargs)[source]
-
visit_Sec(node: Sec, x, *args, **kwargs)[source]
-
visit_Csc(node: Csc, x, *args, **kwargs)[source]
-
visit_Cot(node: Cot, x, *args, **kwargs)[source]
-
visit_Log(node: Log, x, *args, **kwargs)[source]
-
visit_LogAbs(node: LogAbs, x, *args, **kwargs)[source]
-
visit_Exp(node: Exp, x, *args, **kwargs)[source]
-
visit_Abs(node: Abs, x, *args, **kwargs)[source]
-
visit_Neg(node: Neg, x, *args, **kwargs)[source]
-
visit_Inv(node: Inv, x, *args, **kwargs)[source]
-
visit_Sqrt(node: Sqrt, x, *args, **kwargs)[source]
-
visit_SqrtAbs(node: SqrtAbs, x, *args, **kwargs)[source]
-
visit_Pow2(node: Pow2, x, *args, **kwargs)[source]
-
visit_Pow3(node: Pow3, x, *args, **kwargs)[source]
-
visit_Arcsin(node: Arcsin, x, *args, **kwargs)[source]
-
visit_Arccos(node: Arccos, x, *args, **kwargs)[source]
-
visit_Arctan(node: Arctan, x, *args, **kwargs)[source]
-
visit_Sinh(node: Sinh, x, *args, **kwargs)[source]
-
visit_Cosh(node: Cosh, x, *args, **kwargs)[source]
-
visit_Tanh(node: Tanh, x, *args, **kwargs)[source]
-
visit_Sech(node: Sech, x, *args, **kwargs)[source]
-
visit_Csch(node: Csch, x, *args, **kwargs)[source]
-
visit_Coth(node: Coth, x, *args, **kwargs)[source]
-
visit_Sigmoid(node: Sigmoid, x, *args, **kwargs)[source]
-
visit_Regular(node: Regular, x1, x2, *args, **kwargs)[source]
-
visit_Sour(node: Sour, x, *args, **kwargs)[source]
(, n_nodes or 1) -> (, n_edges or 1)
-
visit_Targ(node: Targ, x, *args, **kwargs)[source]
(, n_nodes or 1) -> (, n_edges or 1)
-
visit_Aggr(node: Aggr, x, *args, **kwargs)[source]
(, n_edges or 1) -> (, n_nodes)
-
visit_Rgga(node: Rgga, x, *args, **kwargs)[source]
(, n_edges or 1) -> (, n_nodes)
-
visit_Readout(node: Readout, x, *args, **kwargs)[source]
(, n_nodes or n_edges or 1) -> (, 1)