'infer_type interface. override to create new operators
Parameters
in_type : list of np.dtype
list of argument types in the same order as
declared in list_arguments.
Returns
in_type : list
list of argument types. Can be modified from in_type.
out_type : list
list of output types calculated from in_type,
in the same order as declared in list_outputs.
aux_type : Optional, list
list of aux types calculated from in_type,
in the same order as declared in list_auxiliary_states.'

def infer_type(self, in_type):

    return (in_type, ([in_type[0]] * len(self.list_outputs())), ([in_type[0]] * len(self.list_auxiliary_states())))
