"""
This file is generated by Ligral Class Generator.
DO NOT EDIT or your modification will be overwritten!
"""

from .simulation import BaseLigralGenerator
            
class Abs(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['x']
        self.output_ports_labels = ['y']
        self.parameters = []
        self.info = {}
    
class Acos(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['x']
        self.output_ports_labels = ['y']
        self.parameters = []
        self.info = {}
    
class Acosh(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['x']
        self.output_ports_labels = ['y']
        self.parameters = []
        self.info = {}
    
class Asin(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['x']
        self.output_ports_labels = ['y']
        self.parameters = []
        self.info = {}
    
class Asinh(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['x']
        self.output_ports_labels = ['y']
        self.parameters = []
        self.info = {}
    
class Atan(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['x']
        self.output_ports_labels = ['y']
        self.parameters = []
        self.info = {}
    
class Atan2(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['sin', 'cos']
        self.output_ports_labels = ['y']
        self.parameters = []
        self.info = {}
    
class Atanh(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['x']
        self.output_ports_labels = ['y']
        self.parameters = []
        self.info = {}
    
class BoundedIntegrator(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['input']
        self.output_ports_labels = ['output']
        self.parameters = [{'name': 'initial', 'required': False, 'type': 'signal'}, {'name': 'col', 'required': False, 'type': 'signal'}, {'name': 'row', 'required': False, 'type': 'signal'}, {'name': 'upper', 'required': True, 'type': 'signal'}, {'name': 'lower', 'required': True, 'type': 'signal'}]
        self.info = {'upper': 0, 'lower': 0}
    
class Calculator(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['left', 'right']
        self.output_ports_labels = ['result']
        self.parameters = [{'name': 'type', 'required': True, 'type': 'string'}]
        self.info = {'type': 'string'}
    
class Clock(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = []
        self.output_ports_labels = ['time']
        self.parameters = []
        self.info = {}
    
class Constant(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = []
        self.output_ports_labels = ['value']
        self.parameters = [{'name': 'value', 'required': True, 'type': 'signal'}]
        self.info = {'value': 0}
    
class Cos(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['x']
        self.output_ports_labels = ['y']
        self.parameters = []
        self.info = {}
    
class Cosh(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['x']
        self.output_ports_labels = ['y']
        self.parameters = []
        self.info = {}
    
class Deadzone(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['input']
        self.output_ports_labels = ['output']
        self.parameters = [{'name': 'left', 'required': True, 'type': 'signal'}, {'name': 'right', 'required': True, 'type': 'signal'}]
        self.info = {'left': 0, 'right': 0}
    
class Exp(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['x']
        self.output_ports_labels = ['y']
        self.parameters = []
        self.info = {}
    
class Gain(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['input']
        self.output_ports_labels = ['output']
        self.parameters = [{'name': 'value', 'required': True, 'type': 'signal'}, {'name': 'prod', 'required': False, 'type': 'string'}]
        self.info = {'value': 0}
    
class HSplit(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['matrix']
        self.output_ports_labels = ['out0']
        self.parameters = []
        self.info = {}
    
class HStack(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['in0']
        self.output_ports_labels = ['matrix']
        self.parameters = []
        self.info = {}
    
class Integrator(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['input']
        self.output_ports_labels = ['output']
        self.parameters = [{'name': 'initial', 'required': False, 'type': 'signal'}, {'name': 'col', 'required': False, 'type': 'signal'}, {'name': 'row', 'required': False, 'type': 'signal'}]
        self.info = {}
    
class Log(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['x']
        self.output_ports_labels = ['y']
        self.parameters = [{'name': 'base', 'required': False, 'type': 'signal'}]
        self.info = {}
    
class Log2(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['x', 'base']
        self.output_ports_labels = ['y']
        self.parameters = []
        self.info = {}
    
class LogicSwitch(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['condition', 'first', 'second']
        self.output_ports_labels = ['result']
        self.parameters = []
        self.info = {}
    
class Max(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['first', 'second']
        self.output_ports_labels = ['max']
        self.parameters = []
        self.info = {}
    
class Memory(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['input']
        self.output_ports_labels = ['output']
        self.parameters = [{'name': 'initial', 'required': False, 'type': 'signal'}, {'name': 'col', 'required': False, 'type': 'signal'}, {'name': 'row', 'required': False, 'type': 'signal'}, {'name': 'delay', 'required': False, 'type': 'signal'}]
        self.info = {}
    
class Min(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['first', 'second']
        self.output_ports_labels = ['min']
        self.parameters = []
        self.info = {}
    
class Node(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['input']
        self.output_ports_labels = ['output']
        self.parameters = []
        self.info = {}
    
class PhaseDiagram(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['x', 'y']
        self.output_ports_labels = []
        self.parameters = [{'name': 'name', 'required': False, 'type': 'string'}]
        self.info = {}
    
class Playback(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = []
        self.output_ports_labels = ['source']
        self.parameters = [{'name': 'file', 'required': True, 'type': 'string'}, {'name': 'col', 'required': False, 'type': 'signal'}, {'name': 'row', 'required': False, 'type': 'signal'}]
        self.info = {'file': 'string'}
    
class Pow(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['x']
        self.output_ports_labels = ['y']
        self.parameters = [{'name': 'power', 'required': True, 'type': 'signal'}]
        self.info = {'power': 0}
    
class Pow2(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['base', 'index']
        self.output_ports_labels = ['y']
        self.parameters = []
        self.info = {}
    
class Print(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['input']
        self.output_ports_labels = []
        self.parameters = [{'name': 'name', 'required': False, 'type': 'string'}, {'name': 'start', 'required': False, 'type': 'signal'}, {'name': 'stop', 'required': False, 'type': 'signal'}]
        self.info = {}
    
class Rand(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = []
        self.output_ports_labels = ['output']
        self.parameters = [{'name': 'seed', 'required': False, 'type': 'signal'}, {'name': 'upper', 'required': False, 'type': 'signal'}, {'name': 'lower', 'required': False, 'type': 'signal'}]
        self.info = {}
    
class Saturation(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['input']
        self.output_ports_labels = ['output']
        self.parameters = [{'name': 'upper', 'required': True, 'type': 'signal'}, {'name': 'lower', 'required': True, 'type': 'signal'}]
        self.info = {'upper': 0, 'lower': 0}
    
class Scope(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['input']
        self.output_ports_labels = []
        self.parameters = [{'name': 'name', 'required': False, 'type': 'string'}]
        self.info = {}
    
class Sign(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['x']
        self.output_ports_labels = ['y']
        self.parameters = []
        self.info = {}
    
class Sin(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['x']
        self.output_ports_labels = ['y']
        self.parameters = []
        self.info = {}
    
class SineWave(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = []
        self.output_ports_labels = ['source']
        self.parameters = [{'name': 'ampl', 'required': False, 'type': 'signal'}, {'name': 'omega', 'required': False, 'type': 'signal'}, {'name': 'phi', 'required': False, 'type': 'signal'}]
        self.info = {}
    
class Sinh(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['x']
        self.output_ports_labels = ['y']
        self.parameters = []
        self.info = {}
    
class Split(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['matrix']
        self.output_ports_labels = ['out0']
        self.parameters = []
        self.info = {}
    
class Sqrt(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['x']
        self.output_ports_labels = ['y']
        self.parameters = []
        self.info = {}
    
class Step(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = []
        self.output_ports_labels = ['source']
        self.parameters = [{'name': 'start', 'required': False, 'type': 'signal'}, {'name': 'level', 'required': False, 'type': 'signal'}]
        self.info = {}
    
class Tan(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['x']
        self.output_ports_labels = ['y']
        self.parameters = []
        self.info = {}
    
class Tanh(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['x']
        self.output_ports_labels = ['y']
        self.parameters = []
        self.info = {}
    
class Terminal(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['input']
        self.output_ports_labels = []
        self.parameters = []
        self.info = {}
    
class ThresholdSwitch(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['condition', 'first', 'second']
        self.output_ports_labels = ['result']
        self.parameters = [{'name': 'threshold', 'required': False, 'type': 'signal'}]
        self.info = {}
    
class VSplit(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['matrix']
        self.output_ports_labels = ['out0']
        self.parameters = []
        self.info = {}
    
class VStack(BaseLigralGenerator):
    def __init__(self):
        super().__init__()
        self.input_args_labels = ['in0']
        self.output_ports_labels = ['matrix']
        self.parameters = []
        self.info = {}
    