:param func_name: string with function name corresponding to dll file name (without the .dll in the string)
:param n_arg: number of arguments of the func_name function. This corresponds to number of columns in 2D numpy array, numpy2d, to be used in the method. Use numpy2d.shape[1] to get the number.
:param n_points: number of points to evaluate. This corresponds to number of rows in 2D numpy array, numpy2d, to be used in the eval method. Use numpy2d.shape[0] to get the number.
:param C_FUN_folder: If not specified, the code assumes the .dll files are in a folder called CFUN in the same directory as this script. Otherwise a full path to a folder needs to be given.
"""
ifC_FUN_folder:
self.C_FUN_folder=C_FUN_folder# allows user to specify full path to folder with .dlls
else:
self.C_FUN_folder=os.path.join(os.getcwd(),"CFUN")# Assumes .dlls are in a folder called CFUN in the same directory as this script
ifplatform.system()=='Windows':
self._dll_name=f'{func_name}.dll'
elifplatform.system()=='Linux':
self._dll_name=f'lib{func_name}.so'
else:
raiseNotImplementedError(f'Platform "{platform.system()}" is not supported!')
raiseValueError(f"There was a problem with calling {self._dll_name} with arguments {numpy2d}. Check if library file exists or if number of arguments is correct.")