Types#

Enhanced type safety with proper protocols and enums.

class nabla.utils.types.ExecutionMode(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: Enum

Execution modes for the framework.

EAGER = 'eager'#
LAZY = 'lazy'#
class nabla.utils.types.OperationType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: Enum

Types of operations.

UNARY = 'unary'#
BINARY = 'binary'#
REDUCTION = 'reduction'#
VIEW = 'view'#
CREATION = 'creation'#
class nabla.utils.types.Differentiable(*args, **kwargs)[source]#

Bases: Protocol

Protocol for differentiable operations.

vjp_rule(primals, cotangent, output)[source]#
jvp_rule(primals, tangents, output)[source]#
__init__(*args, **kwargs)#