K      !"#$% & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  SafeFParse a number that may have a decimal point and a suffix, e.g. 2.56M Safe Fork a pipe ,Combine two consumers into a single consumer+A consumer that prints everything to stdout#A consumer that discards everything,Passthrough pipe that prints the sample rateNone4N+Convert a Vector of Floats to a ByteString.,Convert a Vector of Doubles to a ByteString.+Convert a ByteString to a Vector of Floats. ,Convert a ByteString to a Vector of Doubles. WConvert a Vector of Storable values to a ByteString. This is fast as it is just a cast. WConvert a ByteString to a Vector of Storable values. This is fast as it is just a cast. SGiven a Handle, create a Consumer that dumps the Vectors written to it to a Handle. VGiven a Handle, create a Producer that creates Vectors from data read from the Handle.    NoneCompute a sinc functionCompute a Hanning window.Compute a Hamming window. Compute a Blackman window.hGiven filter coefficients, plot their frequency response and save the graph as "frequency_response.png".The length. Must be odd."The cutoff frequency (from 0 to 1)The length of the windowThe length of the windowThe length of the window The length"The cutoff frequency (from 0 to 1)The window functionThe filter coefficientsNone4N<Compute a vector of alternating 1s and 0s of the given size.6Creates a Pipe that performs a complex to complex DFT.3Creates a pipe that performs a real to complex DFT.Creates a pipe that uses multiple threads to perform complex to complex DFTs in a pipelined fashion. Each time a buffer is consumed, it is given to a pool of threads to perform the DFT. Then, if a thread has finished performing a previous DFT, the result is yielded.The length of the Vector(The size of the input and output buffersThe size of the input VectorThe number of threads to useThe size of the input VectorNoneLike mapAccumL but monadic and over vectors. Doesn't return the accumulator at the end because it doesn't seem to be possible to do this with the Stream datatype, making this function pretty useless.{Create a vector from another vector containing only the elements that occur every stride elements in the source vector.+Fill a mutable vector from a monadic stream The functionThe initial accumulatorThe input streamThe output stream The strideThe input VectorThe output VectorThe input Stream!The mutable Vector to stream intoNone4)FM demodulate a stream of complex samples)FM demodulate a vector of complex samples"Pipe that performs FM demodulation=The starting sample - i.e. the last sample in the last bufferThe input streamThe output stream=The starting sample - i.e. the last sample in the last bufferThe input VectorThe output VectorNoneCCreate a window and plot a dynamic line graph of the incoming data.NCreate a window and plot a dynamic line graph of the incoming data. With Axes. :Create a window and plot a waterfall of the incoming data.!MCreate a window and plot a dynamic filled in line graph of the incoming data."XCreate a window and plot a dynamic filled in line graph of the incoming data. With Axes.#Create a Cairo : monad that draws a set of axes with 0 at the bottom left.$Create a Cairo N monad that draws a set of axes with the X axis centered on a specified value. Window width Window height Number of samples in each bufferNumber of vertices in graph Window width Window height Number of samples in each bufferNumber of vertices in graph'Cairo Render object that draws the axes  Window width Window heightNumber of columnsNumber of rows  The color map! Window width Window height Number of samples in each buffer The color map" Window width Window height Number of samples in each buffer The color map'Cairo Render object that draws the axes# Image width Image height X axis spanX axis grid interval$ Image width Image heightCenter X value X axis spanX axis grid interval !"#$ !"#$ !"#$ Safe %4Information about the features supported by your CPU)Execute the CPUID instruction*1Execute the CPUID instruction setting ECX as well+Get a %Feature bit for SSE4.2Feature bit for AVXExtended feature bit for AVX2, Check if the CPU supports SSE4.2-Check if the CPU supports AVX.Check if the CPU supports AVX2/YConvenience function for selecting a function based on the features that the CPU supports%&'()Operation (EAX)Result (EAX, EBX, ECX, EDX)*Operation (EAX)ECXResult (EAX, EBX, ECX, EDX)+,-./The CPU featuresDefault implementation'List of (feature, implementation) pairsThe selected implementation %&'()*+,-./ )*%&'(+,-./ %&'()*+,-./ None3457N 06A class for things that can be multiplied by a scalar.Scaling2ZCreate a vector of complex float samples from a vector of interleaved I Q component bytes.3Same as 2, but written in C and specialized for Floats4Same as 2A but written in C using SSE intrinsics and specialized for Floats5Same as 2A but written in C using AVX intrinsics and specialized for Floats6Create a vector of complex float samples from a vector of interleaved I Q component bytes. Uses the fastest SIMD instruction set your processor supports.7Scale a vector, written in C81Scale a vector, written in C using SSE intrinsics91Scale a vector, written in C using AVX intrinsics:NScale a vector. Uses the fastest SIMD instruction set your processor supports.;2Apply a function to both parts of a complex number<XMultiplication by this vector shifts all frequencies up by 1/4 of the sampling frequency01234567 Scale factor Input vector Output vector8 Scale factor Input vector Output vector9 Scale factor Input vector Output vector:; The functionInput complex numberOutput complex number<The length of the Vector 0123456789:;< 0123456789:;<0123456789:;< NoneNZ=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Z=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ZhijJIHklgmfneodpcqbras`t_u^v]w\xyGFEz{[|Z}Y~XWVUTSRQPO?@ABCD>=NMLKU=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ None!"4;N%A / contains all of the information needed by the resample function to perform resampling i.e. it contains the filter coefficients and pointers to the functions to do the actual resampling.A / contains all of the information needed by the decimate function to perform decimation i.e. it contains the filter coefficients and pointers to the functions to do the actual decimation.A / contains all of the information needed by the filterr function to perform filtering. i.e. it contains the filter coefficients and pointers to the functions to do the actual filtering.DReturns a slow Filter data structure entirely implemented in HaskellfReturns a fast Filter data structure implemented in C. For filtering real data with real coefficients.}Returns a fast Filter data structure implemented in C using SSE instructions. For filtering real data with real coefficients.}Returns a fast Filter data structure implemented in C using AVX instructions. For filtering real data with real coefficients.Returns a fast Filter data structure implemented in C using the fastest SIMD instruction set your processor supports. For filtering real data with real coefficients.hReturns a fast Filter data structure implemented in C For filtering complex data with real coefficients.Returns a fast Filter data structure implemented in C using SSE instructions. For filtering complex data with real coefficients.Returns a fast Filter data structure implemented in C using AVX instructions. For filtering complex data with real coefficients.Returns a fast Filter data structure implemented in C using the fastest SIMD instruction set your processor supports. For filtering complex data with real coefficients.Returns a fast Filter data structure implemented in C using SSE instructions. For filtering real data with real coefficients. For filters with symmetric coefficients, i.e. 'linear phase'. Coefficient length must be a multiple of 4.Returns a fast Filter data structure implemented in C using AVX instructions. For filtering real data with real coefficients. For filters with symmetric coefficients, i.e. 'linear phase'. Coefficient length must be a multiple of 4.Returns a fast Filter data structure implemented in C using the fastest SIMD instruction set your processor supports. For filtering complex data with real coefficients. For filters with symmetric coefficients, i.e. 'linear phase'. Coefficient length must be a multiple of 4.GReturns a slow Decimator data structure entirely implemented in HaskelljReturns a fast Decimator data structure implemented in C. For decimating real data with real coefficients.Returns a fast Decimator data structure implemented in C using SSE instructions. For decimating real data with real coefficients.Returns a fast Decimator data structure implemented in C using AVX instructions. For decimating real data with real coefficients.Returns a fast Decimator data structure implemented in C using the fastest SIMD instruction set your processor supports. For decimating real data with real coefficients.mReturns a fast Decimator data structure implemented in C. For decimating complex data with real coefficients.Returns a fast Decimator data structure implemented in C using SSE instructions. For decimating complex data with real coefficients.Returns a fast Decimator data structure implemented in C using AVX instructions. For decimating complex data with real coefficients.Returns a fast Decimator data structure implemented in C using the fastest SIMD instruction set your processor supports. For decimating complex data with real coefficients.Returns a fast Decimator data structure implemented in C using SSE instructions. For decimating real data with real coefficients. For decimators with symmetric coefficients, i.e. 'linear phase'. Coefficient length must be a multiple of 4.Returns a fast Decimator data structure implemented in C using AVX instructions. For decimating real data with real coefficients. For decimators with symmetric coefficients, i.e. 'linear phase'. Coefficient length must be a multiple of 4.Returns a fast Decimator data structure implemented in C using the fastest SIMD instruction set your processor supports. For decimating real data with real coefficients. For decimators with symmetric coefficients, i.e. 'linear phase'. Coefficient length must be a multiple of 4.GReturns a slow Resampler data structure entirely implemented in HaskelliReturns a fast Resampler data structure implemented in C. For filtering real data with real coefficients.Returns a fast Resampler data structure implemented in C using SSE instructions. For filtering real data with real coefficients.Returns a fast Resampler data structure implemented in C using AVX instructions. For filtering real data with real coefficients.Returns a fast Resampler data structure implemented in C using the fastest SIMD instruction set your processor supports. For resampling real data with real coefficients.My own assert implementation since the GHC one doesnt seem to work even with optimisations disabled and using -fno-ignore-asserts&Create a pipe that performs filtering 'Create a pipe that performs decimation 'Create a pipe that performs resampling A DC blocking filterEThe filter coefficientsThe  data structureThe filter coefficientsThe  data structureThe filter coefficientsThe  data structureThe filter coefficientsThe  data structureThe CPU's capabilitiesThe filter coefficientsThe  data structureThe filter coefficientsThe  data structureThe filter coefficientsThe  data structureThe filter coefficientsThe  data structureThe CPU's capabilitiesThe filter coefficientsThe  data structure)The first half of the filter coefficientsThe  data structure)The first half of the filter coefficientsThe  data structureThe CPU's capabilitiesThe filter coefficientsThe  data structureThe decimation factorThe filter coefficientsThe  data structureThe decimation factorThe filter coefficientsThe  data structureThe decimation factorThe filter coefficientsThe  data structureThe decimation factorThe filter coefficientsThe  data structureThe CPU's capabilitiesThe decimation factorThe filter coefficientsThe  data structureThe decimation factorThe filter coefficientsThe  data structureThe decimation factorThe filter coefficientsThe  data structureThe decimation factorThe filter coefficientsThe  data structureThe CPU's capabilitiesThe decimation factorThe filter coefficientsThe  data structureThe decimation factor)The first half of the filter coefficientsThe  data structureThe decimation factor)The first half of the filter coefficientsThe  data structureThe CPU's capabilitiesThe decimation factorThe filter coefficientsThe  data structureThe interpolation factorThe decimation factorThe filter coefficientsThe  data structureThe interpolation factorThe decimation factorThe filter coefficientsThe  data structureThe interpolation factorThe decimation factorThe filter coefficientsThe  data structureThe interpolation factorThe decimation factorThe filter coefficientsThe  data structureThe CPU's capabilitiesThe interpolation factorThe decimation factorThe filter coefficientsThe  data structureThe  data structureThe output block sizeThe  that does the filteringThe  data structureThe output block sizeThe  that does the decimationThe  data structureThe output block sizeThe  that does the resampling442 NonedReturns a producer that streams data from a Realtek RTL2832U based device. You probably want to use makeComplexBufferVect* to turn it into a list of complex Floats. Frequency Sample rateNumber of buffers Buffer lengthBEither a string describing the error that occurred or the ProducerNoneReturns a consumer that sends all incoming data to pulseaudio. Runs Pulse Audio output writing in a different thread. This is probably what you want as it does not block the entire pipline while the data is being played.>Returns a consumer that sends all incoming data to pulseaudio. !"#$%&'()*+,-./0123 4 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~            sdr_IdYmm9sOF6gAtx2bZnl3Hm SDR.ArgUtils SDR.PipeUtils SDR.SerializeSDR.FilterDesignSDR.FFTSDR.VectorUtils SDR.DemodSDR.Plot SDR.CPUIDSDR.UtilSDR.FilterInternal SDR.FilterSDR.RTLSDRStream SDR.Pulse parseSizeforkcombine printStreamdevnullratefloatVecToByteStringdoubleVecToByteStringfloatVecFromByteStringdoubleVecFromByteString toByteStringfromByteStringtoHandle fromHandlesinchanninghammingblackman windowedSinc plotFrequencyfftFixupfftwfftwReal fftwParallel mapAccumMVstridefill fmDemodStr fmDemodVecfmDemodplotLine plotLineAxes plotWaterfallplotFill plotFillAxeszeroAxes centeredAxesCPUInfofeaturesextendedFeaturescpuid cpuidExtended getCPUInfohasSSE42hasAVXhasAVX2 featureSelectMultmultmakeComplexBufferVectconvertC convertCSSE convertCAVX convertFastscaleC scaleCSSE scaleCAVX scaleFastcplxMap quarterBandUp ResampleRR ResampleRCoeffs numCoeffs numGroups incrementsgroups DecimateRC DecimateRR DecimateCRRFilterRCFilterRR FilterCRR c_dcBlockerresampleAVXRR_cresampleCSSERR_c resample2_c resample_cdecimateAVXSymmetricRC_cdecimateSSESymmetricRC_cdecimateAVXSymmetricRR_cdecimateSSESymmetricRR_cdecimateAVXRC2_cdecimateAVXRC_cdecimateAVXRR_cdecimateSSERC2_cdecimateSSERC_cdecimateSSERR_c decimateCRC_c decimateCRR_cfilterAVXSymmetricRC_cfilterSSESymmetricRC_cfilterAVXRC2_c filterAVXRC_cfilterAVXSymmetricRR_c filterAVXRR_cfilterSSERC2_c filterSSERC_cfilterSSESymmetricRR_c filterSSERR_c filterRC_c filterRR_cfilterHighLevelfilterImperative1filterImperative2 filterFFIR filterFFIC filterCRR filterCRC filterCSSERRfilterCSSESymmetricRR filterCSSERC filterCSSERC2 filterCAVXRRfilterCAVXSymmetricRR filterCAVXRC filterCAVXRC2filterCSSESymmetricRCfilterCAVXSymmetricRCdecimateHighLevel decimateFFIR decimateFFIC decimateCRR decimateCRCdecimateCSSERRdecimateCSSERCdecimateCSSERC2decimateCAVXRRdecimateCAVXRCdecimateCAVXRC2decimateCSSESymmetricRRdecimateCAVXSymmetricRRdecimateCSSESymmetricRCdecimateCAVXSymmetricRCresampleHighLevel resampleCRRpad strideListroundUp prepareCoeffs resampleFFIR mkResampler resampleCRR2resampleCSSERRresampleCAVXRRdecimateCrossHighLevelfilterCrossHighLevelresampleCrossHighLevel dcBlocker Resampler numCoeffsR decimationRinterpolationRstartDat resampleOne resampleCross Decimator numCoeffsD decimationD decimateOne decimateCrossFilter numCoeffsF filterOne filterCross haskellFilter fastFilterCRfastFilterSSERfastFilterAVXR fastFilterR fastFilterCCfastFilterSSECfastFilterAVXC fastFilterCfastFilterSymSSERfastFilterSymAVXRfastFilterSymRhaskellDecimatorfastDecimatorCRfastDecimatorSSERfastDecimatorAVXRfastDecimatorRfastDecimatorCCfastDecimatorSSECfastDecimatorAVXCfastDecimatorCfastDecimatorSymSSERfastDecimatorSymAVXRfastDecimatorSymRhaskellResamplerfastResamplerCRfastResamplerSSERfastResamplerAVXRfastResamplerR firFilter firDecimator firResamplerdcBlockingFilter sdrStreampulseAudioSinkdoPulsesignalmallocForeignBufferAlignedcairo_99BnGIR6TPHADly9rSbi5X!Graphics.Rendering.Cairo.InternalRendersse42avxavx2cpuidExtended_ccpuid_cscale_c scaleAVX_c scaleSSE_c convertCAVX_c convertCSSE_c convertC_c$fMultComplexa$fMultaaassertBufferbufferoffset duplicatemkFilter mkFilterC mkFilterSymR mkDecimator mkDecimatorCmkDecimatorSymRspace newBuffer advanceOutBufpipes_Kffwg8ullmUKZCATktSx4R Pipes.CorePipequotUp