def __init__(self, args=DefaultArgTemplate): # initializing base class ML_FunctionBasis.__init__(self, args) # self.function = sollya.parse(args.function) self.interval = sollya.parse(args.interval) self.epsilon = 2**(-sollya.parse(str(args.epsilon)))
def __init__(self, arg_template, precision=ML_Binary32, abs_accuracy=S2**-24, libm_compliant=True, debug_flag=False, fuse_fma=True, fast_path_extract=True, target=FixedPointBackend(), output_file="ut_static_vectorization.c", function_name="ut_static_vectorization"): # precision argument extraction precision = ArgDefault.select_value( [arg_template.precision, precision]) io_precisions = [precision] * 2 # initializing base class ML_FunctionBasis.__init__(self, base_name="ut_static_vectorization", function_name=function_name, output_file=output_file, io_precisions=io_precisions, abs_accuracy=None, libm_compliant=libm_compliant, processor=target, fuse_fma=fuse_fma, fast_path_extract=fast_path_extract, debug_flag=debug_flag, arg_template=arg_template) self.precision = precision
def __init__(self, precision=ML_Binary32, abs_accuracy=S2**-24, libm_compliant=True, debug_flag=False, fuse_fma=True, fast_path_extract=True, target=FixedPointBackend(), output_file="ut_opencl_code.c", function_name="ut_opencl_code", vector_size=2, language=C_Code): io_precisions = [precision] * 2 # initializing base class ML_FunctionBasis.__init__(self, base_name="ut_opencl_code", function_name=function_name, output_file=output_file, io_precisions=io_precisions, abs_accuracy=None, libm_compliant=libm_compliant, processor=target, fuse_fma=fuse_fma, fast_path_extract=fast_path_extract, debug_flag=debug_flag, vector_size=vector_size, language=language) self.precision = precision
def __init__(self, args=DefaultArgTemplate): # initializing base class ML_FunctionBasis.__init__(self, args) # function specific arguments self.cgpe_index = args.cgpe_index self.tbl_index_size = args.tbl_index_size self.no_subnormal = args.no_subnormal self.no_fma = args.no_fma self.no_rcp = args.no_rcp self.log_radix = { "e": EXP_1, "2": S2, "10": S10 }[args.log_radix] self.force_division = args.force_division # TODO: beware dict indexing is reliying on python matching numerical values # to keys which may have different construction methods (you try to make # sure every value is constructed through sollya.parse, but this is # not really safe): to be IMPROVED LOG_EMUL_FCT_MAP = { S2: sollya.log2, EXP_1: sollya.log, S10: sollya.log10 } if self.log_radix in LOG_EMUL_FCT_MAP: Log.report(Log.Info, "radix {} is part of standard radices", self.log_radix) self.log_emulation_function = LOG_EMUL_FCT_MAP[self.log_radix] else: Log.report(Log.Info, "radix {} is not part of standard radices {{2, e, 10}}", self.log_radix) self.log_emulation_function = lambda v: sollya.log(v) / sollya.log(self.log_radix) # .. update output and function name self.function_name = "LOG{}".format(args.log_radix) self.output_file = "{}.c".format(self.function_name)
def __init__(self, arg_template=DefaultArgTemplate, precision=ML_Binary32, accuracy=ML_Faithful, libm_compliant=True, debug_flag=False, fuse_fma=True, fast_path_extract=True, target=GenericProcessor(), output_file="my_empty.c", function_name="my_empty", language=C_Code, vector_size=1): # initializing I/O precision precision = ArgDefault.select_value( [arg_template.precision, precision]) io_precisions = [precision] * 2 # initializing base class ML_FunctionBasis.__init__(self, base_name="empty", function_name=function_name, output_file=output_file, io_precisions=io_precisions, abs_accuracy=None, libm_compliant=libm_compliant, processor=target, fuse_fma=fuse_fma, fast_path_extract=fast_path_extract, debug_flag=debug_flag, language=language, vector_size=vector_size, arg_template=arg_template) self.precision = precision
def __init__(self, precision = ML_Binary32, abs_accuracy = S2**-24, libm_compliant = True, debug_flag = False, fuse_fma = True, fast_path_extract = True, target = GenericProcessor(), output_file = None, function_name = None): io_precisions = [precision] * 2 # initializing base class ML_FunctionBasis.__init__(self, base_name = "acos", function_name = function_name, output_file = output_file, io_precisions = io_precisions, abs_accuracy = None, libm_compliant = libm_compliant, processor = target, fuse_fma = fuse_fma, fast_path_extract = fast_path_extract, debug_flag = debug_flag ) self.precision = precision
def __init__(self, precision=ML_Binary32, accuracy=ML_Faithful, libm_compliant=True, debug_flag=False, fuse_fma=True, fast_path_extract=True, processor=GenericProcessor(), output_file="cosf.c", function_name="cosf", input_interval=Interval(0, 1), result_precision=ML_Binary32, table_size_log=8, cos_output=True): # initializing I/O precision io_precisions = [result_precision, precision] # initializing base class ML_FunctionBasis.__init__(self, base_name="cos", function_name=function_name, output_file=output_file, io_precisions=io_precisions, abs_accuracy=None, libm_compliant=libm_compliant, processor=processor, fuse_fma=fuse_fma, fast_path_extract=fast_path_extract, debug_flag=debug_flag) self.precision = precision self.cos_output = cos_output self.accuracy = accuracy self.input_interval = input_interval self.table_size_log = table_size_log
def __init__(self, precision=ML_Binary32, abs_accuracy=S2**-24, libm_compliant=True, debug_flag=False, fuse_fma=True, fast_path_extract=True, target=FixedPointBackend(), output_file="ut_call_externalization.c", function_name="ut_call_externalization"): io_precisions = [precision] * 2 # initializing base class ML_FunctionBasis.__init__(self, base_name="ut_call_externalization", function_name=function_name, output_file=output_file, io_precisions=io_precisions, abs_accuracy=None, libm_compliant=libm_compliant, processor=target, fuse_fma=fuse_fma, fast_path_extract=fast_path_extract, debug_flag=debug_flag) self.precision = precision
def __init__(self, arg_template, precision=ML_Binary32, abs_accuracy=S2**-24, libm_compliant=True, debug_flag=False, fuse_fma=True, fast_path_extract=True, target=MPFRProcessor(), output_file="ut_auto_test.c", function_name="ut_auto_test", auto_test=False): # extracting precision argument from command line precision = ArgDefault.select_value( [arg_template.precision, precision]) io_precisions = [precision] * 2 # initializing base class ML_FunctionBasis.__init__(self, base_name="ut_auto_test", function_name=function_name, output_file=output_file, io_precisions=io_precisions, abs_accuracy=None, libm_compliant=libm_compliant, processor=target, fuse_fma=fuse_fma, fast_path_extract=fast_path_extract, auto_test=auto_test, debug_flag=debug_flag, arg_template=arg_template) self.precision = precision
def __init__(self, args): """ Initialize """ # initializing base class ML_FunctionBasis.__init__(self, args=args) self.accuracy = args.accuracy self.precision = args.precision
def __init__(self, args): # initializing base class ML_FunctionBasis.__init__(self, args) self.function_expr_str = args.function_expr_str[0] self.arity = count_expr_arity(self.function_expr_str) self.function_expr = None self.var_mapping = None self.expand_div = args.expand_div
def __init__(self, args=DefaultArgTemplate): #arity = len(arg_template.input_precisions) # initializing base class ML_FunctionBasis.__init__(self, args) # initializing specific properties self.headers = args.headers self.libraries = args.libraries self.bench_function_name = args.bench_function_name self.emulate = args.emulate
def __init__( self, arg_template, ): #precision = ArgDefault.select_value([arg_template.precision, precision]) #io_precisions = [precision] * 2 # initializing base class ML_FunctionBasis.__init__(self, arg_template=arg_template)
def __init__(self,arg_template = DefaultArgTemplate): # initializing I/O precision precision = ArgDefault.select_value([arg_template.precision, precision]) io_precisions = [precision] * 2 # initializing base class ML_FunctionBasis.__init__(self, arg_template=arg_template ) self.precision = precision
def __init__(self, args=DefaultMultiAryArgTemplate): # initializing base class ML_FunctionBasis.__init__(self, args) # initializing specific properties self.headers = args.headers self.libraries = args.libraries self.extra_src_files = args.extra_src_files self.bench_function_name = args.bench_function_name self.emulate = args.emulate self.arity = args.arity if len(self.auto_test_range) != self.arity: self.auto_test_range = [self.auto_test_range[0]] * self.arity if len(self.bench_test_range) != self.arity: self.bench_test_range = [self.bench_test_range[0]] * self.arity
def __init__(self, arg_template = DefaultArgTemplate, precision = ML_Binary32, accuracy = ML_CorrectlyRounded, libm_compliant = True, debug_flag = False, fuse_fma = True, num_iter = 3, fast_path_extract = True, target = GenericProcessor(), output_file = "sqrtf.c", function_name = "sqrtf", dot_product_enabled = False, vector_size = 1, language = C_Code): # initializing I/O precision precision = ArgDefault.select_value([arg_template.precision, precision]) num_iter = ArgDefault.select_value([arg_template.num_iter, num_iter]) io_precisions = [precision] * 2 # initializing base class ML_FunctionBasis.__init__(self, base_name = "exp", function_name = function_name, output_file = output_file, io_precisions = io_precisions, abs_accuracy = None, libm_compliant = libm_compliant, processor = target, fuse_fma = fuse_fma, fast_path_extract = fast_path_extract, debug_flag = debug_flag, vector_size = vector_size, language = language, arg_template = arg_template ) self.accuracy = accuracy self.precision = precision self.integer_precision = {ML_Binary32: ML_Int32, ML_Binary64: ML_Int64}[self.precision] self.num_iter = num_iter
def __init__( self, args=DefaultArgTemplate, ): # initializing base class ML_FunctionBasis.__init__(self, args=args) # function to be approximated self.function = args.function # interval on which the approximation must be valid self.interval = args.interval self.disable_sub_testing = args.disable_sub_testing self.disable_sv_testing = args.disable_sv_testing self.alpha = args.alpha self.beta = args.beta self.gamma = args.gamma self.guard_bits = args.guard_bits
def __init__( self, arg_template=DefaultArgTemplate, output_file="bench.c", function_name="main", ): arity = 0 # initializing base class ML_FunctionBasis.__init__(self, base_name="bench", function_name=function_name, output_file=output_file, arity=arity, arg_template=arg_template) # number of basic iteration self.test_num = arg_template.test_num self.unroll_factor = arg_template.unroll_factor # dict of operations to be benched self.operation_map = arg_template.operation_map
def __init__(self, arg_template, precision=ML_Int32, libm_compliant=True, debug_flag=False, output_file="ut_arithmetic_right_shift.c", function_name="ut_arithmetic_right_shift"): # precision argument extraction precision = ArgDefault.select_value( [arg_template.precision, precision]) io_precisions = [precision] * 2 # initializing base class ML_FunctionBasis.__init__(self, base_name="ut_arithmetic_right_shift", function_name=function_name, output_file=output_file, io_precisions=io_precisions, abs_accuracy=None, libm_compliant=libm_compliant, debug_flag=debug_flag, arg_template=arg_template) self.precision = precision
def __init__(self, args=DefaultArgTemplate): ML_FunctionBasis.__init__(self, args)
def __init__(self, args): # initializing base class ML_FunctionBasis.__init__(self, args)
def __init__(self, args): # initializing base class ML_FunctionBasis.__init__(self, args) self.accuracy = args.accuracy
def __init__(self, args=DefaultMultiAryArgTemplate): # initializing base class ML_FunctionBasis.__init__(self, args) self.arity = args.arity
def __init__(self, args=DefaultArgTemplate): # initializing base class ML_FunctionBasis.__init__(self, args) self.accuracy = args.accuracy self.num_iter = args.num_iter
def __init__(self, args): # initializing base class ML_FunctionBasis.__init__(self, args) self.num_iter = args.num_iter
def __init__(self, args=DefaultArgTemplate): # initializing class specific arguments (required by ML_FunctionBasis init) self.mode = remquo_mode_parser(args.mode) self.quotient_size = args.quotient_size # initializing base class ML_FunctionBasis.__init__(self, args=args)
def __init__(self, args): ML_FunctionBasis.__init__(self, args)
def __init__(self, args=DefaultArgTemplate): # initializing base class ML_FunctionBasis.__init__(self, args) # initializing accuracy property self.accuracy = args.accuracy
def __init__(self, args=DefaultArgTemplate): # initializing base class ML_FunctionBasis.__init__(self, args)
def __init__(self, args=DefaultArrayFunctionArgTemplate): ML_FunctionBasis.__init__(self, args) self.test_index_range = args.test_index_range