# IBM Visualization Data Explorer Programmer's Reference

[ Bottom of Page | Previous Page | Next Page | Table of Contents | Partial Table of Contents | Index ]

### DXQueryArrayCommon, DXQueryArrayCommonV

Function

Return a type, category, rank, and shape to which all of the Arrays can be converted.

Syntax
`
#include <dx/dx.h>
`

Error DXQueryArrayCommon(Type *type, Category *category, int *rank, int *shape
int n, Array a, ...)
Error DXQueryArrayCommonV(Type *type, Category *category, int *rank, int *shape
int n, Array *alist)

Functional Details

All Arrays `a` or `alist` are converted to a common type, category, rank, and shape if a common conversion exists. Both routines set `*type`, `*category`, `*rank`, and `*shape` to the new converted values if the pointers to these parameters are not `NULL`.

Arrays with items that have one or more dimensions of shape = `1` are reduced in that dimension to a smaller rank. For example, an array of `1 × n` matrices, rank = `2`, shape = [`1,n`], is reduced to an Array of vectors rank = `1`, shape = [`n`]. This rank and shape are then used for comparison.

Note: | This reduction is always performed. The resulting rank may be less than the rank of all Arrays given. (A single `1 × n` matrix results in a rank of `1`.) Table 6 and Table 7 summarize the conversions allowed between types and between categories.

The resulting rank and shape are the reduced versions created as previously described. The resulting type is the simplest type that is sufficient for all Arrays. The resulting category is the simplest category that is sufficient for all Arrays.

The `shape` Array must be preallocated with sufficient memory to store the returned `rank` integers. This will not exceed the maximum rank of the given arrays.

Table 6. Summary of Type Conversions

| Byte | Unsigned Byte | Short | Unsigned Short | Int | Unsigned Int | Float | Double
--- | --- | --- | --- | --- | --- | --- | --- | ---
`Byte` | A | CNS | A | CNS | A | CNS | A | A
`Unsigned Byte` | CNS | A | A | A | A | A | A | A
`Short` | CNS | CNS | A | CNS | A | CNS | A | A
`Unsigned Short` | CNS | CNS | CNS | A | A | A | A | A
`Int` | CNS | CNS | CNS | CNS | A | CNS | A | A
`Unsigned Int` | CNS | CNS | CNS | CNS | CNS | A | A | A
`Float` | CNS | CNS | CNS | CNS | CNS | CNS | A | A
`Double` | CNS | CNS | CNS | CNS | CNS | CNS | CNS | A

Notes:

  CNS = Conversion not supported
  A = ANSI 'C' type conversion-semantics

Table 7. Summary of Category Conversions

| Real | Complex
--- | --- | ---
`Real` | Conversion | Conversion
`Complex` | CNS | Conversion

Notes:

  CNS = Conversion not supported
  Real->Complex: a -> a + 0i

Return Value

Return `OK` and sets the non-`NULL` parameters; otherwise, returns `ERROR` and sets an error code.

See Also

`DXArrayConvert, DXArrayConvertV, DXExtractFloat, DXExtractInteger, DXExtractNthString, DXExtractParameter, DXExtractString, DXQueryArrayConvert, DXQueryArrayConvertV, DXQueryParameter`

12.8 , "Extracting Module Parameters".

[ Top of Page | Previous Page | Next Page | Table of Contents | Partial Table of Contents | Index ]
[Data Explorer Documentation | QuickStart Guide | User's Guide | User's Reference | Programmer's Reference | Installation and Configuration Guide ]

[Data Explorer Home Page]

[IBM Home Page | Order | Search | Contact IBM | Legal ]