#include <cdds.h>
cdds.h provides the declarations required to access the DDS "C" API routines. It also defines symbolic names for API constants which can be used in the following examples:
#include <cdds.h>
integer ier, i, bin, tag, ndx, rank, size[RANK_MAX];
const char *out_dict, name[80];
BIN_TAG out_bin;
float *data;
...
rank = cdds_scank("axis", "");
cdds_scanf("size", "");
for (i=0;i<rank,i++) {
cdds_scanf("", "%d", size[i]);
}
...
/* enforce array limits when reading */
cdds_scanf(data, "%80s", name);
...
/* get index to trace header */
tag = cdds_member(out_bin, 0, "SrPtXC");
ndx = cdds_index(out_bin, tag, DDS_FLOAT);
data = cdds_malloc(size(1)*sizeof(float));
...
/* open binary output stream */
out_bin = cdds_open(out_dict, "out_format", "out_data", "w+");
Integer Character Max Characters
PATHNAME_MAX PATHNAME_MAXQ full filenames
DEFNNAME_MAX DEFNNAME_MAXQ definition names
AXISNAME_MAX AXISNAME_MAXQ axis names
UNITNAME_MAX UNITNAME_MAXQ units
BASENAME_MAX BASENAME_MAXQ base names (not used)
DDS_VOID void
DDS_PTR void*
DDS_CHAR char
DDS_SCHAR signed char
DDS_SHORT short
DDS_INT int
DDS_LONG long
DDS_LLONG long long
DDS_UCHAR unsigned char
DDS_USHORT unsigned short
DDS_UINT unsigned int
DDS_ULONG unsigned long
DDS_ULLONG unsigned long long
DDS_FLOAT float
DDS_DOUBLE double
DDS_LDOUBLE long double
DDS_CPX complex (Extensions)
DDS_DBLCPX double complex (Extensions)
DDS_LDBLCPX long double complex (Extensions)
DDS_ASCII1 ascii
DDS_EBCDIC1 ebcdic
DDS_INTEGER1 1-byte integer
DDS_INTEGER2 2-byte integer
DDS_INTEGER2X 2-byte integer (Little Endian)
DDS_INTEGER4 4-byte integer
DDS_INTEGER4X 4-byte integer (Little Endian)
DDS_INTEGER8 8-byte integer
DDS_INTEGER8X 8-byte integer (Little Endian)
DDS_UNSIGNED1 1-byte unsigned
DDS_UNSIGNED2 2-byte unsigned
DDS_UNSIGNED2X 2-byte unsigned (Little Endian)
DDS_UNSIGNED4 4-byte unsigned
DDS_UNSIGNED4X 4-byte unsigned (Little Endian)
DDS_UNSIGNED8 8-byte unsigned
DDS_UNSIGNED8X 8-byte unsigned (Little Endian)
DDS_FLOAT4 4-byte ieee float
DDS_FLOAT4X 4-byte ieee float (Little Endian)
DDS_FLOAT4IBM 4-byte ibm float
DDS_FLOAT8 8-byte ieee float
DDS_FLOAT8X 8-byte ieee float (Little Endian)
DDS_FLOAT8IBM 8-byte ibm float
DDS_FLOAT16 16-byte ieee float
DDS_COMPLEX8 8-byte ieee complex
DDS_COMPLEX8X 8-byte ieee complex (Little Endian)
DDS_COMPLEX8IBM 8-byte ibm complex
DDS_COMPLEX16 16-byte ieee complex
DDS_COMPLEX16X 16-byte ieee complex (Little Endian)
DDS_COMPLEX16IBM 16-byte ibm complex
DDS_COMPLEX32 32-byte ieee complex
typedef int BIN_TAG (Binary Tag type)
typedef int SYM_TAG (Symbol Tag type
DDS_DBG_HEAP (check heap once, right now)
DDS_DBG_ALLOC (check heap on each allocation)
DDS_DBG_FREE (check heap on each free)
DDS_DBG_CALL (check heap on each DDS API call)
DDS_DBG_TRACE (trace all API calls)
DDS_DBG_SCANNER (trace compiler scanner)
DDS_DBG_SYMBOL (dump binary symbol tables)
DDS_DBG_UNCOMPILE (dump ddsUncompileFmt stacks)
DDS_DBG_BINARY (dump binary ? tables)
DDS_DBG_PANIC (dump binary tables on panic)
RANK_MAX maximum axis rank (9)
DDS_TRUE_KEY true TRUE True t T yes YES Yes y Y
DDS_FALSE_KEY false FALSE False f F no NO No n N
DDS_HELP_KEY help HELP Help -help -HELP -Help -h -H -?
DDS_HELP_ALIAS help HELP Help -help -HELP -Help
cfft.h provides definitions needed for the cfft wrapper routines.
$DDSROOT/include/cdds.h "C" DDS interface
$DDSROOT/include/cfft.h "C" FFT interface
$DDSROOT/lib/$TARCH/libdds3.a DDS library
$DDSROOT/lib/$TARCH/libgio.a GIO library
$DDSROOT/lib/$TARCH/libchost.a "C" Host-dependent lib