Conversion primitives
Primitives that explicitly accomplish type conversion.
Complex data type
 CxToCxRI
 Convert a complex input to real and imaginary parts.
 CxRIToCx
 Convert real and imaginary inputs to a complex output.
 RectToPolar
 Convert real and imaginary inputs into magnitude and phase form. The phase output is in the range to .
 PolarToRect
 Convert magnitude and phase to rectangular form.
Other data type formats
 PCMBitCoder
 Encode voice samples for a 64 kbps bit stream using CCITT Recommendation G.711. The input is one 8 kHz sample of voice data and the output is the eightbit codeword (the loworder 8 bits of an integer) representing the quantized samples.
 PCMBitDecoder
 Decode 8bit PCM codewords that were encoded using PCMBitCoder.
 BitsToSymMSB
 The integer input sequence is interpreted as a bit stream in which any nonzero value is a "1" bit. This primitive consumes NumberOfBits successive bits from the input, packs them into an integer, and outputs the resulting integer. The first received bit becomes the most significant bit of the output. If NumberOfBits is larger than the integer word size, then the first bits received will be lost. If NumberOfBits is smaller than the word size minus one, then the output integer will always be nonnegative.
 SymToBitsMSB
 Read the least significant NumberOfBits bits from an integer input, and output the bits as integers serially on the output, most significant bit first.
 BusToNum

This primitive accepts a number of input bit streams, where this number should not exceed the word size of an integer. Each bit stream has integer particles with values 0, 3, or anything else. These are interpreted as binary 0, tristate, or 1, respectively.
When the primitive fires, it reads one input bit from each input. If any of the input bits is tristate, the output will be the previous output (or the initial value of the Previous parameter if the firing is the first one). Otherwise, the bits are assembled into an integer word, assuming two's complement encoding, and sign extended. The resulting signed integer is sent to the output. This primitive is particularly useful for interfacing to digital logic simulation domains.
 NumToBus
 This primitive accepts an integer and outputs the loworder bits that make up the integer on a number of outputs, one bit per output. The number of outputs should not exceed the word size of an integer. This primitive is particularly useful for interfacing to digital logic simulation domains.
Automatic type conversion has limitations. If a given output port has more than one destination, then all destinations must have the same type input. This is true even if an explicit fork primitive is used. Explicit type conversions are needed to get around this limitation. For this reason, the library also contains a set of type conversions that behave exactly the same way the automatic type conversions behave.
 IntToFix
 Convert an integer input to a fixedpoint output.
 IntToFloat
 Convert an integer input to a floatingpoint output.
 IntToCx
 Convert an integer input to a complex output.
 FixToInt
 Convert a fixedpoint input to an integer output.
 FixToFloat
 Convert a fixedpoint input to a floatingpoint output.
 FixToCx
 Convert a fixedpoint input to a complex output.
 FloatToInt
 Convert a floatingpoint input to an integer output.
 FloatToFix
 Convert a floatingpoint input to a fixedpoint output.
 FloatToCx
 Convert a floatingpoint input to a complex output.
 CxToInt
 Convert a complex input to an integer output.
 CxToFix
 Convert a complex input to a fixedpoint output.
 CxToFloat
 Convert a complex input to a floatingpoint output.
Matrix conversion primitives
The following type conversions construct a new matrix of the destination type by converting each element of the old matrix as it is copied to the new one.
For FixMatrix types, the precision is specified as a parameter of the conversion primitive. The actual conversions are implemented using the cast conversion in the underlying class, except for the conversions to the FixMatrix type which are more complex because they involve possible changes in precision and require a rounding option. The primitives provided are:
 IntToFix_M
 Convert an integer input matrix to a fixedpoint output matrix.
 IntToFloat_M
 Convert an integer input matrix to a floatingpoint output matrix.
 IntToCx_M
 Convert an integer input matrix to a complex output matrix.
 FixToInt_M
 Convert a fixedpoint input matrix to an integer output matrix.
 FixToFloat_M
 Convert a fixedpoint input matrix to a floatingpoint output matrix.
 FixToCx_M
 Convert a fixedpoint input matrix to a complex output matrix.
 FloatToInt_M
 Convert a floatingpoint input matrix to an integer output matrix.
 FloatToFix_M
 Convert a floatingpoint input matrix to a fixedpoint output matrix.
 FloatToCx_M
 Convert a floatingpoint input matrix to a complex output matrix.
 CxToInt_M
 Convert a complex input matrix to an integer output matrix.
 CxToFix_M
 Convert a complex input matrix to a fixedpoint output matrix.
 CxToFloat_M
 Convert a complex input matrix to a floatingpoint output matrix.