def METHOD_NAME(self,
                   parameters: Dict[str, numbers.Real],
                   channel_mapping: Dict[ChannelID, Optional[ChannelID]]) -> Optional['FunctionWaveform']:
    self.validate_parameter_constraints(parameters=parameters, volatile=set())
    channel = channel_mapping[self.__channel]
    if channel is None:
        return None
    if 't' in parameters:
        parameters = {k: v for k, v in parameters.items() if k != 't'}
    expression = self.__expression.evaluate_symbolic(substitutions=parameters)
    duration = self.__duration_expression.evaluate_with_exact_rationals(parameters)
    return FunctionWaveform.from_expression(expression=expression,
                            duration=duration,
                            channel=channel_mapping[self.__channel])