def add_approximant_arg(parser, default=None, help=None):
    """Adds an approximant argument to the given parser.

    Parameters
    ----------
    parser : ArgumentParser
        The argument parser to add the argument to.
    default : {None, str}
        Specify a default for the approximant argument. Defaults to None.
    help : {None, str}
        Provide a custom help message. If None, will use a descriptive message
        on how to specify the approximant.
    """
    if help is None:
        help = str(
            "The approximant(s) to use. Multiple approximants to use in different regions may be provided. If multiple approximants are provided, every one but the last must be be followed by a conditional statement defining where that approximant should be used. Conditionals can be any boolean test understood by numpy. For example, 'Apprx:(mtotal > 4) & (mchirp <= 5)' would use approximant 'Apprx' where total mass is > 4 and chirp mass is <= 5. Conditionals are applied in order, with each successive one only applied to regions not covered by previous arguments. For example, `'TaylorF2:mtotal < 4' 'IMRPhenomD:mchirp < 3'` would result in IMRPhenomD being used where chirp mass is < 3 and total mass is >= 4. The last approximant given may use 'else' as the conditional or include no conditional. In either case, this will cause the last approximant to be used in any remaning regions after all the previous conditionals have been applied. For the full list of possible parameters to apply conditionals to, see WaveformArray.default_fields(). Math operations may also be used on parameters; syntax is python, with any operation recognized by numpy."
            )
    parser.add_argument('--approximant', nargs='+', type=str, default=
        default, metavar='APPRX[:COND]', help=help)
