K=w      !"#$%&'() * + , - . / 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 None4N+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.None Compute a sinc function Compute 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".Square root raised cosine The length. Must be odd."The cutoff frequency (from 0 to 1) The length of the window The length of the window The length of the window  The length"The cutoff frequency (from 0 to 1)The window functionThe filter coefficientssize: from [-n .. n]sampling periodbeta    NoneCCreate 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 intervalSafe 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 ratemapAccum for PipesAccumulating function Initial value of the accumulatorNoneLike 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. This appears to be missing from the Vector library. #Copy a Vector into a mutable vector!Similar to unfoldrN from the vector package but the generator function cannot terminate and it returns the final value of the seed in addition to the vector" The same as !& but the generator function is monadic The functionThe initial accumulatorThe input streamThe output stream The strideThe input VectorThe output VectorThe input Stream!The mutable Vector to stream into The destination The source!!Generates a vector with this sizeThe generator functionThe initial value of the seed(The (vector, final value of seed) result"!Generates a vector with this size2The monadic generator function The initial value of the seed(The (vector, final value of seed) result !" !" !"None4#)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 Vector%#$%#$%#$%None4N&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 size of the input and output buffers'The size of the input Vector(The number of threads to useThe size of the input Vector &'( &'(&'( 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 AVX20 Check if the CPU supports SSE4.21Check if the CPU supports AVX2Check if the CPU supports AVX23YConvenience 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)/0123The CPU featuresDefault implementation'List of (feature, implementation) pairsThe selected implementation )*+,-./0123 -.)*+,/0123 )*+,-./0123 None3457N46A class for things that can be multiplied by a scalar.Scaling6Create a vector of complex floating samples from a vector of interleaved I Q components. Each input element ranges from 0 to 255. This is the format that RTLSDR devices use.7Same as 6M but written in C and specialized for unsigned byte inputs and Float outputs.8Same as 6b but written in C using SSE intrinsics and specialized for unsigned byte inputs and Float outputs.9Same as 6b but written in C using AVX intrinsics and specialized for unsigned byte inputs and Float outputs.:Same as 6~ but uses the fastest SIMD instruction set your processor supports and specialized for unsigned byte inputs and Float outputs.;Create a vector of complex float samples from a vector of interleaved I Q components. Each input element ranges from -2048 to 2047. This is the format that the BladeRF uses.<Same as 6L but written in C and specialized for signed short inputs and Float outputs.=Same as 6a but written in C using SSE intrinsics and specialized for signed short inputs and Float outputs.>Same as 6a but written in C using AVX intrinsics and specialized for signed short inputs and Float outputs.?Same as ;} but uses the fastest SIMD instruction set your processor supports and specialized for signed short inputs and Float outputs.@Create a vector of interleaved I Q component integral samples from a vector of complex Floats. Each input ranges from -2048 to 2047. This is the format the BladeRF uses.ASame as @L but written in C and specialized for Float inputs and signed short outputs.BScale a vector, written in CC1Scale a vector, written in C using SSE intrinsicsD1Scale a vector, written in C using AVX intrinsicsENScale a vector. Uses the fastest SIMD instruction set your processor supports.F2Apply a function to both parts of a complex numberGXMultiplication by this vector shifts all frequencies up by 1/2 of the sampling frequencyHXMultiplication by this vector shifts all frequencies up by 1/4 of the sampling frequencyIA Producer that streams vectors of the bits that make up the string argument concatenated repeatedly. Each bit is encoded as a float with value (+1) for 1 and (-1) for 0.JtA Producer that streams vectors of random bits. Each bit is encoded as a float with value (+1) for 1 and (-1) for 0.KSimple automatic gain control L"Simple automatic gain control pipe'456789:;<=>?@AB Scale factor Input vector Output vectorC Scale factor Input vector Output vectorD Scale factor Input vector Output vectorEF The functionInput complex numberOutput complex numberGThe length of the VectorHThe length of the VectorI(The string whose bits are to be streamed The size of each streamed vectorJ The size of each streamed vectorKa reference initial state input vector(final state, output vector)La reference 456789:;<=>?@ABCDEFGHIJKL456789:;<=>?@ABCDEFGHIJKL&456789:;<=>?@ABCDEFGHIJKL NoneNcMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~cMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~c|}~[ZY{zyxwvutsrqpXWVonmlkjihgfedcPQRSTUONba`M_^]\^MNOPQRSTUVWXYZ[\]^_`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.lReturns a fast Resampler data structure implemented in C. For filtering complex data with real coefficients.Returns a fast Resampler data structure implemented in C using SSE instructions. For filtering complex data with real coefficients.Returns a fast Resampler data structure implemented in C using AVX instructions. For filtering complex data with real coefficients.Returns a fast Resampler data structure implemented in C using the fastest SIMD instruction set your processor supports. For resampling complex 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 filterJ   The 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 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 structure The  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 resampling887     NoneRTLSDR configuration parameters"Some reasonable default parameters-Set the configuration parameters for a devicedReturns a producer that streams data from a Realtek RTL2832U based device. You probably want to use interleavedIQUnsigned256ToFloatl to turn it into a list of complex Floats. This function initializes and configures the device for you. Use ] if you need more control over how the device is configured or want to configure it yourself.dReturns a producer that streams data from a Realtek RTL2832U based device. You probably want to use interleavedIQUnsigned256ToFloatm to turn it into a list of complex Floats. This function takes a pre-configured device handle to stream from.  Frequency Sample rate Device handle ParametersConfiguration parametersNumber of buffers Buffer lengthBEither a string describing the error that occurred or the Producer Device handleNumber of buffers Buffer length The producer NoneReturns 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. !"#$%&'()*+,-./01234567 8 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 { | } ~                                           ! "#$% &'sdr_AjHbuVKxty84giZcx1AoLp SDR.ArgUtils SDR.SerializeSDR.FilterDesignSDR.Plot SDR.PipeUtilsSDR.VectorUtils SDR.DemodSDR.FFT SDR.CPUIDSDR.UtilSDR.FilterInternal SDR.FilterSDR.RTLSDRStream SDR.Pulse parseSizefloatVecToByteStringdoubleVecToByteStringfloatVecFromByteStringdoubleVecFromByteString toByteStringfromByteStringtoHandle fromHandlesinchanninghammingblackman windowedSinc plotFrequencysrrcplotLine plotLineAxes plotWaterfallplotFill plotFillAxeszeroAxes centeredAxesforkcombine printStreamdevnullrate pMapAccum mapAccumMVstridefillcopyIntovUnfoldr vUnfoldrM fmDemodStr fmDemodVecfmDemodfftwfftwReal fftwParallelCPUInfofeaturesextendedFeaturescpuid cpuidExtended getCPUInfohasSSE42hasAVXhasAVX2 featureSelectMultmultinterleavedIQUnsigned256ToFloat interleavedIQUnsignedByteToFloat#interleavedIQUnsignedByteToFloatSSE#interleavedIQUnsignedByteToFloatAVX$interleavedIQUnsignedByteToFloatFastinterleavedIQSigned2048ToFloatinterleavedIQSignedWordToFloat!interleavedIQSignedWordToFloatSSE!interleavedIQSignedWordToFloatAVX"interleavedIQSignedWordToFloatFast%complexFloatToInterleavedIQSigned2048%complexFloatToInterleavedIQSignedWordscaleC scaleCSSE scaleCAVX scaleFastcplxMap halfBandUp quarterBandUp streamString streamRandomagcagcPipe ResampleRC ResampleRR ResampleRCoeffs numCoeffs numGroups incrementsgroups DecimateRC DecimateRR DecimateCRRFilterRCFilterRR FilterCRR c_dcBlockerresampleAVXRC_cresampleCSSERC_c resample2RC_cresampleAVXRR_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 resampleFFIC mkResampler resampleCRR2resampleCSSERRresampleCAVXRR mkResamplerC resampleCRCresampleCSSERCresampleCAVXRCdecimateCrossHighLevelfilterCrossHighLevelresampleCrossHighLevel dcBlocker Resampler numCoeffsR decimationRinterpolationRstartDat resampleOne resampleCross Decimator numCoeffsD decimationD decimateOne decimateCrossFilter numCoeffsF filterOne filterCross haskellFilter fastFilterCRfastFilterSSERfastFilterAVXR fastFilterR fastFilterCCfastFilterSSECfastFilterAVXC fastFilterCfastFilterSymSSERfastFilterSymAVXRfastFilterSymRhaskellDecimatorfastDecimatorCRfastDecimatorSSERfastDecimatorAVXRfastDecimatorRfastDecimatorCCfastDecimatorSSECfastDecimatorAVXCfastDecimatorCfastDecimatorSymSSERfastDecimatorSymAVXRfastDecimatorSymRhaskellResamplerfastResamplerCRfastResamplerSSERfastResamplerAVXRfastResamplerRfastResamplerCCfastResamplerSSECfastResamplerAVXCfastResamplerC firFilter firDecimator firResamplerdcBlockingFilter RTLSDRParams centerFreq sampleRatefreqCorrection tunerGaindefaultRTLSDRParamssetRTLSDRParams sdrStreamsdrStreamFromDevicepulseAudioSinkdoPulsesignalcairo_1djlyyeXUE9GSEY2xJa3on!Graphics.Rendering.Cairo.InternalRendermallocForeignBufferAlignedsse42avxavx2cpuidExtended_ccpuid_cscale_c scaleAVX_c scaleSSE_cconvertBladeRFTransmit_cconvertCAVXBladeRF_cconvertCSSEBladeRF_cconvertCBladeRF_c convertCAVX_c convertCSSE_c convertC_ccdivcmul$fMultComplexa$fMultaaassertBufferbufferoffset duplicatemkFilter mkFilterC mkFilterSymR mkDecimator mkDecimatorCmkDecimatorSymRspace newBuffer advanceOutBufpipes_Do6pcqjslzK2oW5B76k6BB Pipes.CorePipequotUp