{'fraction_non_alphanumeric': 0.018691588785046728, 'fraction_numerical': 0.003115264797507788, 'mean_word_length': 5.259740259740259, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
A GPU Implementation of the Complex Logarithmic Number System

In this paper we present a technique to implement the Complex Logarithmic Number System (CLNS) on a Graphics Processing Unit (GPU). Although CLNS multiplication is a simple FP addition, CLNS addition involves evaluations of transcendental functions, which can be carried out in a few different ways by utilizing the GPU hardware resources, such as the special function units, the floating point units, or the texture memory. We propose the implementation of CLNS by using the linear interpolation capabilities of the, otherwise unused, GPU texture memory. In the context of an algorithm that involves complex arithmetic the CLNS additions can be overlapped with other computations by offloading them to the texture memory saving clock cycles. The proposed technique has been implemented on an Nvidia GT200 GPU with CUDA, and its clock-cycle requirements and error behavior are presented and analyzed.