def get_function_name(in_name):
    """Return the Python name of the dREL function, an argument prefix,
       and anything to be appended to the end"""
    builtins = {'table': 'dict', 'list': 'list', 'array': 'numpy.array',
        'len': 'len', 'abs': 'abs', 'magn': 'abs', 'atoi': 'int', 'float':
        'float', 'str': 'str', 'array': 'numpy.array', 'norm':
        'numpy.linalg.norm', 'sqrt': 'math.sqrt', 'exp': 'math.exp',
        'complex': 'complex', 'max': 'max', 'min': 'min', 'strip':
        'drel_runtime.drel_strip', 'int': 'drel_runtime.drel_int', 'eigen':
        'drel_runtime.drel_eigen', 'hash': 'hash'}
    test_name = in_name.lower()
    target_name = builtins.get(test_name, None)
    if target_name is not None:
        return target_name, '', ''
    if test_name in ['sind', 'cosd', 'tand']:
        return 'math.' + test_name[:-1], 'math.radians(', ')'
    if test_name in ['acosd', 'asind', 'atand', 'atan2d']:
        return 'math.degrees(math.' + test_name[:-1], '', ')'
    if test_name == 'mod':
        return 'divmod', '', '[1]'
    if test_name == 'upper':
        return '', '', '.upper()'
    if test_name == 'transpose':
        return '', '', '.T'
    if test_name == 'expimag':
        return 'cmath.exp', '1j*(', ')'
    if test_name in ['real', 'imag']:
        return '', '', '.' + test_name
    if test_name == 'matrix':
        return 'numpy.matrix', '', ".astype('float64')"
    if test_name == 'sort':
        return '', '', '.sort()'
    return in_name, '', None
